@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.
Files changed (319) hide show
  1. package/dist/{beliefDecay-DZ6tkLYq.d.ts → beliefDecay-BmkEk5OJ.d.ts} +3 -3
  2. package/dist/beliefDecay.d.ts +1 -1
  3. package/dist/beliefDecay.js +448 -314
  4. package/dist/beliefDecay.js.map +1 -1
  5. package/dist/{beliefEvidenceLinks-CWOXxxJg.d.ts → beliefEvidenceLinks-BzfjON_6.d.ts} +13 -13
  6. package/dist/beliefEvidenceLinks.d.ts +1 -1
  7. package/dist/beliefEvidenceLinks.js +843 -624
  8. package/dist/beliefEvidenceLinks.js.map +1 -1
  9. package/dist/beliefEvidenceLinks.operational.d.ts +7 -5
  10. package/dist/beliefEvidenceLinks.operational.js +91 -18
  11. package/dist/beliefEvidenceLinks.operational.js.map +1 -1
  12. package/dist/beliefLifecycle.js.map +1 -1
  13. package/dist/confidencePropagationDispatch.d.ts +28 -27
  14. package/dist/confidencePropagationDispatch.js +157 -99
  15. package/dist/confidencePropagationDispatch.js.map +1 -1
  16. package/dist/{contradictions-51VLsESq.d.ts → contradictions-BATPuZTL.d.ts} +10 -10
  17. package/dist/contradictions.d.ts +1 -1
  18. package/dist/contradictions.js +398 -228
  19. package/dist/contradictions.js.map +1 -1
  20. package/dist/convex.d.ts +65 -30
  21. package/dist/convex.js +7 -3
  22. package/dist/convex.js.map +1 -1
  23. package/dist/debug.js.map +1 -1
  24. package/dist/edgeValidation.js +293 -85
  25. package/dist/edgeValidation.js.map +1 -1
  26. package/dist/edges/contains.d.ts +1 -1
  27. package/dist/edges/contains.js.map +1 -1
  28. package/dist/edges/contradicts.d.ts +1 -1
  29. package/dist/edges/contradicts.js.map +1 -1
  30. package/dist/edges/{dependsOn.d.ts → depends-on.d.ts} +1 -1
  31. package/dist/edges/{dependsOn.js → depends-on.js} +4 -4
  32. package/dist/edges/depends-on.js.map +1 -0
  33. package/dist/edges/{derivedFrom.d.ts → derived-from.d.ts} +1 -1
  34. package/dist/edges/{derivedFrom.js → derived-from.js} +3 -3
  35. package/dist/edges/derived-from.js.map +1 -0
  36. package/dist/edges/elaborates.d.ts +1 -1
  37. package/dist/edges/elaborates.js.map +1 -1
  38. package/dist/edges/index.d.ts +7 -3
  39. package/dist/edges/index.js +7 -4
  40. package/dist/edges/index.js.map +1 -1
  41. package/dist/edges/informs.d.ts +1 -1
  42. package/dist/edges/informs.js.map +1 -1
  43. package/dist/edges/{propagationTypes.d.ts → propagation-types.d.ts} +14 -14
  44. package/dist/edges/{propagationTypes.js → propagation-types.js} +3 -3
  45. package/dist/edges/propagation-types.js.map +1 -0
  46. package/dist/edges/refutes.d.ts +1 -1
  47. package/dist/edges/refutes.js.map +1 -1
  48. package/dist/edges/supports.d.ts +1 -1
  49. package/dist/edges/supports.js.map +1 -1
  50. package/dist/edges/tests.d.ts +1 -1
  51. package/dist/edges/tests.js.map +1 -1
  52. package/dist/edges/utils.d.ts +1 -1
  53. package/dist/edges/utils.js.map +1 -1
  54. package/dist/embeddingTrigger.d.ts +14 -6
  55. package/dist/embeddingTrigger.js +11 -14
  56. package/dist/embeddingTrigger.js.map +1 -1
  57. package/dist/{entityBridge-DMaKooYn.d.ts → entityBridge-BhVDM3pc.d.ts} +5 -5
  58. package/dist/entityBridge.d.ts +1 -1
  59. package/dist/entityBridge.js +602 -225
  60. package/dist/entityBridge.js.map +1 -1
  61. package/dist/entityCanonicalMatch.d.ts +14 -12
  62. package/dist/entityCanonicalMatch.js.map +1 -1
  63. package/dist/{entityLifecycle-CvgSK5FV.d.ts → entityLifecycle-BsfCz9pS.d.ts} +5 -9
  64. package/dist/entityLifecycle.d.ts +1 -1
  65. package/dist/entityLifecycle.js +857 -515
  66. package/dist/entityLifecycle.js.map +1 -1
  67. package/dist/{entityValidation-KLZ_Xl2D.d.ts → entityValidation-B1yNEHJx.d.ts} +7 -6
  68. package/dist/entityValidation.d.ts +3 -1
  69. package/dist/entityValidation.js +60 -8
  70. package/dist/entityValidation.js.map +1 -1
  71. package/dist/{epistemicAnswers-C5ib4z6_.d.ts → epistemicAnswers-f47YMu9U.d.ts} +6 -6
  72. package/dist/epistemicAnswers.d.ts +1 -1
  73. package/dist/epistemicAnswers.js +587 -545
  74. package/dist/epistemicAnswers.js.map +1 -1
  75. package/dist/epistemicBeliefs.admin.d.ts +8 -8
  76. package/dist/epistemicBeliefs.admin.js +366 -203
  77. package/dist/epistemicBeliefs.admin.js.map +1 -1
  78. package/dist/epistemicBeliefs.backfills.d.ts +8 -8
  79. package/dist/epistemicBeliefs.backfills.js +655 -308
  80. package/dist/epistemicBeliefs.backfills.js.map +1 -1
  81. package/dist/epistemicBeliefs.confidence.d.ts +19 -14
  82. package/dist/epistemicBeliefs.confidence.js +634 -423
  83. package/dist/epistemicBeliefs.confidence.js.map +1 -1
  84. package/dist/epistemicBeliefs.core.d.ts +6 -6
  85. package/dist/epistemicBeliefs.core.js +719 -411
  86. package/dist/epistemicBeliefs.core.js.map +1 -1
  87. package/dist/epistemicBeliefs.d.ts +11 -8
  88. package/dist/epistemicBeliefs.forkEvidence.d.ts +2 -0
  89. package/dist/epistemicBeliefs.forkEvidence.js +8 -28
  90. package/dist/epistemicBeliefs.forkEvidence.js.map +1 -1
  91. package/dist/epistemicBeliefs.helpers.d.ts +69 -74
  92. package/dist/epistemicBeliefs.helpers.js +359 -248
  93. package/dist/epistemicBeliefs.helpers.js.map +1 -1
  94. package/dist/epistemicBeliefs.internal.d.ts +5 -5
  95. package/dist/epistemicBeliefs.internal.js +1246 -1044
  96. package/dist/epistemicBeliefs.internal.js.map +1 -1
  97. package/dist/epistemicBeliefs.js +4922 -3608
  98. package/dist/epistemicBeliefs.js.map +1 -1
  99. package/dist/epistemicBeliefs.lifecycle.d.ts +5 -5
  100. package/dist/epistemicBeliefs.lifecycle.js +1137 -818
  101. package/dist/epistemicBeliefs.lifecycle.js.map +1 -1
  102. package/dist/epistemicBeliefs.links.d.ts +7 -7
  103. package/dist/epistemicBeliefs.links.js +408 -307
  104. package/dist/epistemicBeliefs.links.js.map +1 -1
  105. package/dist/epistemicBeliefs.queries.d.ts +4 -4
  106. package/dist/epistemicBeliefs.queries.js +175 -20
  107. package/dist/epistemicBeliefs.queries.js.map +1 -1
  108. package/dist/epistemicBeliefs.topicAnchor.d.ts +6 -4
  109. package/dist/epistemicBeliefs.topicAnchor.js +12 -5
  110. package/dist/epistemicBeliefs.topicAnchor.js.map +1 -1
  111. package/dist/epistemicContracts.d.ts +28 -3
  112. package/dist/epistemicContracts.evaluators.d.ts +2 -0
  113. package/dist/epistemicContracts.evaluators.js +1063 -613
  114. package/dist/epistemicContracts.evaluators.js.map +1 -1
  115. package/dist/epistemicContracts.handlers.d.ts +15 -32
  116. package/dist/epistemicContracts.handlers.js +2086 -1644
  117. package/dist/epistemicContracts.handlers.js.map +1 -1
  118. package/dist/epistemicContracts.js +1131 -672
  119. package/dist/epistemicContracts.js.map +1 -1
  120. package/dist/epistemicContracts.metrics.d.ts +2 -0
  121. package/dist/epistemicContracts.metrics.js +375 -158
  122. package/dist/epistemicContracts.metrics.js.map +1 -1
  123. package/dist/epistemicContracts.types.d.ts +87 -81
  124. package/dist/epistemicEdgeCreation.d.ts +2 -0
  125. package/dist/epistemicEdgeCreation.js +87 -16
  126. package/dist/epistemicEdgeCreation.js.map +1 -1
  127. package/dist/{epistemicEdges-BF-cn4i3.d.ts → epistemicEdges-BGBh0QSP.d.ts} +4 -7
  128. package/dist/epistemicEdges.d.ts +6 -5
  129. package/dist/epistemicEdges.handlers.d.ts +3 -3
  130. package/dist/epistemicEdges.handlers.js +129 -24
  131. package/dist/epistemicEdges.handlers.js.map +1 -1
  132. package/dist/epistemicEdges.helpers.d.ts +6 -4
  133. package/dist/epistemicEdges.helpers.js +37 -2
  134. package/dist/epistemicEdges.helpers.js.map +1 -1
  135. package/dist/epistemicEdges.js +1969 -1205
  136. package/dist/epistemicEdges.js.map +1 -1
  137. package/dist/epistemicEdges.mutations.d.ts +7 -7
  138. package/dist/epistemicEdges.mutations.js +960 -583
  139. package/dist/epistemicEdges.mutations.js.map +1 -1
  140. package/dist/epistemicEdges.queries.d.ts +16 -16
  141. package/dist/epistemicEdges.queries.js +639 -367
  142. package/dist/epistemicEdges.queries.js.map +1 -1
  143. package/dist/epistemicEdges.types.d.ts +10 -8
  144. package/dist/epistemicEvidence.d.ts +4 -1
  145. package/dist/epistemicEvidence.js +937 -536
  146. package/dist/epistemicEvidence.js.map +1 -1
  147. package/dist/epistemicEvidenceHelpers.d.ts +26 -10
  148. package/dist/epistemicEvidenceHelpers.js +239 -200
  149. package/dist/epistemicEvidenceHelpers.js.map +1 -1
  150. package/dist/epistemicEvidenceMutations.d.ts +8 -8
  151. package/dist/epistemicEvidenceMutations.js +844 -696
  152. package/dist/epistemicEvidenceMutations.js.map +1 -1
  153. package/dist/epistemicEvidenceQueries.d.ts +8 -8
  154. package/dist/epistemicEvidenceQueries.js +514 -238
  155. package/dist/epistemicEvidenceQueries.js.map +1 -1
  156. package/dist/epistemicHelpers.d.ts +4 -2
  157. package/dist/epistemicHelpers.js +308 -134
  158. package/dist/epistemicHelpers.js.map +1 -1
  159. package/dist/epistemicInsert.d.ts +16 -4
  160. package/dist/epistemicInsert.js +6 -3
  161. package/dist/epistemicInsert.js.map +1 -1
  162. package/dist/epistemicLayerRules.d.ts +10 -8
  163. package/dist/epistemicLayerRules.js +1 -5
  164. package/dist/epistemicLayerRules.js.map +1 -1
  165. package/dist/{epistemicLinking-CfE00tHJ.d.ts → epistemicLinking-CsCDv2cN.d.ts} +3 -3
  166. package/dist/epistemicLinking.d.ts +1 -1
  167. package/dist/epistemicLinking.js +177 -100
  168. package/dist/epistemicLinking.js.map +1 -1
  169. package/dist/epistemicNodeCreation.d.ts +2 -0
  170. package/dist/epistemicNodeCreation.js +203 -40
  171. package/dist/epistemicNodeCreation.js.map +1 -1
  172. package/dist/{epistemicNodes-BCQxpYx_.d.ts → epistemicNodes-CokAgBHg.d.ts} +3 -3
  173. package/dist/epistemicNodes.d.ts +3 -3
  174. package/dist/epistemicNodes.helpers.d.ts +24 -15
  175. package/dist/epistemicNodes.helpers.js.map +1 -1
  176. package/dist/epistemicNodes.internal.d.ts +6 -6
  177. package/dist/epistemicNodes.internal.js +389 -319
  178. package/dist/epistemicNodes.internal.js.map +1 -1
  179. package/dist/epistemicNodes.js +704 -508
  180. package/dist/epistemicNodes.js.map +1 -1
  181. package/dist/epistemicNodes.mutations.d.ts +6 -6
  182. package/dist/epistemicNodes.mutations.js +564 -467
  183. package/dist/epistemicNodes.mutations.js.map +1 -1
  184. package/dist/epistemicNodes.queries.d.ts +8 -8
  185. package/dist/epistemicNodes.queries.js +311 -314
  186. package/dist/epistemicNodes.queries.js.map +1 -1
  187. package/dist/epistemicNodes.validators.d.ts +2 -2
  188. package/dist/epistemicNodes.validators.js.map +1 -1
  189. package/dist/epistemicQuestions.conviction.d.ts +8 -8
  190. package/dist/epistemicQuestions.conviction.js +665 -484
  191. package/dist/epistemicQuestions.conviction.js.map +1 -1
  192. package/dist/epistemicQuestions.create.d.ts +4 -4
  193. package/dist/epistemicQuestions.create.js +640 -612
  194. package/dist/epistemicQuestions.create.js.map +1 -1
  195. package/dist/epistemicQuestions.d.ts +8 -5
  196. package/dist/epistemicQuestions.evidence.d.ts +2 -2
  197. package/dist/epistemicQuestions.evidence.js +475 -383
  198. package/dist/epistemicQuestions.evidence.js.map +1 -1
  199. package/dist/epistemicQuestions.helpers.d.ts +125 -24
  200. package/dist/epistemicQuestions.helpers.js +240 -209
  201. package/dist/epistemicQuestions.helpers.js.map +1 -1
  202. package/dist/epistemicQuestions.js +3474 -2823
  203. package/dist/epistemicQuestions.js.map +1 -1
  204. package/dist/epistemicQuestions.lifecycle.d.ts +2 -2
  205. package/dist/epistemicQuestions.lifecycle.js +607 -546
  206. package/dist/epistemicQuestions.lifecycle.js.map +1 -1
  207. package/dist/epistemicQuestions.queries.d.ts +12 -7
  208. package/dist/epistemicQuestions.queries.js +305 -244
  209. package/dist/epistemicQuestions.queries.js.map +1 -1
  210. package/dist/epistemicQuestions.sprint.d.ts +2 -2
  211. package/dist/epistemicQuestions.sprint.js +600 -394
  212. package/dist/epistemicQuestions.sprint.js.map +1 -1
  213. package/dist/epistemicQuestions.tail.d.ts +6 -6
  214. package/dist/epistemicQuestions.tail.js +572 -433
  215. package/dist/epistemicQuestions.tail.js.map +1 -1
  216. package/dist/{epistemicSources-dlKj58Jp.d.ts → epistemicSources-DQtaEkWs.d.ts} +4 -4
  217. package/dist/epistemicSources.d.ts +1 -1
  218. package/dist/epistemicSources.js +352 -312
  219. package/dist/epistemicSources.js.map +1 -1
  220. package/dist/evaluators/index.d.ts +8 -6
  221. package/dist/evaluators/index.js +399 -167
  222. package/dist/evaluators/index.js.map +1 -1
  223. package/dist/evaluators/lint-checker-evaluator.d.ts +16 -0
  224. package/dist/evaluators/{lintCheckerEvaluator.js → lint-checker-evaluator.js} +10 -5
  225. package/dist/evaluators/lint-checker-evaluator.js.map +1 -0
  226. package/dist/evaluators/{sentryCheckerEvaluator.d.ts → sentry-checker-evaluator.d.ts} +7 -2
  227. package/dist/evaluators/{sentryCheckerEvaluator.js → sentry-checker-evaluator.js} +3 -3
  228. package/dist/evaluators/sentry-checker-evaluator.js.map +1 -0
  229. package/dist/evaluators/shared.d.ts +2 -2
  230. package/dist/evaluators/shared.js +3 -1
  231. package/dist/evaluators/shared.js.map +1 -1
  232. package/dist/evaluators/{testRunnerEvaluator.d.ts → test-runner-evaluator.d.ts} +6 -1
  233. package/dist/evaluators/{testRunnerEvaluator.js → test-runner-evaluator.js} +6 -4
  234. package/dist/evaluators/test-runner-evaluator.js.map +1 -0
  235. package/dist/evaluators/tsc-checker-evaluator.d.ts +16 -0
  236. package/dist/evaluators/{tscCheckerEvaluator.js → tsc-checker-evaluator.js} +10 -5
  237. package/dist/evaluators/tsc-checker-evaluator.js.map +1 -0
  238. package/dist/graphTypes.js +6 -2
  239. package/dist/graphTypes.js.map +1 -1
  240. package/dist/helpers.d.ts +2 -0
  241. package/dist/helpers.js +313 -93
  242. package/dist/helpers.js.map +1 -1
  243. package/dist/{index-C-Kyd7hD.d.ts → index-DZxyC9Pb.d.ts} +7 -6
  244. package/dist/index.d.ts +87 -83
  245. package/dist/index.js +15677 -10594
  246. package/dist/index.js.map +1 -1
  247. package/dist/invariantEnforcement.d.ts +3 -3
  248. package/dist/invariantEnforcement.js.map +1 -1
  249. package/dist/logicalRoleInference.d.ts +2 -0
  250. package/dist/logicalRoleInference.js +1 -1
  251. package/dist/logicalRoleInference.js.map +1 -1
  252. package/dist/matcherFeedbackUtils.d.ts +2 -2
  253. package/dist/matcherFeedbackUtils.js.map +1 -1
  254. package/dist/{ontology-matching-C6rrz2VP.d.ts → ontology-matching-C-mYFrir.d.ts} +16 -16
  255. package/dist/ontology-matching.d.ts +1 -1
  256. package/dist/{ontologyApproval-CFYmqKmk.d.ts → ontologyApproval-BVt0feJi.d.ts} +10 -10
  257. package/dist/ontologyApproval.d.ts +1 -1
  258. package/dist/ontologyApproval.js +7 -1
  259. package/dist/ontologyApproval.js.map +1 -1
  260. package/dist/ontologyDefinitions.d.ts +14 -24
  261. package/dist/ontologyDefinitions.js +269 -34
  262. package/dist/ontologyDefinitions.js.map +1 -1
  263. package/dist/ontologyHelpers.d.ts +13 -13
  264. package/dist/ontologyHelpers.js.map +1 -1
  265. package/dist/{ontologyRegistry-B67rPJ16.d.ts → ontologyRegistry-CljS-ENv.d.ts} +2 -2
  266. package/dist/ontologyRegistry.d.ts +1 -1
  267. package/dist/ontologyRegistry.js +34 -6
  268. package/dist/ontologyRegistry.js.map +1 -1
  269. package/dist/{projectionReconciliation-jww2fBI0.d.ts → projectionReconciliation-DnrSgHSQ.d.ts} +4 -4
  270. package/dist/projectionReconciliation.d.ts +1 -1
  271. package/dist/projectionReconciliation.js +57 -10
  272. package/dist/projectionReconciliation.js.map +1 -1
  273. package/dist/{projectionStaleness-CmdbpjVK.d.ts → projectionStaleness-C8ImQ2zP.d.ts} +17 -17
  274. package/dist/projectionStaleness.d.ts +1 -1
  275. package/dist/projectionStaleness.js +8 -2
  276. package/dist/projectionStaleness.js.map +1 -1
  277. package/dist/proof-attestation.json +1 -1
  278. package/dist/{questionEvidenceLinks-DFlyPpAj.d.ts → questionEvidenceLinks-_nPRa-LY.d.ts} +10 -10
  279. package/dist/questionEvidenceLinks.d.ts +1 -1
  280. package/dist/questionEvidenceLinks.js +564 -347
  281. package/dist/questionEvidenceLinks.js.map +1 -1
  282. package/dist/{resolverTypes-CC8Ea2E2.d.ts → resolverTypes-BOXPxLET.d.ts} +8 -7
  283. package/dist/resolverTypes.d.ts +4 -2
  284. package/dist/{resolvers-Br1a6eLV.d.ts → resolvers-B1TIBmRO.d.ts} +3 -1
  285. package/dist/resolvers.d.ts +5 -3
  286. package/dist/resolvers.js +121 -77
  287. package/dist/resolvers.js.map +1 -1
  288. package/dist/scopeResolverCompat.d.ts +10 -7
  289. package/dist/scopeResolverCompat.js +106 -123
  290. package/dist/scopeResolverCompat.js.map +1 -1
  291. package/dist/{text-matching-DNg4M5Wd.d.ts → text-matching-DzFooju6.d.ts} +7 -7
  292. package/dist/text-matching.d.ts +1 -1
  293. package/dist/topicOntologyResolver.d.ts +22 -21
  294. package/dist/topicOntologyResolver.js +54 -32
  295. package/dist/topicOntologyResolver.js.map +1 -1
  296. package/dist/topicProjectOverlay.d.ts +30 -20
  297. package/dist/topicProjectOverlay.js +120 -76
  298. package/dist/topicProjectOverlay.js.map +1 -1
  299. package/dist/{topicScope-7zhyeGl7.d.ts → topicScope-DJVa0mLa.d.ts} +22 -7
  300. package/dist/topicScope.d.ts +3 -1
  301. package/dist/topicScope.js +104 -119
  302. package/dist/topicScope.js.map +1 -1
  303. package/dist/workflowBridge.d.ts +26 -15
  304. package/dist/workflowBridge.js +140 -144
  305. package/dist/workflowBridge.js.map +1 -1
  306. package/dist/workspaceIsolation.d.ts +14 -12
  307. package/dist/workspaceIsolation.js +108 -122
  308. package/dist/workspaceIsolation.js.map +1 -1
  309. package/package.json +4 -4
  310. package/dist/edges/dependsOn.js.map +0 -1
  311. package/dist/edges/derivedFrom.js.map +0 -1
  312. package/dist/edges/propagationTypes.js.map +0 -1
  313. package/dist/evaluators/lintCheckerEvaluator.d.ts +0 -11
  314. package/dist/evaluators/lintCheckerEvaluator.js.map +0 -1
  315. package/dist/evaluators/sentryCheckerEvaluator.js.map +0 -1
  316. package/dist/evaluators/testRunnerEvaluator.js.map +0 -1
  317. package/dist/evaluators/tscCheckerEvaluator.d.ts +0 -11
  318. package/dist/evaluators/tscCheckerEvaluator.js.map +0 -1
  319. package/dist/{epistemicQuestions-bwHd2FWE.d.ts → epistemicQuestions-Do1fhYm5.d.ts} +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/convex.ts","../src/graphTypes.ts","../src/edgeValidation.ts","../src/helpers.ts"],"names":[],"mappings":"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","file":"helpers.js","sourcesContent":["import {\n actionGeneric,\n anyApi,\n componentsGeneric,\n httpActionGeneric,\n internalActionGeneric,\n internalMutationGeneric,\n internalQueryGeneric,\n mutationGeneric,\n queryGeneric,\n} from \"convex/server\";\nimport type { GenericId } from \"convex/values\";\n\n// TODO(FR.11-structural): `api`/`internal`/`components` are `anyApi as any`\n// because this module source tree is bundled into the kernel host at deploy time\n// and has NO top-level Convex `_generated/` directory to import a typed surface\n// from. Every `api.*` / `internal.*` / string-literal cross-component ref in this\n// module (topicScope.ts, topicProjectOverlay.ts, questionEvidenceLinks.ts,\n// beliefEvidenceLinks*.ts, epistemicQuestions.helpers.ts) inherits `any` from\n// here. The fix is structural — generate a per-module typed surface or a shared\n// typed function-reference manifest (template: the typed `components.controlPlane`\n// in modules/control-plane/src/component/convex.ts and the\n// `KERNEL_API_REF_MANIFEST` pattern in packages/server-core/src/kernelApi.ts) —\n// owned by the FR.11 closing/synthesis pass, not a mechanical swap.\nexport const api = anyApi as any;\nexport const components = componentsGeneric() as any;\nexport const internal = anyApi as any;\n\nexport type TableNames = string;\nexport type Id<TableName extends TableNames = string> = GenericId<TableName>;\nexport type Doc<TableName extends TableNames = string> = any;\nexport type DataModel = any;\ntype IndexRangeBuilder = {\n field(fieldName: string): string;\n eq(fieldName: string, value: unknown): IndexRangeBuilder;\n gt(fieldName: string, value: unknown): IndexRangeBuilder;\n gte(fieldName: string, value: unknown): IndexRangeBuilder;\n lt(fieldName: string, value: unknown): IndexRangeBuilder;\n lte(fieldName: string, value: unknown): IndexRangeBuilder;\n};\ntype FilterBuilder = {\n eq(left: unknown, right: unknown): unknown;\n neq(left: unknown, right: unknown): unknown;\n gt(left: unknown, right: unknown): unknown;\n gte(left: unknown, right: unknown): unknown;\n lt(left: unknown, right: unknown): unknown;\n lte(left: unknown, right: unknown): unknown;\n and(...clauses: unknown[]): unknown;\n or(...clauses: unknown[]): unknown;\n field(fieldName: string): unknown;\n};\ntype QueryInitializer<TableName extends TableNames> = {\n withIndex(\n indexName: string,\n range?: (q: any) => unknown\n ): QueryInitializer<TableName>;\n filter(predicate: (q: any) => unknown): QueryInitializer<TableName>;\n order(direction: \"asc\" | \"desc\"): QueryInitializer<TableName>;\n collect(): Promise<Doc<TableName>[]>;\n take(limit: number): Promise<Doc<TableName>[]>;\n first(): Promise<Doc<TableName> | null>;\n unique(): Promise<Doc<TableName> | null>;\n};\nexport type DatabaseReader = {\n get<TableName extends TableNames>(\n id: Id<TableName>\n ): Promise<Doc<TableName> | null>;\n query<TableName extends TableNames>(\n tableName: TableName\n ): QueryInitializer<TableName>;\n normalizeId?<TableName extends TableNames>(\n tableName: TableName,\n id: string\n ): Id<TableName> | null;\n};\nexport type DatabaseWriter = DatabaseReader & {\n insert<TableName extends TableNames>(\n tableName: TableName,\n value: Record<string, unknown>\n ): Promise<Id<TableName>>;\n patch<TableName extends TableNames>(\n id: Id<TableName>,\n value: Record<string, unknown>\n ): Promise<void>;\n replace<TableName extends TableNames>(\n id: Id<TableName>,\n value: Record<string, unknown>\n ): Promise<void>;\n delete<TableName extends TableNames>(id: Id<TableName>): Promise<void>;\n};\ntype Scheduler = {\n runAfter(delayMs: number, functionReference: unknown, args?: unknown): Promise<void>;\n};\ntype AuthReader = {\n getUserIdentity(): Promise<unknown>;\n};\ntype RuntimeInvoker = {\n runQuery(functionReference: unknown, args?: unknown): Promise<any>;\n runMutation(functionReference: unknown, args?: unknown): Promise<any>;\n runAction(functionReference: unknown, args?: unknown): Promise<any>;\n};\nexport type QueryCtx = RuntimeInvoker & {\n auth: AuthReader;\n db: DatabaseReader;\n scheduler: Scheduler;\n};\nexport type MutationCtx = RuntimeInvoker & {\n auth: AuthReader;\n db: DatabaseWriter;\n scheduler: Scheduler;\n};\nexport type ActionCtx = RuntimeInvoker & {\n auth: AuthReader;\n scheduler: Scheduler;\n};\n\ntype ConvexFunctionBuilder<Ctx> = <\n Definition extends { handler?: (ctx: Ctx, args: any) => any },\n>(\n definition: Definition\n) => any;\n\nexport const action = actionGeneric as unknown as ConvexFunctionBuilder<ActionCtx>;\nexport const httpAction =\n httpActionGeneric as unknown as ConvexFunctionBuilder<ActionCtx>;\nexport const internalAction =\n internalActionGeneric as unknown as ConvexFunctionBuilder<ActionCtx>;\nexport const internalMutation =\n internalMutationGeneric as unknown as ConvexFunctionBuilder<MutationCtx>;\nexport const internalQuery =\n internalQueryGeneric as unknown as ConvexFunctionBuilder<QueryCtx>;\nexport const mutation =\n mutationGeneric as unknown as ConvexFunctionBuilder<MutationCtx>;\nexport const query = queryGeneric as unknown as ConvexFunctionBuilder<QueryCtx>;\n","/**\n * Graph Type Registry for Convex\n *\n * This file mirrors the canonical type registry at lib/ontology/types.ts\n * but is compatible with Convex's bundling requirements.\n *\n * IMPORTANT: Keep this file in sync with lib/ontology/types.ts\n * The frontend uses lib/ontology/types.ts, Convex uses this file.\n *\n * @see /docs/architecture/UNIFIED_GRAPH_ARCHITECTURE.md\n */\n\n// =============================================================================\n// EPISTEMIC LAYERS\n// =============================================================================\n\nexport type EpistemicLayer =\n | \"L4\"\n | \"L3\"\n | \"L2\"\n | \"L1\"\n | \"ontological\"\n | \"organizational\";\n\n// =============================================================================\n// NODE TYPE TO LABEL MAPPING\n// =============================================================================\n\nexport const NODE_TYPE_TO_LABEL: Record<string, string> = {\n // L4: Audit Targets\n decision: \"Decision\",\n\n // L3: Traversal Anchors\n belief: \"Belief\",\n question: \"Question\",\n theme: \"Theme\",\n deal: \"Deal\",\n topic: \"Topic\",\n\n // L2: Compression Boundary\n claim: \"Claim\",\n evidence: \"Evidence\",\n synthesis: \"Synthesis\",\n answer: \"Answer\",\n\n // L1: Terminal Leaves\n atomic_fact: \"AtomicFact\",\n excerpt: \"Excerpt\",\n source: \"Source\",\n\n // Ontological (Neo4j is SOT)\n company: \"Company\",\n person: \"Person\",\n investor: \"Investor\",\n function: \"Function\",\n value_chain: \"ValueChain\",\n};\n\n// =============================================================================\n// EDGE TYPE TO NEO4J RELATIONSHIP MAPPING\n// =============================================================================\n\n/**\n * Epistemic Kernel v2: 6 canonical edge types + ontological edges.\n *\n * Weight and metadata carry nuance that previously required 67 separate type strings.\n * See: docs/architecture/epistemic-kernel-v2.md\n */\nexport const EDGE_TYPE_TO_REL: Record<string, string> = {\n // === THE SIX CANONICAL EPISTEMIC EDGE TYPES ===\n supports: \"SUPPORTS\", // L3↔L3: belief bears on belief (weight -1 to +1)\n informs: \"INFORMS\", // L2→L3: evidence bears on belief\n depends_on: \"DEPENDS_ON\", // L3→L3, Q→Q: structural gate\n derived_from: \"DERIVED_FROM\", // Any→Any: provenance chain (fork, synthesis, extraction, answer)\n contains: \"CONTAINS\", // Any→Any: hierarchy, scoping, membership\n tests: \"TESTS\", // Q→L3: question interrogates belief\n\n // === L4 DECISION EDGES (derived_from with derivationType=decision) ===\n // Kept as separate Neo4j relationship types for backward compat with L4 queries.\n // New code should use derived_from + metadata.\n based_on_belief: \"BASED_ON_BELIEF\",\n based_on_question: \"BASED_ON_QUESTION\",\n blocked_by_contradiction: \"BLOCKED_BY_CONTRADICTION\",\n informed_by_theme: \"INFORMED_BY_THEME\",\n\n // === ONTOLOGICAL EDGES (tenant-extensible, managed by ontology system) ===\n works_at: \"WORKS_AT\",\n invested_in: \"INVESTED_IN\",\n competes_with: \"COMPETES_WITH\",\n participates_in: \"PARTICIPATES_IN\",\n founded_by: \"FOUNDED_BY\",\n evaluates: \"EVALUATES\",\n performs: \"PERFORMS\",\n function_in: \"FUNCTION_IN\",\n impacts: \"IMPACTS\",\n raised_from: \"RAISED_FROM\",\n mentioned_in: \"MENTIONED_IN\",\n perspective_on: \"PERSPECTIVE_ON\",\n about_entity: \"ABOUT_ENTITY\",\n entity_referenced_in: \"ENTITY_REFERENCED_IN\",\n};\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\n\n/**\n * Get the epistemic layer for a node type\n */\nexport function getNodeLayer(nodeType: string): EpistemicLayer {\n const L4_TYPES = [\"decision\"];\n const L3_TYPES = [\"belief\", \"question\", \"theme\", \"deal\"];\n const L2_TYPES = [\"claim\", \"evidence\", \"synthesis\", \"answer\"];\n const L1_TYPES = [\"atomic_fact\", \"excerpt\", \"source\"];\n const ONTOLOGICAL_TYPES = [\n \"company\",\n \"person\",\n \"investor\",\n \"function\",\n \"value_chain\",\n ];\n const ORGANIZATIONAL_TYPES = [\"topic\"];\n\n if (L4_TYPES.includes(nodeType)) {\n return \"L4\";\n }\n if (L3_TYPES.includes(nodeType)) {\n return \"L3\";\n }\n if (L2_TYPES.includes(nodeType)) {\n return \"L2\";\n }\n if (L1_TYPES.includes(nodeType)) {\n return \"L1\";\n }\n if (ONTOLOGICAL_TYPES.includes(nodeType)) {\n return \"ontological\";\n }\n if (ORGANIZATIONAL_TYPES.includes(nodeType)) {\n return \"organizational\";\n }\n\n // Unknown types default to L2\n console.warn(`[GraphTypes] Unknown nodeType \"${nodeType}\", defaulting to L2`);\n return \"L2\";\n}\n\n/**\n * Get the Neo4j label for a node type\n */\nexport function getNeo4jLabel(nodeType: string): string {\n return (\n NODE_TYPE_TO_LABEL[nodeType] ||\n nodeType.charAt(0).toUpperCase() + nodeType.slice(1)\n );\n}\n\n/**\n * Get the Neo4j relationship type for an edge type\n */\nexport function getNeo4jRelType(edgeType: string): string {\n return EDGE_TYPE_TO_REL[edgeType] || edgeType.toUpperCase();\n}\n\n/**\n * The 6 canonical epistemic edge types (Kernel v2).\n * Anything not in this set or the ontological/L4 sets is deprecated.\n */\nconst CANONICAL_EPISTEMIC_TYPES = new Set([\n \"supports\",\n \"informs\",\n \"depends_on\",\n \"derived_from\",\n \"contains\",\n \"tests\",\n]);\n\n/**\n * Check if an edge type is deprecated.\n *\n * Kernel v2: only the 6 canonical epistemic types, L4 decision types,\n * and ontological types are active. All legacy types (67 old types) are deprecated.\n */\nexport function isDeprecatedEdgeType(edgeType: string): boolean {\n // Canonical epistemic types are NOT deprecated\n if (CANONICAL_EPISTEMIC_TYPES.has(edgeType)) return false;\n // Types in the EDGE_TYPE_TO_REL map (ontological + L4) are NOT deprecated\n if (edgeType in EDGE_TYPE_TO_REL) return false;\n // Everything else is a legacy type\n return true;\n}\n","/**\n * edgeValidation module implementation.\n */\n\nimport { type EpistemicLayer, isDeprecatedEdgeType } from \"./graphTypes\";\n\nexport { isDeprecatedEdgeType };\nexport type { EpistemicLayer };\n\nfunction getLayerDepth(layer: EpistemicLayer): number {\n switch (layer) {\n case \"L4\":\n return 4;\n case \"L3\":\n return 3;\n case \"L2\":\n return 2;\n case \"L1\":\n return 1;\n case \"ontological\":\n return 0;\n default:\n return -1;\n }\n}\n\nfunction isValidLayerConnection(\n fromLayer: EpistemicLayer,\n toLayer: EpistemicLayer\n): boolean {\n if (fromLayer === toLayer) {\n return true;\n }\n\n // Ontological ↔ ontological (entity-entity edges)\n if (fromLayer === \"ontological\" && toLayer === \"ontological\") {\n return true;\n }\n\n // Ontological ↔ epistemic bridge (OE-B: entity-belief/evidence/source connections)\n if (\n fromLayer === \"ontological\" &&\n (toLayer === \"L3\" || toLayer === \"L2\" || toLayer === \"L1\")\n ) {\n return true;\n }\n if (\n (fromLayer === \"L3\" || fromLayer === \"L2\" || fromLayer === \"L1\") &&\n toLayer === \"ontological\"\n ) {\n return true;\n }\n\n // Epistemic layer transitions\n if (fromLayer === \"L2\" && toLayer === \"L1\") {\n return true;\n }\n if (fromLayer === \"L2\" && toLayer === \"L3\") {\n return true;\n }\n if (fromLayer === \"L3\" && toLayer === \"L2\") {\n return true;\n }\n if (fromLayer === \"L3\" && toLayer === \"L4\") {\n return true;\n }\n if (fromLayer === \"L4\" && toLayer === \"L3\") {\n return true;\n }\n\n // Organizational connections\n if (fromLayer === \"L3\" && toLayer === \"organizational\") {\n return true;\n }\n if (fromLayer === \"organizational\" && toLayer === \"L3\") {\n return true;\n }\n\n const fromDepth = getLayerDepth(fromLayer);\n const toDepth = getLayerDepth(toLayer);\n if (Math.abs(fromDepth - toDepth) > 1) {\n return false;\n }\n return true;\n}\n\nexport type TraversalMode =\n | \"anchor_down\"\n | \"anchor_up\"\n | \"same_layer\"\n | \"decision_trace\";\n\nexport function shouldContinueTraversal(\n currentLayer: EpistemicLayer,\n targetLayer: EpistemicLayer,\n options: {\n mode: TraversalMode;\n minLayer?: number;\n maxLayer?: number;\n }\n): boolean {\n const currentDepth = getLayerDepth(currentLayer);\n const targetDepth = getLayerDepth(targetLayer);\n\n if (options.minLayer !== undefined && targetDepth < options.minLayer) {\n return false;\n }\n if (options.maxLayer !== undefined && targetDepth > options.maxLayer) {\n return false;\n }\n\n switch (options.mode) {\n case \"anchor_down\":\n return targetDepth <= currentDepth;\n case \"anchor_up\":\n return targetDepth >= currentDepth;\n case \"same_layer\":\n return targetDepth === currentDepth;\n case \"decision_trace\":\n return currentDepth === 4\n ? targetDepth === 3\n : targetDepth === currentDepth;\n default:\n return true;\n }\n}\n\nexport function getDefaultMinLayer(mode: TraversalMode): number {\n switch (mode) {\n case \"anchor_down\":\n return 1;\n case \"anchor_up\":\n return 2;\n case \"same_layer\":\n return 1;\n case \"decision_trace\":\n return 3;\n default:\n return 1;\n }\n}\n\nexport const EDGE_LAYER_RULES: Record<\n string,\n { from: EpistemicLayer[]; to: EpistemicLayer[]; description: string }\n> = {\n // === 6 Canonical Epistemic Types ===\n supports: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief bears on Belief (weight: +1 supports, -1 contradicts)\",\n },\n informs: {\n from: [\"L2\"],\n to: [\"L3\"],\n description: \"Evidence -> Belief (L2 -> L3)\",\n },\n depends_on: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief B requires Belief A (structural gate)\",\n },\n derived_from: {\n from: [\"L2\", \"L3\", \"L4\"],\n to: [\"L1\", \"L2\", \"L3\"],\n description: \"A was produced from B (provenance chain)\",\n },\n contains: {\n from: [\"L3\", \"L4\", \"ontological\"],\n to: [\"L2\", \"L3\", \"ontological\"],\n description: \"A scopes/aggregates B (hierarchy)\",\n },\n tests: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Question -> Belief (L3 -> L3)\",\n },\n\n // === Structural / Lifecycle ===\n supersedes: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"NewNode -> OldNode (fork lineage)\",\n },\n responds_to: {\n from: [\"L2\", \"L3\"],\n to: [\"L3\"],\n description: \"Answer -> Question (L2/L3 -> L3)\",\n },\n belongs_to: {\n from: [\"L2\", \"L3\", \"ontological\"],\n to: [\"L3\"],\n description: \"Membership (migrating to contains)\",\n },\n relates_to_thesis: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief -> Theme (L3 -> L3)\",\n },\n\n // === Ontological (entity-entity or entity-epistemic bridge) ===\n works_at: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Person -> Company\",\n },\n invested_in: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Investor -> Company\",\n },\n competes_with: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> Company\",\n },\n participates_in: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> ValueChain\",\n },\n founded_by: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> Person\",\n },\n evaluates: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Deal -> Company\",\n },\n performs: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> Function\",\n },\n function_in: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Function -> ValueChain\",\n },\n impacts: {\n from: [\"ontological\", \"L3\"],\n to: [\"ontological\"],\n description: \"Theme/Entity -> ValueChain\",\n },\n raised_from: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> Investor\",\n },\n mentioned_in: {\n from: [\"ontological\"],\n to: [\"L1\", \"L2\"],\n description: \"Entity -> Source/Evidence\",\n },\n perspective_on: {\n from: [\"ontological\"],\n to: [\"L3\"],\n description: \"Person -> Belief/Theme\",\n },\n plays_theme: {\n from: [\"ontological\"],\n to: [\"L3\"],\n description: \"Deal -> Theme\",\n },\n\n // C2-RR.4 — storage migration alias + the remaining 55 reachable edge types.\n // Mirrors the kernel rule table\n // (packages/reasoning-kernel/src/adapters/lib/edgeValidation.ts) so this\n // graph-primitives write path admits the same public edge vocabulary. See the\n // kernel file for the per-group rationale.\n extracted_from: {\n from: [\"L2\", \"L3\", \"L4\"],\n to: [\"L1\", \"L2\", \"L3\"],\n description:\n \"Legacy storage migration alias for derived_from; public writes use derived_from\",\n },\n qualifies: { from: [\"L2\", \"L3\"], to: [\"L3\"], description: \"Evidence/Belief qualifies a Belief\" },\n contradicts: { from: [\"L2\", \"L3\"], to: [\"L3\"], description: \"Evidence/Belief contradicts a Belief\" },\n reinforces: { from: [\"L2\", \"L3\"], to: [\"L3\"], description: \"Evidence/Belief reinforces a Belief\" },\n corroborates: { from: [\"L2\", \"L3\"], to: [\"L3\"], description: \"Independent evidence/belief corroborates a Belief\" },\n strengthened_by: { from: [\"L3\"], to: [\"L2\", \"L3\"], description: \"Belief is strengthened by Evidence/Belief\" },\n weakened_by: { from: [\"L3\"], to: [\"L2\", \"L3\"], description: \"Belief is weakened by Evidence/Belief\" },\n validated_by: { from: [\"L3\"], to: [\"L2\", \"L3\"], description: \"Belief is validated by Evidence/Belief\" },\n falsified_by: { from: [\"L3\"], to: [\"L2\", \"L3\"], description: \"Belief is falsified by Evidence/Belief\" },\n amplifies: { from: [\"L3\"], to: [\"L3\"], description: \"Belief amplifies another Belief\" },\n precondition_for: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is a precondition for another Belief\" },\n prerequisite_for: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is a prerequisite for another Belief\" },\n required_for: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is required for another Belief\" },\n in_tension_with: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is in tension with another Belief\" },\n mutually_exclusive: { from: [\"L3\"], to: [\"L3\"], description: \"Beliefs cannot both hold\" },\n exclusive_with: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is exclusive with another Belief\" },\n alternative_to: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is an alternative to another Belief\" },\n subsumes: { from: [\"L3\"], to: [\"L3\"], description: \"Belief subsumes a narrower Belief\" },\n extends: { from: [\"L3\"], to: [\"L3\"], description: \"Belief extends another Belief\" },\n refines: { from: [\"L3\"], to: [\"L3\"], description: \"Belief refines another Belief\" },\n implements: { from: [\"L3\"], to: [\"L3\"], description: \"Belief implements an abstract Belief\" },\n violates: { from: [\"L3\"], to: [\"L3\"], description: \"Belief violates a constraint Belief\" },\n assumes: { from: [\"L3\"], to: [\"L3\"], description: \"Belief assumes another Belief\" },\n would_predict: { from: [\"L3\"], to: [\"L3\"], description: \"Belief would predict another Belief\" },\n analogous_to: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is analogous to another Belief\" },\n independent_of: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is independent of another Belief\" },\n correlates_with: { from: [\"L3\"], to: [\"L3\"], description: \"Belief correlates with another Belief\" },\n co_changes_with: { from: [\"L3\"], to: [\"L3\"], description: \"Belief co-changes with another Belief\" },\n counterfactual_of: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is a counterfactual of another Belief\" },\n parallel_to: { from: [\"L3\"], to: [\"L3\"], description: \"Belief runs parallel to another Belief\" },\n cascade_from: { from: [\"L3\"], to: [\"L3\"], description: \"Cascade from an upstream Belief\" },\n cascade_to: { from: [\"L3\"], to: [\"L3\"], description: \"Cascade to a downstream Belief\" },\n collapses_if: { from: [\"L3\"], to: [\"L3\"], description: \"Belief collapses if another fails\" },\n branches_from: { from: [\"L3\"], to: [\"L3\"], description: \"Belief branches from an ancestor Belief\" },\n same_as: { from: [\"L2\", \"L3\", \"ontological\"], to: [\"L2\", \"L3\", \"ontological\"], description: \"Two nodes are the same entity\" },\n answers: { from: [\"L2\", \"L3\"], to: [\"L3\"], description: \"Answer/Belief answers a Question\" },\n partially_answers: { from: [\"L2\", \"L3\"], to: [\"L3\"], description: \"Answer/Belief partially answers a Question\" },\n explores: { from: [\"L3\"], to: [\"L3\"], description: \"Question explores a Belief/Theme\" },\n informed_by_theme: { from: [\"L3\"], to: [\"L3\"], description: \"Belief is informed by a Theme\" },\n same_theme_as: { from: [\"L3\"], to: [\"L3\"], description: \"Two Beliefs share a Theme\" },\n based_on: { from: [\"L4\"], to: [\"L3\"], description: \"Decision is based on a Belief/Question\" },\n based_on_belief: { from: [\"L4\"], to: [\"L3\"], description: \"Decision is based on a Belief\" },\n based_on_question: { from: [\"L4\"], to: [\"L3\"], description: \"Decision is based on a Question\" },\n blocked_by_contradiction: { from: [\"L4\"], to: [\"L3\"], description: \"Decision is blocked by a Contradiction\" },\n parent_of: { from: [\"L3\", \"L4\", \"ontological\", \"organizational\"], to: [\"L2\", \"L3\", \"ontological\", \"organizational\"], description: \"A is the parent of B\" },\n child_of: { from: [\"L2\", \"L3\", \"ontological\", \"organizational\"], to: [\"L3\", \"L4\", \"ontological\", \"organizational\"], description: \"A is the child of B\" },\n scoped_by: { from: [\"L2\", \"L3\"], to: [\"L3\", \"organizational\"], description: \"Object is scoped by a Topic/Theme\" },\n cites: { from: [\"L2\", \"L3\"], to: [\"L1\", \"L2\"], description: \"Evidence/Belief cites a Source/Excerpt\" },\n summarizes: { from: [\"L2\", \"L3\"], to: [\"L1\", \"L2\"], description: \"Synthesis/Evidence summarizes a Source/Evidence\" },\n same_source_as: { from: [\"L1\", \"L2\"], to: [\"L1\", \"L2\"], description: \"Two nodes derive from the same Source\" },\n migrating_from: { from: [\"L2\", \"L3\", \"L4\"], to: [\"L1\", \"L2\", \"L3\"], description: \"Migration lineage: from an ancestor\" },\n migrating_to: { from: [\"L1\", \"L2\", \"L3\"], to: [\"L2\", \"L3\", \"L4\"], description: \"Migration lineage: to a successor\" },\n about_entity: { from: [\"L2\", \"L3\"], to: [\"ontological\"], description: \"Belief/Evidence is about an Entity\" },\n entity_referenced_in: { from: [\"ontological\"], to: [\"L1\", \"L2\"], description: \"Entity is referenced in a Source/Evidence\" },\n related_to: { from: [\"L2\", \"L3\", \"ontological\", \"organizational\"], to: [\"L2\", \"L3\", \"ontological\", \"organizational\"], description: \"Lateral adjacency; no confidence pressure\" },\n blocks: { from: [\"L3\", \"L4\"], to: [\"L3\", \"L4\"], description: \"A blocks B (structural gate)\" },\n};\n\nexport function validateEdgeLayers(\n edgeType: string,\n fromLayer: EpistemicLayer,\n toLayer: EpistemicLayer\n): { valid: boolean; reason?: string } {\n const rules = EDGE_LAYER_RULES[edgeType];\n\n if (!rules) {\n console.warn(\n `[EdgeValidation] Unknown edge type: ${edgeType}, allowing by default`\n );\n return { valid: true };\n }\n\n if (edgeType === \"supersedes\") {\n if (fromLayer !== toLayer) {\n return {\n valid: false,\n reason: `${edgeType} edges must be between nodes of the same layer. Got ${fromLayer} -> ${toLayer}`,\n };\n }\n return { valid: true };\n }\n\n if (!rules.from.includes(fromLayer)) {\n return {\n valid: false,\n reason: `Edge type '${edgeType}' does not allow source layer ${fromLayer}. Allowed: ${rules.from.join(\", \")}`,\n };\n }\n\n if (!rules.to.includes(toLayer)) {\n return {\n valid: false,\n reason: `Edge type '${edgeType}' does not allow target layer ${toLayer}. Allowed: ${rules.to.join(\", \")}`,\n };\n }\n\n if (!isValidLayerConnection(fromLayer, toLayer)) {\n return {\n valid: false,\n reason: `Layer transition ${fromLayer} -> ${toLayer} is not permitted`,\n };\n }\n\n return { valid: true };\n}\n\n","/**\n * helpers module implementation.\n */\n\nimport { type Id, internal, type MutationCtx } from \"./convex\";\nimport {\n type EpistemicLayer,\n validateEdgeLayers,\n} from \"./edgeValidation\";\nimport { generateGlobalId } from \"./globalId\";\nimport { getNodeLayer } from \"./graphTypes\";\n\nexport { getNodeLayer };\n\nexport async function createEpistemicEdge(\n ctx: MutationCtx,\n params: {\n fromNodeId: Id<\"epistemicNodes\">;\n toNodeId: Id<\"epistemicNodes\">;\n edgeType: string;\n weight?: number;\n confidence?: number;\n context?: string;\n projectId?: string;\n createdBy: string;\n skipLayerValidation?: boolean;\n }\n): Promise<string> {\n const globalId = generateGlobalId();\n\n const fromNode = await ctx.db.get(params.fromNodeId);\n const toNode = await ctx.db.get(params.toNodeId);\n\n if (!fromNode || !toNode) {\n throw new Error(\"One or both nodes not found\");\n }\n\n const fromLayer = fromNode.epistemicLayer || getNodeLayer(fromNode.nodeType);\n const toLayer = toNode.epistemicLayer || getNodeLayer(toNode.nodeType);\n\n if (!params.skipLayerValidation) {\n const validation = validateEdgeLayers(\n params.edgeType,\n fromLayer as EpistemicLayer,\n toLayer as EpistemicLayer\n );\n if (!validation.valid) {\n throw new Error(\n `[EdgeValidation] Invalid edge: ${validation.reason}. ` +\n `Attempted: ${params.edgeType} from ${fromNode.nodeType}(${fromLayer}) → ${toNode.nodeType}(${toLayer})`\n );\n }\n }\n\n await ctx.scheduler.runAfter(0, internal.neo4jEdgeAPI.createEdge, {\n globalId,\n fromGlobalId: fromNode.globalId,\n toGlobalId: toNode.globalId,\n edgeType: params.edgeType as any,\n weight: params.weight,\n confidence: params.confidence,\n context: params.context,\n createdBy: params.createdBy,\n topicId: params.projectId ? String(params.projectId) : undefined,\n fromNodeType: fromNode.nodeType,\n toNodeType: toNode.nodeType,\n fromLayer,\n toLayer,\n });\n\n return globalId;\n}\n"]}
1
+ {"version":3,"sources":["../src/convex.ts","../src/graphTypes.ts","../src/edgeValidation.ts","../src/helpers.ts"],"names":[],"mappings":"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","file":"helpers.js","sourcesContent":["import type { Doc as AccessControlDoc } from \"@lucern/access-control/convex\";\nimport {\n type UnsafeConvexAnyApi,\n unsafeConvexAnyApi,\n} from \"@lucern/contracts/convex/unsafeAnyApi\";\nimport {\n actionGeneric,\n componentsGeneric,\n httpActionGeneric,\n internalActionGeneric,\n internalMutationGeneric,\n internalQueryGeneric,\n mutationGeneric,\n queryGeneric,\n} from \"convex/server\";\nimport type { GenericId } from \"convex/values\";\n\n// TODO(FR.11-structural): `api`/`internal`/`components` are `anyApi as any`\n// because this module source tree is bundled into the kernel host at deploy time\n// and has NO top-level Convex `_generated/` directory to import a typed surface\n// from. Every `api.*` / `internal.*` / string-literal cross-component ref in this\n// module (topicScope.ts, topicProjectOverlay.ts, questionEvidenceLinks.ts,\n// beliefEvidenceLinks*.ts, epistemicQuestions.helpers.ts) inherits `any` from\n// here. The fix is structural — generate a per-module typed surface or a shared\n// typed function-reference manifest (template: the typed `components.controlPlane`\n// in modules/control-plane/src/component/convex.ts and the\n// `KERNEL_API_REF_MANIFEST` pattern in packages/server-core/src/kernelApi.ts) —\n// owned by the FR.11 closing/synthesis pass, not a mechanical swap.\nconst unsafeApi = unsafeConvexAnyApi(\n \"graph-primitives top-level module bundle lacks a committed Convex _generated/api surface\"\n);\nexport const api = unsafeApi;\nexport const components =\n componentsGeneric() as unknown as UntypedFunctionReferenceSurface;\nexport const internal = unsafeApi;\n\ntype UntypedFunctionReferenceSurface = UnsafeConvexAnyApi;\ntype BoundaryValue = UntypedFunctionReferenceSurface[string];\n\nexport type TableNames = string;\nexport type Id<TableName extends TableNames = string> = GenericId<TableName>;\nexport type Doc<TableName extends TableNames = string> =\n AccessControlDoc<TableName>;\nexport type DataModel = Record<TableNames, unknown>;\ninterface IndexRangeBuilder {\n eq(fieldName: string, value: unknown): IndexRangeBuilder;\n field(fieldName: string): string;\n gt(fieldName: string, value: unknown): IndexRangeBuilder;\n gte(fieldName: string, value: unknown): IndexRangeBuilder;\n lt(fieldName: string, value: unknown): IndexRangeBuilder;\n lte(fieldName: string, value: unknown): IndexRangeBuilder;\n}\ninterface FilterBuilder {\n and(...clauses: unknown[]): FilterBuilder;\n eq(left: unknown, right: unknown): FilterBuilder;\n field(fieldName: string): string;\n gt(left: unknown, right: unknown): FilterBuilder;\n gte(left: unknown, right: unknown): FilterBuilder;\n lt(left: unknown, right: unknown): FilterBuilder;\n lte(left: unknown, right: unknown): FilterBuilder;\n neq(left: unknown, right: unknown): FilterBuilder;\n or(...clauses: unknown[]): FilterBuilder;\n [operator: string]: unknown;\n}\ninterface QueryInitializer<TableName extends TableNames> {\n collect(): Promise<Doc<TableName>[]>;\n filter(predicate: (q: FilterBuilder) => unknown): QueryInitializer<TableName>;\n first(): Promise<Doc<TableName> | null>;\n order(direction: \"asc\" | \"desc\"): QueryInitializer<TableName>;\n take(limit: number): Promise<Doc<TableName>[]>;\n unique(): Promise<Doc<TableName> | null>;\n withIndex(\n indexName: string,\n range?: (q: IndexRangeBuilder) => unknown\n ): QueryInitializer<TableName>;\n withSearchIndex(\n indexName: string,\n search?: (q: IndexRangeBuilder) => unknown\n ): QueryInitializer<TableName>;\n}\nexport interface DatabaseReader {\n get<TableName extends TableNames>(\n id: unknown\n ): Promise<Doc<TableName> | null>;\n normalizeId?<TableName extends TableNames>(\n tableName: TableName,\n id: string\n ): Id<TableName> | null;\n query<TableName extends TableNames>(\n tableName: TableName\n ): QueryInitializer<TableName>;\n}\nexport type DatabaseWriter = DatabaseReader & {\n insert<TableName extends TableNames>(\n tableName: TableName,\n value: Record<string, unknown>\n ): Promise<Id<TableName>>;\n patch<TableName extends TableNames>(\n id: Id<TableName>,\n value: Record<string, unknown>\n ): Promise<void>;\n replace<TableName extends TableNames>(\n id: Id<TableName>,\n value: Record<string, unknown>\n ): Promise<void>;\n delete<TableName extends TableNames>(id: Id<TableName>): Promise<void>;\n};\ninterface Scheduler {\n runAfter(\n delayMs: number,\n functionReference: unknown,\n args?: unknown\n ): Promise<void>;\n}\ninterface AuthReader {\n getUserIdentity(): Promise<{\n readonly subject: string;\n readonly [claimName: string]: unknown;\n } | null>;\n}\ninterface RuntimeInvoker {\n runAction<Result = unknown>(\n functionReference: unknown,\n args?: unknown\n ): Promise<Result>;\n runMutation<Result = unknown>(\n functionReference: unknown,\n args?: unknown\n ): Promise<Result>;\n runQuery<Result = unknown>(\n functionReference: unknown,\n args?: unknown\n ): Promise<Result>;\n}\nexport type QueryCtx = RuntimeInvoker & {\n auth: AuthReader;\n db: DatabaseReader;\n scheduler: Scheduler;\n};\nexport type MutationCtx = RuntimeInvoker & {\n auth: AuthReader;\n db: DatabaseWriter;\n scheduler: Scheduler;\n};\nexport type ActionCtx = RuntimeInvoker & {\n auth: AuthReader;\n scheduler: Scheduler;\n};\n\ntype ConvexFunctionBuilder<Ctx> = <\n Args = BoundaryValue,\n Result = BoundaryValue,\n>(definition: {\n args?: unknown;\n handler: (ctx: Ctx, args: Args) => Result;\n returns?: unknown;\n}) => unknown;\n\ntype OptionalHandlerConvexFunctionBuilder<Ctx> = <\n Args = BoundaryValue,\n Result = BoundaryValue,\n>(definition: {\n args?: unknown;\n handler?: (ctx: Ctx, args: Args) => Result;\n returns?: unknown;\n}) => unknown;\n\nexport const action =\n actionGeneric as unknown as ConvexFunctionBuilder<ActionCtx>;\nexport const httpAction =\n httpActionGeneric as unknown as ConvexFunctionBuilder<ActionCtx>;\nexport const internalAction =\n internalActionGeneric as unknown as ConvexFunctionBuilder<ActionCtx>;\nexport const internalMutation =\n internalMutationGeneric as unknown as OptionalHandlerConvexFunctionBuilder<MutationCtx>;\nexport const internalQuery =\n internalQueryGeneric as unknown as OptionalHandlerConvexFunctionBuilder<QueryCtx>;\nexport const mutation =\n mutationGeneric as unknown as ConvexFunctionBuilder<MutationCtx>;\nexport const query = queryGeneric as unknown as ConvexFunctionBuilder<QueryCtx>;\n","// biome-ignore-all lint/style/useFilenamingConvention: Public graph-primitives wildcard-export path; rename requires an export-map migration.\n/**\n * Graph Type Registry for Convex\n *\n * This file mirrors the canonical type registry at lib/ontology/types.ts\n * but is compatible with Convex's bundling requirements.\n *\n * IMPORTANT: Keep this file in sync with lib/ontology/types.ts\n * The frontend uses lib/ontology/types.ts, Convex uses this file.\n *\n * @see /docs/architecture/UNIFIED_GRAPH_ARCHITECTURE.md\n */\n\n// =============================================================================\n// EPISTEMIC LAYERS\n// =============================================================================\n\nexport type EpistemicLayer =\n | \"L4\"\n | \"L3\"\n | \"L2\"\n | \"L1\"\n | \"ontological\"\n | \"organizational\";\n\n// =============================================================================\n// NODE TYPE TO LABEL MAPPING\n// =============================================================================\n\nexport const NODE_TYPE_TO_LABEL: Record<string, string> = {\n // L4: Audit Targets\n decision: \"Decision\",\n\n // L3: Traversal Anchors\n belief: \"Belief\",\n question: \"Question\",\n theme: \"Theme\",\n deal: \"Deal\",\n topic: \"Topic\",\n\n // L2: Compression Boundary\n claim: \"Claim\",\n evidence: \"Evidence\",\n synthesis: \"Synthesis\",\n answer: \"Answer\",\n\n // L1: Terminal Leaves\n atomic_fact: \"AtomicFact\",\n excerpt: \"Excerpt\",\n source: \"Source\",\n\n // Ontological (Neo4j is SOT)\n company: \"Company\",\n person: \"Person\",\n investor: \"Investor\",\n function: \"Function\",\n value_chain: \"ValueChain\",\n};\n\n// =============================================================================\n// EDGE TYPE TO NEO4J RELATIONSHIP MAPPING\n// =============================================================================\n\n/**\n * Epistemic Kernel v2: 6 canonical edge types + ontological edges.\n *\n * Weight and metadata carry nuance that previously required 67 separate type strings.\n * See: docs/architecture/epistemic-kernel-v2.md\n */\nexport const EDGE_TYPE_TO_REL: Record<string, string> = {\n // === THE SIX CANONICAL EPISTEMIC EDGE TYPES ===\n supports: \"SUPPORTS\", // L3↔L3: belief bears on belief (weight -1 to +1)\n informs: \"INFORMS\", // L2→L3: evidence bears on belief\n depends_on: \"DEPENDS_ON\", // L3→L3, Q→Q: structural gate\n derived_from: \"DERIVED_FROM\", // Any→Any: provenance chain (fork, synthesis, extraction, answer)\n contains: \"CONTAINS\", // Any→Any: hierarchy, scoping, membership\n tests: \"TESTS\", // Q→L3: question interrogates belief\n\n // === L4 DECISION EDGES (derived_from with derivationType=decision) ===\n // Kept as separate Neo4j relationship types for backward compat with L4 queries.\n // New code should use derived_from + metadata.\n based_on_belief: \"BASED_ON_BELIEF\",\n based_on_question: \"BASED_ON_QUESTION\",\n blocked_by_contradiction: \"BLOCKED_BY_CONTRADICTION\",\n informed_by_theme: \"INFORMED_BY_THEME\",\n\n // === ONTOLOGICAL EDGES (tenant-extensible, managed by ontology system) ===\n works_at: \"WORKS_AT\",\n invested_in: \"INVESTED_IN\",\n competes_with: \"COMPETES_WITH\",\n participates_in: \"PARTICIPATES_IN\",\n founded_by: \"FOUNDED_BY\",\n evaluates: \"EVALUATES\",\n performs: \"PERFORMS\",\n function_in: \"FUNCTION_IN\",\n impacts: \"IMPACTS\",\n raised_from: \"RAISED_FROM\",\n mentioned_in: \"MENTIONED_IN\",\n perspective_on: \"PERSPECTIVE_ON\",\n about_entity: \"ABOUT_ENTITY\",\n entity_referenced_in: \"ENTITY_REFERENCED_IN\",\n};\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\n\n/**\n * Get the epistemic layer for a node type\n */\nexport function getNodeLayer(nodeType: string): EpistemicLayer {\n const L4_TYPES = [\"decision\"];\n const L3_TYPES = [\"belief\", \"question\", \"theme\", \"deal\"];\n const L2_TYPES = [\"claim\", \"evidence\", \"synthesis\", \"answer\"];\n const L1_TYPES = [\"atomic_fact\", \"excerpt\", \"source\"];\n const ONTOLOGICAL_TYPES = [\n \"company\",\n \"person\",\n \"investor\",\n \"function\",\n \"value_chain\",\n ];\n const ORGANIZATIONAL_TYPES = [\"topic\"];\n\n if (L4_TYPES.includes(nodeType)) {\n return \"L4\";\n }\n if (L3_TYPES.includes(nodeType)) {\n return \"L3\";\n }\n if (L2_TYPES.includes(nodeType)) {\n return \"L2\";\n }\n if (L1_TYPES.includes(nodeType)) {\n return \"L1\";\n }\n if (ONTOLOGICAL_TYPES.includes(nodeType)) {\n return \"ontological\";\n }\n if (ORGANIZATIONAL_TYPES.includes(nodeType)) {\n return \"organizational\";\n }\n\n // Unknown types default to L2\n console.warn(`[GraphTypes] Unknown nodeType \"${nodeType}\", defaulting to L2`);\n return \"L2\";\n}\n\n/**\n * Get the Neo4j label for a node type\n */\nexport function getNeo4jLabel(nodeType: string): string {\n return (\n NODE_TYPE_TO_LABEL[nodeType] ||\n nodeType.charAt(0).toUpperCase() + nodeType.slice(1)\n );\n}\n\n/**\n * Get the Neo4j relationship type for an edge type\n */\nexport function getNeo4jRelType(edgeType: string): string {\n return EDGE_TYPE_TO_REL[edgeType] || edgeType.toUpperCase();\n}\n\n/**\n * The 6 canonical epistemic edge types (Kernel v2).\n * Anything not in this set or the ontological/L4 sets is deprecated.\n */\nconst CANONICAL_EPISTEMIC_TYPES = new Set([\n \"supports\",\n \"informs\",\n \"depends_on\",\n \"derived_from\",\n \"contains\",\n \"tests\",\n]);\n\n/**\n * Check if an edge type is deprecated.\n *\n * Kernel v2: only the 6 canonical epistemic types, L4 decision types,\n * and ontological types are active. All legacy types (67 old types) are deprecated.\n */\nexport function isDeprecatedEdgeType(edgeType: string): boolean {\n // Canonical epistemic types are NOT deprecated\n if (CANONICAL_EPISTEMIC_TYPES.has(edgeType)) {\n return false;\n }\n // Types in the EDGE_TYPE_TO_REL map (ontological + L4) are NOT deprecated\n if (edgeType in EDGE_TYPE_TO_REL) {\n return false;\n }\n // Everything else is a legacy type\n return true;\n}\n","/**\n * edgeValidation module implementation.\n */\n\n// biome-ignore-all lint/style/useFilenamingConvention: Public package path is part of a stable ABI; renaming requires an export-map migration.\n\nimport type { EpistemicLayer } from \"./graphTypes\";\n\nexport type { EpistemicLayer } from \"./graphTypes\";\n// biome-ignore lint/performance/noBarrelFile: Public compatibility module.\nexport { isDeprecatedEdgeType } from \"./graphTypes\";\n\nconst VALID_LAYER_CONNECTIONS: Record<\n EpistemicLayer,\n ReadonlySet<EpistemicLayer>\n> = {\n ontological: new Set([\"ontological\", \"L1\", \"L2\", \"L3\"]),\n L1: new Set([\"L1\", \"L2\"]),\n L2: new Set([\"L1\", \"L2\", \"L3\", \"ontological\"]),\n L3: new Set([\"L2\", \"L3\", \"L4\", \"ontological\", \"organizational\"]),\n L4: new Set([\"L3\", \"L4\"]),\n organizational: new Set([\"organizational\", \"L3\"]),\n};\n\nfunction getLayerDepth(layer: EpistemicLayer): number {\n switch (layer) {\n case \"L4\":\n return 4;\n case \"L3\":\n return 3;\n case \"L2\":\n return 2;\n case \"L1\":\n return 1;\n case \"ontological\":\n return 0;\n default:\n return -1;\n }\n}\n\nfunction isValidLayerConnection(\n fromLayer: EpistemicLayer,\n toLayer: EpistemicLayer\n): boolean {\n if (!VALID_LAYER_CONNECTIONS[fromLayer].has(toLayer)) {\n return false;\n }\n\n if (fromLayer === \"ontological\" || toLayer === \"ontological\") {\n return true;\n }\n\n if (fromLayer === \"organizational\" || toLayer === \"organizational\") {\n return true;\n }\n\n const fromDepth = getLayerDepth(fromLayer);\n const toDepth = getLayerDepth(toLayer);\n if (Math.abs(fromDepth - toDepth) > 1) {\n return false;\n }\n return true;\n}\n\nexport type TraversalMode =\n | \"anchor_down\"\n | \"anchor_up\"\n | \"same_layer\"\n | \"decision_trace\";\n\nexport function shouldContinueTraversal(\n currentLayer: EpistemicLayer,\n targetLayer: EpistemicLayer,\n options: {\n mode: TraversalMode;\n minLayer?: number;\n maxLayer?: number;\n }\n): boolean {\n const currentDepth = getLayerDepth(currentLayer);\n const targetDepth = getLayerDepth(targetLayer);\n\n if (options.minLayer !== undefined && targetDepth < options.minLayer) {\n return false;\n }\n if (options.maxLayer !== undefined && targetDepth > options.maxLayer) {\n return false;\n }\n\n switch (options.mode) {\n case \"anchor_down\":\n return targetDepth <= currentDepth;\n case \"anchor_up\":\n return targetDepth >= currentDepth;\n case \"same_layer\":\n return targetDepth === currentDepth;\n case \"decision_trace\":\n return currentDepth === 4\n ? targetDepth === 3\n : targetDepth === currentDepth;\n default:\n return true;\n }\n}\n\nexport function getDefaultMinLayer(mode: TraversalMode): number {\n switch (mode) {\n case \"anchor_down\":\n return 1;\n case \"anchor_up\":\n return 2;\n case \"same_layer\":\n return 1;\n case \"decision_trace\":\n return 3;\n default:\n return 1;\n }\n}\n\nexport const EDGE_LAYER_RULES: Record<\n string,\n { from: EpistemicLayer[]; to: EpistemicLayer[]; description: string }\n> = {\n // === 6 Canonical Epistemic Types ===\n supports: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief bears on Belief (weight: +1 supports, -1 contradicts)\",\n },\n informs: {\n from: [\"L2\"],\n to: [\"L3\"],\n description: \"Evidence -> Belief (L2 -> L3)\",\n },\n depends_on: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief B requires Belief A (structural gate)\",\n },\n derived_from: {\n from: [\"L2\", \"L3\", \"L4\"],\n to: [\"L1\", \"L2\", \"L3\"],\n description: \"A was produced from B (provenance chain)\",\n },\n contains: {\n from: [\"L3\", \"L4\", \"ontological\"],\n to: [\"L2\", \"L3\", \"ontological\"],\n description: \"A scopes/aggregates B (hierarchy)\",\n },\n tests: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Question -> Belief (L3 -> L3)\",\n },\n\n // === Structural / Lifecycle ===\n supersedes: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"NewNode -> OldNode (fork lineage)\",\n },\n responds_to: {\n from: [\"L2\", \"L3\"],\n to: [\"L3\"],\n description: \"Answer -> Question (L2/L3 -> L3)\",\n },\n belongs_to: {\n from: [\"L2\", \"L3\", \"ontological\"],\n to: [\"L3\"],\n description: \"Membership (migrating to contains)\",\n },\n relates_to_thesis: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief -> Theme (L3 -> L3)\",\n },\n\n // === Ontological (entity-entity or entity-epistemic bridge) ===\n works_at: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Person -> Company\",\n },\n invested_in: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Investor -> Company\",\n },\n competes_with: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> Company\",\n },\n participates_in: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> ValueChain\",\n },\n founded_by: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> Person\",\n },\n evaluates: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Deal -> Company\",\n },\n performs: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> Function\",\n },\n function_in: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Function -> ValueChain\",\n },\n impacts: {\n from: [\"ontological\", \"L3\"],\n to: [\"ontological\"],\n description: \"Theme/Entity -> ValueChain\",\n },\n raised_from: {\n from: [\"ontological\"],\n to: [\"ontological\"],\n description: \"Company -> Investor\",\n },\n mentioned_in: {\n from: [\"ontological\"],\n to: [\"L1\", \"L2\"],\n description: \"Entity -> Source/Evidence\",\n },\n perspective_on: {\n from: [\"ontological\"],\n to: [\"L3\"],\n description: \"Person -> Belief/Theme\",\n },\n plays_theme: {\n from: [\"ontological\"],\n to: [\"L3\"],\n description: \"Deal -> Theme\",\n },\n\n // C2-RR.4 — storage migration alias + the remaining 55 reachable edge types.\n // Mirrors the kernel rule table\n // (packages/reasoning-kernel/src/adapters/lib/edgeValidation.ts) so this\n // graph-primitives write path admits the same public edge vocabulary. See the\n // kernel file for the per-group rationale.\n extracted_from: {\n from: [\"L2\", \"L3\", \"L4\"],\n to: [\"L1\", \"L2\", \"L3\"],\n description:\n \"Legacy storage migration alias for derived_from; public writes use derived_from\",\n },\n qualifies: {\n from: [\"L2\", \"L3\"],\n to: [\"L3\"],\n description: \"Evidence/Belief qualifies a Belief\",\n },\n contradicts: {\n from: [\"L2\", \"L3\"],\n to: [\"L3\"],\n description: \"Evidence/Belief contradicts a Belief\",\n },\n reinforces: {\n from: [\"L2\", \"L3\"],\n to: [\"L3\"],\n description: \"Evidence/Belief reinforces a Belief\",\n },\n corroborates: {\n from: [\"L2\", \"L3\"],\n to: [\"L3\"],\n description: \"Independent evidence/belief corroborates a Belief\",\n },\n strengthened_by: {\n from: [\"L3\"],\n to: [\"L2\", \"L3\"],\n description: \"Belief is strengthened by Evidence/Belief\",\n },\n weakened_by: {\n from: [\"L3\"],\n to: [\"L2\", \"L3\"],\n description: \"Belief is weakened by Evidence/Belief\",\n },\n validated_by: {\n from: [\"L3\"],\n to: [\"L2\", \"L3\"],\n description: \"Belief is validated by Evidence/Belief\",\n },\n falsified_by: {\n from: [\"L3\"],\n to: [\"L2\", \"L3\"],\n description: \"Belief is falsified by Evidence/Belief\",\n },\n amplifies: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief amplifies another Belief\",\n },\n precondition_for: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is a precondition for another Belief\",\n },\n prerequisite_for: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is a prerequisite for another Belief\",\n },\n required_for: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is required for another Belief\",\n },\n in_tension_with: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is in tension with another Belief\",\n },\n mutually_exclusive: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Beliefs cannot both hold\",\n },\n exclusive_with: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is exclusive with another Belief\",\n },\n alternative_to: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is an alternative to another Belief\",\n },\n subsumes: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief subsumes a narrower Belief\",\n },\n extends: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief extends another Belief\",\n },\n refines: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief refines another Belief\",\n },\n implements: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief implements an abstract Belief\",\n },\n violates: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief violates a constraint Belief\",\n },\n assumes: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief assumes another Belief\",\n },\n would_predict: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief would predict another Belief\",\n },\n analogous_to: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is analogous to another Belief\",\n },\n independent_of: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is independent of another Belief\",\n },\n correlates_with: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief correlates with another Belief\",\n },\n co_changes_with: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief co-changes with another Belief\",\n },\n counterfactual_of: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is a counterfactual of another Belief\",\n },\n parallel_to: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief runs parallel to another Belief\",\n },\n cascade_from: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Cascade from an upstream Belief\",\n },\n cascade_to: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Cascade to a downstream Belief\",\n },\n collapses_if: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief collapses if another fails\",\n },\n branches_from: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief branches from an ancestor Belief\",\n },\n same_as: {\n from: [\"L2\", \"L3\", \"ontological\"],\n to: [\"L2\", \"L3\", \"ontological\"],\n description: \"Two nodes are the same entity\",\n },\n answers: {\n from: [\"L2\", \"L3\"],\n to: [\"L3\"],\n description: \"Answer/Belief answers a Question\",\n },\n partially_answers: {\n from: [\"L2\", \"L3\"],\n to: [\"L3\"],\n description: \"Answer/Belief partially answers a Question\",\n },\n explores: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Question explores a Belief/Theme\",\n },\n informed_by_theme: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Belief is informed by a Theme\",\n },\n same_theme_as: {\n from: [\"L3\"],\n to: [\"L3\"],\n description: \"Two Beliefs share a Theme\",\n },\n based_on: {\n from: [\"L4\"],\n to: [\"L3\"],\n description: \"Decision is based on a Belief/Question\",\n },\n based_on_belief: {\n from: [\"L4\"],\n to: [\"L3\"],\n description: \"Decision is based on a Belief\",\n },\n based_on_question: {\n from: [\"L4\"],\n to: [\"L3\"],\n description: \"Decision is based on a Question\",\n },\n blocked_by_contradiction: {\n from: [\"L4\"],\n to: [\"L3\"],\n description: \"Decision is blocked by a Contradiction\",\n },\n parent_of: {\n from: [\"L3\", \"L4\", \"ontological\", \"organizational\"],\n to: [\"L2\", \"L3\", \"ontological\", \"organizational\"],\n description: \"A is the parent of B\",\n },\n child_of: {\n from: [\"L2\", \"L3\", \"ontological\", \"organizational\"],\n to: [\"L3\", \"L4\", \"ontological\", \"organizational\"],\n description: \"A is the child of B\",\n },\n scoped_by: {\n from: [\"L2\", \"L3\"],\n to: [\"L3\", \"organizational\"],\n description: \"Object is scoped by a Topic/Theme\",\n },\n cites: {\n from: [\"L2\", \"L3\"],\n to: [\"L1\", \"L2\"],\n description: \"Evidence/Belief cites a Source/Excerpt\",\n },\n summarizes: {\n from: [\"L2\", \"L3\"],\n to: [\"L1\", \"L2\"],\n description: \"Synthesis/Evidence summarizes a Source/Evidence\",\n },\n same_source_as: {\n from: [\"L1\", \"L2\"],\n to: [\"L1\", \"L2\"],\n description: \"Two nodes derive from the same Source\",\n },\n migrating_from: {\n from: [\"L2\", \"L3\", \"L4\"],\n to: [\"L1\", \"L2\", \"L3\"],\n description: \"Migration lineage: from an ancestor\",\n },\n migrating_to: {\n from: [\"L1\", \"L2\", \"L3\"],\n to: [\"L2\", \"L3\", \"L4\"],\n description: \"Migration lineage: to a successor\",\n },\n about_entity: {\n from: [\"L2\", \"L3\"],\n to: [\"ontological\"],\n description: \"Belief/Evidence is about an Entity\",\n },\n entity_referenced_in: {\n from: [\"ontological\"],\n to: [\"L1\", \"L2\"],\n description: \"Entity is referenced in a Source/Evidence\",\n },\n related_to: {\n from: [\"L2\", \"L3\", \"ontological\", \"organizational\"],\n to: [\"L2\", \"L3\", \"ontological\", \"organizational\"],\n description: \"Lateral adjacency; no confidence pressure\",\n },\n blocks: {\n from: [\"L3\", \"L4\"],\n to: [\"L3\", \"L4\"],\n description: \"A blocks B (structural gate)\",\n },\n};\n\nexport function validateEdgeLayers(\n edgeType: string,\n fromLayer: EpistemicLayer,\n toLayer: EpistemicLayer\n): { valid: boolean; reason?: string } {\n const rules = EDGE_LAYER_RULES[edgeType];\n\n if (!rules) {\n console.warn(\n `[EdgeValidation] Unknown edge type: ${edgeType}, allowing by default`\n );\n return { valid: true };\n }\n\n if (edgeType === \"supersedes\") {\n if (fromLayer !== toLayer) {\n return {\n valid: false,\n reason: `${edgeType} edges must be between nodes of the same layer. Got ${fromLayer} -> ${toLayer}`,\n };\n }\n return { valid: true };\n }\n\n if (!rules.from.includes(fromLayer)) {\n return {\n valid: false,\n reason: `Edge type '${edgeType}' does not allow source layer ${fromLayer}. Allowed: ${rules.from.join(\", \")}`,\n };\n }\n\n if (!rules.to.includes(toLayer)) {\n return {\n valid: false,\n reason: `Edge type '${edgeType}' does not allow target layer ${toLayer}. Allowed: ${rules.to.join(\", \")}`,\n };\n }\n\n if (!isValidLayerConnection(fromLayer, toLayer)) {\n return {\n valid: false,\n reason: `Layer transition ${fromLayer} -> ${toLayer} is not permitted`,\n };\n }\n\n return { valid: true };\n}\n","/**\n * helpers module implementation.\n */\n\nimport { type Id, internal, type MutationCtx } from \"./convex\";\nimport { type EpistemicLayer, validateEdgeLayers } from \"./edgeValidation\";\nimport { generateGlobalId } from \"./globalId\";\nimport { getNodeLayer as resolveNodeLayer } from \"./graphTypes\";\n\n// biome-ignore lint/performance/noBarrelFile: Public helper compatibility export retained for existing graph-primitives consumers.\nexport { getNodeLayer } from \"./graphTypes\";\n\nfunction readOptionalString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value\n : undefined;\n}\n\nexport async function createEpistemicEdge(\n ctx: MutationCtx,\n params: {\n fromNodeId: Id<\"epistemicNodes\">;\n toNodeId: Id<\"epistemicNodes\">;\n edgeType: string;\n weight?: number;\n confidence?: number;\n context?: string;\n projectId?: string;\n createdBy: string;\n skipLayerValidation?: boolean;\n }\n): Promise<string> {\n const globalId = generateGlobalId();\n\n const fromNode = await ctx.db.get(params.fromNodeId);\n const toNode = await ctx.db.get(params.toNodeId);\n\n if (!(fromNode && toNode)) {\n throw new Error(\"One or both nodes not found\");\n }\n\n const fromNodeType = readOptionalString(fromNode.nodeType);\n const toNodeType = readOptionalString(toNode.nodeType);\n const fromGlobalId = readOptionalString(fromNode.globalId);\n const toGlobalId = readOptionalString(toNode.globalId);\n if (!(fromNodeType && toNodeType && fromGlobalId && toGlobalId)) {\n throw new Error(\n \"Cannot create epistemic edge without canonical nodeType and globalId on both endpoints\"\n );\n }\n\n const fromLayer =\n readOptionalString(fromNode.epistemicLayer) ??\n resolveNodeLayer(fromNodeType);\n const toLayer =\n readOptionalString(toNode.epistemicLayer) ?? resolveNodeLayer(toNodeType);\n\n if (!params.skipLayerValidation) {\n const validation = validateEdgeLayers(\n params.edgeType,\n fromLayer as EpistemicLayer,\n toLayer as EpistemicLayer\n );\n if (!validation.valid) {\n throw new Error(\n `[EdgeValidation] Invalid edge: ${validation.reason}. ` +\n `Attempted: ${params.edgeType} from ${fromNodeType}(${fromLayer}) → ${toNodeType}(${toLayer})`\n );\n }\n }\n\n await ctx.scheduler.runAfter(0, internal.neo4jEdgeAPI.createEdge, {\n globalId,\n fromGlobalId,\n toGlobalId,\n edgeType: params.edgeType,\n weight: params.weight,\n confidence: params.confidence,\n context: params.context,\n createdBy: params.createdBy,\n topicId: params.projectId ? String(params.projectId) : undefined,\n fromNodeType,\n toNodeType,\n fromLayer,\n toLayer,\n });\n\n return globalId;\n}\n"]}
@@ -1,10 +1,11 @@
1
- import { EpistemicEvaluator } from './epistemicContracts.types.js';
2
- import { EngineeringEpistemicEvaluator, testRunnerEvaluator } from './evaluators/testRunnerEvaluator.js';
3
- import { lintCheckerEvaluator } from './evaluators/lintCheckerEvaluator.js';
4
- import { sentryCheckerEvaluator } from './evaluators/sentryCheckerEvaluator.js';
5
- import { tscCheckerEvaluator } from './evaluators/tscCheckerEvaluator.js';
1
+ import { EpistemicEvaluator } from './epistemicContracts.js';
2
+ import { EngineeringEpistemicEvaluator } from './evaluators/test-runner-evaluator.js';
6
3
 
7
4
  declare const ENGINEERING_EPISTEMIC_EVALUATORS: EngineeringEpistemicEvaluator[];
5
+ declare const lintCheckerEvaluator: EngineeringEpistemicEvaluator;
6
+ declare const sentryCheckerEvaluator: EngineeringEpistemicEvaluator;
7
+ declare const testRunnerEvaluator: EngineeringEpistemicEvaluator;
8
+ declare const tscCheckerEvaluator: EngineeringEpistemicEvaluator;
8
9
  declare const ENGINEERING_EVALUATOR_NAMES: Set<string>;
9
10
  declare function getEngineeringEpistemicEvaluator(name: string): EngineeringEpistemicEvaluator | undefined;
10
11
  declare function registerAllEngineeringEvaluators(registerEvaluator: (evaluator: EpistemicEvaluator) => void): void;
@@ -28,4 +29,4 @@ declare namespace index {
28
29
  export { index_ENGINEERING_EPISTEMIC_EVALUATORS as ENGINEERING_EPISTEMIC_EVALUATORS, index_ENGINEERING_EVALUATOR_NAMES as ENGINEERING_EVALUATOR_NAMES, index_RESEARCH_EVALUATOR_NAMES as RESEARCH_EVALUATOR_NAMES, type index_ResearchEvaluatorName as ResearchEvaluatorName, index_getEngineeringEpistemicEvaluator as getEngineeringEpistemicEvaluator, index_lintCheckerEvaluator as lintCheckerEvaluator, index_registerAllEngineeringEvaluators as registerAllEngineeringEvaluators, index_registerAllResearchEvaluators as registerAllResearchEvaluators, index_sentryCheckerEvaluator as sentryCheckerEvaluator, index_testRunnerEvaluator as testRunnerEvaluator, index_tscCheckerEvaluator as tscCheckerEvaluator };
29
30
  }
30
31
 
31
- export { ENGINEERING_EPISTEMIC_EVALUATORS as E, RESEARCH_EVALUATOR_NAMES as R, ENGINEERING_EVALUATOR_NAMES as a, type ResearchEvaluatorName as b, registerAllResearchEvaluators as c, getEngineeringEpistemicEvaluator as g, index as i, registerAllEngineeringEvaluators as r };
32
+ export { ENGINEERING_EPISTEMIC_EVALUATORS as E, RESEARCH_EVALUATOR_NAMES as R, ENGINEERING_EVALUATOR_NAMES as a, type ResearchEvaluatorName as b, registerAllResearchEvaluators as c, tscCheckerEvaluator as d, getEngineeringEpistemicEvaluator as g, index as i, lintCheckerEvaluator as l, registerAllEngineeringEvaluators as r, sentryCheckerEvaluator as s, testRunnerEvaluator as t };
package/dist/index.d.ts CHANGED
@@ -1,76 +1,80 @@
1
1
  import { EpistemicLayer as EpistemicLayer$1, canTraverseToLayer, getDefaultEdgeTypesForMode, getDefaultMinLayer as getDefaultMinLayer$1, getLayerDepth, getNodeLayer, isValidLayerConnection, shouldContinueTraversal as shouldContinueTraversal$1, validateEdgeLayers as validateEdgeLayers$1 } from './epistemicLayerRules.js';
2
2
  import { E as EpistemicLayer, i as isDeprecatedEdgeType, g as getNeo4jLabel, a as getNeo4jRelType } from './graphTypes-B8VaIjnl.js';
3
3
  export { c as graphTypes } from './graphTypes-B8VaIjnl.js';
4
+ import { EdgePropagationSpec, canContinueTransitively, canTraverseHop, isPropagationTraversalDirection } from './edges/propagation-types.js';
4
5
  import { getEdgePropagationSpec, getEdgePropagationSpecs, getTraversalDirections } from './edges/index.js';
5
6
  import { getDefaultMinLayer, shouldContinueTraversal, validateEdgeLayers } from './edgeValidation.js';
6
- import { flattenBeliefNode, resolveBeliefWorktreeId } from './epistemicBeliefs.helpers.js';
7
7
  import { applyBeliefConfidenceChange } from './epistemicBeliefs.confidence.js';
8
- import { createEpistemicNodeForArtifact, createEpistemicNodeForBelief, createEpistemicNodeForInsight, createEpistemicNodeForQuestion } from './epistemicNodeCreation.js';
8
+ import { flattenBeliefNode, resolveBeliefWorktreeId } from './epistemicBeliefs.helpers.js';
9
9
  import { createEdgeForInsightQuestionLink, createEpistemicEdge, normalizeConfidence } from './epistemicEdgeCreation.js';
10
- export { b as beliefDecay } from './beliefDecay-DZ6tkLYq.js';
11
- export { b as beliefEvidenceLinks } from './beliefEvidenceLinks-CWOXxxJg.js';
10
+ import { createEpistemicNodeForArtifact, createEpistemicNodeForBelief, createEpistemicNodeForInsight, createEpistemicNodeForQuestion } from './epistemicNodeCreation.js';
11
+ export { b as beliefDecay } from './beliefDecay-BmkEk5OJ.js';
12
+ export { b as beliefEvidenceLinks } from './beliefEvidenceLinks-BzfjON_6.js';
12
13
  export { b as beliefLifecycle } from './beliefLifecycle-CXwdDw5e.js';
13
- export { c as contradictions } from './contradictions-51VLsESq.js';
14
- export { e as entityBridge } from './entityBridge-DMaKooYn.js';
15
- export { e as entityLifecycle } from './entityLifecycle-CvgSK5FV.js';
16
- export { e as entityValidation } from './entityValidation-KLZ_Xl2D.js';
17
- export { i as evaluators } from './index-C-Kyd7hD.js';
18
- export { e as epistemicAnswers } from './epistemicAnswers-C5ib4z6_.js';
19
- export { e as epistemicEdges } from './epistemicEdges-BF-cn4i3.js';
14
+ export { c as contradictions } from './contradictions-BATPuZTL.js';
15
+ export { e as entityBridge } from './entityBridge-BhVDM3pc.js';
16
+ export { e as entityLifecycle } from './entityLifecycle-BsfCz9pS.js';
17
+ export { e as entityValidation } from './entityValidation-B1yNEHJx.js';
18
+ export { e as epistemicAnswers } from './epistemicAnswers-f47YMu9U.js';
19
+ export { e as epistemicEdges } from './epistemicEdges-BGBh0QSP.js';
20
20
  export { e as epistemicEvidence } from './epistemicEvidence-DvfchNt7.js';
21
- export { e as epistemicLinking } from './epistemicLinking-CfE00tHJ.js';
22
- export { e as epistemicNodes } from './epistemicNodes-BCQxpYx_.js';
23
- export { e as epistemicQuestions } from './epistemicQuestions-bwHd2FWE.js';
24
- export { e as epistemicSources } from './epistemicSources-dlKj58Jp.js';
21
+ export { e as epistemicLinking } from './epistemicLinking-CsCDv2cN.js';
22
+ export { e as epistemicNodes } from './epistemicNodes-CokAgBHg.js';
23
+ export { e as epistemicQuestions } from './epistemicQuestions-Do1fhYm5.js';
24
+ export { e as epistemicSources } from './epistemicSources-DQtaEkWs.js';
25
+ export { i as evaluators } from './index-DZxyC9Pb.js';
25
26
  export { g as globalId } from './globalId-4y9SPpC_.js';
26
27
  export { h as helpers } from './helpers-DNYfg6mo.js';
27
28
  export { l as logicalRoleInference } from './logicalRoleInference-CJxqWi3u.js';
28
- export { o as ontologyApproval } from './ontologyApproval-CFYmqKmk.js';
29
- export { o as ontologyMatching } from './ontology-matching-C6rrz2VP.js';
30
- export { o as ontologyRegistry } from './ontologyRegistry-B67rPJ16.js';
31
- export { p as projectionReconciliation } from './projectionReconciliation-jww2fBI0.js';
32
- export { p as projectionStaleness } from './projectionStaleness-CmdbpjVK.js';
33
- export { q as questionEvidenceLinks } from './questionEvidenceLinks-DFlyPpAj.js';
34
- export { r as resolvers } from './resolvers-Br1a6eLV.js';
35
- export { r as resolverTypes } from './resolverTypes-CC8Ea2E2.js';
36
- export { t as textMatching } from './text-matching-DNg4M5Wd.js';
37
- export { t as topicScope } from './topicScope-7zhyeGl7.js';
38
- import { EdgePropagationSpec, canContinueTransitively, canTraverseHop, isPropagationTraversalDirection } from './edges/propagationTypes.js';
29
+ export { o as ontologyMatching } from './ontology-matching-C-mYFrir.js';
30
+ export { o as ontologyApproval } from './ontologyApproval-BVt0feJi.js';
31
+ export { o as ontologyRegistry } from './ontologyRegistry-CljS-ENv.js';
32
+ export { p as projectionReconciliation } from './projectionReconciliation-DnrSgHSQ.js';
33
+ export { p as projectionStaleness } from './projectionStaleness-C8ImQ2zP.js';
34
+ export { q as questionEvidenceLinks } from './questionEvidenceLinks-_nPRa-LY.js';
35
+ export { r as resolvers } from './resolvers-B1TIBmRO.js';
36
+ export { r as resolverTypes } from './resolverTypes-BOXPxLET.js';
37
+ export { t as textMatching } from './text-matching-DzFooju6.js';
38
+ export { t as topicScope } from './topicScope-DJVa0mLa.js';
39
39
  import './convex.js';
40
+ import '@lucern/access-control/convex';
41
+ import '@lucern/contracts/convex/unsafeAnyApi';
40
42
  import 'convex/values';
41
43
  import '@lucern/confidence';
42
- import './epistemicContracts.types.js';
43
- import './evaluators/testRunnerEvaluator.js';
44
- import './evaluators/lintCheckerEvaluator.js';
45
- import './evaluators/sentryCheckerEvaluator.js';
46
- import './evaluators/tscCheckerEvaluator.js';
47
- import './epistemicEdges.queries.js';
48
- import './epistemicEdges.mutations.js';
44
+ import '@lucern/access-control/structuredMutationError';
49
45
  import './epistemicEdges.handlers.js';
50
46
  import './epistemicEdges.helpers.js';
51
47
  import './epistemicEdges.types.js';
48
+ import './epistemicEdges.mutations.js';
49
+ import './epistemicEdges.queries.js';
52
50
  import './epistemicEvidenceHelpers.js';
51
+ import '@lucern/access-control/convex.js';
53
52
  import './epistemicEvidenceMutations.js';
54
53
  import './epistemicEvidenceQueries.js';
55
- import './epistemicNodes.validators.js';
56
54
  import './epistemicNodes.queries.js';
57
- import './epistemicNodes.mutations.js';
55
+ import './epistemicNodes.validators.js';
58
56
  import './epistemicNodes.internal.js';
57
+ import './epistemicNodes.mutations.js';
58
+ import './epistemicQuestions.conviction.js';
59
59
  import './epistemicQuestions.create.js';
60
+ import './epistemicQuestions.evidence.js';
61
+ import './epistemicQuestions.helpers.js';
60
62
  import './epistemicQuestions.lifecycle.js';
61
63
  import './epistemicQuestions.queries.js';
62
- import './epistemicQuestions.tail.js';
63
- import './epistemicQuestions.evidence.js';
64
64
  import './epistemicQuestions.sprint.js';
65
- import './epistemicQuestions.conviction.js';
66
- import './epistemicQuestions.helpers.js';
65
+ import './epistemicQuestions.tail.js';
66
+ import './epistemicContracts.js';
67
+ import './epistemicContracts.evaluators.js';
68
+ import './epistemicContracts.types.js';
69
+ import './epistemicContracts.handlers.js';
70
+ import './evaluators/test-runner-evaluator.js';
67
71
  import '@lucern/contracts/ids';
68
72
  import '@lucern/contracts/v1/ontologies/v1';
69
73
  import './topicProjectOverlay.js';
70
74
  import '@lucern/contracts/text-matching.contract';
71
75
 
72
76
  declare const edges: {
73
- readonly EDGE_PROPAGATION_SPECS: readonly EdgePropagationSpec[];
77
+ readonly EDGE_PROPAGATION_SPECS: readonly EdgePropagationSpec<string>[];
74
78
  readonly canContinueTransitively: typeof canContinueTransitively;
75
79
  readonly canTraverseHop: typeof canTraverseHop;
76
80
  readonly getEdgePropagationSpec: typeof getEdgePropagationSpec;
@@ -91,51 +95,51 @@ declare const edgeValidation: {
91
95
  };
92
96
  declare const epistemicBeliefs: {
93
97
  readonly applyBeliefConfidenceChange: typeof applyBeliefConfidenceChange;
94
- readonly archive: any;
95
- readonly backfillBeliefSprintIds: any;
96
- readonly backfillMandatoryPriors: any;
97
- readonly backfillScoredBeliefEdges: any;
98
- readonly backfillSyntheticOpinionHistory: any;
99
- readonly backfillTwoAxisConfidence: any;
100
- readonly batchUpdateCriticality: any;
101
- readonly create: any;
102
- readonly deleteRelationship: any;
98
+ readonly archive: unknown;
99
+ readonly backfillBeliefSprintIds: unknown;
100
+ readonly backfillMandatoryPriors: unknown;
101
+ readonly backfillScoredBeliefEdges: unknown;
102
+ readonly backfillSyntheticOpinionHistory: unknown;
103
+ readonly backfillTwoAxisConfidence: unknown;
104
+ readonly batchUpdateCriticality: unknown;
105
+ readonly create: unknown;
106
+ readonly deleteRelationship: unknown;
103
107
  readonly flattenBeliefNode: typeof flattenBeliefNode;
104
- readonly forkBelief: any;
105
- readonly getBeliefClusterPositions: any;
106
- readonly getByCriticality: any;
107
- readonly getById: any;
108
- readonly getByIds: any;
109
- readonly getByPillar: any;
110
- readonly getByProject: any;
111
- readonly getByProjectSystem: any;
112
- readonly getByTopic: any;
113
- readonly getByWorktree: any;
114
- readonly getConfidenceHistory: any;
115
- readonly getCountByStatus: any;
116
- readonly getLineage: any;
117
- readonly getRecentConfidenceChanges: any;
118
- readonly getRelationships: any;
119
- readonly getUnanalyzed: any;
120
- readonly getWithEvidence: any;
121
- readonly internalCreate: any;
122
- readonly internalGetActive: any;
123
- readonly internalGetById: any;
124
- readonly internalGetByProject: any;
125
- readonly internalGetByTopic: any;
126
- readonly linkBeliefs: any;
127
- readonly linkEvidence: any;
128
- readonly appendSlScoring: any;
129
- readonly propagateConfidenceChange: any;
130
- readonly reassignBeliefsTopic: any;
131
- readonly refineBelief: any;
108
+ readonly forkBelief: unknown;
109
+ readonly getBeliefClusterPositions: unknown;
110
+ readonly getByCriticality: unknown;
111
+ readonly getById: unknown;
112
+ readonly getByIds: unknown;
113
+ readonly getByPillar: unknown;
114
+ readonly getByProject: unknown;
115
+ readonly getByProjectSystem: unknown;
116
+ readonly getByTopic: unknown;
117
+ readonly getByWorktree: unknown;
118
+ readonly getConfidenceHistory: unknown;
119
+ readonly getCountByStatus: unknown;
120
+ readonly getLineage: unknown;
121
+ readonly getRecentConfidenceChanges: unknown;
122
+ readonly getRelationships: unknown;
123
+ readonly getUnanalyzed: unknown;
124
+ readonly getWithEvidence: unknown;
125
+ readonly internalCreate: unknown;
126
+ readonly internalGetActive: unknown;
127
+ readonly internalGetById: unknown;
128
+ readonly internalGetByProject: unknown;
129
+ readonly internalGetByTopic: unknown;
130
+ readonly linkBeliefs: unknown;
131
+ readonly linkEvidence: unknown;
132
+ readonly appendSlScoring: unknown;
133
+ readonly propagateConfidenceChange: unknown;
134
+ readonly reassignBeliefsTopic: unknown;
135
+ readonly refineBelief: unknown;
132
136
  readonly resolveBeliefWorktreeId: typeof resolveBeliefWorktreeId;
133
- readonly unlinkEvidence: any;
134
- readonly updateCriticality: any;
135
- readonly updatePillar: any;
136
- readonly updateRationale: any;
137
- readonly updateStatus: any;
138
- readonly updateStatusInternal: any;
137
+ readonly unlinkEvidence: unknown;
138
+ readonly updateCriticality: unknown;
139
+ readonly updatePillar: unknown;
140
+ readonly updateRationale: unknown;
141
+ readonly updateStatus: unknown;
142
+ readonly updateStatusInternal: unknown;
139
143
  };
140
144
  declare const epistemicHelpers: {
141
145
  readonly EDGE_LAYER_RULES: Record<string, {