@lucern/graph-primitives 1.0.16 → 1.0.17
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/dist/beliefEvidenceLinks.js +144 -99
- package/dist/beliefEvidenceLinks.js.map +1 -1
- package/dist/beliefEvidenceLinks.operational.d.ts +29 -0
- package/dist/beliefEvidenceLinks.operational.js +157 -0
- package/dist/beliefEvidenceLinks.operational.js.map +1 -0
- package/dist/{beliefLifecycle-y8WLXqQj.d.ts → beliefLifecycle-CXwdDw5e.d.ts} +7 -4
- package/dist/beliefLifecycle.d.ts +1 -1
- package/dist/beliefLifecycle.js +75 -18
- package/dist/beliefLifecycle.js.map +1 -1
- package/dist/epistemicBeliefs.admin.js.map +1 -1
- package/dist/epistemicBeliefs.backfills.d.ts +1 -1
- package/dist/epistemicBeliefs.backfills.js +63 -35
- package/dist/epistemicBeliefs.backfills.js.map +1 -1
- package/dist/epistemicBeliefs.confidence.d.ts +1 -1
- package/dist/epistemicBeliefs.confidence.js +70 -41
- package/dist/epistemicBeliefs.confidence.js.map +1 -1
- package/dist/epistemicBeliefs.core.js +957 -566
- package/dist/epistemicBeliefs.core.js.map +1 -1
- package/dist/epistemicBeliefs.d.ts +2 -2
- package/dist/epistemicBeliefs.forkEvidence.d.ts +18 -0
- package/dist/epistemicBeliefs.forkEvidence.js +121 -0
- package/dist/epistemicBeliefs.forkEvidence.js.map +1 -0
- package/dist/epistemicBeliefs.helpers.d.ts +2 -2
- package/dist/epistemicBeliefs.helpers.js +60 -32
- package/dist/epistemicBeliefs.helpers.js.map +1 -1
- package/dist/epistemicBeliefs.internal.js +174 -39
- package/dist/epistemicBeliefs.internal.js.map +1 -1
- package/dist/epistemicBeliefs.js +436 -72
- package/dist/epistemicBeliefs.js.map +1 -1
- package/dist/epistemicBeliefs.lifecycle.d.ts +2 -2
- package/dist/epistemicBeliefs.lifecycle.js +75 -47
- package/dist/epistemicBeliefs.lifecycle.js.map +1 -1
- package/dist/epistemicBeliefs.links.js +46 -1
- package/dist/epistemicBeliefs.links.js.map +1 -1
- package/dist/epistemicBeliefs.topicAnchor.d.ts +29 -0
- package/dist/epistemicBeliefs.topicAnchor.js +105 -0
- package/dist/epistemicBeliefs.topicAnchor.js.map +1 -0
- package/dist/epistemicContracts.evaluators.js +71 -42
- package/dist/epistemicContracts.evaluators.js.map +1 -1
- package/dist/epistemicContracts.handlers.js +71 -42
- package/dist/epistemicContracts.handlers.js.map +1 -1
- package/dist/epistemicContracts.js +71 -42
- package/dist/epistemicContracts.js.map +1 -1
- package/dist/epistemicContracts.metrics.js +1 -1
- package/dist/epistemicContracts.metrics.js.map +1 -1
- package/dist/epistemicContracts.types.d.ts +1 -1
- package/dist/epistemicEdges.helpers.d.ts +1 -1
- package/dist/epistemicEvidence.js +172 -81
- package/dist/epistemicEvidence.js.map +1 -1
- package/dist/epistemicEvidenceMutations.js +172 -81
- package/dist/epistemicEvidenceMutations.js.map +1 -1
- package/dist/epistemicNodes.internal.js.map +1 -1
- package/dist/epistemicNodes.js +2 -2
- package/dist/epistemicNodes.js.map +1 -1
- package/dist/epistemicNodes.mutations.js +2 -2
- package/dist/epistemicNodes.mutations.js.map +1 -1
- package/dist/evaluators/index.js +1 -1
- package/dist/evaluators/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +767 -236
- package/dist/index.js.map +1 -1
- package/dist/invariantEnforcement.js +2 -2
- package/dist/invariantEnforcement.js.map +1 -1
- package/dist/proof-attestation.json +3 -3
- package/package.json +4 -4
|
@@ -13,18 +13,32 @@ import '@lucern/access-control/auth';
|
|
|
13
13
|
var BELIEF_STATUS_VALUES = [
|
|
14
14
|
"assumption",
|
|
15
15
|
"hypothesis",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"confirmed",
|
|
21
|
-
"disconfirmed",
|
|
22
|
-
"partial",
|
|
23
|
-
"expired"
|
|
16
|
+
"active",
|
|
17
|
+
"superseded",
|
|
18
|
+
"resolved_true",
|
|
19
|
+
"resolved_false"
|
|
24
20
|
];
|
|
25
21
|
function isBeliefLifecycleStatus(value) {
|
|
26
22
|
return typeof value === "string" && BELIEF_STATUS_VALUES.includes(value);
|
|
27
23
|
}
|
|
24
|
+
function normalizeLegacyBeliefStatus(value) {
|
|
25
|
+
if (isBeliefLifecycleStatus(value)) {
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
if (value === "belief" || value === "established" || value === "emerging") {
|
|
29
|
+
return "active";
|
|
30
|
+
}
|
|
31
|
+
if (value === "fact" || value === "confirmed") {
|
|
32
|
+
return "resolved_true";
|
|
33
|
+
}
|
|
34
|
+
if (value === "disconfirmed" || value === "expired") {
|
|
35
|
+
return "resolved_false";
|
|
36
|
+
}
|
|
37
|
+
if (value === "deprecated") {
|
|
38
|
+
return "superseded";
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
28
42
|
function normalizeBeliefConfidence(confidence) {
|
|
29
43
|
if (typeof confidence !== "number" || !Number.isFinite(confidence)) {
|
|
30
44
|
return null;
|
|
@@ -44,47 +58,61 @@ function isResolvedByConfidence(confidence) {
|
|
|
44
58
|
}
|
|
45
59
|
return normalized <= 0 || normalized >= 1;
|
|
46
60
|
}
|
|
47
|
-
function
|
|
61
|
+
function getPredictionMetaFromMetadata(metadata) {
|
|
62
|
+
return metadata?.predictionMeta;
|
|
63
|
+
}
|
|
64
|
+
function resolvedPredictionStatus(predictionMeta) {
|
|
48
65
|
if (!predictionMeta || typeof predictionMeta !== "object") {
|
|
49
|
-
return
|
|
66
|
+
return null;
|
|
50
67
|
}
|
|
51
68
|
const outcome = predictionMeta.outcome;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
69
|
+
if (outcome === "confirmed") {
|
|
70
|
+
return "resolved_true";
|
|
71
|
+
}
|
|
72
|
+
if (outcome === "disconfirmed" || outcome === "expired") {
|
|
73
|
+
return "resolved_false";
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
56
76
|
}
|
|
57
|
-
function
|
|
77
|
+
function shouldTreatBeliefAsResolved(opts) {
|
|
58
78
|
if (isResolvedByConfidence(opts.confidence)) {
|
|
59
|
-
|
|
79
|
+
const normalized = normalizeBeliefConfidence(opts.confidence);
|
|
80
|
+
return normalized === 0 ? "resolved_false" : "resolved_true";
|
|
60
81
|
}
|
|
61
|
-
|
|
62
|
-
|
|
82
|
+
const directPredictionStatus = resolvedPredictionStatus(opts.predictionMeta);
|
|
83
|
+
if (directPredictionStatus) {
|
|
84
|
+
return directPredictionStatus;
|
|
63
85
|
}
|
|
64
|
-
|
|
65
|
-
|
|
86
|
+
const metadataPredictionStatus = resolvedPredictionStatus(
|
|
87
|
+
getPredictionMetaFromMetadata(opts.metadata)
|
|
88
|
+
);
|
|
89
|
+
if (metadataPredictionStatus) {
|
|
90
|
+
return metadataPredictionStatus;
|
|
66
91
|
}
|
|
67
|
-
return
|
|
92
|
+
return null;
|
|
68
93
|
}
|
|
69
94
|
function resolveBeliefLifecycleStatus(opts) {
|
|
70
|
-
|
|
71
|
-
|
|
95
|
+
const resolvedStatus = shouldTreatBeliefAsResolved(opts);
|
|
96
|
+
if (resolvedStatus) {
|
|
97
|
+
return resolvedStatus;
|
|
72
98
|
}
|
|
73
99
|
const direct = opts.beliefStatus;
|
|
74
|
-
|
|
100
|
+
const normalizedDirect = normalizeLegacyBeliefStatus(direct);
|
|
101
|
+
if (normalizedDirect) {
|
|
75
102
|
const normalized = normalizeBeliefConfidence(opts.confidence);
|
|
76
|
-
if (normalized !== null && isPreValidationBeliefStatus(
|
|
77
|
-
return "
|
|
103
|
+
if (normalized !== null && isPreValidationBeliefStatus(normalizedDirect)) {
|
|
104
|
+
return "active";
|
|
78
105
|
}
|
|
79
|
-
return
|
|
106
|
+
return normalizedDirect;
|
|
80
107
|
}
|
|
81
108
|
const metaStatus = opts.metadata?.beliefStatus;
|
|
82
|
-
|
|
109
|
+
const normalizedMetaStatus = normalizeLegacyBeliefStatus(metaStatus);
|
|
110
|
+
if (normalizedMetaStatus) {
|
|
83
111
|
const normalized = normalizeBeliefConfidence(opts.confidence);
|
|
84
|
-
if (normalized !== null && isPreValidationBeliefStatus(
|
|
85
|
-
return "
|
|
112
|
+
if (normalized !== null && isPreValidationBeliefStatus(normalizedMetaStatus)) {
|
|
113
|
+
return "active";
|
|
86
114
|
}
|
|
87
|
-
return
|
|
115
|
+
return normalizedMetaStatus;
|
|
88
116
|
}
|
|
89
117
|
return "assumption";
|
|
90
118
|
}
|
|
@@ -92,13 +120,14 @@ function isPreValidationBeliefStatus(status) {
|
|
|
92
120
|
return status === "assumption" || status === "hypothesis";
|
|
93
121
|
}
|
|
94
122
|
function promoteBeliefStatusAfterScoring(status, opts) {
|
|
95
|
-
|
|
96
|
-
|
|
123
|
+
const resolvedStatus = shouldTreatBeliefAsResolved({ ...opts });
|
|
124
|
+
if (resolvedStatus) {
|
|
125
|
+
return resolvedStatus;
|
|
97
126
|
}
|
|
98
127
|
if (isPreValidationBeliefStatus(status)) {
|
|
99
|
-
return "
|
|
128
|
+
return "active";
|
|
100
129
|
}
|
|
101
|
-
return status
|
|
130
|
+
return status;
|
|
102
131
|
}
|
|
103
132
|
var api = anyApi;
|
|
104
133
|
componentsGeneric();
|
|
@@ -865,7 +894,7 @@ function buildBeliefConfidenceRow(args) {
|
|
|
865
894
|
disbelief: args.disbelief,
|
|
866
895
|
uncertainty: args.uncertainty,
|
|
867
896
|
baseRate: args.baseRate,
|
|
868
|
-
slOperator: args.slOperator ?? "
|
|
897
|
+
slOperator: args.slOperator ?? "prior_seed",
|
|
869
898
|
trigger: args.trigger,
|
|
870
899
|
...args.rationale ? { rationale: args.rationale } : {},
|
|
871
900
|
assessedBy: args.assessedBy,
|
|
@@ -982,17 +1011,17 @@ async function applyBeliefConfidenceChange(ctx, args) {
|
|
|
982
1011
|
status: 404,
|
|
983
1012
|
code: "NOT_FOUND",
|
|
984
1013
|
invariantCode: "belief.exists",
|
|
985
|
-
suggestion: "Verify nodeId points to an existing node before
|
|
1014
|
+
suggestion: "Verify nodeId points to an existing node before appending SL scoring.",
|
|
986
1015
|
details: { nodeId: args.nodeId }
|
|
987
1016
|
});
|
|
988
1017
|
}
|
|
989
1018
|
if (node.nodeType !== "belief") {
|
|
990
1019
|
throwStructuredMutationError({
|
|
991
|
-
message: `
|
|
1020
|
+
message: `appendSlScoring only applies to belief nodes. Received nodeType "${node.nodeType}". Entity nodes (company, person, investor, etc.) do not have confidence \u2014 use entityLifecycle.updateEntityAttributes for mutable entity data.`,
|
|
992
1021
|
status: 400,
|
|
993
1022
|
code: "INVALID_ARGUMENT",
|
|
994
1023
|
invariantCode: "entity.no_confidence",
|
|
995
|
-
suggestion: "Use entityLifecycle.updateEntityAttributes for entity mutations.
|
|
1024
|
+
suggestion: "Use entityLifecycle.updateEntityAttributes for entity mutations. appendSlScoring is for belief nodes only.",
|
|
996
1025
|
details: { nodeId: args.nodeId, nodeType: node.nodeType }
|
|
997
1026
|
});
|
|
998
1027
|
}
|
|
@@ -1002,7 +1031,7 @@ async function applyBeliefConfidenceChange(ctx, args) {
|
|
|
1002
1031
|
status: 400,
|
|
1003
1032
|
code: "MISSING_SCOPE",
|
|
1004
1033
|
invariantCode: "belief.project_required",
|
|
1005
|
-
suggestion: "Belief must have a projectId
|
|
1034
|
+
suggestion: "Belief must have a projectId before SL scoring can be appended.",
|
|
1006
1035
|
details: { nodeId: args.nodeId }
|
|
1007
1036
|
});
|
|
1008
1037
|
}
|
|
@@ -1025,7 +1054,7 @@ async function applyBeliefConfidenceChange(ctx, args) {
|
|
|
1025
1054
|
status: 409,
|
|
1026
1055
|
code: "CONFLICT",
|
|
1027
1056
|
invariantCode: "belief.confidence_append_only",
|
|
1028
|
-
suggestion: "Complete a worktree linked to this belief before recording
|
|
1057
|
+
suggestion: "Complete a worktree linked to this belief before recording SL scoring.",
|
|
1029
1058
|
details: { nodeId: args.nodeId }
|
|
1030
1059
|
});
|
|
1031
1060
|
}
|