@proposit/proposit-core 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -26
- package/dist/cli/commands/arguments.d.ts.map +1 -1
- package/dist/cli/commands/arguments.js +8 -16
- package/dist/cli/commands/arguments.js.map +1 -1
- package/dist/cli/commands/citations.d.ts +3 -0
- package/dist/cli/commands/citations.d.ts.map +1 -0
- package/dist/cli/commands/citations.js +89 -0
- package/dist/cli/commands/citations.js.map +1 -0
- package/dist/cli/commands/claims.d.ts.map +1 -1
- package/dist/cli/commands/claims.js +10 -2
- package/dist/cli/commands/claims.js.map +1 -1
- package/dist/cli/commands/parse.d.ts.map +1 -1
- package/dist/cli/commands/parse.js +9 -17
- package/dist/cli/commands/parse.js.map +1 -1
- package/dist/cli/commands/render.d.ts.map +1 -1
- package/dist/cli/commands/render.js +44 -18
- package/dist/cli/commands/render.js.map +1 -1
- package/dist/cli/commands/variables.d.ts.map +1 -1
- package/dist/cli/commands/variables.js +1 -0
- package/dist/cli/commands/variables.js.map +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +12 -9
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/import.d.ts +2 -4
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +8 -7
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/router.js +1 -1
- package/dist/cli/router.js.map +1 -1
- package/dist/cli/storage/libraries.d.ts +4 -7
- package/dist/cli/storage/libraries.d.ts.map +1 -1
- package/dist/cli/storage/libraries.js +9 -28
- package/dist/cli/storage/libraries.js.map +1 -1
- package/dist/cli/storage/migrate-v0.10.d.ts +10 -0
- package/dist/cli/storage/migrate-v0.10.d.ts.map +1 -0
- package/dist/cli/storage/migrate-v0.10.js +213 -0
- package/dist/cli/storage/migrate-v0.10.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/extensions/basics/argument-parser.d.ts +1 -2
- package/dist/extensions/basics/argument-parser.d.ts.map +1 -1
- package/dist/extensions/basics/argument-parser.js.map +1 -1
- package/dist/extensions/basics/schemata.d.ts +1 -0
- package/dist/extensions/basics/schemata.d.ts.map +1 -1
- package/dist/extensions/ieee/{source.d.ts → citation-claim.d.ts} +5 -3
- package/dist/extensions/ieee/citation-claim.d.ts.map +1 -0
- package/dist/extensions/ieee/{source.js → citation-claim.js} +5 -4
- package/dist/extensions/ieee/citation-claim.js.map +1 -0
- package/dist/extensions/ieee/index.d.ts +1 -1
- package/dist/extensions/ieee/index.d.ts.map +1 -1
- package/dist/extensions/ieee/index.js +1 -1
- package/dist/extensions/ieee/index.js.map +1 -1
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +9 -13
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +8 -8
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +7 -9
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/argument-library.d.ts +13 -15
- package/dist/lib/core/argument-library.d.ts.map +1 -1
- package/dist/lib/core/argument-library.js +23 -9
- package/dist/lib/core/argument-library.js.map +1 -1
- package/dist/lib/core/claim-citation-library.d.ts +44 -0
- package/dist/lib/core/claim-citation-library.d.ts.map +1 -0
- package/dist/lib/core/claim-citation-library.js +336 -0
- package/dist/lib/core/claim-citation-library.js.map +1 -0
- package/dist/lib/core/claim-library.d.ts +33 -1
- package/dist/lib/core/claim-library.d.ts.map +1 -1
- package/dist/lib/core/claim-library.js +71 -3
- package/dist/lib/core/claim-library.js.map +1 -1
- package/dist/lib/core/fork-library.d.ts +19 -10
- package/dist/lib/core/fork-library.d.ts.map +1 -1
- package/dist/lib/core/fork-library.js +16 -13
- package/dist/lib/core/fork-library.js.map +1 -1
- package/dist/lib/core/fork.d.ts +6 -7
- package/dist/lib/core/fork.d.ts.map +1 -1
- package/dist/lib/core/fork.js +8 -3
- package/dist/lib/core/fork.js.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 +66 -160
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/proposit-core.d.ts +30 -32
- package/dist/lib/core/proposit-core.d.ts.map +1 -1
- package/dist/lib/core/proposit-core.js +68 -89
- package/dist/lib/core/proposit-core.js.map +1 -1
- package/dist/lib/index.d.ts +2 -3
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -3
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/parsing/argument-parser.d.ts +9 -12
- package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
- package/dist/lib/parsing/argument-parser.js +27 -45
- package/dist/lib/parsing/argument-parser.js.map +1 -1
- package/dist/lib/parsing/index.d.ts +2 -2
- package/dist/lib/parsing/index.d.ts.map +1 -1
- package/dist/lib/parsing/index.js +1 -1
- package/dist/lib/parsing/index.js.map +1 -1
- package/dist/lib/parsing/prompt-builder.d.ts.map +1 -1
- package/dist/lib/parsing/prompt-builder.js +31 -24
- package/dist/lib/parsing/prompt-builder.js.map +1 -1
- package/dist/lib/parsing/schemata.d.ts +7 -19
- package/dist/lib/parsing/schemata.d.ts.map +1 -1
- package/dist/lib/parsing/schemata.js +7 -14
- package/dist/lib/parsing/schemata.js.map +1 -1
- package/dist/lib/parsing/types.d.ts +1 -2
- package/dist/lib/parsing/types.d.ts.map +1 -1
- package/dist/lib/schemata/claim-citation.d.ts +11 -0
- package/dist/lib/schemata/claim-citation.d.ts.map +1 -0
- package/dist/lib/schemata/claim-citation.js +25 -0
- package/dist/lib/schemata/claim-citation.js.map +1 -0
- package/dist/lib/schemata/claim.d.ts +1 -0
- package/dist/lib/schemata/claim.d.ts.map +1 -1
- package/dist/lib/schemata/claim.js +3 -0
- package/dist/lib/schemata/claim.js.map +1 -1
- package/dist/lib/schemata/fork.d.ts +0 -11
- package/dist/lib/schemata/fork.d.ts.map +1 -1
- package/dist/lib/schemata/fork.js +0 -10
- package/dist/lib/schemata/fork.js.map +1 -1
- package/dist/lib/schemata/index.d.ts +1 -1
- package/dist/lib/schemata/index.d.ts.map +1 -1
- package/dist/lib/schemata/index.js +1 -1
- package/dist/lib/schemata/index.js.map +1 -1
- package/dist/lib/types/checksum.d.ts +3 -5
- package/dist/lib/types/checksum.d.ts.map +1 -1
- package/dist/lib/types/validation.d.ts +9 -7
- package/dist/lib/types/validation.d.ts.map +1 -1
- package/dist/lib/types/validation.js +10 -8
- package/dist/lib/types/validation.js.map +1 -1
- package/dist/lib/utils/lookup.d.ts +7 -15
- package/dist/lib/utils/lookup.d.ts.map +1 -1
- package/dist/lib/utils/lookup.js +8 -18
- package/dist/lib/utils/lookup.js.map +1 -1
- package/package.json +7 -4
- package/dist/cli/commands/sources.d.ts +0 -3
- package/dist/cli/commands/sources.d.ts.map +0 -1
- package/dist/cli/commands/sources.js +0 -103
- package/dist/cli/commands/sources.js.map +0 -1
- package/dist/extensions/ieee/source.d.ts.map +0 -1
- package/dist/extensions/ieee/source.js.map +0 -1
- package/dist/lib/core/claim-source-library.d.ts +0 -32
- package/dist/lib/core/claim-source-library.d.ts.map +0 -1
- package/dist/lib/core/claim-source-library.js +0 -193
- package/dist/lib/core/claim-source-library.js.map +0 -1
- package/dist/lib/core/source-library.d.ts +0 -23
- package/dist/lib/core/source-library.d.ts.map +0 -1
- package/dist/lib/core/source-library.js +0 -21
- package/dist/lib/core/source-library.js.map +0 -1
- package/dist/lib/schemata/source.d.ts +0 -18
- package/dist/lib/schemata/source.d.ts.map +0 -1
- package/dist/lib/schemata/source.js +0 -35
- package/dist/lib/schemata/source.js.map +0 -1
package/README.md
CHANGED
|
@@ -28,9 +28,8 @@ flowchart TD
|
|
|
28
28
|
Roles -.->|"conclusionPremiseId\n(supporting & constraint\nroles are derived)"| PM
|
|
29
29
|
|
|
30
30
|
subgraph Injected["Injected Libraries"]
|
|
31
|
-
CL["ClaimLibrary"]
|
|
32
|
-
|
|
33
|
-
CSL["ClaimSourceLibrary"]
|
|
31
|
+
CL["ClaimLibrary\n(normal + citation claims)"]
|
|
32
|
+
CCL["ClaimCitationLibrary"]
|
|
34
33
|
end
|
|
35
34
|
|
|
36
35
|
AE -.-> Injected
|
|
@@ -164,15 +163,35 @@ flowchart TD
|
|
|
164
163
|
|
|
165
164
|
### PropositCore
|
|
166
165
|
|
|
167
|
-
`PropositCore` is the recommended top-level entry point. It creates and wires together all
|
|
166
|
+
`PropositCore` is the recommended top-level entry point. It creates and wires together all four libraries and provides unified cross-library operations:
|
|
168
167
|
|
|
169
168
|
```typescript
|
|
170
169
|
import { PropositCore } from "@proposit/proposit-core"
|
|
171
170
|
|
|
172
171
|
const core = new PropositCore()
|
|
173
172
|
|
|
174
|
-
// Create a claim in the global claim library
|
|
175
|
-
const claim = core.claims.create({
|
|
173
|
+
// Create a normal claim in the global claim library
|
|
174
|
+
const claim = core.claims.create({
|
|
175
|
+
id: "claim-1",
|
|
176
|
+
type: "normal",
|
|
177
|
+
text: "All men are mortal",
|
|
178
|
+
})
|
|
179
|
+
|
|
180
|
+
// Create a citation claim (the v0.10.0 replacement for the former Source entity)
|
|
181
|
+
const citationClaim = core.claims.create({
|
|
182
|
+
id: "citation-1",
|
|
183
|
+
type: "citation",
|
|
184
|
+
text: "Aristotle, Categories, ~350 BCE",
|
|
185
|
+
})
|
|
186
|
+
|
|
187
|
+
// Cite the citation claim from the normal claim
|
|
188
|
+
core.claimCitations.add({
|
|
189
|
+
id: "edge-1",
|
|
190
|
+
citingClaimId: claim.id,
|
|
191
|
+
citingClaimVersion: claim.version,
|
|
192
|
+
sourceClaimId: citationClaim.id,
|
|
193
|
+
sourceClaimVersion: citationClaim.version,
|
|
194
|
+
})
|
|
176
195
|
|
|
177
196
|
// Create an argument engine — libraries are wired automatically
|
|
178
197
|
const engine = core.arguments.create({
|
|
@@ -182,7 +201,7 @@ const engine = core.arguments.create({
|
|
|
182
201
|
description: "",
|
|
183
202
|
})
|
|
184
203
|
|
|
185
|
-
// Fork the argument — clones claims
|
|
204
|
+
// Fork the argument — clones claims (including citation-typed ones) + citation edges, records provenance
|
|
186
205
|
const { engine: forked, remapTable } = core.forkArgument("arg-1", "arg-2")
|
|
187
206
|
|
|
188
207
|
// Diff with automatic fork-aware entity matching
|
|
@@ -193,19 +212,22 @@ const snapshot = core.snapshot()
|
|
|
193
212
|
const restored = PropositCore.fromSnapshot(snapshot)
|
|
194
213
|
```
|
|
195
214
|
|
|
196
|
-
`PropositCore` is designed for subclassing. All library fields (`claims`, `
|
|
215
|
+
`PropositCore` is designed for subclassing. All library fields (`claims`, `claimCitations`, `forks`, `arguments`) are public and readable. Pass pre-constructed library instances via `TPropositCoreOptions` to inject custom implementations.
|
|
197
216
|
|
|
198
217
|
### No application metadata
|
|
199
218
|
|
|
200
219
|
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.
|
|
201
220
|
|
|
202
|
-
###
|
|
221
|
+
### Claims and citations
|
|
222
|
+
|
|
223
|
+
Every claim in the unified `ClaimLibrary` carries an immutable `type: 'normal' | 'citation'` discriminator set at creation:
|
|
203
224
|
|
|
204
|
-
|
|
225
|
+
- **Normal claims** (`type: 'normal'`) are primary-reasoning propositions referenced by an argument's variables.
|
|
226
|
+
- **Citation claims** (`type: 'citation'`) represent external/cited content — papers, articles, URLs. They are the v0.10.0 unified replacement for the former separate `Source` entity. Application schemas (e.g. the IEEE extension) extend citation claims with structured reference data.
|
|
205
227
|
|
|
206
|
-
|
|
228
|
+
Citations between claims are managed by `ClaimCitationLibrary<TCitation>` — a standalone global class that stores directed edges in the global claim citation graph. Each citation pins both endpoints to specific claim versions (`citingClaimId@citingClaimVersion → sourceClaimId@sourceClaimVersion`). The source-side endpoint must reference a claim with `type: 'citation'`. Citations are immutable (create or delete, no update). `ClaimCitationLibrary` validates both endpoints, the source-side type, and global graph acyclicity on `add()`.
|
|
207
229
|
|
|
208
|
-
The `@proposit/proposit-core/extensions/ieee` subpath export provides `
|
|
230
|
+
The `@proposit/proposit-core/extensions/ieee` subpath export provides `IEEECitationClaimSchema` — an extended citation-claim type with IEEE reference schemas covering 33 reference types.
|
|
209
231
|
|
|
210
232
|
### Auto-variable creation
|
|
211
233
|
|
|
@@ -219,11 +241,11 @@ An argument can be **forked** via `PropositCore.forkArgument()` to create an ind
|
|
|
219
241
|
|
|
220
242
|
- Creates a new argument with a new ID (version 0)
|
|
221
243
|
- Assigns new UUIDs to all premises, expressions, and variables
|
|
222
|
-
-
|
|
223
|
-
- Creates fork records in all
|
|
244
|
+
- Walks the citation graph from the source argument's claim-bound variables and clones every reachable claim (both `'normal'` and `'citation'`-typed) plus the citation edges between them
|
|
245
|
+
- Creates fork records in all five `ForkLibrary` namespaces (arguments, premises, expressions, variables, claims)
|
|
224
246
|
- Remaps all internal references (expression parent chains, variable bindings, conclusion role, claim references)
|
|
225
247
|
- Registers the new engine in `ArgumentLibrary`
|
|
226
|
-
- Returns the new engine, a remap table, claim
|
|
248
|
+
- Returns the new engine, a remap table, a claim remap map (covering both normal and citation claims), and the argument fork record
|
|
227
249
|
|
|
228
250
|
The forked argument is fully independent — mutations don't affect the source. Fork-aware diffing is automatic via `PropositCore.diffArguments()`, which uses `ForkLibrary` records as entity matchers rather than ID-based pairing.
|
|
229
251
|
|
|
@@ -608,7 +630,7 @@ const johnEngine = core.arguments.create({
|
|
|
608
630
|
})
|
|
609
631
|
// ... populate with premises, variables, expressions ...
|
|
610
632
|
|
|
611
|
-
// Fork — clones claims
|
|
633
|
+
// Fork — clones claims (and citation claims) + citation edges, creates fork records, registers new engine
|
|
612
634
|
const { engine: richArg, remapTable } = core.forkArgument(
|
|
613
635
|
"john-arg-id",
|
|
614
636
|
"rich-arg-id"
|
|
@@ -739,6 +761,18 @@ The engine enforces structural invariants at two levels: **construction-time** (
|
|
|
739
761
|
| Same variable ID used with multiple symbols across premises | `ARGUMENT_VARIABLE_ID_SYMBOL_MISMATCH` |
|
|
740
762
|
| Same variable symbol used with multiple IDs across premises | `ARGUMENT_VARIABLE_SYMBOL_AMBIGUOUS` |
|
|
741
763
|
|
|
764
|
+
### Claims and citations — prevented at construction time
|
|
765
|
+
|
|
766
|
+
| Invalid construction | What happens / error code |
|
|
767
|
+
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
|
768
|
+
| Updating a claim's `type` field after creation | Throws — `CLAIM_TYPE_IMMUTABLE` |
|
|
769
|
+
| Restoring a pre-v0.10 snapshot whose claims lack the `type` field | Throws — `LEGACY_CLAIM_MISSING_TYPE` |
|
|
770
|
+
| Adding a citation whose `id` already exists | Throws — `CITATION_DUPLICATE_ID` |
|
|
771
|
+
| Adding a citation whose `citingClaimId@citingClaimVersion` is not in the lookup | Throws — `CITATION_CITING_REF_NOT_FOUND` |
|
|
772
|
+
| Adding a citation whose `sourceClaimId@sourceClaimVersion` is not in the lookup | Throws — `CITATION_SOURCE_REF_NOT_FOUND` |
|
|
773
|
+
| Source-side claim of a citation has `type !== 'citation'` | Throws — `CITATION_SOURCE_NOT_CITATION_TYPE` |
|
|
774
|
+
| Citation that would create a cycle in the global claim-citation graph | Throws — `CITATION_CYCLE_DETECTED` (ID-only — versions don't disambiguate) |
|
|
775
|
+
|
|
742
776
|
### Removal cascades
|
|
743
777
|
|
|
744
778
|
These are not errors — they're intentional structural maintenance:
|
|
@@ -822,16 +856,15 @@ proposit-core arguments delete [--all] [--confirm] <id> Delete an argument or
|
|
|
822
856
|
proposit-core arguments publish <id> Publish latest version, prepare new draft
|
|
823
857
|
proposit-core arguments parse [text] [options] Parse natural language into an argument via LLM
|
|
824
858
|
proposit-core arguments import <yaml_file> Import an argument from YAML
|
|
825
|
-
proposit-core claims list [--json] List all claims
|
|
859
|
+
proposit-core claims list [--json] List all claims (citation-typed claims tagged [citation])
|
|
826
860
|
proposit-core claims show <claim_id> [--json] Show all versions of a claim
|
|
827
|
-
proposit-core claims add [--title <t>] [--body <b>] Create a new claim
|
|
828
|
-
proposit-core claims update <claim_id> [--title <t>] [--body <b>] Update claim metadata
|
|
861
|
+
proposit-core claims add [--type <t>] [--title <t>] [--body <b>] Create a new claim ('normal' default; 'citation' for cited content)
|
|
862
|
+
proposit-core claims update <claim_id> [--title <t>] [--body <b>] Update claim metadata (type is immutable)
|
|
829
863
|
proposit-core claims freeze <claim_id> Freeze current version
|
|
830
|
-
proposit-core
|
|
831
|
-
proposit-core
|
|
832
|
-
proposit-core
|
|
833
|
-
proposit-core
|
|
834
|
-
proposit-core sources unlink <association_id> Remove a claim-source association
|
|
864
|
+
proposit-core citations list [--json] List all citation edges
|
|
865
|
+
proposit-core citations show <citation_id> [--json] Show a single citation
|
|
866
|
+
proposit-core citations add <citing_claim_id> <source_claim_id> Add a citation edge (source must be type=citation)
|
|
867
|
+
proposit-core citations unlink <citation_id> Remove a citation edge
|
|
835
868
|
```
|
|
836
869
|
|
|
837
870
|
By default `delete` removes only the latest version. Pass `--all` to remove the argument entirely. Both `delete` and `delete-unused` prompt for confirmation unless `--confirm` is supplied.
|
|
@@ -863,8 +896,8 @@ Renders the full argument with metadata. Output includes:
|
|
|
863
896
|
- **Argument header** — title and description
|
|
864
897
|
- **Premises** — one per line with formula display string and title (if present); conclusion marked with `*`
|
|
865
898
|
- **Variables** — symbol and bound claim title (or premise binding)
|
|
866
|
-
- **Claims** — ID, version, frozen status, title, and body
|
|
867
|
-
- **
|
|
899
|
+
- **Claims** — ID, version, frozen status, type (`normal` or `citation`), title, and body
|
|
900
|
+
- **Citations** — edges between claims (citing -> source), with both endpoints pinned to specific versions
|
|
868
901
|
|
|
869
902
|
Display strings use standard logical notation (¬ ∧ ∨ → ↔).
|
|
870
903
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/arguments.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/arguments.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkCnC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmN/D"}
|
|
@@ -6,8 +6,7 @@ import { importArgumentFromYaml } from "../import.js";
|
|
|
6
6
|
import { getVersionDir } from "../config.js";
|
|
7
7
|
import { hydratePropositCore, hydrateEngine, persistEngine, persistCore, } from "../engine.js";
|
|
8
8
|
import { ClaimLibrary } from "../../lib/core/claim-library.js";
|
|
9
|
-
import {
|
|
10
|
-
import { ClaimSourceLibrary } from "../../lib/core/claim-source-library.js";
|
|
9
|
+
import { ClaimCitationLibrary } from "../../lib/core/claim-citation-library.js";
|
|
11
10
|
import { errorExit, printJson, printLine, requireConfirmation, } from "../output.js";
|
|
12
11
|
import { copyVersionDir, deleteArgumentDir, deleteVersionDir, latestVersionNumber, listArgumentIds, listVersionNumbers, readArgumentMeta, readVersionMeta, writeArgumentMeta, writeVersionMeta, } from "../storage/arguments.js";
|
|
13
12
|
import { writeVariables } from "../storage/variables.js";
|
|
@@ -52,26 +51,19 @@ export function registerArgumentCommands(program) {
|
|
|
52
51
|
}
|
|
53
52
|
// Merge new libraries into existing global libraries
|
|
54
53
|
const existing = await hydratePropositCore();
|
|
55
|
-
const
|
|
54
|
+
const _mergedClaims = ClaimLibrary.fromSnapshot({
|
|
56
55
|
claims: [
|
|
57
56
|
...existing.claims.snapshot().claims,
|
|
58
57
|
...result.claimLibrary.snapshot().claims,
|
|
59
58
|
],
|
|
60
59
|
});
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
...existing.
|
|
64
|
-
...result.
|
|
60
|
+
const _mergedCitations = ClaimCitationLibrary.fromSnapshot({
|
|
61
|
+
claimCitations: [
|
|
62
|
+
...existing.claimCitations.snapshot().claimCitations,
|
|
63
|
+
...result.claimCitationLibrary.snapshot()
|
|
64
|
+
.claimCitations,
|
|
65
65
|
],
|
|
66
|
-
});
|
|
67
|
-
const _mergedAssocs = ClaimSourceLibrary.fromSnapshot({
|
|
68
|
-
claimSourceAssociations: [
|
|
69
|
-
...existing.claimSources.snapshot()
|
|
70
|
-
.claimSourceAssociations,
|
|
71
|
-
...result.claimSourceLibrary.snapshot()
|
|
72
|
-
.claimSourceAssociations,
|
|
73
|
-
],
|
|
74
|
-
}, mergedClaims, mergedSources);
|
|
66
|
+
}, _mergedClaims);
|
|
75
67
|
await persistEngine(result.engine);
|
|
76
68
|
await persistCore(existing);
|
|
77
69
|
printLine(result.engine.getArgument().id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../../src/cli/commands/arguments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EACH,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,WAAW,GACd,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../../src/cli/commands/arguments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EACH,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,WAAW,GACd,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAA;AAC/E,OAAO,EACH,SAAS,EACT,SAAS,EACT,SAAS,EACT,mBAAmB,GACtB,MAAM,cAAc,CAAA;AACrB,OAAO,EACH,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAA;IAEzE,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC;SACvC,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,WAAmB,EAAE,EAAE;QACjD,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;QACvB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;QAE5B,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;QACnD,MAAM,gBAAgB,CAAC,EAAE,EAAE;YACvB,OAAO,EAAE,CAAC;YACV,SAAS;YACT,SAAS,EAAE,KAAK;SACnB,CAAC,CAAA;QACF,MAAM,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/B,MAAM,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC3B,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAE1D,SAAS,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IAEN,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,OAAe,CAAA;QACnB,IAAI,CAAC;YACD,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClD,CAAC;QAAC,MAAM,CAAC;YACL,SAAS,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,MAAiD,CAAA;QACrD,IAAI,CAAC;YACD,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,SAAS,CACL,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACzD,CAAA;QACL,CAAC;QAED,qDAAqD;QACrD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAA;QAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC;YAC5C,MAAM,EAAE;gBACJ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM;gBACpC,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM;aAC3C;SACJ,CAAC,CAAA;QACF,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,YAAY,CACtD;YACI,cAAc,EAAE;gBACZ,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,cAAc;gBACpD,GAAG,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE;qBACpC,cAAc;aACtB;SACJ,EACD,aAAa,CAChB,CAAA;QAED,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAClC,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC3B,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEN,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAA;QACnC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACjB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAA;YACvC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAA;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAChD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QAC1B,CAAC,CAAC,CACL,CAAA;QACD,iCAAiC;QACjC,KAAK,CAAC,IAAI,CACN,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAChE,CAAA;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,SAAS,CACL,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5B,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa,EAAE,KAAK,CAAC,OAAO;gBAC5B,eAAe,EAAE,KAAK,CAAC,SAAS;gBAChC,eAAe,EAAE,KAAK,CAAC,SAAS;aACnC,CAAC,CAAC,CACN,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;gBAClC,SAAS,CACL,GAAG,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,aAAa,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,CAC7E,CAAA;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAA;IAEN,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;SAC/C,MAAM,CAAC,OAAO,EAAE,qBAAqB,CAAC;SACtC,MAAM,CACH,KAAK,EACD,UAAkB,EAClB,IAA0C,EAC5C,EAAE;QACA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,mBAAmB,CACrB,oBAAoB,UAAU,IAAI,CACrC,CAAA;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAA;QACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,SAAS,CAAC,aAAa,UAAU,cAAc,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAA;YACzB,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC5C,MAAM,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAC1C,OAAO,GAAG,CAAC,CAAA;QACf,CAAC;QAED,SAAS,CAAC,GAAG,OAAO,sBAAsB,CAAC,CAAA;IAC/C,CAAC,CACJ,CAAA;IAEL,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;QACjC,MAAM,CAAC,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;QAElD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,SAAS,CACL,WAAW,CAAC,iBAAiB,UAAU,yBAAyB,CACnE,CAAA;QACL,CAAC;QAED,gCAAgC;QAChC,MAAM,gBAAgB,CAAC,UAAU,EAAE;YAC/B,GAAG,KAAK;YACR,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI,IAAI,EAAE;SAC1B,CAAC,CAAA;QAEF,sBAAsB;QACtB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAClB,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QAEzC,+BAA+B;QAC/B,MAAM,gBAAgB,CAAC,UAAU,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,KAAK;SACnB,CAAC,CAAA;QAEF,uEAAuE;QACvE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CACzB,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,EAC/B,WAAW,CACd,CAAA;QACD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QACvD,MAAM,SAAS,GAA4B;YACvC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,KAAK;SACnB,CAAA;QACD,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAEnE,SAAS,CAAC,WAAW,CAAC,6BAA6B,IAAI,WAAW,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;IAEN,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,MAAM,mBAAmB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,MAAM,aAAa,CAC9B,UAAU,EACV,MAAM,mBAAmB,CAAC,UAAU,CAAC,EACrC,IAAI,CACP,CAAA;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAE/B,MAAM,aAAa,GAAG,UAAU,EAAE,CAAA;QAClC,IAAI,MAAM,CAAA;QACV,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,SAAS,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAA;QACvB,SAAS,CAAC,aAAa,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEN,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/citations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0F/D"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { hydratePropositCore, persistCore } from "../engine.js";
|
|
4
|
+
import { errorExit, printJson, printLine } from "../output.js";
|
|
5
|
+
export function registerCitationCommands(program) {
|
|
6
|
+
const citations = program
|
|
7
|
+
.command("citations")
|
|
8
|
+
.description("Manage global claim-citation library");
|
|
9
|
+
citations
|
|
10
|
+
.command("list")
|
|
11
|
+
.description("List all citations")
|
|
12
|
+
.option("--json", "Output as JSON")
|
|
13
|
+
.action(async (opts) => {
|
|
14
|
+
const core = await hydratePropositCore();
|
|
15
|
+
const all = core.claimCitations.getAll();
|
|
16
|
+
if (opts.json) {
|
|
17
|
+
printJson(all);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
for (const citation of all) {
|
|
21
|
+
printLine(`${citation.id} | ${citation.citingClaimId}@${citation.citingClaimVersion} -> ${citation.sourceClaimId}@${citation.sourceClaimVersion}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
citations
|
|
26
|
+
.command("show <citation_id>")
|
|
27
|
+
.description("Show a single citation")
|
|
28
|
+
.option("--json", "Output as JSON")
|
|
29
|
+
.action(async (citationId, opts) => {
|
|
30
|
+
const core = await hydratePropositCore();
|
|
31
|
+
const citation = core.claimCitations.get(citationId);
|
|
32
|
+
if (!citation) {
|
|
33
|
+
errorExit(`Citation "${citationId}" not found.`);
|
|
34
|
+
}
|
|
35
|
+
if (opts.json) {
|
|
36
|
+
printJson(citation);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
printLine(`id: ${citation.id}`);
|
|
40
|
+
printLine(`citingClaimId: ${citation.citingClaimId}`);
|
|
41
|
+
printLine(`citingClaimVersion: ${citation.citingClaimVersion}`);
|
|
42
|
+
printLine(`sourceClaimId: ${citation.sourceClaimId}`);
|
|
43
|
+
printLine(`sourceClaimVersion: ${citation.sourceClaimVersion}`);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
citations
|
|
47
|
+
.command("add <citing_claim_id> <source_claim_id>")
|
|
48
|
+
.description("Add a citation edge between two claims (source must be a citation-typed claim)")
|
|
49
|
+
.action(async (citingClaimId, sourceClaimId) => {
|
|
50
|
+
const core = await hydratePropositCore();
|
|
51
|
+
const citingClaim = core.claims.getCurrent(citingClaimId);
|
|
52
|
+
if (!citingClaim) {
|
|
53
|
+
errorExit(`Claim "${citingClaimId}" not found.`);
|
|
54
|
+
}
|
|
55
|
+
const sourceClaim = core.claims.getCurrent(sourceClaimId);
|
|
56
|
+
if (!sourceClaim) {
|
|
57
|
+
errorExit(`Claim "${sourceClaimId}" not found.`);
|
|
58
|
+
}
|
|
59
|
+
let citation;
|
|
60
|
+
try {
|
|
61
|
+
citation = core.claimCitations.add({
|
|
62
|
+
id: randomUUID(),
|
|
63
|
+
citingClaimId: citingClaim.id,
|
|
64
|
+
citingClaimVersion: citingClaim.version,
|
|
65
|
+
sourceClaimId: sourceClaim.id,
|
|
66
|
+
sourceClaimVersion: sourceClaim.version,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
errorExit(error instanceof Error ? error.message : String(error));
|
|
71
|
+
}
|
|
72
|
+
await persistCore(core);
|
|
73
|
+
printLine(citation.id);
|
|
74
|
+
});
|
|
75
|
+
citations
|
|
76
|
+
.command("unlink <citation_id>")
|
|
77
|
+
.description("Remove a citation edge")
|
|
78
|
+
.action(async (citationId) => {
|
|
79
|
+
const core = await hydratePropositCore();
|
|
80
|
+
const citation = core.claimCitations.get(citationId);
|
|
81
|
+
if (!citation) {
|
|
82
|
+
errorExit(`Citation "${citationId}" not found.`);
|
|
83
|
+
}
|
|
84
|
+
core.claimCitations.remove(citationId);
|
|
85
|
+
await persistCore(core);
|
|
86
|
+
printLine("success");
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=citations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"citations.js","sourceRoot":"","sources":["../../../src/cli/commands/citations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/claims.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/claims.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsJ5D"}
|
|
@@ -20,10 +20,11 @@ export function registerClaimCommands(program) {
|
|
|
20
20
|
for (const claim of all) {
|
|
21
21
|
const extras = claim;
|
|
22
22
|
const frozen = claim.frozen ? " [frozen]" : "";
|
|
23
|
+
const typeBadge = claim.type === "citation" ? " [citation]" : "";
|
|
23
24
|
const title = typeof extras.title === "string"
|
|
24
25
|
? ` | ${extras.title}`
|
|
25
26
|
: "";
|
|
26
|
-
printLine(`${claim.id}@${claim.version}${frozen}${title}`);
|
|
27
|
+
printLine(`${claim.id}@${claim.version}${frozen}${typeBadge}${title}`);
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
});
|
|
@@ -44,7 +45,8 @@ export function registerClaimCommands(program) {
|
|
|
44
45
|
for (const v of versions) {
|
|
45
46
|
const extras = v;
|
|
46
47
|
const frozen = v.frozen ? " [frozen]" : "";
|
|
47
|
-
|
|
48
|
+
const typeBadge = v.type === "citation" ? " [citation]" : "";
|
|
49
|
+
printLine(`v${v.version}${frozen}${typeBadge}`);
|
|
48
50
|
if (typeof extras.title === "string") {
|
|
49
51
|
printLine(` title: ${extras.title}`);
|
|
50
52
|
}
|
|
@@ -57,12 +59,18 @@ export function registerClaimCommands(program) {
|
|
|
57
59
|
claims
|
|
58
60
|
.command("add")
|
|
59
61
|
.description("Create a new claim")
|
|
62
|
+
.option("--type <type>", "Claim type: 'normal' or 'citation' (default: normal)", "normal")
|
|
60
63
|
.option("--title <title>", "Short title summarizing the claim")
|
|
61
64
|
.option("--body <body>", "Detailed description of the claim")
|
|
62
65
|
.action(async (opts) => {
|
|
66
|
+
const claimType = opts.type ?? "normal";
|
|
67
|
+
if (claimType !== "normal" && claimType !== "citation") {
|
|
68
|
+
errorExit(`Invalid --type value "${claimType}". Must be "normal" or "citation".`);
|
|
69
|
+
}
|
|
63
70
|
const core = await hydratePropositCore();
|
|
64
71
|
const claim = core.claims.create({
|
|
65
72
|
id: randomUUID(),
|
|
73
|
+
type: claimType,
|
|
66
74
|
...(opts.title !== undefined ? { title: opts.title } : {}),
|
|
67
75
|
...(opts.body !== undefined ? { body: opts.body } : {}),
|
|
68
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claims.js","sourceRoot":"","sources":["../../../src/cli/commands/claims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE9D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IAClD,MAAM,MAAM,GAAG,OAAO;SACjB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6BAA6B,CAAC,CAAA;IAE/C,MAAM;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,MAAM,mBAAmB,EAAE,CAAA;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,SAAS,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,KAAgC,CAAA;gBAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;gBAC9C,MAAM,KAAK,GACP,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;oBAC5B,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE;oBACtB,CAAC,CAAC,EAAE,CAAA;gBACZ,SAAS,
|
|
1
|
+
{"version":3,"file":"claims.js","sourceRoot":"","sources":["../../../src/cli/commands/claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA+CxC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAqKxD"}
|
|
@@ -3,8 +3,7 @@ import { BasicsArgumentParser, BasicsParsingSchema, } from "../../extensions/bas
|
|
|
3
3
|
import { hydratePropositCore, persistEngine, persistCore } from "../engine.js";
|
|
4
4
|
import { PropositCore } from "../../lib/core/proposit-core.js";
|
|
5
5
|
import { ClaimLibrary } from "../../lib/core/claim-library.js";
|
|
6
|
-
import {
|
|
7
|
-
import { ClaimSourceLibrary } from "../../lib/core/claim-source-library.js";
|
|
6
|
+
import { ClaimCitationLibrary } from "../../lib/core/claim-citation-library.js";
|
|
8
7
|
import { cliLog } from "../logging.js";
|
|
9
8
|
import { errorExit, printJson, printLine, printWarning } from "../output.js";
|
|
10
9
|
import { resolveApiKey, createLlmProvider } from "../llm/index.js";
|
|
@@ -142,24 +141,17 @@ export function registerParseCommand(args) {
|
|
|
142
141
|
...built.claimLibrary.snapshot().claims,
|
|
143
142
|
],
|
|
144
143
|
});
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
...existing.
|
|
148
|
-
|
|
144
|
+
const mergedCitations = ClaimCitationLibrary.fromSnapshot({
|
|
145
|
+
claimCitations: [
|
|
146
|
+
...existing.claimCitations.snapshot()
|
|
147
|
+
.claimCitations,
|
|
148
|
+
...built.claimCitationLibrary.snapshot()
|
|
149
|
+
.claimCitations,
|
|
149
150
|
],
|
|
150
|
-
});
|
|
151
|
-
const mergedAssocs = ClaimSourceLibrary.fromSnapshot({
|
|
152
|
-
claimSourceAssociations: [
|
|
153
|
-
...existing.claimSources.snapshot()
|
|
154
|
-
.claimSourceAssociations,
|
|
155
|
-
...built.claimSourceLibrary.snapshot()
|
|
156
|
-
.claimSourceAssociations,
|
|
157
|
-
],
|
|
158
|
-
}, mergedClaims, mergedSources);
|
|
151
|
+
}, mergedClaims);
|
|
159
152
|
const merged = new PropositCore({
|
|
160
153
|
claimLibrary: mergedClaims,
|
|
161
|
-
|
|
162
|
-
claimSourceLibrary: mergedAssocs,
|
|
154
|
+
claimCitationLibrary: mergedCitations,
|
|
163
155
|
forkLibrary: existing.forks,
|
|
164
156
|
});
|
|
165
157
|
// 11. Persist and output
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cli/commands/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,EACH,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cli/commands/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiBnC,wBAAgB,qBAAqB,CACjC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiBnC,wBAAgB,qBAAqB,CACjC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CAqJN"}
|
|
@@ -70,38 +70,64 @@ export function registerRenderCommand(versionedCmd, argumentId, version) {
|
|
|
70
70
|
printLine(` ${v.symbol}${binding}`);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
// Claims —
|
|
74
|
-
|
|
73
|
+
// Claims — those referenced by this argument's variables, plus
|
|
74
|
+
// any citation-typed claims reachable via citation edges.
|
|
75
|
+
// Citation-typed claims render inline with a [citation] badge.
|
|
76
|
+
const directlyReferencedClaims = variables
|
|
75
77
|
.map((v) => v)
|
|
76
78
|
.filter(isClaimBound)
|
|
77
79
|
.map((v) => core.claims.get(v.claimId, v.claimVersion))
|
|
78
80
|
.filter((c) => c !== undefined);
|
|
81
|
+
// Walk the citation graph from the directly referenced claims,
|
|
82
|
+
// collecting every reachable claim (and the citation edges
|
|
83
|
+
// between them) so the render output covers the full closure.
|
|
84
|
+
const claimByKey = new Map();
|
|
85
|
+
for (const claim of directlyReferencedClaims) {
|
|
86
|
+
claimByKey.set(`${claim.id}@${claim.version}`, claim);
|
|
87
|
+
}
|
|
88
|
+
const referencedCitations = [];
|
|
89
|
+
const seenCitationIds = new Set();
|
|
90
|
+
const frontier = directlyReferencedClaims.map((c) => c.id);
|
|
91
|
+
const visitedClaimIds = new Set(frontier);
|
|
92
|
+
while (frontier.length > 0) {
|
|
93
|
+
const claimId = frontier.pop();
|
|
94
|
+
const outgoing = core.claimCitations.getCitationsForCitingClaim(claimId);
|
|
95
|
+
for (const citation of outgoing) {
|
|
96
|
+
if (seenCitationIds.has(citation.id))
|
|
97
|
+
continue;
|
|
98
|
+
seenCitationIds.add(citation.id);
|
|
99
|
+
referencedCitations.push(citation);
|
|
100
|
+
const sourceClaim = core.claims.get(citation.sourceClaimId, citation.sourceClaimVersion);
|
|
101
|
+
if (sourceClaim) {
|
|
102
|
+
const key = `${sourceClaim.id}@${sourceClaim.version}`;
|
|
103
|
+
if (!claimByKey.has(key)) {
|
|
104
|
+
claimByKey.set(key, sourceClaim);
|
|
105
|
+
}
|
|
106
|
+
if (!visitedClaimIds.has(sourceClaim.id)) {
|
|
107
|
+
visitedClaimIds.add(sourceClaim.id);
|
|
108
|
+
frontier.push(sourceClaim.id);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const referencedClaims = Array.from(claimByKey.values());
|
|
79
114
|
if (referencedClaims.length > 0) {
|
|
80
115
|
printLine("");
|
|
81
116
|
printLine("Claims:");
|
|
82
117
|
for (const claim of referencedClaims) {
|
|
83
118
|
const extras = claim;
|
|
84
119
|
const frozen = claim.frozen ? " [frozen]" : "";
|
|
120
|
+
const typeBadge = claim.type === "citation" ? " [citation]" : "";
|
|
85
121
|
const meta = extrasString(extras, ["title", "body"]);
|
|
86
|
-
printLine(` ${claim.id}@${claim.version}${frozen}${meta}`);
|
|
122
|
+
printLine(` ${claim.id}@${claim.version}${frozen}${typeBadge}${meta}`);
|
|
87
123
|
}
|
|
88
124
|
}
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
const allAssocs = core.claimSources.getAll();
|
|
92
|
-
const referencedSourceKeys = new Set(allAssocs
|
|
93
|
-
.filter((a) => referencedClaimKeys.has(`${a.claimId}@${a.claimVersion}`))
|
|
94
|
-
.map((a) => `${a.sourceId}@${a.sourceVersion}`));
|
|
95
|
-
const referencedSources = core.sources
|
|
96
|
-
.getAll()
|
|
97
|
-
.filter((s) => referencedSourceKeys.has(`${s.id}@${s.version}`));
|
|
98
|
-
if (referencedSources.length > 0) {
|
|
125
|
+
// Citations — edges between claims (citing -> source).
|
|
126
|
+
if (referencedCitations.length > 0) {
|
|
99
127
|
printLine("");
|
|
100
|
-
printLine("
|
|
101
|
-
for (const
|
|
102
|
-
|
|
103
|
-
const meta = extrasString(extras, ["text"]);
|
|
104
|
-
printLine(` ${source.id}@${source.version}${meta}`);
|
|
128
|
+
printLine("Citations:");
|
|
129
|
+
for (const citation of referencedCitations) {
|
|
130
|
+
printLine(` ${citation.id} | ${citation.citingClaimId}@${citation.citingClaimVersion} -> ${citation.sourceClaimId}@${citation.sourceClaimVersion}`);
|
|
105
131
|
}
|
|
106
132
|
}
|
|
107
133
|
});
|