@tenphi/akno-core 0.1.0

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 (485) hide show
  1. package/LICENSE +83 -0
  2. package/README.md +26 -0
  3. package/config/default.jsonc +548 -0
  4. package/dist/bench/answer-corpus.d.ts +48 -0
  5. package/dist/bench/answer-corpus.d.ts.map +1 -0
  6. package/dist/bench/answer-corpus.js +491 -0
  7. package/dist/bench/answer-corpus.js.map +1 -0
  8. package/dist/bench/answer.d.ts +156 -0
  9. package/dist/bench/answer.d.ts.map +1 -0
  10. package/dist/bench/answer.js +608 -0
  11. package/dist/bench/answer.js.map +1 -0
  12. package/dist/bench/auto-recall-answer-corpus.d.ts +21 -0
  13. package/dist/bench/auto-recall-answer-corpus.d.ts.map +1 -0
  14. package/dist/bench/auto-recall-answer-corpus.js +245 -0
  15. package/dist/bench/auto-recall-answer-corpus.js.map +1 -0
  16. package/dist/bench/auto-recall-answer.d.ts +198 -0
  17. package/dist/bench/auto-recall-answer.d.ts.map +1 -0
  18. package/dist/bench/auto-recall-answer.js +720 -0
  19. package/dist/bench/auto-recall-answer.js.map +1 -0
  20. package/dist/bench/auto-recall-corpus.d.ts +45 -0
  21. package/dist/bench/auto-recall-corpus.d.ts.map +1 -0
  22. package/dist/bench/auto-recall-corpus.js +221 -0
  23. package/dist/bench/auto-recall-corpus.js.map +1 -0
  24. package/dist/bench/auto-recall.d.ts +171 -0
  25. package/dist/bench/auto-recall.d.ts.map +1 -0
  26. package/dist/bench/auto-recall.js +651 -0
  27. package/dist/bench/auto-recall.js.map +1 -0
  28. package/dist/bench/entity-resolution.d.ts +37 -0
  29. package/dist/bench/entity-resolution.d.ts.map +1 -0
  30. package/dist/bench/entity-resolution.js +121 -0
  31. package/dist/bench/entity-resolution.js.map +1 -0
  32. package/dist/bench/graph.d.ts +57 -0
  33. package/dist/bench/graph.d.ts.map +1 -0
  34. package/dist/bench/graph.js +573 -0
  35. package/dist/bench/graph.js.map +1 -0
  36. package/dist/bench/llm-ranking-probe.d.ts +27 -0
  37. package/dist/bench/llm-ranking-probe.d.ts.map +1 -0
  38. package/dist/bench/llm-ranking-probe.js +105 -0
  39. package/dist/bench/llm-ranking-probe.js.map +1 -0
  40. package/dist/bench/merge-discovery-corpus.d.ts +26 -0
  41. package/dist/bench/merge-discovery-corpus.d.ts.map +1 -0
  42. package/dist/bench/merge-discovery-corpus.js +114 -0
  43. package/dist/bench/merge-discovery-corpus.js.map +1 -0
  44. package/dist/bench/merge-discovery-review.d.ts +81 -0
  45. package/dist/bench/merge-discovery-review.d.ts.map +1 -0
  46. package/dist/bench/merge-discovery-review.js +149 -0
  47. package/dist/bench/merge-discovery-review.js.map +1 -0
  48. package/dist/bench/merge-discovery.d.ts +122 -0
  49. package/dist/bench/merge-discovery.d.ts.map +1 -0
  50. package/dist/bench/merge-discovery.js +390 -0
  51. package/dist/bench/merge-discovery.js.map +1 -0
  52. package/dist/bench/mixed-retrieval.d.ts +35 -0
  53. package/dist/bench/mixed-retrieval.d.ts.map +1 -0
  54. package/dist/bench/mixed-retrieval.js +355 -0
  55. package/dist/bench/mixed-retrieval.js.map +1 -0
  56. package/dist/bench/ranking-corpus.d.ts +29 -0
  57. package/dist/bench/ranking-corpus.d.ts.map +1 -0
  58. package/dist/bench/ranking-corpus.js +514 -0
  59. package/dist/bench/ranking-corpus.js.map +1 -0
  60. package/dist/bench/ranking-end-to-end.d.ts +112 -0
  61. package/dist/bench/ranking-end-to-end.d.ts.map +1 -0
  62. package/dist/bench/ranking-end-to-end.js +479 -0
  63. package/dist/bench/ranking-end-to-end.js.map +1 -0
  64. package/dist/bench/ranking-latency.d.ts +71 -0
  65. package/dist/bench/ranking-latency.d.ts.map +1 -0
  66. package/dist/bench/ranking-latency.js +130 -0
  67. package/dist/bench/ranking-latency.js.map +1 -0
  68. package/dist/bench/ranking-matrix.d.ts +141 -0
  69. package/dist/bench/ranking-matrix.d.ts.map +1 -0
  70. package/dist/bench/ranking-matrix.js +526 -0
  71. package/dist/bench/ranking-matrix.js.map +1 -0
  72. package/dist/bench/ranking-review.d.ts +93 -0
  73. package/dist/bench/ranking-review.d.ts.map +1 -0
  74. package/dist/bench/ranking-review.js +249 -0
  75. package/dist/bench/ranking-review.js.map +1 -0
  76. package/dist/bench/ranking.d.ts +122 -0
  77. package/dist/bench/ranking.d.ts.map +1 -0
  78. package/dist/bench/ranking.js +547 -0
  79. package/dist/bench/ranking.js.map +1 -0
  80. package/dist/bench.d.ts +60 -0
  81. package/dist/bench.d.ts.map +1 -0
  82. package/dist/bench.js +167 -0
  83. package/dist/bench.js.map +1 -0
  84. package/dist/config/jsonc.d.ts +8 -0
  85. package/dist/config/jsonc.d.ts.map +1 -0
  86. package/dist/config/jsonc.js +85 -0
  87. package/dist/config/jsonc.js.map +1 -0
  88. package/dist/config/load.d.ts +43 -0
  89. package/dist/config/load.d.ts.map +1 -0
  90. package/dist/config/load.js +608 -0
  91. package/dist/config/load.js.map +1 -0
  92. package/dist/config/paths.d.ts +10 -0
  93. package/dist/config/paths.d.ts.map +1 -0
  94. package/dist/config/paths.js +38 -0
  95. package/dist/config/paths.js.map +1 -0
  96. package/dist/config/schema.d.ts +698 -0
  97. package/dist/config/schema.d.ts.map +1 -0
  98. package/dist/config/schema.js +394 -0
  99. package/dist/config/schema.js.map +1 -0
  100. package/dist/config/write-rules.d.ts +41 -0
  101. package/dist/config/write-rules.d.ts.map +1 -0
  102. package/dist/config/write-rules.js +225 -0
  103. package/dist/config/write-rules.js.map +1 -0
  104. package/dist/config/write-setup.d.ts +42 -0
  105. package/dist/config/write-setup.d.ts.map +1 -0
  106. package/dist/config/write-setup.js +358 -0
  107. package/dist/config/write-setup.js.map +1 -0
  108. package/dist/context.d.ts +64 -0
  109. package/dist/context.d.ts.map +1 -0
  110. package/dist/context.js +14 -0
  111. package/dist/context.js.map +1 -0
  112. package/dist/doctor.d.ts +115 -0
  113. package/dist/doctor.d.ts.map +1 -0
  114. package/dist/doctor.js +388 -0
  115. package/dist/doctor.js.map +1 -0
  116. package/dist/index/chunk.d.ts +62 -0
  117. package/dist/index/chunk.d.ts.map +1 -0
  118. package/dist/index/chunk.js +307 -0
  119. package/dist/index/chunk.js.map +1 -0
  120. package/dist/index/defer.d.ts +32 -0
  121. package/dist/index/defer.d.ts.map +1 -0
  122. package/dist/index/defer.js +66 -0
  123. package/dist/index/defer.js.map +1 -0
  124. package/dist/index/derive.d.ts +99 -0
  125. package/dist/index/derive.d.ts.map +1 -0
  126. package/dist/index/derive.js +378 -0
  127. package/dist/index/derive.js.map +1 -0
  128. package/dist/index/entity-resolution.d.ts +68 -0
  129. package/dist/index/entity-resolution.d.ts.map +1 -0
  130. package/dist/index/entity-resolution.js +305 -0
  131. package/dist/index/entity-resolution.js.map +1 -0
  132. package/dist/index/graph.d.ts +46 -0
  133. package/dist/index/graph.d.ts.map +1 -0
  134. package/dist/index/graph.js +618 -0
  135. package/dist/index/graph.js.map +1 -0
  136. package/dist/index/indexer.d.ts +301 -0
  137. package/dist/index/indexer.d.ts.map +1 -0
  138. package/dist/index/indexer.js +1398 -0
  139. package/dist/index/indexer.js.map +1 -0
  140. package/dist/index/revision-barrier.d.ts +30 -0
  141. package/dist/index/revision-barrier.d.ts.map +1 -0
  142. package/dist/index/revision-barrier.js +140 -0
  143. package/dist/index/revision-barrier.js.map +1 -0
  144. package/dist/index.d.ts +55 -0
  145. package/dist/index.d.ts.map +1 -0
  146. package/dist/index.js +37 -0
  147. package/dist/index.js.map +1 -0
  148. package/dist/ingest/adoption-eligibility.d.ts +4 -0
  149. package/dist/ingest/adoption-eligibility.d.ts.map +1 -0
  150. package/dist/ingest/adoption-eligibility.js +18 -0
  151. package/dist/ingest/adoption-eligibility.js.map +1 -0
  152. package/dist/ingest/availability.d.ts +15 -0
  153. package/dist/ingest/availability.d.ts.map +1 -0
  154. package/dist/ingest/availability.js +37 -0
  155. package/dist/ingest/availability.js.map +1 -0
  156. package/dist/ingest/extract.d.ts +58 -0
  157. package/dist/ingest/extract.d.ts.map +1 -0
  158. package/dist/ingest/extract.js +255 -0
  159. package/dist/ingest/extract.js.map +1 -0
  160. package/dist/ingest/fetch.d.ts +35 -0
  161. package/dist/ingest/fetch.d.ts.map +1 -0
  162. package/dist/ingest/fetch.js +142 -0
  163. package/dist/ingest/fetch.js.map +1 -0
  164. package/dist/ingest/inbox.d.ts +53 -0
  165. package/dist/ingest/inbox.d.ts.map +1 -0
  166. package/dist/ingest/inbox.js +110 -0
  167. package/dist/ingest/inbox.js.map +1 -0
  168. package/dist/ingest/name.d.ts +72 -0
  169. package/dist/ingest/name.d.ts.map +1 -0
  170. package/dist/ingest/name.js +208 -0
  171. package/dist/ingest/name.js.map +1 -0
  172. package/dist/ingest/parts.d.ts +78 -0
  173. package/dist/ingest/parts.d.ts.map +1 -0
  174. package/dist/ingest/parts.js +52 -0
  175. package/dist/ingest/parts.js.map +1 -0
  176. package/dist/ingest/rendition.d.ts +75 -0
  177. package/dist/ingest/rendition.d.ts.map +1 -0
  178. package/dist/ingest/rendition.js +92 -0
  179. package/dist/ingest/rendition.js.map +1 -0
  180. package/dist/ingest/store.d.ts +66 -0
  181. package/dist/ingest/store.d.ts.map +1 -0
  182. package/dist/ingest/store.js +92 -0
  183. package/dist/ingest/store.js.map +1 -0
  184. package/dist/kb/folders.d.ts +37 -0
  185. package/dist/kb/folders.d.ts.map +1 -0
  186. package/dist/kb/folders.js +133 -0
  187. package/dist/kb/folders.js.map +1 -0
  188. package/dist/kb/frontmatter.d.ts +91 -0
  189. package/dist/kb/frontmatter.d.ts.map +1 -0
  190. package/dist/kb/frontmatter.js +274 -0
  191. package/dist/kb/frontmatter.js.map +1 -0
  192. package/dist/kb/line-facts.d.ts +29 -0
  193. package/dist/kb/line-facts.d.ts.map +1 -0
  194. package/dist/kb/line-facts.js +23 -0
  195. package/dist/kb/line-facts.js.map +1 -0
  196. package/dist/kb/page.d.ts +92 -0
  197. package/dist/kb/page.d.ts.map +1 -0
  198. package/dist/kb/page.js +243 -0
  199. package/dist/kb/page.js.map +1 -0
  200. package/dist/kb/scan.d.ts +38 -0
  201. package/dist/kb/scan.d.ts.map +1 -0
  202. package/dist/kb/scan.js +109 -0
  203. package/dist/kb/scan.js.map +1 -0
  204. package/dist/kb/words.d.ts +30 -0
  205. package/dist/kb/words.d.ts.map +1 -0
  206. package/dist/kb/words.js +107 -0
  207. package/dist/kb/words.js.map +1 -0
  208. package/dist/maintenance/adopt.d.ts +65 -0
  209. package/dist/maintenance/adopt.d.ts.map +1 -0
  210. package/dist/maintenance/adopt.js +238 -0
  211. package/dist/maintenance/adopt.js.map +1 -0
  212. package/dist/maintenance/budget.d.ts +55 -0
  213. package/dist/maintenance/budget.d.ts.map +1 -0
  214. package/dist/maintenance/budget.js +61 -0
  215. package/dist/maintenance/budget.js.map +1 -0
  216. package/dist/maintenance/conflicts.d.ts +105 -0
  217. package/dist/maintenance/conflicts.d.ts.map +1 -0
  218. package/dist/maintenance/conflicts.js +368 -0
  219. package/dist/maintenance/conflicts.js.map +1 -0
  220. package/dist/maintenance/contradictions.d.ts +34 -0
  221. package/dist/maintenance/contradictions.d.ts.map +1 -0
  222. package/dist/maintenance/contradictions.js +199 -0
  223. package/dist/maintenance/contradictions.js.map +1 -0
  224. package/dist/maintenance/curate.d.ts +156 -0
  225. package/dist/maintenance/curate.d.ts.map +1 -0
  226. package/dist/maintenance/curate.js +2070 -0
  227. package/dist/maintenance/curate.js.map +1 -0
  228. package/dist/maintenance/dream.d.ts +139 -0
  229. package/dist/maintenance/dream.d.ts.map +1 -0
  230. package/dist/maintenance/dream.js +1632 -0
  231. package/dist/maintenance/dream.js.map +1 -0
  232. package/dist/maintenance/graph-candidates.d.ts +19 -0
  233. package/dist/maintenance/graph-candidates.d.ts.map +1 -0
  234. package/dist/maintenance/graph-candidates.js +120 -0
  235. package/dist/maintenance/graph-candidates.js.map +1 -0
  236. package/dist/maintenance/housekeeping.d.ts +81 -0
  237. package/dist/maintenance/housekeeping.d.ts.map +1 -0
  238. package/dist/maintenance/housekeeping.js +281 -0
  239. package/dist/maintenance/housekeeping.js.map +1 -0
  240. package/dist/maintenance/link-repairs.d.ts +58 -0
  241. package/dist/maintenance/link-repairs.d.ts.map +1 -0
  242. package/dist/maintenance/link-repairs.js +281 -0
  243. package/dist/maintenance/link-repairs.js.map +1 -0
  244. package/dist/maintenance/log.d.ts +41 -0
  245. package/dist/maintenance/log.d.ts.map +1 -0
  246. package/dist/maintenance/log.js +72 -0
  247. package/dist/maintenance/log.js.map +1 -0
  248. package/dist/maintenance/managed-item-routing.d.ts +48 -0
  249. package/dist/maintenance/managed-item-routing.d.ts.map +1 -0
  250. package/dist/maintenance/managed-item-routing.js +281 -0
  251. package/dist/maintenance/managed-item-routing.js.map +1 -0
  252. package/dist/maintenance/managed-item-sources.d.ts +38 -0
  253. package/dist/maintenance/managed-item-sources.d.ts.map +1 -0
  254. package/dist/maintenance/managed-item-sources.js +324 -0
  255. package/dist/maintenance/managed-item-sources.js.map +1 -0
  256. package/dist/maintenance/managed-items.d.ts +162 -0
  257. package/dist/maintenance/managed-items.d.ts.map +1 -0
  258. package/dist/maintenance/managed-items.js +1329 -0
  259. package/dist/maintenance/managed-items.js.map +1 -0
  260. package/dist/maintenance/merge-classifier.d.ts +19 -0
  261. package/dist/maintenance/merge-classifier.d.ts.map +1 -0
  262. package/dist/maintenance/merge-classifier.js +49 -0
  263. package/dist/maintenance/merge-classifier.js.map +1 -0
  264. package/dist/maintenance/model-telemetry.d.ts +45 -0
  265. package/dist/maintenance/model-telemetry.d.ts.map +1 -0
  266. package/dist/maintenance/model-telemetry.js +107 -0
  267. package/dist/maintenance/model-telemetry.js.map +1 -0
  268. package/dist/maintenance/observe.d.ts +72 -0
  269. package/dist/maintenance/observe.d.ts.map +1 -0
  270. package/dist/maintenance/observe.js +265 -0
  271. package/dist/maintenance/observe.js.map +1 -0
  272. package/dist/maintenance/path-policy.d.ts +83 -0
  273. package/dist/maintenance/path-policy.d.ts.map +1 -0
  274. package/dist/maintenance/path-policy.js +360 -0
  275. package/dist/maintenance/path-policy.js.map +1 -0
  276. package/dist/maintenance/plans.d.ts +366 -0
  277. package/dist/maintenance/plans.d.ts.map +1 -0
  278. package/dist/maintenance/plans.js +4060 -0
  279. package/dist/maintenance/plans.js.map +1 -0
  280. package/dist/maintenance/profile.d.ts +33 -0
  281. package/dist/maintenance/profile.d.ts.map +1 -0
  282. package/dist/maintenance/profile.js +99 -0
  283. package/dist/maintenance/profile.js.map +1 -0
  284. package/dist/maintenance/recovery.d.ts +38 -0
  285. package/dist/maintenance/recovery.d.ts.map +1 -0
  286. package/dist/maintenance/recovery.js +217 -0
  287. package/dist/maintenance/recovery.js.map +1 -0
  288. package/dist/maintenance/repair.d.ts +37 -0
  289. package/dist/maintenance/repair.d.ts.map +1 -0
  290. package/dist/maintenance/repair.js +183 -0
  291. package/dist/maintenance/repair.js.map +1 -0
  292. package/dist/maintenance/rule-drift.d.ts +104 -0
  293. package/dist/maintenance/rule-drift.d.ts.map +1 -0
  294. package/dist/maintenance/rule-drift.js +507 -0
  295. package/dist/maintenance/rule-drift.js.map +1 -0
  296. package/dist/maintenance/run-verification.d.ts +44 -0
  297. package/dist/maintenance/run-verification.d.ts.map +1 -0
  298. package/dist/maintenance/run-verification.js +253 -0
  299. package/dist/maintenance/run-verification.js.map +1 -0
  300. package/dist/maintenance/runs.d.ts +142 -0
  301. package/dist/maintenance/runs.d.ts.map +1 -0
  302. package/dist/maintenance/runs.js +439 -0
  303. package/dist/maintenance/runs.js.map +1 -0
  304. package/dist/maintenance/semantic-merge-discovery.d.ts +54 -0
  305. package/dist/maintenance/semantic-merge-discovery.d.ts.map +1 -0
  306. package/dist/maintenance/semantic-merge-discovery.js +308 -0
  307. package/dist/maintenance/semantic-merge-discovery.js.map +1 -0
  308. package/dist/maintenance/temporal.d.ts +44 -0
  309. package/dist/maintenance/temporal.d.ts.map +1 -0
  310. package/dist/maintenance/temporal.js +295 -0
  311. package/dist/maintenance/temporal.js.map +1 -0
  312. package/dist/models/client.d.ts +214 -0
  313. package/dist/models/client.d.ts.map +1 -0
  314. package/dist/models/client.js +904 -0
  315. package/dist/models/client.js.map +1 -0
  316. package/dist/models/provider-api.d.ts +28 -0
  317. package/dist/models/provider-api.d.ts.map +1 -0
  318. package/dist/models/provider-api.js +320 -0
  319. package/dist/models/provider-api.js.map +1 -0
  320. package/dist/open.d.ts +163 -0
  321. package/dist/open.d.ts.map +1 -0
  322. package/dist/open.js +382 -0
  323. package/dist/open.js.map +1 -0
  324. package/dist/ops/adopt.d.ts +12 -0
  325. package/dist/ops/adopt.d.ts.map +1 -0
  326. package/dist/ops/adopt.js +138 -0
  327. package/dist/ops/adopt.js.map +1 -0
  328. package/dist/ops/answer.d.ts +29 -0
  329. package/dist/ops/answer.d.ts.map +1 -0
  330. package/dist/ops/answer.js +557 -0
  331. package/dist/ops/answer.js.map +1 -0
  332. package/dist/ops/context.d.ts +18 -0
  333. package/dist/ops/context.d.ts.map +1 -0
  334. package/dist/ops/context.js +713 -0
  335. package/dist/ops/context.js.map +1 -0
  336. package/dist/ops/folder.d.ts +23 -0
  337. package/dist/ops/folder.d.ts.map +1 -0
  338. package/dist/ops/folder.js +130 -0
  339. package/dist/ops/folder.js.map +1 -0
  340. package/dist/ops/forget.d.ts +14 -0
  341. package/dist/ops/forget.d.ts.map +1 -0
  342. package/dist/ops/forget.js +212 -0
  343. package/dist/ops/forget.js.map +1 -0
  344. package/dist/ops/graph.d.ts +10 -0
  345. package/dist/ops/graph.d.ts.map +1 -0
  346. package/dist/ops/graph.js +480 -0
  347. package/dist/ops/graph.js.map +1 -0
  348. package/dist/ops/ingest.d.ts +40 -0
  349. package/dist/ops/ingest.d.ts.map +1 -0
  350. package/dist/ops/ingest.js +434 -0
  351. package/dist/ops/ingest.js.map +1 -0
  352. package/dist/ops/list.d.ts +9 -0
  353. package/dist/ops/list.d.ts.map +1 -0
  354. package/dist/ops/list.js +217 -0
  355. package/dist/ops/list.js.map +1 -0
  356. package/dist/ops/move.d.ts +20 -0
  357. package/dist/ops/move.d.ts.map +1 -0
  358. package/dist/ops/move.js +173 -0
  359. package/dist/ops/move.js.map +1 -0
  360. package/dist/ops/read.d.ts +9 -0
  361. package/dist/ops/read.d.ts.map +1 -0
  362. package/dist/ops/read.js +271 -0
  363. package/dist/ops/read.js.map +1 -0
  364. package/dist/ops/recall.d.ts +13 -0
  365. package/dist/ops/recall.d.ts.map +1 -0
  366. package/dist/ops/recall.js +297 -0
  367. package/dist/ops/recall.js.map +1 -0
  368. package/dist/ops/remember.d.ts +34 -0
  369. package/dist/ops/remember.d.ts.map +1 -0
  370. package/dist/ops/remember.js +660 -0
  371. package/dist/ops/remember.js.map +1 -0
  372. package/dist/ops/timeline.d.ts +11 -0
  373. package/dist/ops/timeline.d.ts.map +1 -0
  374. package/dist/ops/timeline.js +111 -0
  375. package/dist/ops/timeline.js.map +1 -0
  376. package/dist/ops/undo.d.ts +9 -0
  377. package/dist/ops/undo.d.ts.map +1 -0
  378. package/dist/ops/undo.js +38 -0
  379. package/dist/ops/undo.js.map +1 -0
  380. package/dist/ops/write.d.ts +55 -0
  381. package/dist/ops/write.d.ts.map +1 -0
  382. package/dist/ops/write.js +463 -0
  383. package/dist/ops/write.js.map +1 -0
  384. package/dist/recall/assemble.d.ts +81 -0
  385. package/dist/recall/assemble.d.ts.map +1 -0
  386. package/dist/recall/assemble.js +603 -0
  387. package/dist/recall/assemble.js.map +1 -0
  388. package/dist/recall/expand.d.ts +55 -0
  389. package/dist/recall/expand.d.ts.map +1 -0
  390. package/dist/recall/expand.js +282 -0
  391. package/dist/recall/expand.js.map +1 -0
  392. package/dist/recall/graph-arm.d.ts +17 -0
  393. package/dist/recall/graph-arm.d.ts.map +1 -0
  394. package/dist/recall/graph-arm.js +227 -0
  395. package/dist/recall/graph-arm.js.map +1 -0
  396. package/dist/recall/llm-rerank.d.ts +55 -0
  397. package/dist/recall/llm-rerank.d.ts.map +1 -0
  398. package/dist/recall/llm-rerank.js +213 -0
  399. package/dist/recall/llm-rerank.js.map +1 -0
  400. package/dist/recall/reranker-calibration.d.ts +23 -0
  401. package/dist/recall/reranker-calibration.d.ts.map +1 -0
  402. package/dist/recall/reranker-calibration.js +161 -0
  403. package/dist/recall/reranker-calibration.js.map +1 -0
  404. package/dist/recall/search.d.ts +107 -0
  405. package/dist/recall/search.d.ts.map +1 -0
  406. package/dist/recall/search.js +530 -0
  407. package/dist/recall/search.js.map +1 -0
  408. package/dist/reserved.d.ts +39 -0
  409. package/dist/reserved.d.ts.map +1 -0
  410. package/dist/reserved.js +63 -0
  411. package/dist/reserved.js.map +1 -0
  412. package/dist/rules/compile.d.ts +27 -0
  413. package/dist/rules/compile.d.ts.map +1 -0
  414. package/dist/rules/compile.js +105 -0
  415. package/dist/rules/compile.js.map +1 -0
  416. package/dist/setup/model-free.d.ts +15 -0
  417. package/dist/setup/model-free.d.ts.map +1 -0
  418. package/dist/setup/model-free.js +26 -0
  419. package/dist/setup/model-free.js.map +1 -0
  420. package/dist/setup/openai.d.ts +46 -0
  421. package/dist/setup/openai.d.ts.map +1 -0
  422. package/dist/setup/openai.js +165 -0
  423. package/dist/setup/openai.js.map +1 -0
  424. package/dist/store/db.d.ts +61 -0
  425. package/dist/store/db.d.ts.map +1 -0
  426. package/dist/store/db.js +265 -0
  427. package/dist/store/db.js.map +1 -0
  428. package/dist/store/ids.d.ts +29 -0
  429. package/dist/store/ids.d.ts.map +1 -0
  430. package/dist/store/ids.js +0 -0
  431. package/dist/store/ids.js.map +1 -0
  432. package/dist/store/migrations.d.ts +54 -0
  433. package/dist/store/migrations.d.ts.map +1 -0
  434. package/dist/store/migrations.js +923 -0
  435. package/dist/store/migrations.js.map +1 -0
  436. package/dist/store/vectors.d.ts +34 -0
  437. package/dist/store/vectors.d.ts.map +1 -0
  438. package/dist/store/vectors.js +158 -0
  439. package/dist/store/vectors.js.map +1 -0
  440. package/dist/timeline/documents.d.ts +23 -0
  441. package/dist/timeline/documents.d.ts.map +1 -0
  442. package/dist/timeline/documents.js +262 -0
  443. package/dist/timeline/documents.js.map +1 -0
  444. package/dist/watch/watcher.d.ts +43 -0
  445. package/dist/watch/watcher.d.ts.map +1 -0
  446. package/dist/watch/watcher.js +143 -0
  447. package/dist/watch/watcher.js.map +1 -0
  448. package/dist/write/atomic.d.ts +34 -0
  449. package/dist/write/atomic.d.ts.map +1 -0
  450. package/dist/write/atomic.js +58 -0
  451. package/dist/write/atomic.js.map +1 -0
  452. package/dist/write/conflict.d.ts +43 -0
  453. package/dist/write/conflict.d.ts.map +1 -0
  454. package/dist/write/conflict.js +149 -0
  455. package/dist/write/conflict.js.map +1 -0
  456. package/dist/write/edit.d.ts +59 -0
  457. package/dist/write/edit.d.ts.map +1 -0
  458. package/dist/write/edit.js +231 -0
  459. package/dist/write/edit.js.map +1 -0
  460. package/dist/write/gate.d.ts +59 -0
  461. package/dist/write/gate.d.ts.map +1 -0
  462. package/dist/write/gate.js +99 -0
  463. package/dist/write/gate.js.map +1 -0
  464. package/dist/write/journal.d.ts +90 -0
  465. package/dist/write/journal.d.ts.map +1 -0
  466. package/dist/write/journal.js +187 -0
  467. package/dist/write/journal.js.map +1 -0
  468. package/dist/write/ledger.d.ts +28 -0
  469. package/dist/write/ledger.d.ts.map +1 -0
  470. package/dist/write/ledger.js +141 -0
  471. package/dist/write/ledger.js.map +1 -0
  472. package/dist/write/placement.d.ts +29 -0
  473. package/dist/write/placement.d.ts.map +1 -0
  474. package/dist/write/placement.js +140 -0
  475. package/dist/write/placement.js.map +1 -0
  476. package/dist/write/remember-fallback.d.ts +18 -0
  477. package/dist/write/remember-fallback.d.ts.map +1 -0
  478. package/dist/write/remember-fallback.js +48 -0
  479. package/dist/write/remember-fallback.js.map +1 -0
  480. package/dist/write/retain.d.ts +61 -0
  481. package/dist/write/retain.d.ts.map +1 -0
  482. package/dist/write/retain.js +272 -0
  483. package/dist/write/retain.js.map +1 -0
  484. package/package.json +50 -0
  485. package/swift/extract.swift +232 -0
@@ -0,0 +1,618 @@
1
+ import { sha256 } from "../store/ids.js";
2
+ import { cachedConflictVerdict, claimKey, conflictClaimIneligibility, findCrossPageConflictsInStore, } from "../maintenance/conflicts.js";
3
+ import { cachedContextualEntityResolution, } from "./entity-resolution.js";
4
+ const STRUCTURAL_GRAPH_VERSION = 'structural-v1';
5
+ const ENTITY_RESOLUTION_VERSION = 'entity-exact-v1';
6
+ const FACT_GRAPH_VERSION = 'fact-relationships-v1';
7
+ /**
8
+ * Replace the complete model-free graph from canonical index rows.
9
+ *
10
+ * At the corpus size Akno targets, a complete transactional rebuild is simpler and safer than
11
+ * trying to patch generic incident edges after every page move, link resolution, or document
12
+ * ownership change. Nothing here reads or writes knowledge-base files.
13
+ */
14
+ export function rebuildEvidenceGraph(store, options = {}) {
15
+ return store.transaction(() => {
16
+ // Mention rows use SET NULL for a removed resolution so they can survive an ordinary entity
17
+ // deletion. A graph rebuild replaces them, so remove them explicitly before their entities.
18
+ store.db.prepare('DELETE FROM graph_fact_status').run();
19
+ store.db.prepare('DELETE FROM graph_mentions').run();
20
+ store.db.prepare('DELETE FROM graph_entity_names').run();
21
+ store.db.prepare('DELETE FROM graph_entities').run();
22
+ store.db.prepare('DELETE FROM graph_nodes').run();
23
+ const insertNode = store.db.prepare(`INSERT INTO graph_nodes(id, kind, source_id, source_hash, derivation_version)
24
+ VALUES(?, ?, ?, ?, ?)`);
25
+ const insertEntity = store.db.prepare(`INSERT INTO graph_entities(
26
+ id, canonical_page, entity_type, label, normalized_label, source_hash, derivation_version
27
+ ) VALUES(?, ?, ?, ?, ?, ?, ?)`);
28
+ const insertName = store.db.prepare(`INSERT OR IGNORE INTO graph_entity_names(
29
+ entity_id, name, normalized_name, signal, source_page, source_hash, derivation_version
30
+ ) VALUES(?, ?, ?, ?, ?, ?, ?)`);
31
+ const insertMention = store.db.prepare(`INSERT OR IGNORE INTO graph_mentions(
32
+ id, mention, normalized_mention, source_page, source_field, source_line, source_hash,
33
+ resolved_entity, resolution, signal, candidates, decision_fingerprint, model_id,
34
+ prompt_version, confidence, derivation_version
35
+ ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
36
+ const insertFactStatus = store.db.prepare(`INSERT INTO graph_fact_status(
37
+ fact_id, subject_entity, object_entity, subject_resolution, subject_candidates,
38
+ subject_resolution_fingerprint, object_resolution, object_candidates,
39
+ object_resolution_fingerprint, predicate, eligibility, traversable,
40
+ conflict_fingerprint, source_hash, derivation_version
41
+ ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
42
+ const insertEdge = store.db.prepare(`INSERT OR IGNORE INTO graph_edges(
43
+ id, from_node, to_node, relation, predicate, source_kind,
44
+ source_page, source_document, source_event, source_fact, line_start, line_end, source_field,
45
+ source_hash, derivation, resolution, confidence, derivation_version, valid_from, valid_to
46
+ ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
47
+ const pages = store.db
48
+ .prepare(`SELECT p.id, p.slug, p.title, p.type, p.role, p.about, p.aliases,
49
+ COALESCE(
50
+ (SELECT f.sha256 FROM files f
51
+ WHERE f.page_id = p.id AND f.kind = 'page'
52
+ ORDER BY f.rel_path LIMIT 1),
53
+ p.body_hash
54
+ ) AS source_hash
55
+ FROM pages p
56
+ ORDER BY p.id`)
57
+ .all();
58
+ const documents = store.db
59
+ .prepare(`SELECT id, page_id, sha256 FROM documents
60
+ WHERE renders IS NULL
61
+ ORDER BY id`)
62
+ .all();
63
+ const events = store.db
64
+ .prepare(`SELECT e.id, e.target_slug, e.source_page, e.line,
65
+ COALESCE(
66
+ (SELECT f.sha256 FROM files f
67
+ WHERE f.page_id = p.id AND f.kind = 'page'
68
+ ORDER BY f.rel_path LIMIT 1),
69
+ p.body_hash
70
+ ) AS source_hash
71
+ FROM events e
72
+ JOIN pages p ON p.id = e.source_page
73
+ ORDER BY e.id`)
74
+ .all();
75
+ const facts = store.db
76
+ .prepare(`SELECT f.id, f.page_id, p.slug, f.subject, f.attribute, f.value,
77
+ f.line_start, f.line_end, f.source_line_hash, f.confidence,
78
+ f.valid_from, f.valid_to
79
+ FROM facts f
80
+ JOIN pages p ON p.id = f.page_id
81
+ WHERE p.role = 'knowledge'
82
+ AND p.derived_hash = p.body_hash
83
+ ORDER BY f.id`)
84
+ .all();
85
+ const nodeIds = new Map();
86
+ const addNode = (kind, sourceId, sourceHash, version = STRUCTURAL_GRAPH_VERSION) => {
87
+ const id = graphNodeId(kind, sourceId);
88
+ nodeIds.set(nodeKey(kind, sourceId), id);
89
+ insertNode.run(id, kind, sourceId, sourceHash, version);
90
+ };
91
+ for (const page of pages)
92
+ addNode('page', page.id, page.source_hash);
93
+ for (const document of documents)
94
+ addNode('document', document.id, document.sha256);
95
+ for (const fact of facts)
96
+ addNode('fact', fact.id, fact.source_line_hash, FACT_GRAPH_VERSION);
97
+ for (const event of events)
98
+ addNode('event', event.id, event.source_hash);
99
+ const entities = pages
100
+ .filter((page) => page.role === 'knowledge')
101
+ .map((page) => ({
102
+ id: entityId(page.id),
103
+ canonicalPage: page.id,
104
+ type: entityType(page.type),
105
+ label: page.title,
106
+ sourceHash: page.source_hash,
107
+ }));
108
+ const pageById = new Map(pages.map((page) => [page.id, page]));
109
+ const entityByPage = new Map(entities.map((entity) => [entity.canonicalPage, entity]));
110
+ for (const entity of entities) {
111
+ const page = pageById.get(entity.canonicalPage);
112
+ insertEntity.run(entity.id, entity.canonicalPage, entity.type, entity.label, normalizeEntityName(entity.label), entity.sourceHash, ENTITY_RESOLUTION_VERSION);
113
+ addNode('entity', entity.id, entity.sourceHash, ENTITY_RESOLUTION_VERSION);
114
+ for (const name of entityNames(page)) {
115
+ insertName.run(entity.id, name.name, name.normalized, name.signal, page.id, page.source_hash, ENTITY_RESOLUTION_VERSION);
116
+ }
117
+ }
118
+ const resolveEntity = exactEntityResolver(store.db);
119
+ const resolveMention = (mention, source) => {
120
+ const exact = resolveEntity(mention);
121
+ if (exact.status !== 'ambiguous')
122
+ return exact;
123
+ const contextual = cachedContextualEntityResolution(store, {
124
+ mention,
125
+ normalized: exact.normalized,
126
+ signal: exact.signal,
127
+ candidates: exact.candidates,
128
+ ...source,
129
+ }, options.contextualModelId ?? null);
130
+ return contextual
131
+ ? {
132
+ status: 'resolved',
133
+ normalized: exact.normalized,
134
+ entityId: contextual.entityId,
135
+ candidates: exact.candidates,
136
+ signal: exact.signal,
137
+ contextual,
138
+ }
139
+ : exact;
140
+ };
141
+ let edges = 0;
142
+ const addEdge = (edge) => {
143
+ const locator = [
144
+ edge.sourceKind,
145
+ edge.sourcePage,
146
+ edge.sourceDocument,
147
+ edge.sourceEvent,
148
+ edge.sourceFact,
149
+ edge.line,
150
+ edge.sourceField,
151
+ ].join('\0');
152
+ const id = `ged_${sha256(`${edge.from}\0${edge.to}\0${edge.relation}\0${edge.predicate ?? ''}\0${locator}`).slice(0, 24)}`;
153
+ const result = insertEdge.run(id, edge.from, edge.to, edge.relation, edge.predicate, edge.sourceKind, edge.sourcePage, edge.sourceDocument, edge.sourceEvent, edge.sourceFact ?? null, edge.line, edge.lineEnd ?? edge.line, edge.sourceField, edge.sourceHash, edge.derivation ?? 'structural', edge.resolution ?? 'exact', edge.confidence ?? 1, edge.version ?? STRUCTURAL_GRAPH_VERSION, edge.validFrom ?? null, edge.validTo ?? null);
154
+ edges += result.changes;
155
+ return result.changes;
156
+ };
157
+ for (const entity of entities) {
158
+ addEdge({
159
+ from: requiredNode(nodeIds, 'entity', entity.id),
160
+ to: requiredNode(nodeIds, 'page', entity.canonicalPage),
161
+ relation: 'canonical_record',
162
+ predicate: entity.type,
163
+ sourceKind: 'frontmatter',
164
+ sourcePage: entity.canonicalPage,
165
+ sourceDocument: null,
166
+ sourceEvent: null,
167
+ line: null,
168
+ sourceField: 'entity.identity',
169
+ sourceHash: entity.sourceHash,
170
+ version: ENTITY_RESOLUTION_VERSION,
171
+ });
172
+ }
173
+ let mentions = 0;
174
+ let ambiguousMentions = 0;
175
+ let unresolvedMentions = 0;
176
+ let contextualMentions = 0;
177
+ const addMention = (input) => {
178
+ const { resolution } = input;
179
+ const id = `gmn_${sha256(`${input.sourcePage}\0${input.sourceField}\0${input.sourceLine ?? ''}\0${resolution.normalized}`).slice(0, 24)}`;
180
+ const result = insertMention.run(id, input.mention, resolution.normalized, input.sourcePage, input.sourceField, input.sourceLine, input.sourceHash, resolution.status === 'resolved' ? resolution.entityId : null, isContextualResolution(resolution)
181
+ ? 'contextual'
182
+ : resolution.status === 'resolved'
183
+ ? 'exact'
184
+ : resolution.status, resolution.status === 'unresolved' ? null : resolution.signal, JSON.stringify(resolution.candidates), isContextualResolution(resolution) ? resolution.contextual.fingerprint : null, isContextualResolution(resolution) ? resolution.contextual.modelId : null, isContextualResolution(resolution) ? resolution.contextual.promptVersion : null, isContextualResolution(resolution)
185
+ ? resolution.contextual.confidence
186
+ : resolution.status === 'resolved'
187
+ ? 1
188
+ : null, ENTITY_RESOLUTION_VERSION);
189
+ mentions += result.changes;
190
+ if (result.changes === 0)
191
+ return;
192
+ if (resolution.status === 'ambiguous')
193
+ ambiguousMentions++;
194
+ if (resolution.status === 'unresolved')
195
+ unresolvedMentions++;
196
+ if (isContextualResolution(resolution))
197
+ contextualMentions++;
198
+ };
199
+ const links = store.db
200
+ .prepare(`SELECT l.from_page, l.to_slug, l.to_page, l.kind, l.line,
201
+ COALESCE(
202
+ (SELECT f.sha256 FROM files f
203
+ WHERE f.page_id = p.id AND f.kind = 'page'
204
+ ORDER BY f.rel_path LIMIT 1),
205
+ p.body_hash
206
+ ) AS source_hash
207
+ FROM links l
208
+ JOIN pages p ON p.id = l.from_page
209
+ WHERE l.broken = 0 AND l.to_page IS NOT NULL AND l.kind != 'embed'
210
+ ORDER BY l.from_page, l.to_page, l.kind`)
211
+ .all();
212
+ for (const link of links) {
213
+ addEdge({
214
+ from: requiredNode(nodeIds, 'page', link.from_page),
215
+ to: requiredNode(nodeIds, 'page', link.to_page),
216
+ relation: 'links_to',
217
+ predicate: link.kind,
218
+ sourceKind: 'page_line',
219
+ sourcePage: link.from_page,
220
+ sourceDocument: null,
221
+ sourceEvent: null,
222
+ line: link.line,
223
+ sourceField: link.kind,
224
+ sourceHash: link.source_hash,
225
+ });
226
+ const targetEntity = entityByPage.get(link.to_page);
227
+ if (!targetEntity)
228
+ continue;
229
+ const resolution = {
230
+ status: 'resolved',
231
+ normalized: normalizeEntityName(link.to_slug),
232
+ entityId: targetEntity.id,
233
+ candidates: [targetEntity.id],
234
+ signal: 'canonical_slug',
235
+ };
236
+ addMention({
237
+ mention: link.to_slug,
238
+ sourcePage: link.from_page,
239
+ sourceField: link.kind,
240
+ sourceLine: link.line,
241
+ sourceHash: link.source_hash,
242
+ resolution,
243
+ });
244
+ addEdge({
245
+ from: requiredNode(nodeIds, 'page', link.from_page),
246
+ to: requiredNode(nodeIds, 'entity', targetEntity.id),
247
+ relation: 'mentions',
248
+ predicate: link.kind,
249
+ sourceKind: 'page_line',
250
+ sourcePage: link.from_page,
251
+ sourceDocument: null,
252
+ sourceEvent: null,
253
+ line: link.line,
254
+ sourceField: link.kind,
255
+ sourceHash: link.source_hash,
256
+ version: ENTITY_RESOLUTION_VERSION,
257
+ });
258
+ }
259
+ for (const page of pages) {
260
+ for (const mention of new Set(parseStringArray(page.about))) {
261
+ const resolution = resolveMention(mention, {
262
+ sourcePage: page.id,
263
+ sourceField: 'akno.about',
264
+ sourceLine: null,
265
+ sourceHash: page.source_hash,
266
+ });
267
+ addMention({
268
+ mention,
269
+ sourcePage: page.id,
270
+ sourceField: 'akno.about',
271
+ sourceLine: null,
272
+ sourceHash: page.source_hash,
273
+ resolution,
274
+ });
275
+ if (resolution.status !== 'resolved')
276
+ continue;
277
+ addEdge({
278
+ from: requiredNode(nodeIds, 'page', page.id),
279
+ to: requiredNode(nodeIds, 'entity', resolution.entityId),
280
+ relation: 'about',
281
+ predicate: null,
282
+ sourceKind: 'frontmatter',
283
+ sourcePage: page.id,
284
+ sourceDocument: null,
285
+ sourceEvent: null,
286
+ line: null,
287
+ sourceField: 'akno.about',
288
+ sourceHash: page.source_hash,
289
+ resolution: isContextualResolution(resolution) ? 'contextual' : 'exact',
290
+ confidence: isContextualResolution(resolution) ? resolution.contextual.confidence : 1,
291
+ version: ENTITY_RESOLUTION_VERSION,
292
+ });
293
+ }
294
+ }
295
+ const conflictCandidates = findCrossPageConflictsInStore(store, Number.MAX_SAFE_INTEGER);
296
+ const classifiedConflicts = conflictCandidates.map((candidate) => cachedConflictVerdict(store, candidate, options.conflictModelId ?? null) ?? candidate);
297
+ const conflictReasons = conflictClaimIneligibility(classifiedConflicts);
298
+ const conflictFingerprints = new Map();
299
+ for (const conflict of classifiedConflicts) {
300
+ for (const claim of conflict.claims) {
301
+ conflictFingerprints.set(claimKey(claim.slug, claim.line), conflict.fingerprint);
302
+ }
303
+ }
304
+ let factEdges = 0;
305
+ let nonTraversableFacts = 0;
306
+ for (const fact of facts) {
307
+ const subjectResolution = fact.subject
308
+ ? resolveMention(fact.subject, {
309
+ sourcePage: fact.page_id,
310
+ sourceField: 'fact.subject',
311
+ sourceLine: fact.line_start,
312
+ sourceHash: fact.source_line_hash,
313
+ })
314
+ : null;
315
+ if (fact.subject && subjectResolution) {
316
+ addMention({
317
+ mention: fact.subject,
318
+ sourcePage: fact.page_id,
319
+ sourceField: 'fact.subject',
320
+ sourceLine: fact.line_start,
321
+ sourceHash: fact.source_line_hash,
322
+ resolution: subjectResolution,
323
+ });
324
+ }
325
+ const attemptedObject = fact.value
326
+ ? resolveMention(fact.value, {
327
+ sourcePage: fact.page_id,
328
+ sourceField: 'fact.value',
329
+ sourceLine: fact.line_start,
330
+ sourceHash: fact.source_line_hash,
331
+ })
332
+ : null;
333
+ const objectResolution = attemptedObject?.status === 'unresolved' ? null : attemptedObject;
334
+ if (fact.value && objectResolution) {
335
+ addMention({
336
+ mention: fact.value,
337
+ sourcePage: fact.page_id,
338
+ sourceField: 'fact.value',
339
+ sourceLine: fact.line_start,
340
+ sourceHash: fact.source_line_hash,
341
+ resolution: objectResolution,
342
+ });
343
+ }
344
+ const key = claimKey(fact.slug, fact.line_start);
345
+ const conflictReason = conflictReasons.get(key);
346
+ const eligibility = fact.valid_to
347
+ ? 'superseded'
348
+ : fact.confidence < 0.5
349
+ ? 'low_confidence'
350
+ : (conflictReason ?? 'eligible');
351
+ const predicate = normalizePredicate(fact.attribute);
352
+ const subjectEntity = subjectResolution?.status === 'resolved' ? subjectResolution.entityId : null;
353
+ const objectEntity = objectResolution?.status === 'resolved' ? objectResolution.entityId : null;
354
+ const traversable = eligibility === 'eligible' && subjectEntity !== null && predicate !== null;
355
+ if (!traversable)
356
+ nonTraversableFacts++;
357
+ insertFactStatus.run(fact.id, subjectEntity, objectEntity, !subjectResolution ? 'missing' : resolutionLabel(subjectResolution), JSON.stringify(subjectResolution?.candidates ?? []), subjectResolution && isContextualResolution(subjectResolution)
358
+ ? subjectResolution.contextual.fingerprint
359
+ : null, !objectResolution ? 'scalar' : resolutionLabel(objectResolution), JSON.stringify(objectResolution?.candidates ?? []), objectResolution && isContextualResolution(objectResolution)
360
+ ? objectResolution.contextual.fingerprint
361
+ : null, predicate, eligibility, traversable ? 1 : 0, conflictFingerprints.get(key) ?? null, fact.source_line_hash, FACT_GRAPH_VERSION);
362
+ // Superseded authored facts remain as explicitly historical edges. Conflict-ineligible
363
+ // live claims do not: a classifier verdict is a gate, not another historical assertion.
364
+ if ((!traversable && eligibility !== 'superseded') || !subjectEntity || !predicate)
365
+ continue;
366
+ const confidence = Math.max(0, Math.min(1, fact.confidence));
367
+ const subjectContextual = subjectResolution && isContextualResolution(subjectResolution) ? subjectResolution.contextual : null;
368
+ const objectContextual = objectResolution && isContextualResolution(objectResolution) ? objectResolution.contextual : null;
369
+ factEdges += addEdge({
370
+ from: requiredNode(nodeIds, 'entity', subjectEntity),
371
+ to: requiredNode(nodeIds, 'fact', fact.id),
372
+ relation: 'has_attribute',
373
+ predicate,
374
+ sourceKind: 'fact_line',
375
+ sourcePage: fact.page_id,
376
+ sourceDocument: null,
377
+ sourceEvent: null,
378
+ sourceFact: fact.id,
379
+ line: fact.line_start,
380
+ lineEnd: fact.line_end,
381
+ sourceField: 'fact.attribute',
382
+ sourceHash: fact.source_line_hash,
383
+ derivation: 'fact',
384
+ resolution: subjectContextual ? 'contextual' : 'exact',
385
+ confidence: Math.min(confidence, subjectContextual?.confidence ?? 1),
386
+ version: FACT_GRAPH_VERSION,
387
+ validFrom: fact.valid_from,
388
+ validTo: fact.valid_to,
389
+ });
390
+ if (!objectEntity)
391
+ continue;
392
+ factEdges += addEdge({
393
+ from: requiredNode(nodeIds, 'entity', subjectEntity),
394
+ to: requiredNode(nodeIds, 'entity', objectEntity),
395
+ relation: 'related_entity',
396
+ predicate,
397
+ sourceKind: 'fact_line',
398
+ sourcePage: fact.page_id,
399
+ sourceDocument: null,
400
+ sourceEvent: null,
401
+ sourceFact: fact.id,
402
+ line: fact.line_start,
403
+ lineEnd: fact.line_end,
404
+ sourceField: 'fact.value',
405
+ sourceHash: fact.source_line_hash,
406
+ derivation: 'fact',
407
+ resolution: subjectContextual || objectContextual ? 'contextual' : 'exact',
408
+ confidence: Math.min(confidence, subjectContextual?.confidence ?? 1, objectContextual?.confidence ?? 1),
409
+ version: FACT_GRAPH_VERSION,
410
+ validFrom: fact.valid_from,
411
+ validTo: fact.valid_to,
412
+ });
413
+ }
414
+ for (const document of documents) {
415
+ if (!document.page_id)
416
+ continue;
417
+ addEdge({
418
+ from: requiredNode(nodeIds, 'document', document.id),
419
+ to: requiredNode(nodeIds, 'page', document.page_id),
420
+ relation: 'owns_document',
421
+ predicate: null,
422
+ sourceKind: 'document',
423
+ sourcePage: null,
424
+ sourceDocument: document.id,
425
+ sourceEvent: null,
426
+ line: null,
427
+ sourceField: 'documents.page_id',
428
+ sourceHash: document.sha256,
429
+ });
430
+ }
431
+ const pageBySlug = new Map(pages.map((page) => [page.slug, page]));
432
+ for (const event of events) {
433
+ const eventNode = requiredNode(nodeIds, 'event', event.id);
434
+ addEdge({
435
+ from: requiredNode(nodeIds, 'page', event.source_page),
436
+ to: eventNode,
437
+ relation: 'participates_in',
438
+ predicate: 'source',
439
+ sourceKind: 'page_line',
440
+ sourcePage: event.source_page,
441
+ sourceDocument: null,
442
+ sourceEvent: event.id,
443
+ line: event.line,
444
+ sourceField: 'event.source',
445
+ sourceHash: event.source_hash,
446
+ });
447
+ const target = event.target_slug ? pageBySlug.get(event.target_slug) : null;
448
+ if (!target)
449
+ continue;
450
+ addEdge({
451
+ from: requiredNode(nodeIds, 'page', target.id),
452
+ to: eventNode,
453
+ relation: 'participates_in',
454
+ predicate: 'target',
455
+ sourceKind: 'page_line',
456
+ sourcePage: event.source_page,
457
+ sourceDocument: null,
458
+ sourceEvent: event.id,
459
+ line: event.line,
460
+ sourceField: 'event.target',
461
+ sourceHash: event.source_hash,
462
+ });
463
+ }
464
+ return {
465
+ nodes: nodeIds.size,
466
+ edges,
467
+ entities: entities.length,
468
+ mentions,
469
+ ambiguousMentions,
470
+ unresolvedMentions,
471
+ contextualMentions,
472
+ facts: facts.length,
473
+ factEdges,
474
+ nonTraversableFacts,
475
+ };
476
+ });
477
+ }
478
+ /** Resolve only evidence-declared identities. Similarity and model judgment are intentionally absent. */
479
+ export function resolveExactEntity(db, mention) {
480
+ const normalized = normalizeEntityName(canonicalMention(mention));
481
+ if (!normalized)
482
+ return { status: 'unresolved', normalized, candidates: [] };
483
+ const rows = db
484
+ .prepare(`SELECT entity_id, signal
485
+ FROM graph_entity_names
486
+ WHERE normalized_name = ?
487
+ ORDER BY entity_id`)
488
+ .all(normalized);
489
+ return resolutionFromRows(normalized, rows);
490
+ }
491
+ function exactEntityResolver(db) {
492
+ const rows = db
493
+ .prepare(`SELECT normalized_name, entity_id, signal
494
+ FROM graph_entity_names
495
+ ORDER BY normalized_name, entity_id`)
496
+ .all();
497
+ const byName = new Map();
498
+ for (const row of rows) {
499
+ const bucket = byName.get(row.normalized_name);
500
+ if (bucket)
501
+ bucket.push(row);
502
+ else
503
+ byName.set(row.normalized_name, [row]);
504
+ }
505
+ return (mention) => {
506
+ const normalized = normalizeEntityName(canonicalMention(mention));
507
+ if (!normalized)
508
+ return { status: 'unresolved', normalized, candidates: [] };
509
+ return resolutionFromRows(normalized, byName.get(normalized) ?? []);
510
+ };
511
+ }
512
+ function resolutionFromRows(normalized, rows) {
513
+ const priorities = ['canonical_slug', 'alias', 'title', 'basename'];
514
+ for (const signal of priorities) {
515
+ const candidates = [...new Set(rows.filter((row) => row.signal === signal).map((row) => row.entity_id))];
516
+ if (candidates.length === 1) {
517
+ return { status: 'resolved', normalized, entityId: candidates[0], candidates, signal };
518
+ }
519
+ if (candidates.length > 1)
520
+ return { status: 'ambiguous', normalized, candidates, signal };
521
+ }
522
+ return { status: 'unresolved', normalized, candidates: [] };
523
+ }
524
+ function isContextualResolution(resolution) {
525
+ return 'contextual' in resolution;
526
+ }
527
+ function resolutionLabel(resolution) {
528
+ if (isContextualResolution(resolution))
529
+ return 'contextual';
530
+ return resolution.status === 'resolved' ? 'exact' : resolution.status;
531
+ }
532
+ export function normalizeEntityName(value) {
533
+ return value
534
+ .normalize('NFKC')
535
+ .toLocaleLowerCase('und')
536
+ .replace(/[^\p{L}\p{N}]+/gu, ' ')
537
+ .trim()
538
+ .replace(/\s+/g, ' ');
539
+ }
540
+ function canonicalMention(value) {
541
+ let result = value.trim();
542
+ if (result.startsWith('[[') && result.endsWith(']]'))
543
+ result = result.slice(2, -2).split('|', 1)[0];
544
+ result = result.split('#', 1)[0].replaceAll('\\', '/').replace(/^\.\//, '').replace(/^\//, '');
545
+ return result.replace(/\.md$/i, '');
546
+ }
547
+ function entityNames(page) {
548
+ const raw = [
549
+ { name: page.slug, signal: 'canonical_slug' },
550
+ ...parseStringArray(page.aliases).map((name) => ({ name, signal: 'alias' })),
551
+ { name: page.title, signal: 'title' },
552
+ { name: page.slug.split('/').at(-1) ?? page.slug, signal: 'basename' },
553
+ ];
554
+ const seen = new Set();
555
+ return raw.flatMap((entry) => {
556
+ const normalized = normalizeEntityName(entry.name);
557
+ const key = `${entry.signal}\0${normalized}`;
558
+ if (!normalized || seen.has(key))
559
+ return [];
560
+ seen.add(key);
561
+ return [{ ...entry, normalized }];
562
+ });
563
+ }
564
+ function entityType(value) {
565
+ switch (normalizeEntityName(value ?? '')) {
566
+ case 'person':
567
+ return 'person';
568
+ case 'organization':
569
+ case 'organisation':
570
+ case 'company':
571
+ case 'business':
572
+ return 'organization';
573
+ case 'place':
574
+ case 'location':
575
+ case 'city':
576
+ case 'country':
577
+ return 'place';
578
+ case 'product':
579
+ case 'device':
580
+ return 'product';
581
+ case 'event':
582
+ return 'event';
583
+ case 'concept':
584
+ case 'topic':
585
+ return 'concept';
586
+ default:
587
+ return 'other';
588
+ }
589
+ }
590
+ function normalizePredicate(value) {
591
+ const normalized = normalizeEntityName(value ?? '');
592
+ return normalized ? normalized.replaceAll(' ', '_') : null;
593
+ }
594
+ function entityId(pageId) {
595
+ return `ent_${sha256(`page\0${pageId}`).slice(0, 24)}`;
596
+ }
597
+ function graphNodeId(kind, sourceId) {
598
+ return `gnd_${sha256(`${kind}\0${sourceId}`).slice(0, 24)}`;
599
+ }
600
+ function nodeKey(kind, sourceId) {
601
+ return `${kind}\0${sourceId}`;
602
+ }
603
+ function requiredNode(nodes, kind, sourceId) {
604
+ const id = nodes.get(nodeKey(kind, sourceId));
605
+ if (!id)
606
+ throw new Error(`evidence graph is missing its ${kind} node`);
607
+ return id;
608
+ }
609
+ function parseStringArray(value) {
610
+ try {
611
+ const parsed = JSON.parse(value);
612
+ return Array.isArray(parsed) ? parsed.filter((entry) => typeof entry === 'string') : [];
613
+ }
614
+ catch {
615
+ return [];
616
+ }
617
+ }
618
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/index/graph.ts"],"names":[],"mappings":"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"}