@lucern/graph-primitives 1.0.22 → 1.0.23
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.js +46 -0
- package/dist/beliefDecay.js.map +1 -1
- package/dist/beliefEvidenceLinks.js +87 -5
- package/dist/beliefEvidenceLinks.js.map +1 -1
- package/dist/beliefEvidenceLinks.operational.js +41 -5
- package/dist/beliefEvidenceLinks.operational.js.map +1 -1
- package/dist/contradictions.js +46 -0
- package/dist/contradictions.js.map +1 -1
- package/dist/edgeValidation.js +66 -1
- package/dist/edgeValidation.js.map +1 -1
- package/dist/entityBridge.js +66 -1
- package/dist/entityBridge.js.map +1 -1
- package/dist/entityLifecycle.js +90 -5
- package/dist/entityLifecycle.js.map +1 -1
- package/dist/epistemicAnswers.js +64 -11
- package/dist/epistemicAnswers.js.map +1 -1
- package/dist/epistemicBeliefs.admin.js +46 -0
- package/dist/epistemicBeliefs.admin.js.map +1 -1
- package/dist/epistemicBeliefs.backfills.js +46 -0
- package/dist/epistemicBeliefs.backfills.js.map +1 -1
- package/dist/epistemicBeliefs.confidence.d.ts +1 -1
- package/dist/epistemicBeliefs.confidence.js +53 -6
- package/dist/epistemicBeliefs.confidence.js.map +1 -1
- package/dist/epistemicBeliefs.core.js +91 -11
- package/dist/epistemicBeliefs.core.js.map +1 -1
- package/dist/epistemicBeliefs.d.ts +1 -1
- package/dist/epistemicBeliefs.forkEvidence.js.map +1 -1
- package/dist/epistemicBeliefs.helpers.d.ts +2 -2
- package/dist/epistemicBeliefs.helpers.js +46 -0
- package/dist/epistemicBeliefs.helpers.js.map +1 -1
- package/dist/epistemicBeliefs.internal.js +90 -10
- package/dist/epistemicBeliefs.internal.js.map +1 -1
- package/dist/epistemicBeliefs.js +103 -22
- package/dist/epistemicBeliefs.js.map +1 -1
- package/dist/epistemicBeliefs.lifecycle.js +53 -6
- package/dist/epistemicBeliefs.lifecycle.js.map +1 -1
- package/dist/epistemicBeliefs.links.js +85 -4
- package/dist/epistemicBeliefs.links.js.map +1 -1
- package/dist/epistemicBeliefs.topicAnchor.js +39 -8
- package/dist/epistemicBeliefs.topicAnchor.js.map +1 -1
- package/dist/epistemicContracts.evaluators.js +53 -6
- package/dist/epistemicContracts.evaluators.js.map +1 -1
- package/dist/epistemicContracts.handlers.js +54 -10
- package/dist/epistemicContracts.handlers.js.map +1 -1
- package/dist/epistemicContracts.js +54 -10
- package/dist/epistemicContracts.js.map +1 -1
- package/dist/epistemicEdges.d.ts +1 -1
- package/dist/epistemicEdges.handlers.js +48 -3
- package/dist/epistemicEdges.handlers.js.map +1 -1
- package/dist/epistemicEdges.helpers.d.ts +3 -3
- package/dist/epistemicEdges.js +162 -4
- package/dist/epistemicEdges.js.map +1 -1
- package/dist/epistemicEdges.mutations.js +112 -1
- package/dist/epistemicEdges.mutations.js.map +1 -1
- package/dist/epistemicEdges.queries.js +46 -0
- package/dist/epistemicEdges.queries.js.map +1 -1
- package/dist/epistemicEdges.types.d.ts +1 -1
- package/dist/epistemicEvidence.d.ts +1 -1
- package/dist/epistemicEvidence.js +168 -14
- package/dist/epistemicEvidence.js.map +1 -1
- package/dist/epistemicEvidenceHelpers.d.ts +1 -1
- package/dist/epistemicEvidenceHelpers.js +46 -0
- package/dist/epistemicEvidenceHelpers.js.map +1 -1
- package/dist/epistemicEvidenceMutations.js +168 -14
- package/dist/epistemicEvidenceMutations.js.map +1 -1
- package/dist/epistemicEvidenceQueries.js +46 -0
- package/dist/epistemicEvidenceQueries.js.map +1 -1
- package/dist/epistemicHelpers.js +11 -6
- package/dist/epistemicHelpers.js.map +1 -1
- package/dist/epistemicInsert.d.ts +8 -0
- package/dist/epistemicInsert.js +45 -0
- package/dist/epistemicInsert.js.map +1 -0
- package/dist/epistemicNodeCreation.js +11 -6
- package/dist/epistemicNodeCreation.js.map +1 -1
- package/dist/epistemicNodes.helpers.d.ts +1 -1
- package/dist/epistemicNodes.internal.js +53 -1
- package/dist/epistemicNodes.internal.js.map +1 -1
- package/dist/epistemicNodes.js +56 -4
- package/dist/epistemicNodes.js.map +1 -1
- package/dist/epistemicNodes.mutations.js +55 -3
- package/dist/epistemicNodes.mutations.js.map +1 -1
- package/dist/epistemicNodes.queries.js +46 -0
- package/dist/epistemicNodes.queries.js.map +1 -1
- package/dist/epistemicNodes.validators.d.ts +1 -1
- package/dist/epistemicQuestions.conviction.js +46 -0
- package/dist/epistemicQuestions.conviction.js.map +1 -1
- package/dist/epistemicQuestions.create.js +58 -7
- package/dist/epistemicQuestions.create.js.map +1 -1
- package/dist/epistemicQuestions.d.ts +1 -1
- package/dist/epistemicQuestions.evidence.js +53 -2
- package/dist/epistemicQuestions.evidence.js.map +1 -1
- package/dist/epistemicQuestions.helpers.d.ts +1 -1
- package/dist/epistemicQuestions.helpers.js +46 -0
- package/dist/epistemicQuestions.helpers.js.map +1 -1
- package/dist/epistemicQuestions.js +60 -9
- package/dist/epistemicQuestions.js.map +1 -1
- package/dist/epistemicQuestions.lifecycle.js +46 -0
- package/dist/epistemicQuestions.lifecycle.js.map +1 -1
- package/dist/epistemicQuestions.queries.js +46 -0
- package/dist/epistemicQuestions.queries.js.map +1 -1
- package/dist/epistemicQuestions.sprint.js +46 -0
- package/dist/epistemicQuestions.sprint.js.map +1 -1
- package/dist/epistemicQuestions.tail.js +53 -2
- package/dist/epistemicQuestions.tail.js.map +1 -1
- package/dist/epistemicSources.js +53 -2
- package/dist/epistemicSources.js.map +1 -1
- package/dist/helpers.js +66 -1
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +304 -76
- package/dist/index.js.map +1 -1
- package/dist/proof-attestation.json +1 -1
- package/dist/questionEvidenceLinks.js +46 -0
- package/dist/questionEvidenceLinks.js.map +1 -1
- package/dist/scopeResolverCompat.d.ts +1 -1
- package/dist/scopeResolverCompat.js +46 -0
- package/dist/scopeResolverCompat.js.map +1 -1
- package/dist/{topicScope-By_zp4tt.d.ts → topicScope-7zhyeGl7.d.ts} +1 -1
- package/dist/topicScope.d.ts +1 -1
- package/dist/topicScope.js +46 -0
- package/dist/topicScope.js.map +1 -1
- package/dist/workflowBridge.js +46 -0
- package/dist/workflowBridge.js.map +1 -1
- package/dist/workspaceIsolation.d.ts +1 -1
- package/dist/workspaceIsolation.js +46 -0
- package/dist/workspaceIsolation.js.map +1 -1
- package/package.json +4 -4
|
@@ -3,6 +3,8 @@ import { requireProjectAccess } from '@lucern/access-control/access';
|
|
|
3
3
|
import { permissiveReturn } from '@lucern/contracts/schema-helpers/validators';
|
|
4
4
|
import { componentsGeneric, anyApi, mutationGeneric } from 'convex/server';
|
|
5
5
|
import { isNodeType, getLayerForNodeType } from '@lucern/contracts/schema-helpers/spine/tables/epistemicNodes';
|
|
6
|
+
import { assertUuidV7Identity } from '@lucern/contracts/ids';
|
|
7
|
+
import '@lucern/contracts';
|
|
6
8
|
|
|
7
9
|
// src/epistemicNodes.mutations.ts
|
|
8
10
|
var api = anyApi;
|
|
@@ -58,6 +60,35 @@ function getNodeLayer(nodeType) {
|
|
|
58
60
|
return "L2";
|
|
59
61
|
}
|
|
60
62
|
var LEGACY_SCOPE_FIELD = "graphScopeProjectId";
|
|
63
|
+
async function resolveTopicNodeScopeOrNull(ctx, ref) {
|
|
64
|
+
if (!ctx?.db || typeof ctx.db.query !== "function") {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
let node = null;
|
|
68
|
+
try {
|
|
69
|
+
const byGlobalId = await ctx.db.query("epistemicNodes").withIndex("by_globalId", (q) => q.eq("globalId", ref)).first();
|
|
70
|
+
if (byGlobalId && byGlobalId.nodeType === "topic") {
|
|
71
|
+
node = byGlobalId;
|
|
72
|
+
}
|
|
73
|
+
} catch (error) {
|
|
74
|
+
debugGraphPrimitiveFallback(
|
|
75
|
+
"[topicScope] topic-node scope lookup by globalId failed",
|
|
76
|
+
{ error, ref }
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
if (!node) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const scopeKey = normalizeScopeValue(node.topicId) ?? normalizeScopeValue(node.globalId);
|
|
83
|
+
if (!scopeKey) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
topicId: scopeKey,
|
|
88
|
+
projectId: asMappedProjectId(node),
|
|
89
|
+
source: "topic_node"
|
|
90
|
+
};
|
|
91
|
+
}
|
|
61
92
|
function asMappedProjectId(topic) {
|
|
62
93
|
if (!topic) {
|
|
63
94
|
return;
|
|
@@ -198,6 +229,13 @@ async function resolveTopicProjectScope(ctx, args) {
|
|
|
198
229
|
) ?? null;
|
|
199
230
|
}
|
|
200
231
|
if (!topic) {
|
|
232
|
+
const nodeScope = await resolveTopicNodeScopeOrNull(
|
|
233
|
+
ctx,
|
|
234
|
+
String(args.topicId)
|
|
235
|
+
);
|
|
236
|
+
if (nodeScope) {
|
|
237
|
+
return nodeScope;
|
|
238
|
+
}
|
|
201
239
|
throw new Error(`Topic not found: ${String(args.topicId)}`);
|
|
202
240
|
}
|
|
203
241
|
const inherited = await resolveInheritedWorkspaceScope(ctx, topic);
|
|
@@ -268,6 +306,16 @@ async function resolveTopicProjectScope(ctx, args) {
|
|
|
268
306
|
source: "project_mapped_topic"
|
|
269
307
|
};
|
|
270
308
|
}
|
|
309
|
+
const nodeScope = await resolveTopicNodeScopeOrNull(
|
|
310
|
+
ctx,
|
|
311
|
+
String(args.projectId)
|
|
312
|
+
);
|
|
313
|
+
if (nodeScope) {
|
|
314
|
+
return {
|
|
315
|
+
...nodeScope,
|
|
316
|
+
projectId: nodeScope.projectId ?? String(args.projectId)
|
|
317
|
+
};
|
|
318
|
+
}
|
|
271
319
|
throw new Error(
|
|
272
320
|
`Legacy project scope ${String(args.projectId)} has no mapped topic.`
|
|
273
321
|
);
|
|
@@ -662,6 +710,10 @@ var verificationStatusValidator = v.union(
|
|
|
662
710
|
v.literal("contradicted"),
|
|
663
711
|
v.literal("outdated")
|
|
664
712
|
);
|
|
713
|
+
async function insertEpistemicNode(ctx, doc) {
|
|
714
|
+
assertUuidV7Identity("epistemicNodes", doc.globalId);
|
|
715
|
+
return ctx.db.insert("epistemicNodes", doc);
|
|
716
|
+
}
|
|
665
717
|
|
|
666
718
|
// src/epistemicNodes.mutations.ts
|
|
667
719
|
var optionalNodeScopeArgs = optionalScopeArgs;
|
|
@@ -739,7 +791,7 @@ var create = mutation({
|
|
|
739
791
|
"Workspace-scoped reasoning isolation requires topicId or projectId for non-ontological node creation."
|
|
740
792
|
);
|
|
741
793
|
}
|
|
742
|
-
const nodeId = await ctx
|
|
794
|
+
const nodeId = await insertEpistemicNode(ctx, {
|
|
743
795
|
globalId: args.globalId,
|
|
744
796
|
nodeType: args.nodeType,
|
|
745
797
|
epistemicLayer,
|
|
@@ -904,7 +956,7 @@ var supersede = mutation({
|
|
|
904
956
|
});
|
|
905
957
|
const now = Date.now();
|
|
906
958
|
const epistemicLayer = oldNode.epistemicLayer || getNodeLayer(oldNode.nodeType);
|
|
907
|
-
const newNodeId = await ctx
|
|
959
|
+
const newNodeId = await insertEpistemicNode(ctx, {
|
|
908
960
|
globalId: args.newGlobalId,
|
|
909
961
|
nodeType: oldNode.nodeType,
|
|
910
962
|
epistemicLayer,
|
|
@@ -1110,7 +1162,7 @@ var batchCreate = mutation({
|
|
|
1110
1162
|
});
|
|
1111
1163
|
const epistemicLayer = getNodeLayer(node.nodeType);
|
|
1112
1164
|
const resolvedScope = await resolveNodeScope(node);
|
|
1113
|
-
const nodeId = await ctx
|
|
1165
|
+
const nodeId = await insertEpistemicNode(ctx, {
|
|
1114
1166
|
...node,
|
|
1115
1167
|
epistemicLayer,
|
|
1116
1168
|
// Phase 2B: Auto-derived from nodeType
|