@lucern/graph-primitives 1.0.28 → 1.0.30
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/{beliefDecay-DZ6tkLYq.d.ts → beliefDecay-BmkEk5OJ.d.ts} +3 -3
- package/dist/beliefDecay.d.ts +1 -1
- package/dist/beliefDecay.js +448 -314
- package/dist/beliefDecay.js.map +1 -1
- package/dist/{beliefEvidenceLinks-CWOXxxJg.d.ts → beliefEvidenceLinks-BzfjON_6.d.ts} +13 -13
- package/dist/beliefEvidenceLinks.d.ts +1 -1
- package/dist/beliefEvidenceLinks.js +843 -624
- package/dist/beliefEvidenceLinks.js.map +1 -1
- package/dist/beliefEvidenceLinks.operational.d.ts +7 -5
- package/dist/beliefEvidenceLinks.operational.js +91 -18
- package/dist/beliefEvidenceLinks.operational.js.map +1 -1
- package/dist/beliefLifecycle.js.map +1 -1
- package/dist/confidencePropagationDispatch.d.ts +28 -27
- package/dist/confidencePropagationDispatch.js +157 -99
- package/dist/confidencePropagationDispatch.js.map +1 -1
- package/dist/{contradictions-51VLsESq.d.ts → contradictions-BATPuZTL.d.ts} +10 -10
- package/dist/contradictions.d.ts +1 -1
- package/dist/contradictions.js +398 -228
- package/dist/contradictions.js.map +1 -1
- package/dist/convex.d.ts +65 -30
- package/dist/convex.js +7 -3
- package/dist/convex.js.map +1 -1
- package/dist/debug.js.map +1 -1
- package/dist/edgeValidation.js +293 -85
- package/dist/edgeValidation.js.map +1 -1
- package/dist/edges/contains.d.ts +1 -1
- package/dist/edges/contains.js.map +1 -1
- package/dist/edges/contradicts.d.ts +1 -1
- package/dist/edges/contradicts.js.map +1 -1
- package/dist/edges/{dependsOn.d.ts → depends-on.d.ts} +1 -1
- package/dist/edges/{dependsOn.js → depends-on.js} +4 -4
- package/dist/edges/depends-on.js.map +1 -0
- package/dist/edges/{derivedFrom.d.ts → derived-from.d.ts} +1 -1
- package/dist/edges/{derivedFrom.js → derived-from.js} +3 -3
- package/dist/edges/derived-from.js.map +1 -0
- package/dist/edges/elaborates.d.ts +1 -1
- package/dist/edges/elaborates.js.map +1 -1
- package/dist/edges/index.d.ts +7 -3
- package/dist/edges/index.js +7 -4
- package/dist/edges/index.js.map +1 -1
- package/dist/edges/informs.d.ts +1 -1
- package/dist/edges/informs.js.map +1 -1
- package/dist/edges/{propagationTypes.d.ts → propagation-types.d.ts} +14 -14
- package/dist/edges/{propagationTypes.js → propagation-types.js} +3 -3
- package/dist/edges/propagation-types.js.map +1 -0
- package/dist/edges/refutes.d.ts +1 -1
- package/dist/edges/refutes.js.map +1 -1
- package/dist/edges/supports.d.ts +1 -1
- package/dist/edges/supports.js.map +1 -1
- package/dist/edges/tests.d.ts +1 -1
- package/dist/edges/tests.js.map +1 -1
- package/dist/edges/utils.d.ts +1 -1
- package/dist/edges/utils.js.map +1 -1
- package/dist/embeddingTrigger.d.ts +14 -6
- package/dist/embeddingTrigger.js +11 -14
- package/dist/embeddingTrigger.js.map +1 -1
- package/dist/{entityBridge-DMaKooYn.d.ts → entityBridge-BhVDM3pc.d.ts} +5 -5
- package/dist/entityBridge.d.ts +1 -1
- package/dist/entityBridge.js +602 -225
- package/dist/entityBridge.js.map +1 -1
- package/dist/entityCanonicalMatch.d.ts +14 -12
- package/dist/entityCanonicalMatch.js.map +1 -1
- package/dist/{entityLifecycle-CvgSK5FV.d.ts → entityLifecycle-BsfCz9pS.d.ts} +5 -9
- package/dist/entityLifecycle.d.ts +1 -1
- package/dist/entityLifecycle.js +857 -515
- package/dist/entityLifecycle.js.map +1 -1
- package/dist/{entityValidation-KLZ_Xl2D.d.ts → entityValidation-B1yNEHJx.d.ts} +7 -6
- package/dist/entityValidation.d.ts +3 -1
- package/dist/entityValidation.js +60 -8
- package/dist/entityValidation.js.map +1 -1
- package/dist/{epistemicAnswers-C5ib4z6_.d.ts → epistemicAnswers-f47YMu9U.d.ts} +6 -6
- package/dist/epistemicAnswers.d.ts +1 -1
- package/dist/epistemicAnswers.js +587 -545
- package/dist/epistemicAnswers.js.map +1 -1
- package/dist/epistemicBeliefs.admin.d.ts +8 -8
- package/dist/epistemicBeliefs.admin.js +366 -203
- package/dist/epistemicBeliefs.admin.js.map +1 -1
- package/dist/epistemicBeliefs.backfills.d.ts +8 -8
- package/dist/epistemicBeliefs.backfills.js +655 -308
- package/dist/epistemicBeliefs.backfills.js.map +1 -1
- package/dist/epistemicBeliefs.confidence.d.ts +19 -14
- package/dist/epistemicBeliefs.confidence.js +634 -423
- package/dist/epistemicBeliefs.confidence.js.map +1 -1
- package/dist/epistemicBeliefs.core.d.ts +6 -6
- package/dist/epistemicBeliefs.core.js +719 -411
- package/dist/epistemicBeliefs.core.js.map +1 -1
- package/dist/epistemicBeliefs.d.ts +11 -8
- package/dist/epistemicBeliefs.forkEvidence.d.ts +2 -0
- package/dist/epistemicBeliefs.forkEvidence.js +8 -28
- package/dist/epistemicBeliefs.forkEvidence.js.map +1 -1
- package/dist/epistemicBeliefs.helpers.d.ts +69 -74
- package/dist/epistemicBeliefs.helpers.js +359 -248
- package/dist/epistemicBeliefs.helpers.js.map +1 -1
- package/dist/epistemicBeliefs.internal.d.ts +5 -5
- package/dist/epistemicBeliefs.internal.js +1246 -1044
- package/dist/epistemicBeliefs.internal.js.map +1 -1
- package/dist/epistemicBeliefs.js +4922 -3608
- package/dist/epistemicBeliefs.js.map +1 -1
- package/dist/epistemicBeliefs.lifecycle.d.ts +5 -5
- package/dist/epistemicBeliefs.lifecycle.js +1137 -818
- package/dist/epistemicBeliefs.lifecycle.js.map +1 -1
- package/dist/epistemicBeliefs.links.d.ts +7 -7
- package/dist/epistemicBeliefs.links.js +408 -307
- package/dist/epistemicBeliefs.links.js.map +1 -1
- package/dist/epistemicBeliefs.queries.d.ts +4 -4
- package/dist/epistemicBeliefs.queries.js +175 -20
- package/dist/epistemicBeliefs.queries.js.map +1 -1
- package/dist/epistemicBeliefs.topicAnchor.d.ts +6 -4
- package/dist/epistemicBeliefs.topicAnchor.js +12 -5
- package/dist/epistemicBeliefs.topicAnchor.js.map +1 -1
- package/dist/epistemicContracts.d.ts +28 -3
- package/dist/epistemicContracts.evaluators.d.ts +2 -0
- package/dist/epistemicContracts.evaluators.js +1063 -613
- package/dist/epistemicContracts.evaluators.js.map +1 -1
- package/dist/epistemicContracts.handlers.d.ts +15 -32
- package/dist/epistemicContracts.handlers.js +2086 -1644
- package/dist/epistemicContracts.handlers.js.map +1 -1
- package/dist/epistemicContracts.js +1131 -672
- package/dist/epistemicContracts.js.map +1 -1
- package/dist/epistemicContracts.metrics.d.ts +2 -0
- package/dist/epistemicContracts.metrics.js +375 -158
- package/dist/epistemicContracts.metrics.js.map +1 -1
- package/dist/epistemicContracts.types.d.ts +87 -81
- package/dist/epistemicEdgeCreation.d.ts +2 -0
- package/dist/epistemicEdgeCreation.js +87 -16
- package/dist/epistemicEdgeCreation.js.map +1 -1
- package/dist/{epistemicEdges-BF-cn4i3.d.ts → epistemicEdges-BGBh0QSP.d.ts} +4 -7
- package/dist/epistemicEdges.d.ts +6 -5
- package/dist/epistemicEdges.handlers.d.ts +3 -3
- package/dist/epistemicEdges.handlers.js +129 -24
- package/dist/epistemicEdges.handlers.js.map +1 -1
- package/dist/epistemicEdges.helpers.d.ts +6 -4
- package/dist/epistemicEdges.helpers.js +37 -2
- package/dist/epistemicEdges.helpers.js.map +1 -1
- package/dist/epistemicEdges.js +1969 -1205
- package/dist/epistemicEdges.js.map +1 -1
- package/dist/epistemicEdges.mutations.d.ts +7 -7
- package/dist/epistemicEdges.mutations.js +960 -583
- package/dist/epistemicEdges.mutations.js.map +1 -1
- package/dist/epistemicEdges.queries.d.ts +16 -16
- package/dist/epistemicEdges.queries.js +639 -367
- package/dist/epistemicEdges.queries.js.map +1 -1
- package/dist/epistemicEdges.types.d.ts +10 -8
- package/dist/epistemicEvidence.d.ts +4 -1
- package/dist/epistemicEvidence.js +937 -536
- package/dist/epistemicEvidence.js.map +1 -1
- package/dist/epistemicEvidenceHelpers.d.ts +26 -10
- package/dist/epistemicEvidenceHelpers.js +239 -200
- package/dist/epistemicEvidenceHelpers.js.map +1 -1
- package/dist/epistemicEvidenceMutations.d.ts +8 -8
- package/dist/epistemicEvidenceMutations.js +844 -696
- package/dist/epistemicEvidenceMutations.js.map +1 -1
- package/dist/epistemicEvidenceQueries.d.ts +8 -8
- package/dist/epistemicEvidenceQueries.js +514 -238
- package/dist/epistemicEvidenceQueries.js.map +1 -1
- package/dist/epistemicHelpers.d.ts +4 -2
- package/dist/epistemicHelpers.js +308 -134
- package/dist/epistemicHelpers.js.map +1 -1
- package/dist/epistemicInsert.d.ts +16 -4
- package/dist/epistemicInsert.js +6 -3
- package/dist/epistemicInsert.js.map +1 -1
- package/dist/epistemicLayerRules.d.ts +10 -8
- package/dist/epistemicLayerRules.js +1 -5
- package/dist/epistemicLayerRules.js.map +1 -1
- package/dist/{epistemicLinking-CfE00tHJ.d.ts → epistemicLinking-CsCDv2cN.d.ts} +3 -3
- package/dist/epistemicLinking.d.ts +1 -1
- package/dist/epistemicLinking.js +177 -100
- package/dist/epistemicLinking.js.map +1 -1
- package/dist/epistemicNodeCreation.d.ts +2 -0
- package/dist/epistemicNodeCreation.js +203 -40
- package/dist/epistemicNodeCreation.js.map +1 -1
- package/dist/{epistemicNodes-BCQxpYx_.d.ts → epistemicNodes-CokAgBHg.d.ts} +3 -3
- package/dist/epistemicNodes.d.ts +3 -3
- package/dist/epistemicNodes.helpers.d.ts +24 -15
- package/dist/epistemicNodes.helpers.js.map +1 -1
- package/dist/epistemicNodes.internal.d.ts +6 -6
- package/dist/epistemicNodes.internal.js +389 -319
- package/dist/epistemicNodes.internal.js.map +1 -1
- package/dist/epistemicNodes.js +704 -508
- package/dist/epistemicNodes.js.map +1 -1
- package/dist/epistemicNodes.mutations.d.ts +6 -6
- package/dist/epistemicNodes.mutations.js +564 -467
- package/dist/epistemicNodes.mutations.js.map +1 -1
- package/dist/epistemicNodes.queries.d.ts +8 -8
- package/dist/epistemicNodes.queries.js +311 -314
- package/dist/epistemicNodes.queries.js.map +1 -1
- package/dist/epistemicNodes.validators.d.ts +2 -2
- package/dist/epistemicNodes.validators.js.map +1 -1
- package/dist/epistemicQuestions.conviction.d.ts +8 -8
- package/dist/epistemicQuestions.conviction.js +665 -484
- package/dist/epistemicQuestions.conviction.js.map +1 -1
- package/dist/epistemicQuestions.create.d.ts +4 -4
- package/dist/epistemicQuestions.create.js +640 -612
- package/dist/epistemicQuestions.create.js.map +1 -1
- package/dist/epistemicQuestions.d.ts +8 -5
- package/dist/epistemicQuestions.evidence.d.ts +2 -2
- package/dist/epistemicQuestions.evidence.js +475 -383
- package/dist/epistemicQuestions.evidence.js.map +1 -1
- package/dist/epistemicQuestions.helpers.d.ts +125 -24
- package/dist/epistemicQuestions.helpers.js +240 -209
- package/dist/epistemicQuestions.helpers.js.map +1 -1
- package/dist/epistemicQuestions.js +3474 -2823
- package/dist/epistemicQuestions.js.map +1 -1
- package/dist/epistemicQuestions.lifecycle.d.ts +2 -2
- package/dist/epistemicQuestions.lifecycle.js +607 -546
- package/dist/epistemicQuestions.lifecycle.js.map +1 -1
- package/dist/epistemicQuestions.queries.d.ts +12 -7
- package/dist/epistemicQuestions.queries.js +305 -244
- package/dist/epistemicQuestions.queries.js.map +1 -1
- package/dist/epistemicQuestions.sprint.d.ts +2 -2
- package/dist/epistemicQuestions.sprint.js +600 -394
- package/dist/epistemicQuestions.sprint.js.map +1 -1
- package/dist/epistemicQuestions.tail.d.ts +6 -6
- package/dist/epistemicQuestions.tail.js +572 -433
- package/dist/epistemicQuestions.tail.js.map +1 -1
- package/dist/{epistemicSources-dlKj58Jp.d.ts → epistemicSources-DQtaEkWs.d.ts} +4 -4
- package/dist/epistemicSources.d.ts +1 -1
- package/dist/epistemicSources.js +352 -312
- package/dist/epistemicSources.js.map +1 -1
- package/dist/evaluators/index.d.ts +8 -6
- package/dist/evaluators/index.js +399 -167
- package/dist/evaluators/index.js.map +1 -1
- package/dist/evaluators/lint-checker-evaluator.d.ts +16 -0
- package/dist/evaluators/{lintCheckerEvaluator.js → lint-checker-evaluator.js} +10 -5
- package/dist/evaluators/lint-checker-evaluator.js.map +1 -0
- package/dist/evaluators/{sentryCheckerEvaluator.d.ts → sentry-checker-evaluator.d.ts} +7 -2
- package/dist/evaluators/{sentryCheckerEvaluator.js → sentry-checker-evaluator.js} +3 -3
- package/dist/evaluators/sentry-checker-evaluator.js.map +1 -0
- package/dist/evaluators/shared.d.ts +2 -2
- package/dist/evaluators/shared.js +3 -1
- package/dist/evaluators/shared.js.map +1 -1
- package/dist/evaluators/{testRunnerEvaluator.d.ts → test-runner-evaluator.d.ts} +6 -1
- package/dist/evaluators/{testRunnerEvaluator.js → test-runner-evaluator.js} +6 -4
- package/dist/evaluators/test-runner-evaluator.js.map +1 -0
- package/dist/evaluators/tsc-checker-evaluator.d.ts +16 -0
- package/dist/evaluators/{tscCheckerEvaluator.js → tsc-checker-evaluator.js} +10 -5
- package/dist/evaluators/tsc-checker-evaluator.js.map +1 -0
- package/dist/graphTypes.js +6 -2
- package/dist/graphTypes.js.map +1 -1
- package/dist/helpers.d.ts +2 -0
- package/dist/helpers.js +313 -93
- package/dist/helpers.js.map +1 -1
- package/dist/{index-C-Kyd7hD.d.ts → index-DZxyC9Pb.d.ts} +7 -6
- package/dist/index.d.ts +87 -83
- package/dist/index.js +15677 -10594
- package/dist/index.js.map +1 -1
- package/dist/invariantEnforcement.d.ts +3 -3
- package/dist/invariantEnforcement.js.map +1 -1
- package/dist/logicalRoleInference.d.ts +2 -0
- package/dist/logicalRoleInference.js +1 -1
- package/dist/logicalRoleInference.js.map +1 -1
- package/dist/matcherFeedbackUtils.d.ts +2 -2
- package/dist/matcherFeedbackUtils.js.map +1 -1
- package/dist/{ontology-matching-C6rrz2VP.d.ts → ontology-matching-C-mYFrir.d.ts} +16 -16
- package/dist/ontology-matching.d.ts +1 -1
- package/dist/{ontologyApproval-CFYmqKmk.d.ts → ontologyApproval-BVt0feJi.d.ts} +10 -10
- package/dist/ontologyApproval.d.ts +1 -1
- package/dist/ontologyApproval.js +7 -1
- package/dist/ontologyApproval.js.map +1 -1
- package/dist/ontologyDefinitions.d.ts +14 -24
- package/dist/ontologyDefinitions.js +269 -34
- package/dist/ontologyDefinitions.js.map +1 -1
- package/dist/ontologyHelpers.d.ts +13 -13
- package/dist/ontologyHelpers.js.map +1 -1
- package/dist/{ontologyRegistry-B67rPJ16.d.ts → ontologyRegistry-CljS-ENv.d.ts} +2 -2
- package/dist/ontologyRegistry.d.ts +1 -1
- package/dist/ontologyRegistry.js +34 -6
- package/dist/ontologyRegistry.js.map +1 -1
- package/dist/{projectionReconciliation-jww2fBI0.d.ts → projectionReconciliation-DnrSgHSQ.d.ts} +4 -4
- package/dist/projectionReconciliation.d.ts +1 -1
- package/dist/projectionReconciliation.js +57 -10
- package/dist/projectionReconciliation.js.map +1 -1
- package/dist/{projectionStaleness-CmdbpjVK.d.ts → projectionStaleness-C8ImQ2zP.d.ts} +17 -17
- package/dist/projectionStaleness.d.ts +1 -1
- package/dist/projectionStaleness.js +8 -2
- package/dist/projectionStaleness.js.map +1 -1
- package/dist/proof-attestation.json +1 -1
- package/dist/{questionEvidenceLinks-DFlyPpAj.d.ts → questionEvidenceLinks-_nPRa-LY.d.ts} +10 -10
- package/dist/questionEvidenceLinks.d.ts +1 -1
- package/dist/questionEvidenceLinks.js +564 -347
- package/dist/questionEvidenceLinks.js.map +1 -1
- package/dist/{resolverTypes-CC8Ea2E2.d.ts → resolverTypes-BOXPxLET.d.ts} +8 -7
- package/dist/resolverTypes.d.ts +4 -2
- package/dist/{resolvers-Br1a6eLV.d.ts → resolvers-B1TIBmRO.d.ts} +3 -1
- package/dist/resolvers.d.ts +5 -3
- package/dist/resolvers.js +121 -77
- package/dist/resolvers.js.map +1 -1
- package/dist/scopeResolverCompat.d.ts +10 -7
- package/dist/scopeResolverCompat.js +106 -123
- package/dist/scopeResolverCompat.js.map +1 -1
- package/dist/{text-matching-DNg4M5Wd.d.ts → text-matching-DzFooju6.d.ts} +7 -7
- package/dist/text-matching.d.ts +1 -1
- package/dist/topicOntologyResolver.d.ts +22 -21
- package/dist/topicOntologyResolver.js +54 -32
- package/dist/topicOntologyResolver.js.map +1 -1
- package/dist/topicProjectOverlay.d.ts +30 -20
- package/dist/topicProjectOverlay.js +120 -76
- package/dist/topicProjectOverlay.js.map +1 -1
- package/dist/{topicScope-7zhyeGl7.d.ts → topicScope-DJVa0mLa.d.ts} +22 -7
- package/dist/topicScope.d.ts +3 -1
- package/dist/topicScope.js +104 -119
- package/dist/topicScope.js.map +1 -1
- package/dist/workflowBridge.d.ts +26 -15
- package/dist/workflowBridge.js +140 -144
- package/dist/workflowBridge.js.map +1 -1
- package/dist/workspaceIsolation.d.ts +14 -12
- package/dist/workspaceIsolation.js +108 -122
- package/dist/workspaceIsolation.js.map +1 -1
- package/package.json +4 -4
- package/dist/edges/dependsOn.js.map +0 -1
- package/dist/edges/derivedFrom.js.map +0 -1
- package/dist/edges/propagationTypes.js.map +0 -1
- package/dist/evaluators/lintCheckerEvaluator.d.ts +0 -11
- package/dist/evaluators/lintCheckerEvaluator.js.map +0 -1
- package/dist/evaluators/sentryCheckerEvaluator.js.map +0 -1
- package/dist/evaluators/testRunnerEvaluator.js.map +0 -1
- package/dist/evaluators/tscCheckerEvaluator.d.ts +0 -11
- package/dist/evaluators/tscCheckerEvaluator.js.map +0 -1
- package/dist/{epistemicQuestions-bwHd2FWE.d.ts → epistemicQuestions-Do1fhYm5.d.ts} +4 -4
package/dist/helpers.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { unsafeConvexAnyApi } from '@lucern/contracts/convex/unsafeAnyApi';
|
|
2
|
+
import { componentsGeneric } from 'convex/server';
|
|
2
3
|
import { generateGlobalId } from '@lucern/contracts/ids';
|
|
3
4
|
|
|
4
5
|
// src/convex.ts
|
|
6
|
+
var unsafeApi = unsafeConvexAnyApi(
|
|
7
|
+
"graph-primitives top-level module bundle lacks a committed Convex _generated/api surface"
|
|
8
|
+
);
|
|
5
9
|
componentsGeneric();
|
|
6
|
-
var internal =
|
|
10
|
+
var internal = unsafeApi;
|
|
7
11
|
|
|
8
12
|
// src/graphTypes.ts
|
|
9
13
|
function getNodeLayer(nodeType) {
|
|
@@ -42,6 +46,14 @@ function getNodeLayer(nodeType) {
|
|
|
42
46
|
}
|
|
43
47
|
|
|
44
48
|
// src/edgeValidation.ts
|
|
49
|
+
var VALID_LAYER_CONNECTIONS = {
|
|
50
|
+
ontological: /* @__PURE__ */ new Set(["ontological", "L1", "L2", "L3"]),
|
|
51
|
+
L1: /* @__PURE__ */ new Set(["L1", "L2"]),
|
|
52
|
+
L2: /* @__PURE__ */ new Set(["L1", "L2", "L3", "ontological"]),
|
|
53
|
+
L3: /* @__PURE__ */ new Set(["L2", "L3", "L4", "ontological", "organizational"]),
|
|
54
|
+
L4: /* @__PURE__ */ new Set(["L3", "L4"]),
|
|
55
|
+
organizational: /* @__PURE__ */ new Set(["organizational", "L3"])
|
|
56
|
+
};
|
|
45
57
|
function getLayerDepth(layer) {
|
|
46
58
|
switch (layer) {
|
|
47
59
|
case "L4":
|
|
@@ -59,37 +71,13 @@ function getLayerDepth(layer) {
|
|
|
59
71
|
}
|
|
60
72
|
}
|
|
61
73
|
function isValidLayerConnection(fromLayer, toLayer) {
|
|
62
|
-
if (fromLayer
|
|
63
|
-
return
|
|
64
|
-
}
|
|
65
|
-
if (fromLayer === "ontological" && toLayer === "ontological") {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
if (fromLayer === "ontological" && (toLayer === "L3" || toLayer === "L2" || toLayer === "L1")) {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
if ((fromLayer === "L3" || fromLayer === "L2" || fromLayer === "L1") && toLayer === "ontological") {
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
if (fromLayer === "L2" && toLayer === "L1") {
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
if (fromLayer === "L2" && toLayer === "L3") {
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
if (fromLayer === "L3" && toLayer === "L2") {
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
if (fromLayer === "L3" && toLayer === "L4") {
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
if (fromLayer === "L4" && toLayer === "L3") {
|
|
87
|
-
return true;
|
|
74
|
+
if (!VALID_LAYER_CONNECTIONS[fromLayer].has(toLayer)) {
|
|
75
|
+
return false;
|
|
88
76
|
}
|
|
89
|
-
if (fromLayer === "
|
|
77
|
+
if (fromLayer === "ontological" || toLayer === "ontological") {
|
|
90
78
|
return true;
|
|
91
79
|
}
|
|
92
|
-
if (fromLayer === "organizational"
|
|
80
|
+
if (fromLayer === "organizational" || toLayer === "organizational") {
|
|
93
81
|
return true;
|
|
94
82
|
}
|
|
95
83
|
const fromDepth = getLayerDepth(fromLayer);
|
|
@@ -228,61 +216,281 @@ var EDGE_LAYER_RULES = {
|
|
|
228
216
|
to: ["L1", "L2", "L3"],
|
|
229
217
|
description: "Legacy storage migration alias for derived_from; public writes use derived_from"
|
|
230
218
|
},
|
|
231
|
-
qualifies: {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
219
|
+
qualifies: {
|
|
220
|
+
from: ["L2", "L3"],
|
|
221
|
+
to: ["L3"],
|
|
222
|
+
description: "Evidence/Belief qualifies a Belief"
|
|
223
|
+
},
|
|
224
|
+
contradicts: {
|
|
225
|
+
from: ["L2", "L3"],
|
|
226
|
+
to: ["L3"],
|
|
227
|
+
description: "Evidence/Belief contradicts a Belief"
|
|
228
|
+
},
|
|
229
|
+
reinforces: {
|
|
230
|
+
from: ["L2", "L3"],
|
|
231
|
+
to: ["L3"],
|
|
232
|
+
description: "Evidence/Belief reinforces a Belief"
|
|
233
|
+
},
|
|
234
|
+
corroborates: {
|
|
235
|
+
from: ["L2", "L3"],
|
|
236
|
+
to: ["L3"],
|
|
237
|
+
description: "Independent evidence/belief corroborates a Belief"
|
|
238
|
+
},
|
|
239
|
+
strengthened_by: {
|
|
240
|
+
from: ["L3"],
|
|
241
|
+
to: ["L2", "L3"],
|
|
242
|
+
description: "Belief is strengthened by Evidence/Belief"
|
|
243
|
+
},
|
|
244
|
+
weakened_by: {
|
|
245
|
+
from: ["L3"],
|
|
246
|
+
to: ["L2", "L3"],
|
|
247
|
+
description: "Belief is weakened by Evidence/Belief"
|
|
248
|
+
},
|
|
249
|
+
validated_by: {
|
|
250
|
+
from: ["L3"],
|
|
251
|
+
to: ["L2", "L3"],
|
|
252
|
+
description: "Belief is validated by Evidence/Belief"
|
|
253
|
+
},
|
|
254
|
+
falsified_by: {
|
|
255
|
+
from: ["L3"],
|
|
256
|
+
to: ["L2", "L3"],
|
|
257
|
+
description: "Belief is falsified by Evidence/Belief"
|
|
258
|
+
},
|
|
259
|
+
amplifies: {
|
|
260
|
+
from: ["L3"],
|
|
261
|
+
to: ["L3"],
|
|
262
|
+
description: "Belief amplifies another Belief"
|
|
263
|
+
},
|
|
264
|
+
precondition_for: {
|
|
265
|
+
from: ["L3"],
|
|
266
|
+
to: ["L3"],
|
|
267
|
+
description: "Belief is a precondition for another Belief"
|
|
268
|
+
},
|
|
269
|
+
prerequisite_for: {
|
|
270
|
+
from: ["L3"],
|
|
271
|
+
to: ["L3"],
|
|
272
|
+
description: "Belief is a prerequisite for another Belief"
|
|
273
|
+
},
|
|
274
|
+
required_for: {
|
|
275
|
+
from: ["L3"],
|
|
276
|
+
to: ["L3"],
|
|
277
|
+
description: "Belief is required for another Belief"
|
|
278
|
+
},
|
|
279
|
+
in_tension_with: {
|
|
280
|
+
from: ["L3"],
|
|
281
|
+
to: ["L3"],
|
|
282
|
+
description: "Belief is in tension with another Belief"
|
|
283
|
+
},
|
|
284
|
+
mutually_exclusive: {
|
|
285
|
+
from: ["L3"],
|
|
286
|
+
to: ["L3"],
|
|
287
|
+
description: "Beliefs cannot both hold"
|
|
288
|
+
},
|
|
289
|
+
exclusive_with: {
|
|
290
|
+
from: ["L3"],
|
|
291
|
+
to: ["L3"],
|
|
292
|
+
description: "Belief is exclusive with another Belief"
|
|
293
|
+
},
|
|
294
|
+
alternative_to: {
|
|
295
|
+
from: ["L3"],
|
|
296
|
+
to: ["L3"],
|
|
297
|
+
description: "Belief is an alternative to another Belief"
|
|
298
|
+
},
|
|
299
|
+
subsumes: {
|
|
300
|
+
from: ["L3"],
|
|
301
|
+
to: ["L3"],
|
|
302
|
+
description: "Belief subsumes a narrower Belief"
|
|
303
|
+
},
|
|
304
|
+
extends: {
|
|
305
|
+
from: ["L3"],
|
|
306
|
+
to: ["L3"],
|
|
307
|
+
description: "Belief extends another Belief"
|
|
308
|
+
},
|
|
309
|
+
refines: {
|
|
310
|
+
from: ["L3"],
|
|
311
|
+
to: ["L3"],
|
|
312
|
+
description: "Belief refines another Belief"
|
|
313
|
+
},
|
|
314
|
+
implements: {
|
|
315
|
+
from: ["L3"],
|
|
316
|
+
to: ["L3"],
|
|
317
|
+
description: "Belief implements an abstract Belief"
|
|
318
|
+
},
|
|
319
|
+
violates: {
|
|
320
|
+
from: ["L3"],
|
|
321
|
+
to: ["L3"],
|
|
322
|
+
description: "Belief violates a constraint Belief"
|
|
323
|
+
},
|
|
324
|
+
assumes: {
|
|
325
|
+
from: ["L3"],
|
|
326
|
+
to: ["L3"],
|
|
327
|
+
description: "Belief assumes another Belief"
|
|
328
|
+
},
|
|
329
|
+
would_predict: {
|
|
330
|
+
from: ["L3"],
|
|
331
|
+
to: ["L3"],
|
|
332
|
+
description: "Belief would predict another Belief"
|
|
333
|
+
},
|
|
334
|
+
analogous_to: {
|
|
335
|
+
from: ["L3"],
|
|
336
|
+
to: ["L3"],
|
|
337
|
+
description: "Belief is analogous to another Belief"
|
|
338
|
+
},
|
|
339
|
+
independent_of: {
|
|
340
|
+
from: ["L3"],
|
|
341
|
+
to: ["L3"],
|
|
342
|
+
description: "Belief is independent of another Belief"
|
|
343
|
+
},
|
|
344
|
+
correlates_with: {
|
|
345
|
+
from: ["L3"],
|
|
346
|
+
to: ["L3"],
|
|
347
|
+
description: "Belief correlates with another Belief"
|
|
348
|
+
},
|
|
349
|
+
co_changes_with: {
|
|
350
|
+
from: ["L3"],
|
|
351
|
+
to: ["L3"],
|
|
352
|
+
description: "Belief co-changes with another Belief"
|
|
353
|
+
},
|
|
354
|
+
counterfactual_of: {
|
|
355
|
+
from: ["L3"],
|
|
356
|
+
to: ["L3"],
|
|
357
|
+
description: "Belief is a counterfactual of another Belief"
|
|
358
|
+
},
|
|
359
|
+
parallel_to: {
|
|
360
|
+
from: ["L3"],
|
|
361
|
+
to: ["L3"],
|
|
362
|
+
description: "Belief runs parallel to another Belief"
|
|
363
|
+
},
|
|
364
|
+
cascade_from: {
|
|
365
|
+
from: ["L3"],
|
|
366
|
+
to: ["L3"],
|
|
367
|
+
description: "Cascade from an upstream Belief"
|
|
368
|
+
},
|
|
369
|
+
cascade_to: {
|
|
370
|
+
from: ["L3"],
|
|
371
|
+
to: ["L3"],
|
|
372
|
+
description: "Cascade to a downstream Belief"
|
|
373
|
+
},
|
|
374
|
+
collapses_if: {
|
|
375
|
+
from: ["L3"],
|
|
376
|
+
to: ["L3"],
|
|
377
|
+
description: "Belief collapses if another fails"
|
|
378
|
+
},
|
|
379
|
+
branches_from: {
|
|
380
|
+
from: ["L3"],
|
|
381
|
+
to: ["L3"],
|
|
382
|
+
description: "Belief branches from an ancestor Belief"
|
|
383
|
+
},
|
|
384
|
+
same_as: {
|
|
385
|
+
from: ["L2", "L3", "ontological"],
|
|
386
|
+
to: ["L2", "L3", "ontological"],
|
|
387
|
+
description: "Two nodes are the same entity"
|
|
388
|
+
},
|
|
389
|
+
answers: {
|
|
390
|
+
from: ["L2", "L3"],
|
|
391
|
+
to: ["L3"],
|
|
392
|
+
description: "Answer/Belief answers a Question"
|
|
393
|
+
},
|
|
394
|
+
partially_answers: {
|
|
395
|
+
from: ["L2", "L3"],
|
|
396
|
+
to: ["L3"],
|
|
397
|
+
description: "Answer/Belief partially answers a Question"
|
|
398
|
+
},
|
|
399
|
+
explores: {
|
|
400
|
+
from: ["L3"],
|
|
401
|
+
to: ["L3"],
|
|
402
|
+
description: "Question explores a Belief/Theme"
|
|
403
|
+
},
|
|
404
|
+
informed_by_theme: {
|
|
405
|
+
from: ["L3"],
|
|
406
|
+
to: ["L3"],
|
|
407
|
+
description: "Belief is informed by a Theme"
|
|
408
|
+
},
|
|
409
|
+
same_theme_as: {
|
|
410
|
+
from: ["L3"],
|
|
411
|
+
to: ["L3"],
|
|
412
|
+
description: "Two Beliefs share a Theme"
|
|
413
|
+
},
|
|
414
|
+
based_on: {
|
|
415
|
+
from: ["L4"],
|
|
416
|
+
to: ["L3"],
|
|
417
|
+
description: "Decision is based on a Belief/Question"
|
|
418
|
+
},
|
|
419
|
+
based_on_belief: {
|
|
420
|
+
from: ["L4"],
|
|
421
|
+
to: ["L3"],
|
|
422
|
+
description: "Decision is based on a Belief"
|
|
423
|
+
},
|
|
424
|
+
based_on_question: {
|
|
425
|
+
from: ["L4"],
|
|
426
|
+
to: ["L3"],
|
|
427
|
+
description: "Decision is based on a Question"
|
|
428
|
+
},
|
|
429
|
+
blocked_by_contradiction: {
|
|
430
|
+
from: ["L4"],
|
|
431
|
+
to: ["L3"],
|
|
432
|
+
description: "Decision is blocked by a Contradiction"
|
|
433
|
+
},
|
|
434
|
+
parent_of: {
|
|
435
|
+
from: ["L3", "L4", "ontological", "organizational"],
|
|
436
|
+
to: ["L2", "L3", "ontological", "organizational"],
|
|
437
|
+
description: "A is the parent of B"
|
|
438
|
+
},
|
|
439
|
+
child_of: {
|
|
440
|
+
from: ["L2", "L3", "ontological", "organizational"],
|
|
441
|
+
to: ["L3", "L4", "ontological", "organizational"],
|
|
442
|
+
description: "A is the child of B"
|
|
443
|
+
},
|
|
444
|
+
scoped_by: {
|
|
445
|
+
from: ["L2", "L3"],
|
|
446
|
+
to: ["L3", "organizational"],
|
|
447
|
+
description: "Object is scoped by a Topic/Theme"
|
|
448
|
+
},
|
|
449
|
+
cites: {
|
|
450
|
+
from: ["L2", "L3"],
|
|
451
|
+
to: ["L1", "L2"],
|
|
452
|
+
description: "Evidence/Belief cites a Source/Excerpt"
|
|
453
|
+
},
|
|
454
|
+
summarizes: {
|
|
455
|
+
from: ["L2", "L3"],
|
|
456
|
+
to: ["L1", "L2"],
|
|
457
|
+
description: "Synthesis/Evidence summarizes a Source/Evidence"
|
|
458
|
+
},
|
|
459
|
+
same_source_as: {
|
|
460
|
+
from: ["L1", "L2"],
|
|
461
|
+
to: ["L1", "L2"],
|
|
462
|
+
description: "Two nodes derive from the same Source"
|
|
463
|
+
},
|
|
464
|
+
migrating_from: {
|
|
465
|
+
from: ["L2", "L3", "L4"],
|
|
466
|
+
to: ["L1", "L2", "L3"],
|
|
467
|
+
description: "Migration lineage: from an ancestor"
|
|
468
|
+
},
|
|
469
|
+
migrating_to: {
|
|
470
|
+
from: ["L1", "L2", "L3"],
|
|
471
|
+
to: ["L2", "L3", "L4"],
|
|
472
|
+
description: "Migration lineage: to a successor"
|
|
473
|
+
},
|
|
474
|
+
about_entity: {
|
|
475
|
+
from: ["L2", "L3"],
|
|
476
|
+
to: ["ontological"],
|
|
477
|
+
description: "Belief/Evidence is about an Entity"
|
|
478
|
+
},
|
|
479
|
+
entity_referenced_in: {
|
|
480
|
+
from: ["ontological"],
|
|
481
|
+
to: ["L1", "L2"],
|
|
482
|
+
description: "Entity is referenced in a Source/Evidence"
|
|
483
|
+
},
|
|
484
|
+
related_to: {
|
|
485
|
+
from: ["L2", "L3", "ontological", "organizational"],
|
|
486
|
+
to: ["L2", "L3", "ontological", "organizational"],
|
|
487
|
+
description: "Lateral adjacency; no confidence pressure"
|
|
488
|
+
},
|
|
489
|
+
blocks: {
|
|
490
|
+
from: ["L3", "L4"],
|
|
491
|
+
to: ["L3", "L4"],
|
|
492
|
+
description: "A blocks B (structural gate)"
|
|
493
|
+
}
|
|
286
494
|
};
|
|
287
495
|
function validateEdgeLayers(edgeType, fromLayer, toLayer) {
|
|
288
496
|
const rules = EDGE_LAYER_RULES[edgeType];
|
|
@@ -323,15 +531,27 @@ function validateEdgeLayers(edgeType, fromLayer, toLayer) {
|
|
|
323
531
|
}
|
|
324
532
|
|
|
325
533
|
// src/helpers.ts
|
|
534
|
+
function readOptionalString(value) {
|
|
535
|
+
return typeof value === "string" && value.trim().length > 0 ? value : void 0;
|
|
536
|
+
}
|
|
326
537
|
async function createEpistemicEdge(ctx, params) {
|
|
327
538
|
const globalId = generateGlobalId();
|
|
328
539
|
const fromNode = await ctx.db.get(params.fromNodeId);
|
|
329
540
|
const toNode = await ctx.db.get(params.toNodeId);
|
|
330
|
-
if (!fromNode
|
|
541
|
+
if (!(fromNode && toNode)) {
|
|
331
542
|
throw new Error("One or both nodes not found");
|
|
332
543
|
}
|
|
333
|
-
const
|
|
334
|
-
const
|
|
544
|
+
const fromNodeType = readOptionalString(fromNode.nodeType);
|
|
545
|
+
const toNodeType = readOptionalString(toNode.nodeType);
|
|
546
|
+
const fromGlobalId = readOptionalString(fromNode.globalId);
|
|
547
|
+
const toGlobalId = readOptionalString(toNode.globalId);
|
|
548
|
+
if (!(fromNodeType && toNodeType && fromGlobalId && toGlobalId)) {
|
|
549
|
+
throw new Error(
|
|
550
|
+
"Cannot create epistemic edge without canonical nodeType and globalId on both endpoints"
|
|
551
|
+
);
|
|
552
|
+
}
|
|
553
|
+
const fromLayer = readOptionalString(fromNode.epistemicLayer) ?? getNodeLayer(fromNodeType);
|
|
554
|
+
const toLayer = readOptionalString(toNode.epistemicLayer) ?? getNodeLayer(toNodeType);
|
|
335
555
|
if (!params.skipLayerValidation) {
|
|
336
556
|
const validation = validateEdgeLayers(
|
|
337
557
|
params.edgeType,
|
|
@@ -340,22 +560,22 @@ async function createEpistemicEdge(ctx, params) {
|
|
|
340
560
|
);
|
|
341
561
|
if (!validation.valid) {
|
|
342
562
|
throw new Error(
|
|
343
|
-
`[EdgeValidation] Invalid edge: ${validation.reason}. Attempted: ${params.edgeType} from ${
|
|
563
|
+
`[EdgeValidation] Invalid edge: ${validation.reason}. Attempted: ${params.edgeType} from ${fromNodeType}(${fromLayer}) \u2192 ${toNodeType}(${toLayer})`
|
|
344
564
|
);
|
|
345
565
|
}
|
|
346
566
|
}
|
|
347
567
|
await ctx.scheduler.runAfter(0, internal.neo4jEdgeAPI.createEdge, {
|
|
348
568
|
globalId,
|
|
349
|
-
fromGlobalId
|
|
350
|
-
toGlobalId
|
|
569
|
+
fromGlobalId,
|
|
570
|
+
toGlobalId,
|
|
351
571
|
edgeType: params.edgeType,
|
|
352
572
|
weight: params.weight,
|
|
353
573
|
confidence: params.confidence,
|
|
354
574
|
context: params.context,
|
|
355
575
|
createdBy: params.createdBy,
|
|
356
576
|
topicId: params.projectId ? String(params.projectId) : void 0,
|
|
357
|
-
fromNodeType
|
|
358
|
-
toNodeType
|
|
577
|
+
fromNodeType,
|
|
578
|
+
toNodeType,
|
|
359
579
|
fromLayer,
|
|
360
580
|
toLayer
|
|
361
581
|
});
|