@proposit/proposit-core 0.11.2 → 0.12.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 +119 -57
- package/dist/cli/commands/arguments.d.ts.map +1 -1
- package/dist/cli/commands/arguments.js +13 -16
- package/dist/cli/commands/arguments.js.map +1 -1
- package/dist/cli/commands/axioms.d.ts +3 -0
- package/dist/cli/commands/axioms.d.ts.map +1 -0
- package/dist/cli/commands/axioms.js +91 -0
- package/dist/cli/commands/axioms.js.map +1 -0
- package/dist/cli/commands/citations.d.ts.map +1 -1
- package/dist/cli/commands/citations.js +27 -25
- package/dist/cli/commands/citations.js.map +1 -1
- package/dist/cli/commands/claims.d.ts.map +1 -1
- package/dist/cli/commands/claims.js +35 -5
- 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 +3 -4
- package/dist/cli/commands/parse.js.map +1 -1
- package/dist/cli/commands/premises.d.ts.map +1 -1
- package/dist/cli/commands/premises.js +8 -7
- package/dist/cli/commands/premises.js.map +1 -1
- package/dist/cli/commands/render.d.ts.map +1 -1
- package/dist/cli/commands/render.js +43 -18
- package/dist/cli/commands/render.js.map +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +11 -4
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +27 -3
- package/dist/cli/import.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 +30 -0
- package/dist/cli/schemata.d.ts.map +1 -1
- package/dist/cli/schemata.js +37 -0
- package/dist/cli/schemata.js.map +1 -1
- package/dist/cli/storage/libraries.d.ts +7 -2
- package/dist/cli/storage/libraries.d.ts.map +1 -1
- package/dist/cli/storage/libraries.js +25 -6
- package/dist/cli/storage/libraries.js.map +1 -1
- package/dist/cli/storage/migrate-v0.10.js +3 -3
- package/dist/cli/storage/migrate-v0.10.js.map +1 -1
- package/dist/cli/storage/migrate-v0.12.d.ts +24 -0
- package/dist/cli/storage/migrate-v0.12.d.ts.map +1 -0
- package/dist/cli/storage/migrate-v0.12.js +148 -0
- package/dist/cli/storage/migrate-v0.12.js.map +1 -0
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/extensions/basics/schemata.d.ts +1 -1
- package/dist/extensions/ieee/citation-claim.d.ts +1 -1
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +13 -4
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +28 -7
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +83 -10
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/argument-library.d.ts +11 -13
- package/dist/lib/core/argument-library.d.ts.map +1 -1
- package/dist/lib/core/argument-library.js +7 -23
- package/dist/lib/core/argument-library.js.map +1 -1
- package/dist/lib/core/claim-axiom-library.d.ts +38 -0
- package/dist/lib/core/claim-axiom-library.d.ts.map +1 -0
- package/dist/lib/core/claim-axiom-library.js +243 -0
- package/dist/lib/core/claim-axiom-library.js.map +1 -0
- package/dist/lib/core/claim-citation-library.d.ts +11 -12
- package/dist/lib/core/claim-citation-library.d.ts.map +1 -1
- package/dist/lib/core/claim-citation-library.js +119 -108
- package/dist/lib/core/claim-citation-library.js.map +1 -1
- package/dist/lib/core/claim-library.d.ts +1 -1
- package/dist/lib/core/evaluation/argument-evaluation.d.ts +13 -0
- package/dist/lib/core/evaluation/argument-evaluation.d.ts.map +1 -1
- package/dist/lib/core/evaluation/argument-evaluation.js +25 -1
- package/dist/lib/core/evaluation/argument-evaluation.js.map +1 -1
- package/dist/lib/core/fork.d.ts +4 -6
- package/dist/lib/core/fork.d.ts.map +1 -1
- package/dist/lib/core/fork.js +3 -8
- 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 +65 -60
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/managed-derivation-premise-engine.d.ts +34 -18
- package/dist/lib/core/managed-derivation-premise-engine.d.ts.map +1 -1
- package/dist/lib/core/managed-derivation-premise-engine.js +76 -39
- package/dist/lib/core/managed-derivation-premise-engine.js.map +1 -1
- package/dist/lib/core/proposit-core.d.ts +19 -14
- package/dist/lib/core/proposit-core.d.ts.map +1 -1
- package/dist/lib/core/proposit-core.js +95 -39
- package/dist/lib/core/proposit-core.js.map +1 -1
- package/dist/lib/index.d.ts +2 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/parsing/argument-parser.d.ts +2 -2
- package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
- package/dist/lib/parsing/argument-parser.js +6 -6
- package/dist/lib/parsing/argument-parser.js.map +1 -1
- package/dist/lib/parsing/prompt-builder.d.ts.map +1 -1
- package/dist/lib/parsing/prompt-builder.js +7 -5
- package/dist/lib/parsing/prompt-builder.js.map +1 -1
- package/dist/lib/parsing/schemata.d.ts +4 -4
- package/dist/lib/parsing/schemata.d.ts.map +1 -1
- package/dist/lib/parsing/schemata.js +1 -0
- package/dist/lib/parsing/schemata.js.map +1 -1
- package/dist/lib/schemata/claim-axiom.d.ts +11 -0
- package/dist/lib/schemata/claim-axiom.d.ts.map +1 -0
- package/dist/lib/schemata/claim-axiom.js +9 -0
- package/dist/lib/schemata/claim-axiom.js.map +1 -0
- package/dist/lib/schemata/claim-citation.d.ts +4 -4
- package/dist/lib/schemata/claim-citation.d.ts.map +1 -1
- package/dist/lib/schemata/claim-citation.js +3 -19
- package/dist/lib/schemata/claim-citation.js.map +1 -1
- package/dist/lib/schemata/claim-connection.d.ts +11 -0
- package/dist/lib/schemata/claim-connection.d.ts.map +1 -0
- package/dist/lib/schemata/claim-connection.js +25 -0
- package/dist/lib/schemata/claim-connection.js.map +1 -0
- package/dist/lib/schemata/claim.d.ts +1 -1
- package/dist/lib/schemata/claim.d.ts.map +1 -1
- package/dist/lib/schemata/claim.js +6 -2
- package/dist/lib/schemata/claim.js.map +1 -1
- package/dist/lib/schemata/import.d.ts +2 -2
- package/dist/lib/schemata/import.d.ts.map +1 -1
- package/dist/lib/schemata/import.js +5 -1
- package/dist/lib/schemata/import.js.map +1 -1
- package/dist/lib/schemata/index.d.ts +2 -0
- package/dist/lib/schemata/index.d.ts.map +1 -1
- package/dist/lib/schemata/index.js +2 -0
- package/dist/lib/schemata/index.js.map +1 -1
- package/dist/lib/types/checksum.d.ts +3 -1
- package/dist/lib/types/checksum.d.ts.map +1 -1
- package/dist/lib/types/evaluation.d.ts +12 -0
- package/dist/lib/types/evaluation.d.ts.map +1 -1
- package/dist/lib/types/validation.d.ts +15 -4
- package/dist/lib/types/validation.d.ts.map +1 -1
- package/dist/lib/types/validation.js +17 -3
- package/dist/lib/types/validation.js.map +1 -1
- package/dist/lib/utils/lookup.d.ts +10 -4
- package/dist/lib/utils/lookup.d.ts.map +1 -1
- package/dist/lib/utils/lookup.js +13 -7
- package/dist/lib/utils/lookup.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argument-library.d.ts","sourceRoot":"","sources":["../../../src/lib/core/argument-library.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"argument-library.d.ts","sourceRoot":"","sources":["../../../src/lib/core/argument-library.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA;AAClF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAExE,MAAM,MAAM,yBAAyB,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU,IACxE;IACI,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;CACrC,CAAA;AAEL;;;GAGG;AACH,qBAAa,eAAe,CACxB,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,EACpE,MAAM,SAAS,UAAU,GAAG,UAAU;IAEtC,OAAO,CAAC,OAAO,CAGd;IACD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,OAAO,CAAC,CAAqB;gBAGjC,SAAS,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAC5C,OAAO,CAAC,EAAE,mBAAmB;IAOjC;;;;;;;OAOG;IACI,MAAM,CACT,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAClC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;IAetD;;;;;;OAMG;IACI,QAAQ,CACX,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAC5D,IAAI;IAQP;;;;;;OAMG;IACI,GAAG,CACN,UAAU,EAAE,MAAM,GACnB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS;IAIlE;;;;OAIG;IACI,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;IAItE;;;;;;OAMG;IACI,MAAM,CACT,UAAU,EAAE,MAAM,GACnB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;IAWtD;;;;OAIG;IACI,QAAQ,IAAI,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;IAQxE;;;;OAIG;IACI,QAAQ,IAAI,0BAA0B;IAS7C;;;;;;;;OAQG;WACW,YAAY,CACtB,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GACtC,4BAA4B,EAChC,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,EACpE,MAAM,SAAS,UAAU,GAAG,UAAU,EAEtC,QAAQ,EAAE,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAC/D,SAAS,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAC5C,OAAO,CAAC,EAAE,mBAAmB,GAC9B,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;CAuB1D"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ArgumentEngine } from "./argument-engine.js";
|
|
2
2
|
import { ClaimLibrary } from "./claim-library.js";
|
|
3
|
-
import { ClaimCitationLibrary } from "./claim-citation-library.js";
|
|
4
3
|
/**
|
|
5
4
|
* Engine registry with lifecycle management. Stores `ArgumentEngine` instances
|
|
6
5
|
* keyed by argument ID.
|
|
@@ -22,16 +21,11 @@ export class ArgumentLibrary {
|
|
|
22
21
|
* @returns The newly created engine.
|
|
23
22
|
* @throws If an engine with the same argument ID already exists.
|
|
24
23
|
*/
|
|
25
|
-
create(argument
|
|
26
|
-
// TODO Phase 7: drop TSource/TAssoc generics from ArgumentEngine.
|
|
27
|
-
) {
|
|
24
|
+
create(argument) {
|
|
28
25
|
if (this.engines.has(argument.id)) {
|
|
29
26
|
throw new Error(`ArgumentLibrary: argument "${argument.id}" already exists.`);
|
|
30
27
|
}
|
|
31
|
-
|
|
32
|
-
// (argument, claimLibrary, claimCitationLibrary, options) once its
|
|
33
|
-
// generics are reduced to drop TSource/TAssoc.
|
|
34
|
-
const engine = new ArgumentEngine(argument, this.libraries.claimLibrary, this.libraries.claimCitationLibrary, this.options);
|
|
28
|
+
const engine = new ArgumentEngine(argument, this.libraries.claimLibrary, this.options);
|
|
35
29
|
this.engines.set(argument.id, engine);
|
|
36
30
|
return engine;
|
|
37
31
|
}
|
|
@@ -42,9 +36,7 @@ export class ArgumentLibrary {
|
|
|
42
36
|
* @param engine - The engine to register.
|
|
43
37
|
* @throws If an engine with the same argument ID already exists.
|
|
44
38
|
*/
|
|
45
|
-
register(
|
|
46
|
-
// TODO Phase 7: drop TSource/TAssoc generics from ArgumentEngine.
|
|
47
|
-
engine) {
|
|
39
|
+
register(engine) {
|
|
48
40
|
const id = engine.getArgument().id;
|
|
49
41
|
if (this.engines.has(id)) {
|
|
50
42
|
throw new Error(`ArgumentLibrary: argument "${id}" already exists.`);
|
|
@@ -58,9 +50,7 @@ export class ArgumentLibrary {
|
|
|
58
50
|
* @param argumentId - The argument ID to look up.
|
|
59
51
|
* @returns The engine, or `undefined`.
|
|
60
52
|
*/
|
|
61
|
-
get(argumentId
|
|
62
|
-
// TODO Phase 7: drop TSource/TAssoc generics from ArgumentEngine.
|
|
63
|
-
) {
|
|
53
|
+
get(argumentId) {
|
|
64
54
|
return this.engines.get(argumentId);
|
|
65
55
|
}
|
|
66
56
|
/**
|
|
@@ -68,7 +58,6 @@ export class ArgumentLibrary {
|
|
|
68
58
|
*
|
|
69
59
|
* @returns An array of all managed engines.
|
|
70
60
|
*/
|
|
71
|
-
// TODO Phase 7: drop TSource/TAssoc generics from ArgumentEngine.
|
|
72
61
|
getAll() {
|
|
73
62
|
return Array.from(this.engines.values());
|
|
74
63
|
}
|
|
@@ -79,9 +68,7 @@ export class ArgumentLibrary {
|
|
|
79
68
|
* @returns The removed engine.
|
|
80
69
|
* @throws If no engine with the given ID exists.
|
|
81
70
|
*/
|
|
82
|
-
remove(argumentId
|
|
83
|
-
// TODO Phase 7: drop TSource/TAssoc generics from ArgumentEngine.
|
|
84
|
-
) {
|
|
71
|
+
remove(argumentId) {
|
|
85
72
|
const engine = this.engines.get(argumentId);
|
|
86
73
|
if (engine === undefined) {
|
|
87
74
|
throw new Error(`ArgumentLibrary: argument "${argumentId}" not found.`);
|
|
@@ -117,17 +104,14 @@ export class ArgumentLibrary {
|
|
|
117
104
|
* `ArgumentEngine.fromSnapshot()` for each engine snapshot.
|
|
118
105
|
*
|
|
119
106
|
* @param snapshot - The serialized library snapshot.
|
|
120
|
-
* @param libraries - The shared library instances (claim
|
|
107
|
+
* @param libraries - The shared library instances (claim).
|
|
121
108
|
* @param options - Optional engine construction options.
|
|
122
109
|
* @returns A fully restored `ArgumentLibrary`.
|
|
123
110
|
*/
|
|
124
111
|
static fromSnapshot(snapshot, libraries, options) {
|
|
125
112
|
const lib = new ArgumentLibrary(libraries, options);
|
|
126
113
|
for (const engineSnap of snapshot.arguments) {
|
|
127
|
-
|
|
128
|
-
// (snapshot, claimLibrary, claimCitationLibrary, ...) once its
|
|
129
|
-
// generics are reduced to drop TSource/TAssoc.
|
|
130
|
-
const engine = ArgumentEngine.fromSnapshot(engineSnap, libraries.claimLibrary, libraries.claimCitationLibrary, undefined, "ignore", options?.generateId);
|
|
114
|
+
const engine = ArgumentEngine.fromSnapshot(engineSnap, libraries.claimLibrary, undefined, "ignore", options?.generateId);
|
|
131
115
|
lib.engines.set(engine.getArgument().id, engine);
|
|
132
116
|
}
|
|
133
117
|
return lib;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argument-library.js","sourceRoot":"","sources":["../../../src/lib/core/argument-library.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"argument-library.js","sourceRoot":"","sources":["../../../src/lib/core/argument-library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { TCoreClaimAxiom } from "../schemata/claim-axiom.js";
|
|
2
|
+
import type { TCoreChecksumConfig } from "../types/checksum.js";
|
|
3
|
+
import type { TClaimLookup, TClaimConnectionLibraryManagement, TClaimConnectionLibrarySnapshot } from "./interfaces/library.interfaces.js";
|
|
4
|
+
import type { TInvariantValidationResult } from "../types/validation.js";
|
|
5
|
+
/**
|
|
6
|
+
* Manages axiom-invocation edges between claims. Each connection goes from a
|
|
7
|
+
* dependent `claimId` (which must be a `'normal'` claim) to a supporting
|
|
8
|
+
* `supportingClaimId` (which must be an `'axiomatic'` claim).
|
|
9
|
+
*
|
|
10
|
+
* Cycle detection is omitted because axiomatic claims cannot appear on the
|
|
11
|
+
* supported (`claimId`) side — `AXIOM_CLAIM_NOT_NORMAL_TYPE` blocks that —
|
|
12
|
+
* so cycles are structurally impossible.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ClaimAxiomLibrary<TConnection extends TCoreClaimAxiom = TCoreClaimAxiom> implements TClaimConnectionLibraryManagement<TConnection> {
|
|
15
|
+
private axioms;
|
|
16
|
+
private claimToConnections;
|
|
17
|
+
private claimLookup;
|
|
18
|
+
private checksumConfig?;
|
|
19
|
+
constructor(claimLookup: TClaimLookup, options?: {
|
|
20
|
+
checksumConfig?: TCoreChecksumConfig;
|
|
21
|
+
});
|
|
22
|
+
private restoreFromSnapshot;
|
|
23
|
+
private withValidation;
|
|
24
|
+
add(axiom: Omit<TConnection, "checksum">): TConnection;
|
|
25
|
+
remove(id: string): TConnection;
|
|
26
|
+
getConnectionsForClaim(claimId: string): TConnection[];
|
|
27
|
+
get(id: string): TConnection | undefined;
|
|
28
|
+
getAll(): TConnection[];
|
|
29
|
+
filter(predicate: (c: TConnection) => boolean): TConnection[];
|
|
30
|
+
snapshot(): TClaimConnectionLibrarySnapshot<TConnection>;
|
|
31
|
+
/** Restores a claim-axiom library from a snapshot, re-indexing all axioms. */
|
|
32
|
+
static fromSnapshot<TConnection extends TCoreClaimAxiom = TCoreClaimAxiom>(snapshot: TClaimConnectionLibrarySnapshot<TConnection>, claimLookup: TClaimLookup, options?: {
|
|
33
|
+
checksumConfig?: TCoreChecksumConfig;
|
|
34
|
+
}): ClaimAxiomLibrary<TConnection>;
|
|
35
|
+
validate(): TInvariantValidationResult;
|
|
36
|
+
private computeChecksum;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=claim-axiom-library.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-axiom-library.d.ts","sourceRoot":"","sources":["../../../src/lib/core/claim-axiom-library.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAG/D,OAAO,KAAK,EACR,YAAY,EACZ,iCAAiC,EACjC,+BAA+B,EAClC,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,EACR,0BAA0B,EAE7B,MAAM,wBAAwB,CAAA;AAY/B;;;;;;;;GAQG;AACH,qBAAa,iBAAiB,CAC1B,WAAW,SAAS,eAAe,GAAG,eAAe,CACvD,YAAW,iCAAiC,CAAC,WAAW,CAAC;IACvD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAC,CAAqB;gBAGxC,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,mBAAmB,CAAA;KAAE;IAQtD,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,cAAc;IAkBf,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,WAAW;IA+EtD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW;IAyB/B,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IAQtD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIxC,MAAM,IAAI,WAAW,EAAE;IAIvB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,OAAO,GAAG,WAAW,EAAE;IAI7D,QAAQ,IAAI,+BAA+B,CAAC,WAAW,CAAC;IAI/D,8EAA8E;WAChE,YAAY,CACtB,WAAW,SAAS,eAAe,GAAG,eAAe,EAErD,QAAQ,EAAE,+BAA+B,CAAC,WAAW,CAAC,EACtD,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,mBAAmB,CAAA;KAAE,GACnD,iBAAiB,CAAC,WAAW,CAAC;IAe1B,QAAQ,IAAI,0BAA0B;IAuE7C,OAAO,CAAC,eAAe;CAU1B"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { Value } from "typebox/value";
|
|
2
|
+
import { CoreClaimAxiomSchema } from "../schemata/claim-axiom.js";
|
|
3
|
+
import { DEFAULT_CHECKSUM_CONFIG } from "../consts.js";
|
|
4
|
+
import { entityChecksum } from "./checksum.js";
|
|
5
|
+
import { AXIOM_SCHEMA_INVALID, AXIOM_DUPLICATE_ID, AXIOM_NOT_FOUND, AXIOM_CLAIM_REF_NOT_FOUND, AXIOM_SUPPORTING_REF_NOT_FOUND, AXIOM_SUPPORTING_NOT_AXIOMATIC_TYPE, AXIOM_CLAIM_NOT_NORMAL_TYPE, } from "../types/validation.js";
|
|
6
|
+
import { InvariantViolationError } from "./invariant-violation-error.js";
|
|
7
|
+
/**
|
|
8
|
+
* Manages axiom-invocation edges between claims. Each connection goes from a
|
|
9
|
+
* dependent `claimId` (which must be a `'normal'` claim) to a supporting
|
|
10
|
+
* `supportingClaimId` (which must be an `'axiomatic'` claim).
|
|
11
|
+
*
|
|
12
|
+
* Cycle detection is omitted because axiomatic claims cannot appear on the
|
|
13
|
+
* supported (`claimId`) side — `AXIOM_CLAIM_NOT_NORMAL_TYPE` blocks that —
|
|
14
|
+
* so cycles are structurally impossible.
|
|
15
|
+
*/
|
|
16
|
+
export class ClaimAxiomLibrary {
|
|
17
|
+
axioms;
|
|
18
|
+
claimToConnections;
|
|
19
|
+
claimLookup;
|
|
20
|
+
checksumConfig;
|
|
21
|
+
constructor(claimLookup, options) {
|
|
22
|
+
this.axioms = new Map();
|
|
23
|
+
this.claimToConnections = new Map();
|
|
24
|
+
this.claimLookup = claimLookup;
|
|
25
|
+
this.checksumConfig = options?.checksumConfig;
|
|
26
|
+
}
|
|
27
|
+
restoreFromSnapshot(snap) {
|
|
28
|
+
this.axioms = new Map();
|
|
29
|
+
this.claimToConnections = new Map();
|
|
30
|
+
for (const axiom of snap.connections) {
|
|
31
|
+
this.axioms.set(axiom.id, axiom);
|
|
32
|
+
}
|
|
33
|
+
for (const [id, axiom] of this.axioms) {
|
|
34
|
+
const claimKey = axiom.claimId;
|
|
35
|
+
if (!this.claimToConnections.has(claimKey)) {
|
|
36
|
+
this.claimToConnections.set(claimKey, new Set());
|
|
37
|
+
}
|
|
38
|
+
this.claimToConnections.get(claimKey).add(id);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
withValidation(fn) {
|
|
42
|
+
const snap = this.snapshot();
|
|
43
|
+
try {
|
|
44
|
+
const result = fn();
|
|
45
|
+
const validation = this.validate();
|
|
46
|
+
if (!validation.ok) {
|
|
47
|
+
this.restoreFromSnapshot(snap);
|
|
48
|
+
throw new InvariantViolationError(validation.violations);
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
if (!(e instanceof InvariantViolationError)) {
|
|
54
|
+
this.restoreFromSnapshot(snap);
|
|
55
|
+
}
|
|
56
|
+
throw e;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
add(axiom) {
|
|
60
|
+
return this.withValidation(() => {
|
|
61
|
+
if (this.axioms.has(axiom.id)) {
|
|
62
|
+
throw new InvariantViolationError([
|
|
63
|
+
{
|
|
64
|
+
code: AXIOM_DUPLICATE_ID,
|
|
65
|
+
message: `${AXIOM_DUPLICATE_ID}: axiom with id ${axiom.id} already exists`,
|
|
66
|
+
entityType: "axiom",
|
|
67
|
+
entityId: axiom.id,
|
|
68
|
+
},
|
|
69
|
+
]);
|
|
70
|
+
}
|
|
71
|
+
const dependentClaim = this.claimLookup.get(axiom.claimId, axiom.claimVersion);
|
|
72
|
+
if (!dependentClaim) {
|
|
73
|
+
throw new InvariantViolationError([
|
|
74
|
+
{
|
|
75
|
+
code: AXIOM_CLAIM_REF_NOT_FOUND,
|
|
76
|
+
message: `${AXIOM_CLAIM_REF_NOT_FOUND}: axiom references unknown dependent claim ${axiom.claimId}@${axiom.claimVersion}`,
|
|
77
|
+
entityType: "axiom",
|
|
78
|
+
entityId: axiom.id,
|
|
79
|
+
},
|
|
80
|
+
]);
|
|
81
|
+
}
|
|
82
|
+
if (dependentClaim.type !== "normal") {
|
|
83
|
+
throw new InvariantViolationError([
|
|
84
|
+
{
|
|
85
|
+
code: AXIOM_CLAIM_NOT_NORMAL_TYPE,
|
|
86
|
+
message: `${AXIOM_CLAIM_NOT_NORMAL_TYPE}: axiom dependent claim ${axiom.claimId} has type='${dependentClaim.type}'; only 'normal' is permitted on the dependent side`,
|
|
87
|
+
entityType: "axiom",
|
|
88
|
+
entityId: axiom.id,
|
|
89
|
+
},
|
|
90
|
+
]);
|
|
91
|
+
}
|
|
92
|
+
const supportingClaim = this.claimLookup.get(axiom.supportingClaimId, axiom.supportingClaimVersion);
|
|
93
|
+
if (!supportingClaim) {
|
|
94
|
+
throw new InvariantViolationError([
|
|
95
|
+
{
|
|
96
|
+
code: AXIOM_SUPPORTING_REF_NOT_FOUND,
|
|
97
|
+
message: `${AXIOM_SUPPORTING_REF_NOT_FOUND}: axiom references unknown supporting claim ${axiom.supportingClaimId}@${axiom.supportingClaimVersion}`,
|
|
98
|
+
entityType: "axiom",
|
|
99
|
+
entityId: axiom.id,
|
|
100
|
+
},
|
|
101
|
+
]);
|
|
102
|
+
}
|
|
103
|
+
if (supportingClaim.type !== "axiomatic") {
|
|
104
|
+
throw new InvariantViolationError([
|
|
105
|
+
{
|
|
106
|
+
code: AXIOM_SUPPORTING_NOT_AXIOMATIC_TYPE,
|
|
107
|
+
message: `${AXIOM_SUPPORTING_NOT_AXIOMATIC_TYPE}: axiom supporting claim ${axiom.supportingClaimId} has type='${supportingClaim.type}'; only 'axiomatic' is permitted on the supporting side`,
|
|
108
|
+
entityType: "axiom",
|
|
109
|
+
entityId: axiom.id,
|
|
110
|
+
},
|
|
111
|
+
]);
|
|
112
|
+
}
|
|
113
|
+
const full = { ...axiom, checksum: "" };
|
|
114
|
+
full.checksum = this.computeChecksum(full);
|
|
115
|
+
this.axioms.set(full.id, full);
|
|
116
|
+
let claimSet = this.claimToConnections.get(full.claimId);
|
|
117
|
+
if (!claimSet) {
|
|
118
|
+
claimSet = new Set();
|
|
119
|
+
this.claimToConnections.set(full.claimId, claimSet);
|
|
120
|
+
}
|
|
121
|
+
claimSet.add(full.id);
|
|
122
|
+
return full;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
remove(id) {
|
|
126
|
+
return this.withValidation(() => {
|
|
127
|
+
const axiom = this.axioms.get(id);
|
|
128
|
+
if (!axiom) {
|
|
129
|
+
throw new InvariantViolationError([
|
|
130
|
+
{
|
|
131
|
+
code: AXIOM_NOT_FOUND,
|
|
132
|
+
message: `${AXIOM_NOT_FOUND}: axiom with id "${id}" not found`,
|
|
133
|
+
entityType: "axiom",
|
|
134
|
+
entityId: id,
|
|
135
|
+
},
|
|
136
|
+
]);
|
|
137
|
+
}
|
|
138
|
+
this.axioms.delete(id);
|
|
139
|
+
const claimSet = this.claimToConnections.get(axiom.claimId);
|
|
140
|
+
if (claimSet) {
|
|
141
|
+
claimSet.delete(id);
|
|
142
|
+
}
|
|
143
|
+
return axiom;
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
getConnectionsForClaim(claimId) {
|
|
147
|
+
const ids = this.claimToConnections.get(claimId);
|
|
148
|
+
if (!ids)
|
|
149
|
+
return [];
|
|
150
|
+
return Array.from(ids)
|
|
151
|
+
.map((id) => this.axioms.get(id))
|
|
152
|
+
.filter(Boolean);
|
|
153
|
+
}
|
|
154
|
+
get(id) {
|
|
155
|
+
return this.axioms.get(id);
|
|
156
|
+
}
|
|
157
|
+
getAll() {
|
|
158
|
+
return Array.from(this.axioms.values());
|
|
159
|
+
}
|
|
160
|
+
filter(predicate) {
|
|
161
|
+
return this.getAll().filter(predicate);
|
|
162
|
+
}
|
|
163
|
+
snapshot() {
|
|
164
|
+
return { connections: this.getAll() };
|
|
165
|
+
}
|
|
166
|
+
/** Restores a claim-axiom library from a snapshot, re-indexing all axioms. */
|
|
167
|
+
static fromSnapshot(snapshot, claimLookup, options) {
|
|
168
|
+
const lib = new ClaimAxiomLibrary(claimLookup, options);
|
|
169
|
+
for (const axiom of snapshot.connections) {
|
|
170
|
+
lib.axioms.set(axiom.id, axiom);
|
|
171
|
+
let claimSet = lib.claimToConnections.get(axiom.claimId);
|
|
172
|
+
if (!claimSet) {
|
|
173
|
+
claimSet = new Set();
|
|
174
|
+
lib.claimToConnections.set(axiom.claimId, claimSet);
|
|
175
|
+
}
|
|
176
|
+
claimSet.add(axiom.id);
|
|
177
|
+
}
|
|
178
|
+
return lib;
|
|
179
|
+
}
|
|
180
|
+
validate() {
|
|
181
|
+
const violations = [];
|
|
182
|
+
for (const [id, axiom] of this.axioms) {
|
|
183
|
+
if (!Value.Check(CoreClaimAxiomSchema, axiom)) {
|
|
184
|
+
violations.push({
|
|
185
|
+
code: AXIOM_SCHEMA_INVALID,
|
|
186
|
+
message: `${AXIOM_SCHEMA_INVALID}: axiom "${id}" does not conform to schema`,
|
|
187
|
+
entityType: "axiom",
|
|
188
|
+
entityId: id,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
if (!this.claimLookup.get(axiom.claimId, axiom.claimVersion)) {
|
|
192
|
+
violations.push({
|
|
193
|
+
code: AXIOM_CLAIM_REF_NOT_FOUND,
|
|
194
|
+
message: `${AXIOM_CLAIM_REF_NOT_FOUND}: axiom "${id}" references non-existent dependent claim "${axiom.claimId}" version ${axiom.claimVersion}`,
|
|
195
|
+
entityType: "axiom",
|
|
196
|
+
entityId: id,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
if (!this.claimLookup.get(axiom.supportingClaimId, axiom.supportingClaimVersion)) {
|
|
200
|
+
violations.push({
|
|
201
|
+
code: AXIOM_SUPPORTING_REF_NOT_FOUND,
|
|
202
|
+
message: `${AXIOM_SUPPORTING_REF_NOT_FOUND}: axiom "${id}" references non-existent supporting claim "${axiom.supportingClaimId}" version ${axiom.supportingClaimVersion}`,
|
|
203
|
+
entityType: "axiom",
|
|
204
|
+
entityId: id,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Strict supporting-side type: every axiom's supporting claim must have
|
|
209
|
+
// type='axiomatic'. Catches tampered snapshots loaded via fromSnapshot.
|
|
210
|
+
for (const axiom of this.axioms.values()) {
|
|
211
|
+
const supportingClaim = this.claimLookup.get(axiom.supportingClaimId, axiom.supportingClaimVersion);
|
|
212
|
+
if (supportingClaim && supportingClaim.type !== "axiomatic") {
|
|
213
|
+
violations.push({
|
|
214
|
+
code: AXIOM_SUPPORTING_NOT_AXIOMATIC_TYPE,
|
|
215
|
+
message: `${AXIOM_SUPPORTING_NOT_AXIOMATIC_TYPE}: axiom ${axiom.id} supporting claim ${axiom.supportingClaimId} has type='${supportingClaim.type}'; only 'axiomatic' is permitted on the supporting side`,
|
|
216
|
+
entityType: "axiom",
|
|
217
|
+
entityId: axiom.id,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
// Strict dependent-side type: every axiom's dependent claim must have
|
|
222
|
+
// type='normal'. Catches tampered snapshots loaded via fromSnapshot.
|
|
223
|
+
for (const axiom of this.axioms.values()) {
|
|
224
|
+
const dependentClaim = this.claimLookup.get(axiom.claimId, axiom.claimVersion);
|
|
225
|
+
if (dependentClaim && dependentClaim.type !== "normal") {
|
|
226
|
+
violations.push({
|
|
227
|
+
code: AXIOM_CLAIM_NOT_NORMAL_TYPE,
|
|
228
|
+
message: `${AXIOM_CLAIM_NOT_NORMAL_TYPE}: axiom ${axiom.id} dependent claim ${axiom.claimId} has type='${dependentClaim.type}'; only 'normal' is permitted on the dependent side`,
|
|
229
|
+
entityType: "axiom",
|
|
230
|
+
entityId: axiom.id,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return { ok: violations.length === 0, violations };
|
|
235
|
+
}
|
|
236
|
+
computeChecksum(axiom) {
|
|
237
|
+
const fields = this.checksumConfig?.claimAxiomFields ??
|
|
238
|
+
DEFAULT_CHECKSUM_CONFIG.claimAxiomFields ??
|
|
239
|
+
DEFAULT_CHECKSUM_CONFIG.claimCitationFields;
|
|
240
|
+
return entityChecksum(axiom, fields);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=claim-axiom-library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-axiom-library.js","sourceRoot":"","sources":["../../../src/lib/core/claim-axiom-library.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAU9C,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EACzB,8BAA8B,EAC9B,mCAAmC,EACnC,2BAA2B,GAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAExE;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IAGlB,MAAM,CAA0B;IAChC,kBAAkB,CAA0B;IAC5C,WAAW,CAAc;IACzB,cAAc,CAAsB;IAE5C,YACI,WAAyB,EACzB,OAAkD;QAElD,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,CAAA;IACjD,CAAC;IAEO,mBAAmB,CACvB,IAAkD;QAElD,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;QACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAA;YAC9B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;YACpD,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAClD,CAAC;IACL,CAAC;IAEO,cAAc,CAAI,EAAW;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC5B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,EAAE,EAAE,CAAA;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAClC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAM,IAAI,uBAAuB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YAC5D,CAAC;YACD,OAAO,MAAM,CAAA;QACjB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,CAAC,CAAC,YAAY,uBAAuB,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAClC,CAAC;YACD,MAAM,CAAC,CAAA;QACX,CAAC;IACL,CAAC;IAEM,GAAG,CAAC,KAAoC;QAC3C,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;YAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,uBAAuB,CAAC;oBAC9B;wBACI,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,GAAG,kBAAkB,mBAAmB,KAAK,CAAC,EAAE,iBAAiB;wBAC1E,UAAU,EAAE,OAAO;wBACnB,QAAQ,EAAE,KAAK,CAAC,EAAE;qBACrB;iBACJ,CAAC,CAAA;YACN,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CACvC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,YAAY,CACrB,CAAA;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClB,MAAM,IAAI,uBAAuB,CAAC;oBAC9B;wBACI,IAAI,EAAE,yBAAyB;wBAC/B,OAAO,EAAE,GAAG,yBAAyB,8CAA8C,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE;wBACxH,UAAU,EAAE,OAAO;wBACnB,QAAQ,EAAE,KAAK,CAAC,EAAE;qBACrB;iBACJ,CAAC,CAAA;YACN,CAAC;YACD,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnC,MAAM,IAAI,uBAAuB,CAAC;oBAC9B;wBACI,IAAI,EAAE,2BAA2B;wBACjC,OAAO,EAAE,GAAG,2BAA2B,2BAA2B,KAAK,CAAC,OAAO,cAAc,cAAc,CAAC,IAAI,qDAAqD;wBACrK,UAAU,EAAE,OAAO;wBACnB,QAAQ,EAAE,KAAK,CAAC,EAAE;qBACrB;iBACJ,CAAC,CAAA;YACN,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CACxC,KAAK,CAAC,iBAAiB,EACvB,KAAK,CAAC,sBAAsB,CAC/B,CAAA;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnB,MAAM,IAAI,uBAAuB,CAAC;oBAC9B;wBACI,IAAI,EAAE,8BAA8B;wBACpC,OAAO,EAAE,GAAG,8BAA8B,+CAA+C,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,sBAAsB,EAAE;wBAClJ,UAAU,EAAE,OAAO;wBACnB,QAAQ,EAAE,KAAK,CAAC,EAAE;qBACrB;iBACJ,CAAC,CAAA;YACN,CAAC;YACD,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACvC,MAAM,IAAI,uBAAuB,CAAC;oBAC9B;wBACI,IAAI,EAAE,mCAAmC;wBACzC,OAAO,EAAE,GAAG,mCAAmC,4BAA4B,KAAK,CAAC,iBAAiB,cAAc,eAAe,CAAC,IAAI,yDAAyD;wBAC7L,UAAU,EAAE,OAAO;wBACnB,QAAQ,EAAE,KAAK,CAAC,EAAE;qBACrB;iBACJ,CAAC,CAAA;YACN,CAAC;YAED,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAiB,CAAA;YACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAE1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAE9B,IAAI,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;gBACpB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACvD,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAErB,OAAO,IAAI,CAAA;QACf,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,MAAM,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,IAAI,uBAAuB,CAAC;oBAC9B;wBACI,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,GAAG,eAAe,oBAAoB,EAAE,aAAa;wBAC9D,UAAU,EAAE,OAAO;wBACnB,QAAQ,EAAE,EAAE;qBACf;iBACJ,CAAC,CAAA;YACN,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAEtB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3D,IAAI,QAAQ,EAAE,CAAC;gBACX,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACvB,CAAC;YAED,OAAO,KAAK,CAAA;QAChB,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,sBAAsB,CAAC,OAAe;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAA;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;aACjB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;aACjC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAEM,GAAG,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC9B,CAAC;IAEM,MAAM;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3C,CAAC;IAEM,MAAM,CAAC,SAAsC;QAChD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;IAEM,QAAQ;QACX,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;IACzC,CAAC;IAED,8EAA8E;IACvE,MAAM,CAAC,YAAY,CAGtB,QAAsD,EACtD,WAAyB,EACzB,OAAkD;QAElD,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAc,WAAW,EAAE,OAAO,CAAC,CAAA;QACpE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAE/B,IAAI,QAAQ,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;gBACpB,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACvD,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAEM,QAAQ;QACX,MAAM,UAAU,GAA0B,EAAE,CAAA;QAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,GAAG,oBAAoB,YAAY,EAAE,8BAA8B;oBAC5E,UAAU,EAAE,OAAO;oBACnB,QAAQ,EAAE,EAAE;iBACf,CAAC,CAAA;YACN,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC3D,UAAU,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,GAAG,yBAAyB,YAAY,EAAE,8CAA8C,KAAK,CAAC,OAAO,aAAa,KAAK,CAAC,YAAY,EAAE;oBAC/I,UAAU,EAAE,OAAO;oBACnB,QAAQ,EAAE,EAAE;iBACf,CAAC,CAAA;YACN,CAAC;YACD,IACI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CACjB,KAAK,CAAC,iBAAiB,EACvB,KAAK,CAAC,sBAAsB,CAC/B,EACH,CAAC;gBACC,UAAU,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,8BAA8B;oBACpC,OAAO,EAAE,GAAG,8BAA8B,YAAY,EAAE,+CAA+C,KAAK,CAAC,iBAAiB,aAAa,KAAK,CAAC,sBAAsB,EAAE;oBACzK,UAAU,EAAE,OAAO;oBACnB,QAAQ,EAAE,EAAE;iBACf,CAAC,CAAA;YACN,CAAC;QACL,CAAC;QAED,wEAAwE;QACxE,wEAAwE;QACxE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CACxC,KAAK,CAAC,iBAAiB,EACvB,KAAK,CAAC,sBAAsB,CAC/B,CAAA;YACD,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC1D,UAAU,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,mCAAmC;oBACzC,OAAO,EAAE,GAAG,mCAAmC,WAAW,KAAK,CAAC,EAAE,qBAAqB,KAAK,CAAC,iBAAiB,cAAc,eAAe,CAAC,IAAI,yDAAyD;oBACzM,UAAU,EAAE,OAAO;oBACnB,QAAQ,EAAE,KAAK,CAAC,EAAE;iBACrB,CAAC,CAAA;YACN,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,qEAAqE;QACrE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CACvC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,YAAY,CACrB,CAAA;YACD,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,UAAU,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,2BAA2B;oBACjC,OAAO,EAAE,GAAG,2BAA2B,WAAW,KAAK,CAAC,EAAE,oBAAoB,KAAK,CAAC,OAAO,cAAc,cAAc,CAAC,IAAI,qDAAqD;oBACjL,UAAU,EAAE,OAAO;oBACnB,QAAQ,EAAE,KAAK,CAAC,EAAE;iBACrB,CAAC,CAAA;YACN,CAAC;QACL,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACtD,CAAC;IAEO,eAAe,CAAC,KAAkB;QACtC,MAAM,MAAM,GACR,IAAI,CAAC,cAAc,EAAE,gBAAgB;YACrC,uBAAuB,CAAC,gBAAgB;YACxC,uBAAuB,CAAC,mBAAoB,CAAA;QAChD,OAAO,cAAc,CACjB,KAA2C,EAC3C,MAAM,CACT,CAAA;IACL,CAAC;CACJ"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { TCoreClaimCitation } from "../schemata/claim-citation.js";
|
|
2
2
|
import type { TCoreChecksumConfig } from "../types/checksum.js";
|
|
3
|
-
import type { TClaimLookup,
|
|
3
|
+
import type { TClaimLookup, TClaimConnectionLibraryManagement, TClaimConnectionLibrarySnapshot } from "./interfaces/library.interfaces.js";
|
|
4
4
|
import type { TInvariantValidationResult } from "../types/validation.js";
|
|
5
|
-
export declare class ClaimCitationLibrary<TCitation extends TCoreClaimCitation = TCoreClaimCitation> implements
|
|
5
|
+
export declare class ClaimCitationLibrary<TCitation extends TCoreClaimCitation = TCoreClaimCitation> implements TClaimConnectionLibraryManagement<TCitation> {
|
|
6
6
|
private citations;
|
|
7
|
-
private
|
|
8
|
-
private sourceClaimToCitations;
|
|
7
|
+
private claimToConnections;
|
|
9
8
|
private claimLookup;
|
|
10
9
|
private checksumConfig?;
|
|
11
10
|
constructor(claimLookup: TClaimLookup, options?: {
|
|
@@ -15,14 +14,13 @@ export declare class ClaimCitationLibrary<TCitation extends TCoreClaimCitation =
|
|
|
15
14
|
private withValidation;
|
|
16
15
|
add(citation: Omit<TCitation, "checksum">): TCitation;
|
|
17
16
|
remove(id: string): TCitation;
|
|
18
|
-
|
|
19
|
-
getCitationsForSourceClaim(sourceClaimId: string): TCitation[];
|
|
17
|
+
getConnectionsForClaim(claimId: string): TCitation[];
|
|
20
18
|
get(id: string): TCitation | undefined;
|
|
21
19
|
getAll(): TCitation[];
|
|
22
20
|
filter(predicate: (c: TCitation) => boolean): TCitation[];
|
|
23
|
-
snapshot():
|
|
21
|
+
snapshot(): TClaimConnectionLibrarySnapshot<TCitation>;
|
|
24
22
|
/** Restores a claim-citation library from a snapshot, re-indexing all citations. */
|
|
25
|
-
static fromSnapshot<TCitation extends TCoreClaimCitation = TCoreClaimCitation>(snapshot:
|
|
23
|
+
static fromSnapshot<TCitation extends TCoreClaimCitation = TCoreClaimCitation>(snapshot: TClaimConnectionLibrarySnapshot<TCitation>, claimLookup: TClaimLookup, options?: {
|
|
26
24
|
checksumConfig?: TCoreChecksumConfig;
|
|
27
25
|
}): ClaimCitationLibrary<TCitation>;
|
|
28
26
|
validate(): TInvariantValidationResult;
|
|
@@ -33,10 +31,11 @@ export declare class ClaimCitationLibrary<TCitation extends TCoreClaimCitation =
|
|
|
33
31
|
*/
|
|
34
32
|
private detectAllCycles;
|
|
35
33
|
/**
|
|
36
|
-
* Returns true if adding an edge from `
|
|
37
|
-
* would create a cycle in the claim-citation graph. Edges go from
|
|
38
|
-
* to
|
|
39
|
-
*
|
|
34
|
+
* Returns true if adding an edge from `claimId` to `supportingClaimId`
|
|
35
|
+
* would create a cycle in the claim-citation graph. Edges go from the
|
|
36
|
+
* dependent claim to the supporting claim; a cycle exists when the
|
|
37
|
+
* dependent claim is reachable from the proposed supporting claim by
|
|
38
|
+
* following outgoing edges.
|
|
40
39
|
*/
|
|
41
40
|
private wouldCreateCycle;
|
|
42
41
|
private computeChecksum;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-citation-library.d.ts","sourceRoot":"","sources":["../../../src/lib/core/claim-citation-library.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAG/D,OAAO,KAAK,EACR,YAAY,EACZ,+BAA+B,
|
|
1
|
+
{"version":3,"file":"claim-citation-library.d.ts","sourceRoot":"","sources":["../../../src/lib/core/claim-citation-library.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAG/D,OAAO,KAAK,EACR,YAAY,EACZ,iCAAiC,EACjC,+BAA+B,EAClC,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,EACR,0BAA0B,EAE7B,MAAM,wBAAwB,CAAA;AAa/B,qBAAa,oBAAoB,CAC7B,SAAS,SAAS,kBAAkB,GAAG,kBAAkB,CAC3D,YAAW,iCAAiC,CAAC,SAAS,CAAC;IACrD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAC,CAAqB;gBAGxC,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,mBAAmB,CAAA;KAAE;IAQtD,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,cAAc;IAkBf,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,SAAS;IAqFrD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS;IAyB7B,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE;IAQpD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItC,MAAM,IAAI,SAAS,EAAE;IAIrB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,OAAO,GAAG,SAAS,EAAE;IAIzD,QAAQ,IAAI,+BAA+B,CAAC,SAAS,CAAC;IAI7D,oFAAoF;WACtE,YAAY,CACtB,SAAS,SAAS,kBAAkB,GAAG,kBAAkB,EAEzD,QAAQ,EAAE,+BAA+B,CAAC,SAAS,CAAC,EACpD,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,mBAAmB,CAAA;KAAE,GACnD,oBAAoB,CAAC,SAAS,CAAC;IAwD3B,QAAQ,IAAI,0BAA0B;IA6D7C;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA+CvB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,eAAe;CAS1B"}
|