@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,480 @@
1
+ import { GraphInput, } from '@tenphi/akno-protocol';
2
+ import { normalizeEntityName, resolveExactEntity } from "../index/graph.js";
3
+ import { documentAvailability } from "../ingest/availability.js";
4
+ const DEFAULT_HOPS = 2;
5
+ const DEFAULT_PATH_LIMIT = 30;
6
+ const FAN_OUT_LIMIT = 50;
7
+ const QUERY_SEED_LIMIT = 8;
8
+ /**
9
+ * Inspect graph structure without returning the evidence text itself.
10
+ *
11
+ * Exact seeding and bounded traversal are intentional correctness boundaries: this operation explains
12
+ * relationships already indexed from evidence, but does not invent a relationship from lexical similarity.
13
+ */
14
+ export async function graph(ctx, rawInput) {
15
+ const input = GraphInput.parse(rawInput);
16
+ try {
17
+ if (!tableExists(ctx, 'graph_nodes') || !tableExists(ctx, 'graph_edges')) {
18
+ return unavailable();
19
+ }
20
+ const entityIndexAvailable = tableExists(ctx, 'graph_entities') && tableExists(ctx, 'graph_entity_names');
21
+ if (!entityIndexAvailable) {
22
+ return {
23
+ status: 'degraded',
24
+ degraded: ['no_entity_index'],
25
+ note: 'the structural graph exists, but exact entity seeds cannot be resolved; absence is inconclusive',
26
+ seeds: [],
27
+ nodes: [],
28
+ edges: [],
29
+ paths: [],
30
+ ambiguities: [],
31
+ total: 0,
32
+ truncated: false,
33
+ reason: 'seed_not_found',
34
+ };
35
+ }
36
+ const degraded = new Set();
37
+ const factStatusAvailable = tableExists(ctx, 'graph_fact_status');
38
+ if (!factStatusAvailable || graphIsPartial(ctx))
39
+ degraded.add('partial_graph_index');
40
+ const resolved = resolveSeeds(ctx, input);
41
+ for (const reason of resolved.degraded)
42
+ degraded.add(reason);
43
+ const pathLimit = input.limit ?? DEFAULT_PATH_LIMIT;
44
+ const maxHops = input.max_hops ?? DEFAULT_HOPS;
45
+ const traversed = traverse(ctx, resolved.seeds, {
46
+ direction: input.direction ?? 'both',
47
+ relations: input.relations,
48
+ maxHops,
49
+ pathLimit,
50
+ includeHistory: input.include_history ?? false,
51
+ factStatusAvailable,
52
+ });
53
+ if (traversed.truncated)
54
+ degraded.add('graph_traversal_limited');
55
+ const ambiguityNodeIds = resolved.ambiguities.flatMap((ambiguity) => ambiguity.entityIds.flatMap((entityId) => {
56
+ const node = entityNode(ctx, entityId);
57
+ return node ? [node] : [];
58
+ }));
59
+ const allNodeIds = new Set([
60
+ ...resolved.seeds.map((seed) => seed.node),
61
+ ...traversed.nodeIds,
62
+ ...ambiguityNodeIds,
63
+ ]);
64
+ const nodes = loadNodes(ctx, [...allNodeIds]);
65
+ const nodeById = new Map(nodes.map((node) => [node.id, node]));
66
+ if (nodes.length !== allNodeIds.size)
67
+ degraded.add('partial_graph_index');
68
+ if (nodes.some((node) => node.availability && node.availability !== 'available')) {
69
+ degraded.add('document_source_missing');
70
+ }
71
+ const ambiguities = resolved.ambiguities.map((ambiguity) => ({
72
+ mention: ambiguity.mention,
73
+ normalized: ambiguity.normalized,
74
+ candidates: ambiguity.entityIds.flatMap((entityId) => {
75
+ const nodeId = entityNode(ctx, entityId);
76
+ const node = nodeId ? nodeById.get(nodeId) : undefined;
77
+ return node ? [node] : [];
78
+ }),
79
+ }));
80
+ const truncated = traversed.truncated || resolved.degraded.includes('graph_traversal_limited');
81
+ const status = degraded.size > 0
82
+ ? 'degraded'
83
+ : resolved.seeds.length === 0 || traversed.paths.length === 0
84
+ ? 'empty'
85
+ : 'ok';
86
+ const reason = resolved.seeds.length === 0 ? 'seed_not_found' : traversed.paths.length === 0 ? 'no_paths' : undefined;
87
+ return {
88
+ status,
89
+ ...(degraded.size > 0 ? { degraded: [...degraded] } : {}),
90
+ ...(reason === 'seed_not_found'
91
+ ? {
92
+ note: ambiguities.length > 0
93
+ ? 'one or more exact names are ambiguous; choose an entity id instead of treating this as absence'
94
+ : 'the graph was available, but no exact seed matched',
95
+ }
96
+ : reason === 'no_paths'
97
+ ? { note: 'the seed exists, but no eligible path matched these bounds and filters' }
98
+ : truncated
99
+ ? { note: 'the result hit a traversal safety cap; it is not proof that no other path exists' }
100
+ : {}),
101
+ seeds: resolved.seeds,
102
+ nodes,
103
+ edges: traversed.edges,
104
+ paths: traversed.paths,
105
+ ambiguities,
106
+ total: traversed.paths.length,
107
+ truncated,
108
+ ...(reason ? { reason } : {}),
109
+ };
110
+ }
111
+ catch {
112
+ // A database error must not collapse into an empty result: an agent is allowed to say "not recorded"
113
+ // only after a complete read, and this operation could not complete one.
114
+ return unavailable();
115
+ }
116
+ }
117
+ function unavailable() {
118
+ return {
119
+ status: 'unavailable',
120
+ note: 'the graph index could not be read; absence is unknown',
121
+ seeds: [],
122
+ nodes: [],
123
+ edges: [],
124
+ paths: [],
125
+ ambiguities: [],
126
+ total: 0,
127
+ truncated: false,
128
+ reason: 'graph_index_unreadable',
129
+ };
130
+ }
131
+ function tableExists(ctx, table) {
132
+ const row = ctx.store.db
133
+ .prepare("SELECT 1 AS present FROM sqlite_master WHERE type = 'table' AND name = ?")
134
+ .get(table);
135
+ return row?.present === 1;
136
+ }
137
+ function graphIsPartial(ctx) {
138
+ const counts = ctx.store.db
139
+ .prepare(`SELECT
140
+ (SELECT count(*) FROM pages) AS pages,
141
+ (SELECT count(*) FROM graph_nodes WHERE kind = 'page') AS graph_pages,
142
+ (SELECT count(*) FROM documents WHERE renders IS NULL) AS documents,
143
+ (SELECT count(*) FROM graph_nodes WHERE kind = 'document') AS graph_documents,
144
+ (SELECT count(*) FROM events) AS events,
145
+ (SELECT count(*) FROM graph_nodes WHERE kind = 'event') AS graph_events,
146
+ (SELECT count(*) FROM facts f JOIN pages p ON p.id = f.page_id
147
+ WHERE p.role = 'knowledge' AND p.derived_hash = p.body_hash) AS facts,
148
+ (SELECT count(*) FROM graph_nodes WHERE kind = 'fact') AS graph_facts,
149
+ (SELECT count(*) FROM pages WHERE role = 'knowledge') AS knowledge_pages,
150
+ (SELECT count(*) FROM graph_entities) AS entities,
151
+ (SELECT count(*) FROM graph_nodes WHERE kind = 'entity') AS graph_entities`)
152
+ .get();
153
+ return (counts.pages !== counts.graph_pages ||
154
+ counts.documents !== counts.graph_documents ||
155
+ counts.events !== counts.graph_events ||
156
+ counts.facts !== counts.graph_facts ||
157
+ counts.knowledge_pages !== counts.entities ||
158
+ counts.entities !== counts.graph_entities);
159
+ }
160
+ function resolveSeeds(ctx, input) {
161
+ if (input.slug)
162
+ return resolveSlugSeed(ctx, input.slug);
163
+ if (input.entity)
164
+ return resolveEntitySeed(ctx, input.entity);
165
+ return resolveQuerySeeds(ctx, input.query);
166
+ }
167
+ function resolveSlugSeed(ctx, slug) {
168
+ const page = ctx.store.db.prepare('SELECT id, role FROM pages WHERE slug = ?').get(slug);
169
+ if (!page)
170
+ return { seeds: [], ambiguities: [], degraded: [] };
171
+ const node = graphNode(ctx, 'page', page.id);
172
+ return {
173
+ seeds: node ? [{ form: 'slug', value: slug, node }] : [],
174
+ ambiguities: [],
175
+ degraded: node ? [] : ['partial_graph_index'],
176
+ };
177
+ }
178
+ function resolveEntitySeed(ctx, entityId) {
179
+ const node = entityNode(ctx, entityId);
180
+ return { seeds: node ? [{ form: 'entity', value: entityId, node }] : [], ambiguities: [], degraded: [] };
181
+ }
182
+ function resolveQuerySeeds(ctx, query) {
183
+ const ambiguities = [];
184
+ const seedNodes = [];
185
+ const exact = resolveExactEntity(ctx.store.db, query);
186
+ if (exact.status === 'resolved') {
187
+ const node = entityNode(ctx, exact.entityId);
188
+ if (node)
189
+ seedNodes.push(node);
190
+ }
191
+ else if (exact.status === 'ambiguous') {
192
+ ambiguities.push({ mention: query, normalized: exact.normalized, entityIds: exact.candidates });
193
+ }
194
+ else {
195
+ for (const match of queryEntityMatches(ctx, query)) {
196
+ const resolution = resolveExactEntity(ctx.store.db, match.name);
197
+ if (resolution.status === 'resolved') {
198
+ const node = entityNode(ctx, resolution.entityId);
199
+ if (node && !seedNodes.includes(node))
200
+ seedNodes.push(node);
201
+ }
202
+ else if (resolution.status === 'ambiguous') {
203
+ ambiguities.push({
204
+ mention: match.name,
205
+ normalized: resolution.normalized,
206
+ entityIds: resolution.candidates,
207
+ });
208
+ }
209
+ }
210
+ }
211
+ // Source and inference pages do not anchor entities. An exact slug or unique exact title remains a useful
212
+ // page seed, but only as a fallback; phrase similarity never chooses a page here.
213
+ if (seedNodes.length === 0 && ambiguities.length === 0) {
214
+ const normalized = normalizeEntityName(query);
215
+ const pages = ctx.store.db.prepare("SELECT id, slug, title FROM pages WHERE role != 'ignored'").all();
216
+ const matches = pages.filter((page) => normalizeEntityName(page.slug) === normalized || normalizeEntityName(page.title) === normalized);
217
+ if (matches.length === 1) {
218
+ const node = graphNode(ctx, 'page', matches[0].id);
219
+ if (node)
220
+ seedNodes.push(node);
221
+ }
222
+ else if (matches.length > 1) {
223
+ ambiguities.push({ mention: query, normalized, entityIds: [] });
224
+ }
225
+ }
226
+ const unique = [...new Set(seedNodes)];
227
+ const truncated = unique.length > QUERY_SEED_LIMIT;
228
+ return {
229
+ seeds: unique.slice(0, QUERY_SEED_LIMIT).map((node) => ({ form: 'query', value: query, node })),
230
+ ambiguities,
231
+ degraded: [
232
+ ...(ambiguities.length > 0 ? ['entity_resolution_failed'] : []),
233
+ ...(truncated ? ['graph_traversal_limited'] : []),
234
+ ],
235
+ };
236
+ }
237
+ function queryEntityMatches(ctx, query) {
238
+ const normalizedQuery = normalizeEntityName(query);
239
+ if (!normalizedQuery)
240
+ return [];
241
+ const rows = ctx.store.db
242
+ .prepare(`SELECT normalized_name, min(name) AS name
243
+ FROM graph_entity_names
244
+ WHERE length(normalized_name) >= 3
245
+ GROUP BY normalized_name
246
+ ORDER BY length(normalized_name) DESC, normalized_name`)
247
+ .all();
248
+ const occupied = [];
249
+ const matches = [];
250
+ for (const row of rows) {
251
+ let at = normalizedQuery.indexOf(row.normalized_name);
252
+ while (at !== -1) {
253
+ const end = at + row.normalized_name.length;
254
+ const atBoundary = (at === 0 || normalizedQuery[at - 1] === ' ') &&
255
+ (end === normalizedQuery.length || normalizedQuery[end] === ' ');
256
+ const overlaps = occupied.some((span) => at < span.end && end > span.start);
257
+ if (atBoundary && !overlaps) {
258
+ occupied.push({ start: at, end });
259
+ matches.push({ name: row.name, start: at, end });
260
+ break;
261
+ }
262
+ at = normalizedQuery.indexOf(row.normalized_name, at + 1);
263
+ }
264
+ }
265
+ return matches.sort((a, b) => a.start - b.start || a.end - b.end);
266
+ }
267
+ function graphNode(ctx, kind, sourceId) {
268
+ const row = ctx.store.db
269
+ .prepare('SELECT id FROM graph_nodes WHERE kind = ? AND source_id = ?')
270
+ .get(kind, sourceId);
271
+ return row?.id ?? null;
272
+ }
273
+ function entityNode(ctx, entityId) {
274
+ return graphNode(ctx, 'entity', entityId);
275
+ }
276
+ function traverse(ctx, seeds, options) {
277
+ const paths = [];
278
+ const edges = new Map();
279
+ const nodeIds = new Set();
280
+ let truncated = false;
281
+ seedLoop: for (const seed of seeds) {
282
+ nodeIds.add(seed.node);
283
+ const visited = new Set([seed.node]);
284
+ const queue = [
285
+ { node: seed.node, nodes: [seed.node], edgeIds: [], confidence: 1 },
286
+ ];
287
+ while (queue.length > 0) {
288
+ const current = queue.shift();
289
+ if (current.edgeIds.length >= options.maxHops)
290
+ continue;
291
+ const adjacent = adjacentEdges(ctx, current.node, options);
292
+ if (adjacent.truncated)
293
+ truncated = true;
294
+ for (const row of adjacent.rows) {
295
+ const next = row.from_node === current.node ? row.to_node : row.from_node;
296
+ if (visited.has(next))
297
+ continue;
298
+ if (paths.length >= options.pathLimit) {
299
+ truncated = true;
300
+ break seedLoop;
301
+ }
302
+ visited.add(next);
303
+ nodeIds.add(next);
304
+ const edge = edgeRef(row);
305
+ edges.set(edge.id, edge);
306
+ const edgeIds = [...current.edgeIds, edge.id];
307
+ const pathNodes = [...current.nodes, next];
308
+ const confidence = roundConfidence(current.confidence * edge.confidence);
309
+ const path = {
310
+ seed: seed.node,
311
+ nodes: pathNodes,
312
+ edges: edgeIds,
313
+ hops: edgeIds.length,
314
+ confidence,
315
+ evidence: edgeIds.map((id) => edges.get(id).evidence),
316
+ };
317
+ paths.push(path);
318
+ queue.push({ node: next, nodes: pathNodes, edgeIds, confidence });
319
+ }
320
+ }
321
+ }
322
+ return { paths, edges: [...edges.values()], nodeIds, truncated };
323
+ }
324
+ function adjacentEdges(ctx, node, options) {
325
+ const incident = options.direction === 'out'
326
+ ? 'e.from_node = ?'
327
+ : options.direction === 'in'
328
+ ? 'e.to_node = ?'
329
+ : '(e.from_node = ? OR e.to_node = ?)';
330
+ const params = options.direction === 'both' ? [node, node] : [node];
331
+ const relationClause = options.relations?.length
332
+ ? ` AND e.relation IN (${options.relations.map(() => '?').join(',')})`
333
+ : '';
334
+ if (options.relations)
335
+ params.push(...options.relations);
336
+ const eligibility = options.includeHistory
337
+ ? ''
338
+ : options.factStatusAvailable
339
+ ? ' AND (e.source_fact IS NULL OR (s.traversable = 1 AND e.valid_to IS NULL))'
340
+ : ' AND e.source_fact IS NULL';
341
+ const rows = ctx.store.db
342
+ .prepare(`SELECT e.id, e.from_node, e.to_node, e.relation, e.predicate, e.source_kind,
343
+ e.source_document, e.source_event, e.source_fact, p.slug AS source_slug,
344
+ e.line_start, e.line_end, e.source_field, e.derivation, e.resolution,
345
+ e.confidence, e.valid_from, e.valid_to
346
+ FROM graph_edges e
347
+ LEFT JOIN pages p ON p.id = e.source_page
348
+ ${options.factStatusAvailable ? 'LEFT JOIN graph_fact_status s ON s.fact_id = e.source_fact' : ''}
349
+ WHERE ${incident}${relationClause}${eligibility}
350
+ ORDER BY e.confidence DESC, e.relation, e.id
351
+ LIMIT ?`)
352
+ .all(...params, FAN_OUT_LIMIT + 1);
353
+ return { rows: rows.slice(0, FAN_OUT_LIMIT), truncated: rows.length > FAN_OUT_LIMIT };
354
+ }
355
+ function edgeRef(row) {
356
+ const evidence = {
357
+ kind: row.source_kind,
358
+ ...(row.source_slug ? { slug: row.source_slug } : {}),
359
+ ...(row.source_document ? { document: row.source_document } : {}),
360
+ ...(row.source_event ? { event: row.source_event } : {}),
361
+ ...(row.source_fact ? { fact: row.source_fact } : {}),
362
+ ...(row.line_start ? { line_start: row.line_start } : {}),
363
+ ...(row.line_end ? { line_end: row.line_end } : {}),
364
+ ...(row.source_field ? { field: row.source_field } : {}),
365
+ };
366
+ return {
367
+ id: row.id,
368
+ from: row.from_node,
369
+ to: row.to_node,
370
+ relation: row.relation,
371
+ ...(row.predicate ? { predicate: row.predicate } : {}),
372
+ confidence: row.confidence,
373
+ derivation: row.derivation,
374
+ resolution: row.resolution,
375
+ evidence,
376
+ ...(row.valid_from ? { valid_from: row.valid_from } : {}),
377
+ ...(row.valid_to ? { valid_to: row.valid_to } : {}),
378
+ historical: row.valid_to !== null,
379
+ };
380
+ }
381
+ function loadNodes(ctx, ids) {
382
+ if (ids.length === 0)
383
+ return [];
384
+ const rows = ctx.store.db
385
+ .prepare(`SELECT n.id, n.kind, n.source_id,
386
+ p.slug AS page_slug, p.title AS page_title, p.role AS page_role,
387
+ ge.id AS entity_id, ge.entity_type, ge.label AS entity_label, ep.slug AS entity_slug,
388
+ d.id AS document_id, d.label AS document_label, d.rel_path AS document_path,
389
+ d.group_key AS document_group, d.text AS document_text,
390
+ d.availability AS document_availability, d.missing_since AS document_missing_since,
391
+ dp.slug AS document_owner,
392
+ f.id AS fact_id, fp.slug AS fact_slug,
393
+ f.line_start AS fact_line_start, f.line_end AS fact_line_end,
394
+ ev.id AS event_id, ev.date AS event_date, ev.source_slug AS event_source, ev.line AS event_line
395
+ FROM graph_nodes n
396
+ LEFT JOIN pages p ON n.kind = 'page' AND p.id = n.source_id
397
+ LEFT JOIN graph_entities ge ON n.kind = 'entity' AND ge.id = n.source_id
398
+ LEFT JOIN pages ep ON ep.id = ge.canonical_page
399
+ LEFT JOIN documents d ON n.kind = 'document' AND d.id = n.source_id
400
+ LEFT JOIN pages dp ON dp.id = d.page_id
401
+ LEFT JOIN facts f ON n.kind = 'fact' AND f.id = n.source_id
402
+ LEFT JOIN pages fp ON fp.id = f.page_id
403
+ LEFT JOIN events ev ON n.kind = 'event' AND ev.id = n.source_id
404
+ WHERE n.id IN (${ids.map(() => '?').join(',')})`)
405
+ .all(...ids);
406
+ const byId = new Map(rows.map((row) => [row.id, nodeRef(ctx, row)]));
407
+ return ids.flatMap((id) => {
408
+ const node = byId.get(id);
409
+ return node ? [node] : [];
410
+ });
411
+ }
412
+ function nodeRef(ctx, row) {
413
+ switch (row.kind) {
414
+ case 'entity':
415
+ return {
416
+ id: row.id,
417
+ kind: row.kind,
418
+ entity: row.entity_id,
419
+ entity_type: row.entity_type,
420
+ label: row.entity_label,
421
+ slug: row.entity_slug,
422
+ };
423
+ case 'page':
424
+ return {
425
+ id: row.id,
426
+ kind: row.kind,
427
+ slug: row.page_slug,
428
+ label: row.page_title,
429
+ role: row.page_role,
430
+ };
431
+ case 'document': {
432
+ const availability = availabilityForDocument(ctx, row);
433
+ return {
434
+ id: row.id,
435
+ kind: row.kind,
436
+ document: row.document_id,
437
+ ...(row.document_label ? { label: row.document_label } : {}),
438
+ ...(row.document_owner ? { slug: row.document_owner } : {}),
439
+ availability: availability.status,
440
+ };
441
+ }
442
+ case 'fact':
443
+ return {
444
+ id: row.id,
445
+ kind: row.kind,
446
+ fact: row.fact_id,
447
+ slug: row.fact_slug,
448
+ line_start: row.fact_line_start,
449
+ line_end: row.fact_line_end,
450
+ };
451
+ case 'event':
452
+ return {
453
+ id: row.id,
454
+ kind: row.kind,
455
+ event: row.event_id,
456
+ date: row.event_date,
457
+ slug: row.event_source,
458
+ ...(row.event_line ? { line_start: row.event_line, line_end: row.event_line } : {}),
459
+ };
460
+ }
461
+ }
462
+ function availabilityForDocument(ctx, row) {
463
+ const parts = ctx.store.db
464
+ .prepare(`SELECT rel_path, text, availability, missing_since
465
+ FROM documents
466
+ WHERE group_key = ? AND renders IS NULL
467
+ ORDER BY part`)
468
+ .all(row.document_group ?? row.document_path);
469
+ const source = {
470
+ rel_path: row.document_path,
471
+ text: row.document_text,
472
+ availability: row.document_availability,
473
+ missing_since: row.document_missing_since,
474
+ };
475
+ return documentAvailability(ctx.store.db, parts.length > 0 ? parts : [source]);
476
+ }
477
+ function roundConfidence(value) {
478
+ return Number(Math.max(0, Math.min(1, value)).toFixed(6));
479
+ }
480
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/ops/graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { IngestInput, type IngestOutput } from '@tenphi/akno-protocol';
2
+ import type { AknoContext } from '../context.ts';
3
+ import { type NamedDocument } from '../ingest/name.ts';
4
+ /**
5
+ * Pull documents into memory — **a file, a folder, a URL** — and for each:
6
+ * extract, OCR, name, summarize, and route.
7
+ *
8
+ * `ingest` is the op that earns the most from living in the layer. "Run text extraction and
9
+ * OCR on documents", "give `IMG_4821.HEIC` a name that means something" and "decide where a
10
+ * dropped file belongs" are three things usually asked of a model in a prompt, replaced here
11
+ * by one call that happens every time.
12
+ *
13
+ * The order matters: extract first, because everything else depends on having the text;
14
+ * then name from the content; then route; then gate. A file whose text cannot be read is
15
+ * never given a confident name, and one whose destination is unclear is left where it is
16
+ * rather than filed confidently into the wrong place.
17
+ */
18
+ export declare function ingest(ctx: AknoContext, rawInput: unknown): Promise<IngestOutput>;
19
+ export interface FileSource {
20
+ source: string;
21
+ originalName: string;
22
+ /**
23
+ * **The inbox is the only place Akno moves files.** A file dropped straight
24
+ * into `documents/` was put there on purpose; Akno will name it, page it and index
25
+ * it, but never relocate it. An external file handed to `ingest` is copied, so the
26
+ * caller still has what they passed.
27
+ */
28
+ move: boolean;
29
+ sourceUrl?: string;
30
+ }
31
+ export declare function ingestFile(ctx: AknoContext, input: ReturnType<typeof IngestInput.parse>, file: FileSource): Promise<IngestOutput>;
32
+ /**
33
+ * What routing asks about: what the document *is*, not what it says.
34
+ *
35
+ * Exported so the shape is pinned by a test. It is a one-line function guarding a
36
+ * measured cliff — see `route` above — and one well-meant "include a bit of the text for
37
+ * context" edit puts every folder back at 0.99.
38
+ */
39
+ export declare function routingQuery(named: Pick<NamedDocument, 'title' | 'type' | 'summary'>): string;
40
+ //# sourceMappingURL=ingest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/ops/ingest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUpF;;;;;;;;;;;;;GAaG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAevF;AA2FD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,EAC3C,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,YAAY,CAAC,CAkLvB;AAuFD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAE7F"}