@lucern/graph-primitives 1.0.15 → 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.
Files changed (65) hide show
  1. package/dist/beliefEvidenceLinks.js +144 -99
  2. package/dist/beliefEvidenceLinks.js.map +1 -1
  3. package/dist/beliefEvidenceLinks.operational.d.ts +29 -0
  4. package/dist/beliefEvidenceLinks.operational.js +157 -0
  5. package/dist/beliefEvidenceLinks.operational.js.map +1 -0
  6. package/dist/{beliefLifecycle-y8WLXqQj.d.ts → beliefLifecycle-CXwdDw5e.d.ts} +7 -4
  7. package/dist/beliefLifecycle.d.ts +1 -1
  8. package/dist/beliefLifecycle.js +75 -18
  9. package/dist/beliefLifecycle.js.map +1 -1
  10. package/dist/epistemicBeliefs.admin.js.map +1 -1
  11. package/dist/epistemicBeliefs.backfills.d.ts +1 -1
  12. package/dist/epistemicBeliefs.backfills.js +63 -35
  13. package/dist/epistemicBeliefs.backfills.js.map +1 -1
  14. package/dist/epistemicBeliefs.confidence.d.ts +1 -1
  15. package/dist/epistemicBeliefs.confidence.js +70 -41
  16. package/dist/epistemicBeliefs.confidence.js.map +1 -1
  17. package/dist/epistemicBeliefs.core.js +957 -566
  18. package/dist/epistemicBeliefs.core.js.map +1 -1
  19. package/dist/epistemicBeliefs.d.ts +2 -2
  20. package/dist/epistemicBeliefs.forkEvidence.d.ts +18 -0
  21. package/dist/epistemicBeliefs.forkEvidence.js +121 -0
  22. package/dist/epistemicBeliefs.forkEvidence.js.map +1 -0
  23. package/dist/epistemicBeliefs.helpers.d.ts +2 -2
  24. package/dist/epistemicBeliefs.helpers.js +60 -32
  25. package/dist/epistemicBeliefs.helpers.js.map +1 -1
  26. package/dist/epistemicBeliefs.internal.js +174 -39
  27. package/dist/epistemicBeliefs.internal.js.map +1 -1
  28. package/dist/epistemicBeliefs.js +436 -72
  29. package/dist/epistemicBeliefs.js.map +1 -1
  30. package/dist/epistemicBeliefs.lifecycle.d.ts +2 -2
  31. package/dist/epistemicBeliefs.lifecycle.js +75 -47
  32. package/dist/epistemicBeliefs.lifecycle.js.map +1 -1
  33. package/dist/epistemicBeliefs.links.js +46 -1
  34. package/dist/epistemicBeliefs.links.js.map +1 -1
  35. package/dist/epistemicBeliefs.topicAnchor.d.ts +29 -0
  36. package/dist/epistemicBeliefs.topicAnchor.js +105 -0
  37. package/dist/epistemicBeliefs.topicAnchor.js.map +1 -0
  38. package/dist/epistemicContracts.evaluators.js +71 -42
  39. package/dist/epistemicContracts.evaluators.js.map +1 -1
  40. package/dist/epistemicContracts.handlers.js +71 -42
  41. package/dist/epistemicContracts.handlers.js.map +1 -1
  42. package/dist/epistemicContracts.js +71 -42
  43. package/dist/epistemicContracts.js.map +1 -1
  44. package/dist/epistemicContracts.metrics.js +1 -1
  45. package/dist/epistemicContracts.metrics.js.map +1 -1
  46. package/dist/epistemicContracts.types.d.ts +1 -1
  47. package/dist/epistemicEdges.helpers.d.ts +1 -1
  48. package/dist/epistemicEvidence.js +172 -81
  49. package/dist/epistemicEvidence.js.map +1 -1
  50. package/dist/epistemicEvidenceMutations.js +172 -81
  51. package/dist/epistemicEvidenceMutations.js.map +1 -1
  52. package/dist/epistemicNodes.internal.js.map +1 -1
  53. package/dist/epistemicNodes.js +2 -2
  54. package/dist/epistemicNodes.js.map +1 -1
  55. package/dist/epistemicNodes.mutations.js +2 -2
  56. package/dist/epistemicNodes.mutations.js.map +1 -1
  57. package/dist/evaluators/index.js +1 -1
  58. package/dist/evaluators/index.js.map +1 -1
  59. package/dist/index.d.ts +2 -2
  60. package/dist/index.js +767 -236
  61. package/dist/index.js.map +1 -1
  62. package/dist/invariantEnforcement.js +2 -2
  63. package/dist/invariantEnforcement.js.map +1 -1
  64. package/dist/proof-attestation.json +3 -3
  65. 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
- "belief",
17
- "fact"
18
- ];
19
- var RESOLVED_PREDICTION_OUTCOMES = [
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 hasResolvedPredictionOutcome(predictionMeta) {
61
+ function getPredictionMetaFromMetadata(metadata) {
62
+ return metadata?.predictionMeta;
63
+ }
64
+ function resolvedPredictionStatus(predictionMeta) {
48
65
  if (!predictionMeta || typeof predictionMeta !== "object") {
49
- return false;
66
+ return null;
50
67
  }
51
68
  const outcome = predictionMeta.outcome;
52
- return typeof outcome === "string" && RESOLVED_PREDICTION_OUTCOMES.includes(outcome);
53
- }
54
- function getPredictionMetaFromMetadata(metadata) {
55
- return metadata?.predictionMeta;
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 shouldTreatBeliefAsFact(opts) {
77
+ function shouldTreatBeliefAsResolved(opts) {
58
78
  if (isResolvedByConfidence(opts.confidence)) {
59
- return true;
79
+ const normalized = normalizeBeliefConfidence(opts.confidence);
80
+ return normalized === 0 ? "resolved_false" : "resolved_true";
60
81
  }
61
- if (hasResolvedPredictionOutcome(opts.predictionMeta)) {
62
- return true;
82
+ const directPredictionStatus = resolvedPredictionStatus(opts.predictionMeta);
83
+ if (directPredictionStatus) {
84
+ return directPredictionStatus;
63
85
  }
64
- if (hasResolvedPredictionOutcome(getPredictionMetaFromMetadata(opts.metadata))) {
65
- return true;
86
+ const metadataPredictionStatus = resolvedPredictionStatus(
87
+ getPredictionMetaFromMetadata(opts.metadata)
88
+ );
89
+ if (metadataPredictionStatus) {
90
+ return metadataPredictionStatus;
66
91
  }
67
- return false;
92
+ return null;
68
93
  }
69
94
  function resolveBeliefLifecycleStatus(opts) {
70
- if (shouldTreatBeliefAsFact(opts)) {
71
- return "fact";
95
+ const resolvedStatus = shouldTreatBeliefAsResolved(opts);
96
+ if (resolvedStatus) {
97
+ return resolvedStatus;
72
98
  }
73
99
  const direct = opts.beliefStatus;
74
- if (isBeliefLifecycleStatus(direct)) {
100
+ const normalizedDirect = normalizeLegacyBeliefStatus(direct);
101
+ if (normalizedDirect) {
75
102
  const normalized = normalizeBeliefConfidence(opts.confidence);
76
- if (normalized !== null && isPreValidationBeliefStatus(direct)) {
77
- return "belief";
103
+ if (normalized !== null && isPreValidationBeliefStatus(normalizedDirect)) {
104
+ return "active";
78
105
  }
79
- return direct;
106
+ return normalizedDirect;
80
107
  }
81
108
  const metaStatus = opts.metadata?.beliefStatus;
82
- if (isBeliefLifecycleStatus(metaStatus)) {
109
+ const normalizedMetaStatus = normalizeLegacyBeliefStatus(metaStatus);
110
+ if (normalizedMetaStatus) {
83
111
  const normalized = normalizeBeliefConfidence(opts.confidence);
84
- if (normalized !== null && isPreValidationBeliefStatus(metaStatus)) {
85
- return "belief";
112
+ if (normalized !== null && isPreValidationBeliefStatus(normalizedMetaStatus)) {
113
+ return "active";
86
114
  }
87
- return metaStatus;
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
- if (shouldTreatBeliefAsFact({ ...opts })) {
96
- return "fact";
123
+ const resolvedStatus = shouldTreatBeliefAsResolved({ ...opts });
124
+ if (resolvedStatus) {
125
+ return resolvedStatus;
97
126
  }
98
127
  if (isPreValidationBeliefStatus(status)) {
99
- return "belief";
128
+ return "active";
100
129
  }
101
- return status === "fact" ? "fact" : "belief";
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 ?? "manual_assessment",
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 modulating confidence.",
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: `modulateConfidence 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.`,
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. modulateConfidence is for belief nodes only.",
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 to modulate confidence.",
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 confidence modulation.",
1057
+ suggestion: "Complete a worktree linked to this belief before recording SL scoring.",
1029
1058
  details: { nodeId: args.nodeId }
1030
1059
  });
1031
1060
  }