@remnic/core 10.0.6 → 10.0.8

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 (400) hide show
  1. package/dist/access-admin-ops-surface.js +66 -64
  2. package/dist/access-authorization-probe.js +67 -65
  3. package/dist/access-boundary.js +66 -64
  4. package/dist/access-cli.js +133 -131
  5. package/dist/access-cli.js.map +1 -1
  6. package/dist/access-extraction-force-flush.js +66 -64
  7. package/dist/access-http-briefing.js +67 -65
  8. package/dist/access-http-query.js +68 -66
  9. package/dist/access-http.js +90 -88
  10. package/dist/access-idempotency.d.ts.map +1 -1
  11. package/dist/access-idempotency.js +2 -1
  12. package/dist/access-identity-continuity-surface.js +66 -64
  13. package/dist/access-lcm-surface.js +66 -64
  14. package/dist/access-mcp.js +79 -77
  15. package/dist/access-namespace-preflight.js +66 -64
  16. package/dist/access-observe-write-category.js +15 -14
  17. package/dist/access-observe-write-surface.js +66 -64
  18. package/dist/access-offline-manifest.js +12 -11
  19. package/dist/access-operations-batch.js +70 -68
  20. package/dist/access-operations.js +77 -75
  21. package/dist/access-recall-concurrency.js +66 -64
  22. package/dist/access-recall-response.js +66 -64
  23. package/dist/access-recall-surface.js +66 -64
  24. package/dist/access-schema.js +10 -9
  25. package/dist/access-service.js +66 -64
  26. package/dist/access-surface-catalog.js +68 -66
  27. package/dist/access-surface-catalog.js.map +1 -1
  28. package/dist/active-recall.js +28 -27
  29. package/dist/active-recall.js.map +1 -1
  30. package/dist/adapters/index.js +4 -4
  31. package/dist/adapters/registry.js +2 -2
  32. package/dist/{auto-sync-FN7E3OTO.js → auto-sync-WSJAOLOP.js} +8 -7
  33. package/dist/{auto-sync-FN7E3OTO.js.map → auto-sync-WSJAOLOP.js.map} +1 -1
  34. package/dist/briefing.js +20 -19
  35. package/dist/buffer.js +13 -12
  36. package/dist/{capsule-merge-42GJGDUC.js → capsule-merge-M4HETD27.js} +5 -4
  37. package/dist/{capsule-merge-42GJGDUC.js.map → capsule-merge-M4HETD27.js.map} +1 -1
  38. package/dist/causal-behavior.js +2 -2
  39. package/dist/causal-chain.js +2 -2
  40. package/dist/causal-consolidation.js +23 -22
  41. package/dist/causal-consolidation.js.map +1 -1
  42. package/dist/causal-retrieval.js +2 -2
  43. package/dist/causal-trajectory-graph.js +4 -3
  44. package/dist/causal-trajectory-graph.js.map +1 -1
  45. package/dist/causal-trajectory.js +1 -1
  46. package/dist/{chunk-OZABSIOV.js → chunk-2AFHZTPI.js} +2 -2
  47. package/dist/{chunk-UK5EH7AI.js → chunk-2CXQZXWM.js} +3 -3
  48. package/dist/{chunk-D6M3VKMY.js → chunk-2K7D6EFT.js} +3 -3
  49. package/dist/{chunk-RIEGCK2W.js → chunk-2KRNPFPK.js} +2 -2
  50. package/dist/{chunk-N7QV3CMX.js → chunk-2NCBDGND.js} +2 -2
  51. package/dist/{chunk-XQSJXNWC.js → chunk-3ENX2RB4.js} +2 -2
  52. package/dist/{chunk-CLCMDKTB.js → chunk-3I3U6FFT.js} +2 -2
  53. package/dist/{chunk-WWLAKRMX.js → chunk-3NFN4Y4P.js} +5 -5
  54. package/dist/{chunk-I56MTWE7.js → chunk-3R6SLDTH.js} +2 -2
  55. package/dist/{chunk-QEPL7KIZ.js → chunk-3VTNNO2B.js} +6 -6
  56. package/dist/{chunk-QWUJWBZ5.js → chunk-4G4B3Z2B.js} +2 -2
  57. package/dist/{chunk-R7QY5ZVB.js → chunk-4NDWE44P.js} +2 -2
  58. package/dist/{chunk-KCCZFDJD.js → chunk-4OKPH6FG.js} +2 -2
  59. package/dist/{chunk-I25RQA65.js → chunk-55ZVZBX4.js} +2 -2
  60. package/dist/{chunk-ENNC3RZ6.js → chunk-5EOV7ANU.js} +2 -2
  61. package/dist/{chunk-ANZXWOYD.js → chunk-5FNVK7MW.js} +2 -2
  62. package/dist/{chunk-VFUEZZBS.js → chunk-5JMI26Q7.js} +5 -4
  63. package/dist/chunk-5JMI26Q7.js.map +1 -0
  64. package/dist/{chunk-KSUOM3YU.js → chunk-5NOPZYNI.js} +11 -11
  65. package/dist/{chunk-7LYRFI5A.js → chunk-5Q4NQNW7.js} +2 -2
  66. package/dist/chunk-5VC7J76U.js +134 -0
  67. package/dist/chunk-5VC7J76U.js.map +1 -0
  68. package/dist/{chunk-L3PWXD73.js → chunk-6PHB45IU.js} +2 -2
  69. package/dist/{chunk-CHDGJJV6.js → chunk-6VAHJ2F6.js} +2 -2
  70. package/dist/{chunk-KQT4DRKF.js → chunk-76KHEHT2.js} +2 -2
  71. package/dist/chunk-7LEQREP2.js +9 -0
  72. package/dist/chunk-7LEQREP2.js.map +1 -0
  73. package/dist/{chunk-SWRN6U7Q.js → chunk-7O252IE6.js} +2 -2
  74. package/dist/{chunk-U6HWKOGD.js → chunk-7OAIOE5P.js} +2 -2
  75. package/dist/{chunk-RSMIRLKM.js → chunk-7UX44C4N.js} +2 -2
  76. package/dist/{chunk-DJMVSUPK.js → chunk-A6G7K273.js} +4 -4
  77. package/dist/{chunk-VC4J4UTI.js → chunk-AAM66QCP.js} +5 -5
  78. package/dist/{chunk-TZQOCQXB.js → chunk-AL6EHLB5.js} +2 -2
  79. package/dist/{chunk-IJ4FEGZR.js → chunk-AMFCRZYB.js} +2 -2
  80. package/dist/{chunk-4K2H4KTR.js → chunk-AV46CT77.js} +3 -3
  81. package/dist/{chunk-7PZHH4KC.js → chunk-AZEZSQ5R.js} +23 -2
  82. package/dist/chunk-AZEZSQ5R.js.map +1 -0
  83. package/dist/{chunk-VZBW6CDG.js → chunk-BOOFTFFE.js} +1 -1
  84. package/dist/{chunk-2UF42WXV.js → chunk-BPY4RRTF.js} +16 -16
  85. package/dist/{chunk-2U3R3DDH.js → chunk-BTJ6CAIA.js} +2 -2
  86. package/dist/{chunk-GF4H3B3R.js → chunk-C3WJNRGR.js} +3 -3
  87. package/dist/{chunk-SIYZDT2V.js → chunk-CBP4HWCL.js} +3 -3
  88. package/dist/{chunk-GEGUBU3D.js → chunk-CSUAHUOH.js} +3 -3
  89. package/dist/{chunk-AJ6ORARY.js → chunk-DGRMWDQY.js} +12 -12
  90. package/dist/chunk-DGRMWDQY.js.map +1 -0
  91. package/dist/{chunk-BNMI3JBV.js → chunk-DXHVD4DS.js} +3 -3
  92. package/dist/{chunk-GE6HETIF.js → chunk-E5274WUC.js} +2 -2
  93. package/dist/{chunk-2COXDQ6C.js → chunk-E6KXJSMA.js} +2 -2
  94. package/dist/{chunk-FFAZ2XFU.js → chunk-EHRE7ZG3.js} +5 -6
  95. package/dist/chunk-EHRE7ZG3.js.map +1 -0
  96. package/dist/{chunk-CCMXCZLT.js → chunk-FBVLTTVV.js} +7 -7
  97. package/dist/{chunk-XVC7JU2N.js → chunk-FQD2KPQH.js} +2 -2
  98. package/dist/{chunk-SNXBXYUE.js → chunk-GDI64ITR.js} +3 -3
  99. package/dist/{chunk-MH2DXDN6.js → chunk-GSAZBZMA.js} +2 -2
  100. package/dist/{chunk-MULNBSPP.js → chunk-HT2C4EXO.js} +2 -2
  101. package/dist/{chunk-EMVJU7WC.js → chunk-HZVYDWUP.js} +2 -2
  102. package/dist/{chunk-XPRAOTJY.js → chunk-IJWEXCWF.js} +2 -2
  103. package/dist/{chunk-L2VS27PZ.js → chunk-IOM5QSNR.js} +4 -4
  104. package/dist/{chunk-KQAFEZQX.js → chunk-IPLYGWQF.js} +5 -5
  105. package/dist/{chunk-TDMNADPI.js → chunk-JK3DYMOC.js} +2 -2
  106. package/dist/{chunk-SZXPKUMN.js → chunk-JSIQSZXI.js} +4 -4
  107. package/dist/{chunk-KQI2PKYP.js → chunk-JTUKDLAD.js} +2 -2
  108. package/dist/{chunk-TL4PM7PC.js → chunk-K3DZ3G5I.js} +2 -2
  109. package/dist/{chunk-WG4TMZJ2.js → chunk-KDYQYMJZ.js} +2 -2
  110. package/dist/{chunk-N4PYB235.js → chunk-KI6UOSNR.js} +2 -2
  111. package/dist/{chunk-FC6RCOIU.js → chunk-KRIEQCKE.js} +2 -2
  112. package/dist/{chunk-EQUD7FP4.js → chunk-KYY4EACB.js} +2 -2
  113. package/dist/{chunk-QMFKW4OU.js → chunk-L3Z4NXDO.js} +3 -3
  114. package/dist/{chunk-KE5PWLI6.js → chunk-LOFVW6JA.js} +3 -3
  115. package/dist/{chunk-46WM6JX2.js → chunk-LZKOVXMX.js} +2 -2
  116. package/dist/{chunk-JMF5Q4JY.js → chunk-MAJ2OKE4.js} +9 -9
  117. package/dist/{chunk-U6OXJQEH.js → chunk-MB5EJ2CT.js} +5 -5
  118. package/dist/{chunk-VUEG3TZ4.js → chunk-MVRIW6MI.js} +2 -2
  119. package/dist/{chunk-TGF43K66.js → chunk-MZBWIJJN.js} +9 -9
  120. package/dist/{chunk-QGLEM46C.js → chunk-N44GZ73R.js} +8 -8
  121. package/dist/{chunk-63UNVGZW.js → chunk-N6UMXWBA.js} +4 -4
  122. package/dist/{chunk-FLV7M7CT.js → chunk-NAHUBSUF.js} +2 -2
  123. package/dist/{chunk-S5TGRZWY.js → chunk-NXLQQ6WI.js} +3 -3
  124. package/dist/{chunk-DTXN4NVD.js → chunk-NYVKLB2I.js} +46 -46
  125. package/dist/chunk-NYVKLB2I.js.map +1 -0
  126. package/dist/{chunk-YJAOYEWI.js → chunk-OC6JYPZX.js} +21 -44
  127. package/dist/chunk-OC6JYPZX.js.map +1 -0
  128. package/dist/{chunk-5AYUHSAU.js → chunk-OFCHT2TN.js} +2 -2
  129. package/dist/{chunk-HRZZJ4XB.js → chunk-P2S6P7X6.js} +2 -2
  130. package/dist/{chunk-OGVJXIHX.js → chunk-PBVNVKYN.js} +2 -2
  131. package/dist/{chunk-2CP577K6.js → chunk-PPIASWWR.js} +2 -2
  132. package/dist/{chunk-6C76FZRM.js → chunk-QFIPSKPC.js} +2 -2
  133. package/dist/{chunk-Q562GF7J.js → chunk-QN77HA6P.js} +2 -2
  134. package/dist/{chunk-MFZACYZ6.js → chunk-QUNDYIYZ.js} +3 -3
  135. package/dist/{chunk-L34W4W4I.js → chunk-QW7G7PWN.js} +2 -2
  136. package/dist/{chunk-W5XWHTDO.js → chunk-QZZPUREO.js} +3 -3
  137. package/dist/{chunk-JA72X46J.js → chunk-R2AWYR4Q.js} +2 -2
  138. package/dist/{chunk-YRULQW5J.js → chunk-RBJQYMMT.js} +4 -4
  139. package/dist/{chunk-6KHF6PAB.js → chunk-RH6QEGCT.js} +3 -3
  140. package/dist/{chunk-QRZMJ2WN.js → chunk-RNPJ4GQA.js} +2 -2
  141. package/dist/{chunk-TRBLJU6Y.js → chunk-S4GUMZRB.js} +40 -40
  142. package/dist/{chunk-MQNOIH2C.js → chunk-SQ2O52SU.js} +3 -3
  143. package/dist/{chunk-EP5WXE2G.js → chunk-TCYLCPC6.js} +2 -2
  144. package/dist/{chunk-7CZIKCJR.js → chunk-V4WSQYO6.js} +82 -82
  145. package/dist/{chunk-7CZIKCJR.js.map → chunk-V4WSQYO6.js.map} +1 -1
  146. package/dist/{chunk-PO7NXNGC.js → chunk-VFTK5WKI.js} +2 -2
  147. package/dist/{chunk-JA54KIYD.js → chunk-VSHRMIJH.js} +2 -2
  148. package/dist/{chunk-5BPXMAUP.js → chunk-VUQDJ3JB.js} +4 -4
  149. package/dist/{chunk-7CXL25AA.js → chunk-W4RLOZOG.js} +3 -3
  150. package/dist/{chunk-LHRQBMJN.js → chunk-WADSXS4K.js} +2 -2
  151. package/dist/{chunk-Y7427SL7.js → chunk-WCGJK4NQ.js} +4 -4
  152. package/dist/{chunk-37HCPM56.js → chunk-WJLGUY27.js} +18 -18
  153. package/dist/{chunk-YGPXV546.js → chunk-WPFSZZ35.js} +2 -2
  154. package/dist/{chunk-IM2GO42H.js → chunk-WVHRNAXL.js} +4 -4
  155. package/dist/chunk-WVHRNAXL.js.map +1 -0
  156. package/dist/{chunk-UXIZ5XN5.js → chunk-XLIK2VDE.js} +3 -3
  157. package/dist/{chunk-64S6X4IU.js → chunk-XTN54NML.js} +4 -4
  158. package/dist/{chunk-2UPTRDGM.js → chunk-Y6DZ33PA.js} +4 -4
  159. package/dist/{chunk-4JNTGPBR.js → chunk-YAF3NRNC.js} +2 -2
  160. package/dist/{chunk-IFCKHPY4.js → chunk-YDH2FSDI.js} +2 -2
  161. package/dist/{chunk-L6GNS5GB.js → chunk-YS7SA4HD.js} +2 -2
  162. package/dist/{chunk-EIFYYHAF.js → chunk-YYO447A7.js} +4 -4
  163. package/dist/{chunk-75PT4N7Q.js → chunk-ZI7LMSNI.js} +2 -2
  164. package/dist/{chunk-EUT2WCWS.js → chunk-ZQ3WU6JO.js} +2 -2
  165. package/dist/{chunk-YJEUHGZZ.js → chunk-ZQYAE2C5.js} +2 -2
  166. package/dist/{chunk-JYG2334B.js → chunk-ZSJGYC3C.js} +2 -2
  167. package/dist/cli.js +108 -106
  168. package/dist/coding/export-okf-codegraph.js +20 -19
  169. package/dist/coding/export-okf-codegraph.js.map +1 -1
  170. package/dist/coding/pre-action-gate.js +2 -2
  171. package/dist/compounding/engine.js +21 -20
  172. package/dist/config.js +28 -27
  173. package/dist/connectors/codex-materialize-runner.js +20 -19
  174. package/dist/connectors/index.js +20 -19
  175. package/dist/consolidation-provenance-check.js +5 -4
  176. package/dist/consolidation-undo.js +4 -3
  177. package/dist/consolidation-undo.js.map +1 -1
  178. package/dist/contradiction/index.js +6 -5
  179. package/dist/convergence-refresh.js +22 -21
  180. package/dist/corpus-watermark.js +22 -21
  181. package/dist/deep-recall-http-glue.js +11 -10
  182. package/dist/deep-recall.js +2 -2
  183. package/dist/embedding-fallback.js +4 -3
  184. package/dist/embedding-generation-lock.js +3 -2
  185. package/dist/entity-retrieval.js +20 -19
  186. package/dist/explicit-capture.js +8 -7
  187. package/dist/external-wiki-access.js +67 -65
  188. package/dist/extraction.js +25 -24
  189. package/dist/{forget-SZ2BXDGF.js → forget-OHAJ6PSU.js} +4 -3
  190. package/dist/{forget-SZ2BXDGF.js.map → forget-OHAJ6PSU.js.map} +1 -1
  191. package/dist/{graph-edge-decay-PVKDKLQK.js → graph-edge-decay-CZ3SYLM4.js} +7 -6
  192. package/dist/graph-jsonl.js +5 -4
  193. package/dist/graph-snapshot.js +5 -4
  194. package/dist/graph-write-lock.js +3 -2
  195. package/dist/graph.js +4 -3
  196. package/dist/harmonic-retrieval.d.ts.map +1 -1
  197. package/dist/harmonic-retrieval.js +22 -20
  198. package/dist/harmonic-source-lookup.d.ts +14 -0
  199. package/dist/harmonic-source-lookup.d.ts.map +1 -0
  200. package/dist/harmonic-source-lookup.js +22 -0
  201. package/dist/http-retry.d.ts.map +1 -1
  202. package/dist/http-retry.js +6 -8
  203. package/dist/http-retry.js.map +1 -1
  204. package/dist/index.js +144 -142
  205. package/dist/lcm/engine.js +2 -2
  206. package/dist/lcm/index.js +4 -4
  207. package/dist/location/index.js +23 -22
  208. package/dist/maintenance/memory-governance.js +20 -19
  209. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +20 -19
  210. package/dist/maintenance/rebuild-memory-projection-runner.js +22 -21
  211. package/dist/maintenance/rebuild-memory-projection.js +21 -20
  212. package/dist/memory-browse-operations.js +67 -65
  213. package/dist/memory-browse.js +8 -7
  214. package/dist/memory-projection-batch.d.ts +2 -0
  215. package/dist/memory-projection-batch.d.ts.map +1 -1
  216. package/dist/memory-projection-batch.js +4 -1
  217. package/dist/memory-subject.js +4 -3
  218. package/dist/namespaces/migrate.js +21 -20
  219. package/dist/namespaces/search.js +8 -7
  220. package/dist/namespaces/storage.js +20 -19
  221. package/dist/offline-sync-changeset-generations.js +6 -5
  222. package/dist/offline-sync-embedding-generation.js +5 -4
  223. package/dist/offline-sync-impression-drain.js +4 -3
  224. package/dist/offline-sync-snapshot-stream.js +8 -7
  225. package/dist/offline-sync.js +9 -8
  226. package/dist/operator-doctor-corpus.js +23 -22
  227. package/dist/operator-toolkit.js +40 -39
  228. package/dist/orchestration/maintenance.js +30 -29
  229. package/dist/orchestrator.js +133 -131
  230. package/dist/page-versioning.js +4 -3
  231. package/dist/procedural/procedure-miner.d.ts.map +1 -1
  232. package/dist/qmd-daemon-session.d.ts.map +1 -1
  233. package/dist/qmd-daemon-session.js +2 -1
  234. package/dist/qmd.d.ts.map +1 -1
  235. package/dist/qmd.js +7 -6
  236. package/dist/recall-navigation-operations.js +67 -65
  237. package/dist/recall-navigation.js +66 -64
  238. package/dist/recall-state-view-admission.js +8 -7
  239. package/dist/recall-state.js +3 -2
  240. package/dist/recall-why-service.js +8 -7
  241. package/dist/reconcile/manifest.js +4 -3
  242. package/dist/{resolution-TV3F7ZTH.js → resolution-E4GLHLY6.js} +7 -6
  243. package/dist/resolution-E4GLHLY6.js.map +1 -0
  244. package/dist/resume-bundles.js +29 -28
  245. package/dist/salvage-envelope.js +6 -5
  246. package/dist/search/factory.js +7 -6
  247. package/dist/search/index.js +9 -8
  248. package/dist/semantic-consolidation.js +21 -20
  249. package/dist/semantic-rule-promotion.js +20 -19
  250. package/dist/semantic-rule-verifier.js +20 -19
  251. package/dist/source-agent-qualifier.js +24 -23
  252. package/dist/standup/build.js +20 -19
  253. package/dist/storage.js +19 -18
  254. package/dist/subject-config.js +5 -4
  255. package/dist/summarizer.js +4 -3
  256. package/dist/summary-snapshot.js +3 -2
  257. package/dist/support-passport/index.js +69 -67
  258. package/dist/testing/orchestrator-lite.d.ts +1 -2
  259. package/dist/testing/orchestrator-lite.d.ts.map +1 -1
  260. package/dist/transfer/autodetect.js +1 -1
  261. package/dist/transfer/backup.js +1 -1
  262. package/dist/transfer/capsule-export.js +2 -2
  263. package/dist/transfer/capsule-import.js +5 -4
  264. package/dist/transfer/export-okf.js +20 -19
  265. package/dist/utils/serialize-mutations.d.ts.map +1 -1
  266. package/dist/utils/serialize-mutations.js +2 -1
  267. package/dist/utils/sleep.d.ts +3 -0
  268. package/dist/utils/sleep.d.ts.map +1 -0
  269. package/dist/verified-recall.js +20 -19
  270. package/dist/who-knows-cli.js +21 -20
  271. package/dist/who-knows.js +20 -19
  272. package/dist/write-envelope.js +5 -4
  273. package/package.json +2 -2
  274. package/src/access-idempotency.ts +1 -4
  275. package/src/harmonic-retrieval.ts +12 -64
  276. package/src/harmonic-source-lookup.test.ts +178 -0
  277. package/src/harmonic-source-lookup.ts +142 -0
  278. package/src/http-retry.ts +2 -6
  279. package/src/memory-projection-batch.test.ts +55 -0
  280. package/src/memory-projection-batch.ts +20 -0
  281. package/src/offline-sync-digest-cache.test.ts +45 -0
  282. package/src/orchestration/recall-internal.ts +12 -12
  283. package/src/procedural/procedure-miner.ts +1 -4
  284. package/src/qmd-daemon-session.ts +1 -4
  285. package/src/qmd.ts +0 -4
  286. package/src/recall-harmonic-qmd-ordering.test.ts +304 -0
  287. package/src/testing/orchestrator-lite.ts +2 -7
  288. package/src/utils/serialize-mutations.ts +1 -13
  289. package/src/utils/sleep.test.ts +32 -0
  290. package/src/utils/sleep.ts +5 -0
  291. package/dist/chunk-7PZHH4KC.js.map +0 -1
  292. package/dist/chunk-AJ6ORARY.js.map +0 -1
  293. package/dist/chunk-DTXN4NVD.js.map +0 -1
  294. package/dist/chunk-FFAZ2XFU.js.map +0 -1
  295. package/dist/chunk-IM2GO42H.js.map +0 -1
  296. package/dist/chunk-VFUEZZBS.js.map +0 -1
  297. package/dist/chunk-YJAOYEWI.js.map +0 -1
  298. /package/dist/{chunk-OZABSIOV.js.map → chunk-2AFHZTPI.js.map} +0 -0
  299. /package/dist/{chunk-UK5EH7AI.js.map → chunk-2CXQZXWM.js.map} +0 -0
  300. /package/dist/{chunk-D6M3VKMY.js.map → chunk-2K7D6EFT.js.map} +0 -0
  301. /package/dist/{chunk-RIEGCK2W.js.map → chunk-2KRNPFPK.js.map} +0 -0
  302. /package/dist/{chunk-N7QV3CMX.js.map → chunk-2NCBDGND.js.map} +0 -0
  303. /package/dist/{chunk-XQSJXNWC.js.map → chunk-3ENX2RB4.js.map} +0 -0
  304. /package/dist/{chunk-CLCMDKTB.js.map → chunk-3I3U6FFT.js.map} +0 -0
  305. /package/dist/{chunk-WWLAKRMX.js.map → chunk-3NFN4Y4P.js.map} +0 -0
  306. /package/dist/{chunk-I56MTWE7.js.map → chunk-3R6SLDTH.js.map} +0 -0
  307. /package/dist/{chunk-QEPL7KIZ.js.map → chunk-3VTNNO2B.js.map} +0 -0
  308. /package/dist/{chunk-QWUJWBZ5.js.map → chunk-4G4B3Z2B.js.map} +0 -0
  309. /package/dist/{chunk-R7QY5ZVB.js.map → chunk-4NDWE44P.js.map} +0 -0
  310. /package/dist/{chunk-KCCZFDJD.js.map → chunk-4OKPH6FG.js.map} +0 -0
  311. /package/dist/{chunk-I25RQA65.js.map → chunk-55ZVZBX4.js.map} +0 -0
  312. /package/dist/{chunk-ENNC3RZ6.js.map → chunk-5EOV7ANU.js.map} +0 -0
  313. /package/dist/{chunk-ANZXWOYD.js.map → chunk-5FNVK7MW.js.map} +0 -0
  314. /package/dist/{chunk-KSUOM3YU.js.map → chunk-5NOPZYNI.js.map} +0 -0
  315. /package/dist/{chunk-7LYRFI5A.js.map → chunk-5Q4NQNW7.js.map} +0 -0
  316. /package/dist/{chunk-L3PWXD73.js.map → chunk-6PHB45IU.js.map} +0 -0
  317. /package/dist/{chunk-CHDGJJV6.js.map → chunk-6VAHJ2F6.js.map} +0 -0
  318. /package/dist/{chunk-KQT4DRKF.js.map → chunk-76KHEHT2.js.map} +0 -0
  319. /package/dist/{chunk-SWRN6U7Q.js.map → chunk-7O252IE6.js.map} +0 -0
  320. /package/dist/{chunk-U6HWKOGD.js.map → chunk-7OAIOE5P.js.map} +0 -0
  321. /package/dist/{chunk-RSMIRLKM.js.map → chunk-7UX44C4N.js.map} +0 -0
  322. /package/dist/{chunk-DJMVSUPK.js.map → chunk-A6G7K273.js.map} +0 -0
  323. /package/dist/{chunk-VC4J4UTI.js.map → chunk-AAM66QCP.js.map} +0 -0
  324. /package/dist/{chunk-TZQOCQXB.js.map → chunk-AL6EHLB5.js.map} +0 -0
  325. /package/dist/{chunk-IJ4FEGZR.js.map → chunk-AMFCRZYB.js.map} +0 -0
  326. /package/dist/{chunk-4K2H4KTR.js.map → chunk-AV46CT77.js.map} +0 -0
  327. /package/dist/{chunk-VZBW6CDG.js.map → chunk-BOOFTFFE.js.map} +0 -0
  328. /package/dist/{chunk-2UF42WXV.js.map → chunk-BPY4RRTF.js.map} +0 -0
  329. /package/dist/{chunk-2U3R3DDH.js.map → chunk-BTJ6CAIA.js.map} +0 -0
  330. /package/dist/{chunk-GF4H3B3R.js.map → chunk-C3WJNRGR.js.map} +0 -0
  331. /package/dist/{chunk-SIYZDT2V.js.map → chunk-CBP4HWCL.js.map} +0 -0
  332. /package/dist/{chunk-GEGUBU3D.js.map → chunk-CSUAHUOH.js.map} +0 -0
  333. /package/dist/{chunk-BNMI3JBV.js.map → chunk-DXHVD4DS.js.map} +0 -0
  334. /package/dist/{chunk-GE6HETIF.js.map → chunk-E5274WUC.js.map} +0 -0
  335. /package/dist/{chunk-2COXDQ6C.js.map → chunk-E6KXJSMA.js.map} +0 -0
  336. /package/dist/{chunk-CCMXCZLT.js.map → chunk-FBVLTTVV.js.map} +0 -0
  337. /package/dist/{chunk-XVC7JU2N.js.map → chunk-FQD2KPQH.js.map} +0 -0
  338. /package/dist/{chunk-SNXBXYUE.js.map → chunk-GDI64ITR.js.map} +0 -0
  339. /package/dist/{chunk-MH2DXDN6.js.map → chunk-GSAZBZMA.js.map} +0 -0
  340. /package/dist/{chunk-MULNBSPP.js.map → chunk-HT2C4EXO.js.map} +0 -0
  341. /package/dist/{chunk-EMVJU7WC.js.map → chunk-HZVYDWUP.js.map} +0 -0
  342. /package/dist/{chunk-XPRAOTJY.js.map → chunk-IJWEXCWF.js.map} +0 -0
  343. /package/dist/{chunk-L2VS27PZ.js.map → chunk-IOM5QSNR.js.map} +0 -0
  344. /package/dist/{chunk-KQAFEZQX.js.map → chunk-IPLYGWQF.js.map} +0 -0
  345. /package/dist/{chunk-TDMNADPI.js.map → chunk-JK3DYMOC.js.map} +0 -0
  346. /package/dist/{chunk-SZXPKUMN.js.map → chunk-JSIQSZXI.js.map} +0 -0
  347. /package/dist/{chunk-KQI2PKYP.js.map → chunk-JTUKDLAD.js.map} +0 -0
  348. /package/dist/{chunk-TL4PM7PC.js.map → chunk-K3DZ3G5I.js.map} +0 -0
  349. /package/dist/{chunk-WG4TMZJ2.js.map → chunk-KDYQYMJZ.js.map} +0 -0
  350. /package/dist/{chunk-N4PYB235.js.map → chunk-KI6UOSNR.js.map} +0 -0
  351. /package/dist/{chunk-FC6RCOIU.js.map → chunk-KRIEQCKE.js.map} +0 -0
  352. /package/dist/{chunk-EQUD7FP4.js.map → chunk-KYY4EACB.js.map} +0 -0
  353. /package/dist/{chunk-QMFKW4OU.js.map → chunk-L3Z4NXDO.js.map} +0 -0
  354. /package/dist/{chunk-KE5PWLI6.js.map → chunk-LOFVW6JA.js.map} +0 -0
  355. /package/dist/{chunk-46WM6JX2.js.map → chunk-LZKOVXMX.js.map} +0 -0
  356. /package/dist/{chunk-JMF5Q4JY.js.map → chunk-MAJ2OKE4.js.map} +0 -0
  357. /package/dist/{chunk-U6OXJQEH.js.map → chunk-MB5EJ2CT.js.map} +0 -0
  358. /package/dist/{chunk-VUEG3TZ4.js.map → chunk-MVRIW6MI.js.map} +0 -0
  359. /package/dist/{chunk-TGF43K66.js.map → chunk-MZBWIJJN.js.map} +0 -0
  360. /package/dist/{chunk-QGLEM46C.js.map → chunk-N44GZ73R.js.map} +0 -0
  361. /package/dist/{chunk-63UNVGZW.js.map → chunk-N6UMXWBA.js.map} +0 -0
  362. /package/dist/{chunk-FLV7M7CT.js.map → chunk-NAHUBSUF.js.map} +0 -0
  363. /package/dist/{chunk-S5TGRZWY.js.map → chunk-NXLQQ6WI.js.map} +0 -0
  364. /package/dist/{chunk-5AYUHSAU.js.map → chunk-OFCHT2TN.js.map} +0 -0
  365. /package/dist/{chunk-HRZZJ4XB.js.map → chunk-P2S6P7X6.js.map} +0 -0
  366. /package/dist/{chunk-OGVJXIHX.js.map → chunk-PBVNVKYN.js.map} +0 -0
  367. /package/dist/{chunk-2CP577K6.js.map → chunk-PPIASWWR.js.map} +0 -0
  368. /package/dist/{chunk-6C76FZRM.js.map → chunk-QFIPSKPC.js.map} +0 -0
  369. /package/dist/{chunk-Q562GF7J.js.map → chunk-QN77HA6P.js.map} +0 -0
  370. /package/dist/{chunk-MFZACYZ6.js.map → chunk-QUNDYIYZ.js.map} +0 -0
  371. /package/dist/{chunk-L34W4W4I.js.map → chunk-QW7G7PWN.js.map} +0 -0
  372. /package/dist/{chunk-W5XWHTDO.js.map → chunk-QZZPUREO.js.map} +0 -0
  373. /package/dist/{chunk-JA72X46J.js.map → chunk-R2AWYR4Q.js.map} +0 -0
  374. /package/dist/{chunk-YRULQW5J.js.map → chunk-RBJQYMMT.js.map} +0 -0
  375. /package/dist/{chunk-6KHF6PAB.js.map → chunk-RH6QEGCT.js.map} +0 -0
  376. /package/dist/{chunk-QRZMJ2WN.js.map → chunk-RNPJ4GQA.js.map} +0 -0
  377. /package/dist/{chunk-TRBLJU6Y.js.map → chunk-S4GUMZRB.js.map} +0 -0
  378. /package/dist/{chunk-MQNOIH2C.js.map → chunk-SQ2O52SU.js.map} +0 -0
  379. /package/dist/{chunk-EP5WXE2G.js.map → chunk-TCYLCPC6.js.map} +0 -0
  380. /package/dist/{chunk-PO7NXNGC.js.map → chunk-VFTK5WKI.js.map} +0 -0
  381. /package/dist/{chunk-JA54KIYD.js.map → chunk-VSHRMIJH.js.map} +0 -0
  382. /package/dist/{chunk-5BPXMAUP.js.map → chunk-VUQDJ3JB.js.map} +0 -0
  383. /package/dist/{chunk-7CXL25AA.js.map → chunk-W4RLOZOG.js.map} +0 -0
  384. /package/dist/{chunk-LHRQBMJN.js.map → chunk-WADSXS4K.js.map} +0 -0
  385. /package/dist/{chunk-Y7427SL7.js.map → chunk-WCGJK4NQ.js.map} +0 -0
  386. /package/dist/{chunk-37HCPM56.js.map → chunk-WJLGUY27.js.map} +0 -0
  387. /package/dist/{chunk-YGPXV546.js.map → chunk-WPFSZZ35.js.map} +0 -0
  388. /package/dist/{chunk-UXIZ5XN5.js.map → chunk-XLIK2VDE.js.map} +0 -0
  389. /package/dist/{chunk-64S6X4IU.js.map → chunk-XTN54NML.js.map} +0 -0
  390. /package/dist/{chunk-2UPTRDGM.js.map → chunk-Y6DZ33PA.js.map} +0 -0
  391. /package/dist/{chunk-4JNTGPBR.js.map → chunk-YAF3NRNC.js.map} +0 -0
  392. /package/dist/{chunk-IFCKHPY4.js.map → chunk-YDH2FSDI.js.map} +0 -0
  393. /package/dist/{chunk-L6GNS5GB.js.map → chunk-YS7SA4HD.js.map} +0 -0
  394. /package/dist/{chunk-EIFYYHAF.js.map → chunk-YYO447A7.js.map} +0 -0
  395. /package/dist/{chunk-75PT4N7Q.js.map → chunk-ZI7LMSNI.js.map} +0 -0
  396. /package/dist/{chunk-EUT2WCWS.js.map → chunk-ZQ3WU6JO.js.map} +0 -0
  397. /package/dist/{chunk-YJEUHGZZ.js.map → chunk-ZQYAE2C5.js.map} +0 -0
  398. /package/dist/{chunk-JYG2334B.js.map → chunk-ZSJGYC3C.js.map} +0 -0
  399. /package/dist/{graph-edge-decay-PVKDKLQK.js.map → graph-edge-decay-CZ3SYLM4.js.map} +0 -0
  400. /package/dist/{resolution-TV3F7ZTH.js.map → harmonic-source-lookup.js.map} +0 -0
@@ -4,14 +4,15 @@ import {
4
4
  renderWhoKnows,
5
5
  renderWhoKnowsJson,
6
6
  renderWhoKnowsText
7
- } from "./chunk-FC6RCOIU.js";
8
- import "./chunk-XQSJXNWC.js";
9
- import "./chunk-37HCPM56.js";
10
- import "./chunk-46WM6JX2.js";
7
+ } from "./chunk-KRIEQCKE.js";
8
+ import "./chunk-3ENX2RB4.js";
9
+ import "./chunk-WJLGUY27.js";
11
10
  import "./chunk-UHVXE24Y.js";
11
+ import "./chunk-LZKOVXMX.js";
12
12
  import "./chunk-V4JZCTMK.js";
13
- import "./chunk-RSMIRLKM.js";
14
- import "./chunk-U6OXJQEH.js";
13
+ import "./chunk-7UX44C4N.js";
14
+ import "./chunk-MB5EJ2CT.js";
15
+ import "./chunk-CYEPCZN5.js";
15
16
  import "./chunk-T3FMRLWQ.js";
16
17
  import "./chunk-7VO6E5UD.js";
17
18
  import "./chunk-5BUCKFRE.js";
@@ -19,7 +20,6 @@ import "./chunk-S7LWX2PQ.js";
19
20
  import "./chunk-T2YX56QI.js";
20
21
  import "./chunk-4O6WRBGE.js";
21
22
  import "./chunk-GUMZC2BO.js";
22
- import "./chunk-CYEPCZN5.js";
23
23
  import "./chunk-TFA6HPOA.js";
24
24
  import "./chunk-F4TWWUMP.js";
25
25
  import "./chunk-72A4L5JJ.js";
@@ -28,12 +28,12 @@ import "./chunk-S2V7RUCL.js";
28
28
  import "./chunk-X3724WL4.js";
29
29
  import "./chunk-MRPOZBJC.js";
30
30
  import "./chunk-S2HLHAZ4.js";
31
- import "./chunk-DM2T26WE.js";
32
31
  import "./chunk-LDXUBPMO.js";
32
+ import "./chunk-DM2T26WE.js";
33
33
  import "./chunk-FF6N7BXC.js";
34
34
  import "./chunk-2DT7PIDZ.js";
35
35
  import "./chunk-AAD2ZS6P.js";
36
- import "./chunk-EIFYYHAF.js";
36
+ import "./chunk-YYO447A7.js";
37
37
  import "./chunk-ZIKENA2C.js";
38
38
  import "./chunk-3OUGSOJP.js";
39
39
  import "./chunk-SCU65EZI.js";
@@ -41,20 +41,20 @@ import "./chunk-3ONXXHQO.js";
41
41
  import "./chunk-YXZG5TVN.js";
42
42
  import "./chunk-3WU7XOFN.js";
43
43
  import "./chunk-6MKLMEBE.js";
44
- import "./chunk-W5XWHTDO.js";
44
+ import "./chunk-QZZPUREO.js";
45
45
  import "./chunk-M5GVCJSJ.js";
46
46
  import "./chunk-RBOJCG4T.js";
47
- import "./chunk-R7QY5ZVB.js";
47
+ import "./chunk-4NDWE44P.js";
48
48
  import "./chunk-5WITETWU.js";
49
49
  import "./chunk-6CIAGZ6X.js";
50
50
  import "./chunk-7CT3AI52.js";
51
51
  import "./chunk-G7D6GZ5J.js";
52
- import "./chunk-AJ6ORARY.js";
53
- import "./chunk-IUM3VSHI.js";
52
+ import "./chunk-DGRMWDQY.js";
54
53
  import "./chunk-G26YNEOC.js";
55
- import "./chunk-IM2GO42H.js";
56
- import "./chunk-TPSLVZHS.js";
57
54
  import "./chunk-SIGAGKNE.js";
55
+ import "./chunk-IUM3VSHI.js";
56
+ import "./chunk-WVHRNAXL.js";
57
+ import "./chunk-TPSLVZHS.js";
58
58
  import "./chunk-23G5P7TA.js";
59
59
  import "./chunk-C64XATK7.js";
60
60
  import "./chunk-42JKGUFJ.js";
@@ -72,30 +72,31 @@ import "./chunk-PJKTFXE2.js";
72
72
  import "./chunk-W5BIQOAJ.js";
73
73
  import "./chunk-QWWMS4AE.js";
74
74
  import "./chunk-YBA52OKG.js";
75
- import "./chunk-5AYUHSAU.js";
75
+ import "./chunk-OFCHT2TN.js";
76
76
  import "./chunk-BT7NVCML.js";
77
- import "./chunk-PO7NXNGC.js";
77
+ import "./chunk-VFTK5WKI.js";
78
78
  import "./chunk-BJMBJZ2Y.js";
79
79
  import "./chunk-UKJAGEXH.js";
80
80
  import "./chunk-FP2373TW.js";
81
81
  import "./chunk-L272A5QW.js";
82
- import "./chunk-XVC7JU2N.js";
82
+ import "./chunk-FQD2KPQH.js";
83
83
  import "./chunk-ZA53AZND.js";
84
84
  import "./chunk-7RJUVTVF.js";
85
85
  import "./chunk-AL3UYZ5N.js";
86
86
  import "./chunk-RL6NEVXT.js";
87
87
  import "./chunk-PWPIERBM.js";
88
88
  import "./chunk-C7HJ3NEI.js";
89
- import "./chunk-N4PYB235.js";
89
+ import "./chunk-KI6UOSNR.js";
90
90
  import "./chunk-BTNNL7ZW.js";
91
91
  import "./chunk-5FVVY2EB.js";
92
92
  import "./chunk-JDSVLVCG.js";
93
93
  import "./chunk-5GKPFL3S.js";
94
94
  import "./chunk-JAKIDQB2.js";
95
- import "./chunk-FFAZ2XFU.js";
95
+ import "./chunk-EHRE7ZG3.js";
96
96
  import "./chunk-P7FMDTKL.js";
97
97
  import "./chunk-VUFL7X3H.js";
98
98
  import "./chunk-2EMROIXS.js";
99
+ import "./chunk-7LEQREP2.js";
99
100
  import "./chunk-ZEFVK7XC.js";
100
101
  import "./chunk-6KH5NLQS.js";
101
102
  import "./chunk-P2QRMMVQ.js";
package/dist/who-knows.js CHANGED
@@ -9,13 +9,14 @@ import {
9
9
  loadWhoKnowsEntities,
10
10
  tokenizeTopic,
11
11
  validateWhoKnowsInput
12
- } from "./chunk-XQSJXNWC.js";
13
- import "./chunk-37HCPM56.js";
14
- import "./chunk-46WM6JX2.js";
12
+ } from "./chunk-3ENX2RB4.js";
13
+ import "./chunk-WJLGUY27.js";
15
14
  import "./chunk-UHVXE24Y.js";
15
+ import "./chunk-LZKOVXMX.js";
16
16
  import "./chunk-V4JZCTMK.js";
17
- import "./chunk-RSMIRLKM.js";
18
- import "./chunk-U6OXJQEH.js";
17
+ import "./chunk-7UX44C4N.js";
18
+ import "./chunk-MB5EJ2CT.js";
19
+ import "./chunk-CYEPCZN5.js";
19
20
  import "./chunk-T3FMRLWQ.js";
20
21
  import "./chunk-7VO6E5UD.js";
21
22
  import "./chunk-5BUCKFRE.js";
@@ -23,7 +24,6 @@ import "./chunk-S7LWX2PQ.js";
23
24
  import "./chunk-T2YX56QI.js";
24
25
  import "./chunk-4O6WRBGE.js";
25
26
  import "./chunk-GUMZC2BO.js";
26
- import "./chunk-CYEPCZN5.js";
27
27
  import "./chunk-TFA6HPOA.js";
28
28
  import "./chunk-F4TWWUMP.js";
29
29
  import "./chunk-72A4L5JJ.js";
@@ -32,12 +32,12 @@ import "./chunk-S2V7RUCL.js";
32
32
  import "./chunk-X3724WL4.js";
33
33
  import "./chunk-MRPOZBJC.js";
34
34
  import "./chunk-S2HLHAZ4.js";
35
- import "./chunk-DM2T26WE.js";
36
35
  import "./chunk-LDXUBPMO.js";
36
+ import "./chunk-DM2T26WE.js";
37
37
  import "./chunk-FF6N7BXC.js";
38
38
  import "./chunk-2DT7PIDZ.js";
39
39
  import "./chunk-AAD2ZS6P.js";
40
- import "./chunk-EIFYYHAF.js";
40
+ import "./chunk-YYO447A7.js";
41
41
  import "./chunk-ZIKENA2C.js";
42
42
  import "./chunk-3OUGSOJP.js";
43
43
  import "./chunk-SCU65EZI.js";
@@ -45,20 +45,20 @@ import "./chunk-3ONXXHQO.js";
45
45
  import "./chunk-YXZG5TVN.js";
46
46
  import "./chunk-3WU7XOFN.js";
47
47
  import "./chunk-6MKLMEBE.js";
48
- import "./chunk-W5XWHTDO.js";
48
+ import "./chunk-QZZPUREO.js";
49
49
  import "./chunk-M5GVCJSJ.js";
50
50
  import "./chunk-RBOJCG4T.js";
51
- import "./chunk-R7QY5ZVB.js";
51
+ import "./chunk-4NDWE44P.js";
52
52
  import "./chunk-5WITETWU.js";
53
53
  import "./chunk-6CIAGZ6X.js";
54
54
  import "./chunk-7CT3AI52.js";
55
55
  import "./chunk-G7D6GZ5J.js";
56
- import "./chunk-AJ6ORARY.js";
57
- import "./chunk-IUM3VSHI.js";
56
+ import "./chunk-DGRMWDQY.js";
58
57
  import "./chunk-G26YNEOC.js";
59
- import "./chunk-IM2GO42H.js";
60
- import "./chunk-TPSLVZHS.js";
61
58
  import "./chunk-SIGAGKNE.js";
59
+ import "./chunk-IUM3VSHI.js";
60
+ import "./chunk-WVHRNAXL.js";
61
+ import "./chunk-TPSLVZHS.js";
62
62
  import "./chunk-23G5P7TA.js";
63
63
  import "./chunk-C64XATK7.js";
64
64
  import "./chunk-42JKGUFJ.js";
@@ -76,30 +76,31 @@ import "./chunk-PJKTFXE2.js";
76
76
  import "./chunk-W5BIQOAJ.js";
77
77
  import "./chunk-QWWMS4AE.js";
78
78
  import "./chunk-YBA52OKG.js";
79
- import "./chunk-5AYUHSAU.js";
79
+ import "./chunk-OFCHT2TN.js";
80
80
  import "./chunk-BT7NVCML.js";
81
- import "./chunk-PO7NXNGC.js";
81
+ import "./chunk-VFTK5WKI.js";
82
82
  import "./chunk-BJMBJZ2Y.js";
83
83
  import "./chunk-UKJAGEXH.js";
84
84
  import "./chunk-FP2373TW.js";
85
85
  import "./chunk-L272A5QW.js";
86
- import "./chunk-XVC7JU2N.js";
86
+ import "./chunk-FQD2KPQH.js";
87
87
  import "./chunk-ZA53AZND.js";
88
88
  import "./chunk-7RJUVTVF.js";
89
89
  import "./chunk-AL3UYZ5N.js";
90
90
  import "./chunk-RL6NEVXT.js";
91
91
  import "./chunk-PWPIERBM.js";
92
92
  import "./chunk-C7HJ3NEI.js";
93
- import "./chunk-N4PYB235.js";
93
+ import "./chunk-KI6UOSNR.js";
94
94
  import "./chunk-BTNNL7ZW.js";
95
95
  import "./chunk-5FVVY2EB.js";
96
96
  import "./chunk-JDSVLVCG.js";
97
97
  import "./chunk-5GKPFL3S.js";
98
98
  import "./chunk-JAKIDQB2.js";
99
- import "./chunk-FFAZ2XFU.js";
99
+ import "./chunk-EHRE7ZG3.js";
100
100
  import "./chunk-P7FMDTKL.js";
101
101
  import "./chunk-VUFL7X3H.js";
102
102
  import "./chunk-2EMROIXS.js";
103
+ import "./chunk-7LEQREP2.js";
103
104
  import "./chunk-ZEFVK7XC.js";
104
105
  import "./chunk-6KH5NLQS.js";
105
106
  import "./chunk-P2QRMMVQ.js";
@@ -12,16 +12,17 @@ import {
12
12
  isMemoryCategory,
13
13
  isSealedMemoryEnvelope,
14
14
  sealedWriteToLegacyArgs
15
- } from "./chunk-5AYUHSAU.js";
15
+ } from "./chunk-OFCHT2TN.js";
16
16
  import "./chunk-BT7NVCML.js";
17
- import "./chunk-PO7NXNGC.js";
18
- import "./chunk-N4PYB235.js";
17
+ import "./chunk-VFTK5WKI.js";
18
+ import "./chunk-KI6UOSNR.js";
19
19
  import "./chunk-5FVVY2EB.js";
20
20
  import "./chunk-JDSVLVCG.js";
21
21
  import "./chunk-5GKPFL3S.js";
22
22
  import "./chunk-JAKIDQB2.js";
23
- import "./chunk-FFAZ2XFU.js";
23
+ import "./chunk-EHRE7ZG3.js";
24
24
  import "./chunk-P7FMDTKL.js";
25
+ import "./chunk-7LEQREP2.js";
25
26
  import "./chunk-MAAL6OZV.js";
26
27
  import "./chunk-A6XUJE5D.js";
27
28
  import "./chunk-VS2IYZRU.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnic/core",
3
- "version": "10.0.6",
3
+ "version": "10.0.8",
4
4
  "description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -3327,7 +3327,7 @@
3327
3327
  "core"
3328
3328
  ],
3329
3329
  "peerDependencies": {
3330
- "@remnic/coding-graph": "^10.0.6"
3330
+ "@remnic/coding-graph": "^10.0.8"
3331
3331
  },
3332
3332
  "peerDependenciesMeta": {
3333
3333
  "@remnic/coding-graph": {
@@ -1,6 +1,7 @@
1
1
  import { mkdir, open, readFile, rename, stat, unlink, utimes, writeFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
+ import { sleep } from "./utils/sleep.js";
4
5
 
5
6
  type AccessIdempotencyEntry = {
6
7
  recordedAt: string;
@@ -359,7 +360,3 @@ async function unlinkStaleLockIfStillOwned(options: {
359
360
  await unlink(options.lockPath);
360
361
  return true;
361
362
  }
362
-
363
- function sleep(ms: number): Promise<void> {
364
- return new Promise((resolve) => setTimeout(resolve, ms));
365
- }
@@ -1,5 +1,4 @@
1
1
  import path from "node:path";
2
- import { existsSync } from "node:fs";
3
2
  import { realpath } from "node:fs/promises";
4
3
  import { listJsonFilesStrict, readJsonFile } from "./json-store.js";
5
4
  import { throwIfAborted } from "./abort-error.js";
@@ -22,31 +21,11 @@ import { readProjectedMemoryStates } from "./memory-projection-batch.js";
22
21
  import { SecureStoreLockedError } from "./secure-store/secure-fs.js";
23
22
  import { StorageManager } from "./storage.js";
24
23
  import { RECALL_FALLBACK_DIRS } from "./utils/category-dir.js";
25
- import { isPathInsideStorageRoot } from "./storage-paths.js";
24
+ import { readHarmonicSourceMemory, readUnresolvedHarmonicSources } from "./harmonic-source-lookup.js";
26
25
 
27
26
 
28
27
  type SourceMemoryMap = Map<string, MemoryFile>;
29
28
 
30
- // `rootReal` set: a direct probe, which skips the corpus walk's symlink
31
- // hardening, so the resolved file must stay inside the memory root. Null: the
32
- // path came from the contained corpus walk and is already trusted.
33
- async function readMemoryFile(
34
- storage: StorageManager,
35
- rootReal: string | null,
36
- filePath: string,
37
- abortSignal?: AbortSignal,
38
- ): Promise<MemoryFile | null> {
39
- throwIfAborted(abortSignal, "harmonic retrieval aborted");
40
- if (!existsSync(filePath)) return null;
41
- try {
42
- if (rootReal !== null && !isPathInsideStorageRoot(rootReal, await realpath(filePath))) return null;
43
- return await storage.readMemoryByPath(filePath);
44
- } catch (err) {
45
- throwIfAborted(abortSignal, "harmonic retrieval aborted");
46
- if (err instanceof SecureStoreLockedError) throw err;
47
- return null;
48
- }
49
- }
50
29
 
51
30
  // An index older than this is treated as unusable: the date window needed to
52
31
  // cover "created since the last rebuild" would stop being cheap.
@@ -61,13 +40,6 @@ function utcDaysSince(rebuiltMs: number, nowMs: number): string[] {
61
40
  return days;
62
41
  }
63
42
 
64
- // Source ids confirmed absent by a corpus path walk. A node only references a
65
- // source after the source file exists, so a confirmed absence stays true unless
66
- // the file is restored later; the short TTL bounds that. Without this, one
67
- // dangling id (a hard-deleted fact) would force a walk on every recall.
68
- const ABSENT_SOURCE_TTL_MS = 10 * 60_000;
69
- const ABSENT_SOURCE_MAX_ENTRIES = 4096;
70
- const absentSourceIds = new Map<string, number>(); // `${memoryDir}\0${id}` -> expiry ms
71
43
 
72
44
  // Memories the projection has no row for were written after its last rebuild, so
73
45
  // their dated directory is normally one of `days`. Hot and cold tiers are probed
@@ -84,16 +56,7 @@ function unprojectedCandidatePaths(memoryDir: string, id: string, days: string[]
84
56
  return paths;
85
57
  }
86
58
 
87
- /**
88
- * Resolve only the source ids the abstraction nodes reference. Returns null when
89
- * the projection is absent, unreadable, too old, or not known to cover every
90
- * active memory (a scoped or pre-`complete` rebuild), so the caller keeps the
91
- * full-corpus scan. Every file is read from disk, so status, tags and validity
92
- * are current; the index only says where to look. An id the cheap probes cannot
93
- * place (an import filed under an old date, a tier root outside the memory dir)
94
- * is looked up by one contained path-only walk, never a frontmatter parse of the
95
- * corpus.
96
- */
59
+ /** Resolve indexed sources first, then use the durable unresolved-id path cache. */
97
60
  async function readIndexedSourceMemories(options: {
98
61
  memoryDir: string;
99
62
  abortSignal?: AbortSignal;
@@ -103,7 +66,7 @@ async function readIndexedSourceMemories(options: {
103
66
  // The ids go to SQL as bound parameters, so any id the projection holds is safe to look up.
104
67
  const batch = readProjectedMemoryStates(options.memoryDir, options.sourceMemoryIds);
105
68
  const rebuiltMs = Date.parse(batch?.rebuiltAt ?? "");
106
- if (!batch?.complete || !Number.isFinite(rebuiltMs) || options.nowMs - rebuiltMs > INDEX_MAX_AGE_MS) return null;
69
+ if (!batch?.complete || !batch.rebuiltAt || !Number.isFinite(rebuiltMs) || options.nowMs - rebuiltMs > INDEX_MAX_AGE_MS) return null;
107
70
  const rootReal = await realpath(options.memoryDir).catch(() => null);
108
71
  if (rootReal === null) return null;
109
72
 
@@ -120,42 +83,27 @@ async function readIndexedSourceMemories(options: {
120
83
  } catch {
121
84
  safeId = false;
122
85
  }
123
- // An unprojected id that is not a single path segment cannot be probed or
124
- // matched by filename, and the scan keys sources by frontmatter id, so only
125
- // the scan can place it. Rare (legacy/imported ids); worst case is the old cost.
126
- if (!state && !safeId) return null;
127
86
  // state.path was containment-checked by the projection reader.
128
87
  const candidates = state
129
88
  ? [state.path, path.join(options.memoryDir, "cold", state.pathRel)]
130
- : unprojectedCandidatePaths(options.memoryDir, id, days);
89
+ : safeId ? unprojectedCandidatePaths(options.memoryDir, id, days) : [];
131
90
  let found = false;
132
91
  for (const candidate of candidates) {
133
- const memory = await readMemoryFile(storage, rootReal, candidate, options.abortSignal);
92
+ const memory = await readHarmonicSourceMemory(storage, rootReal, candidate, options.abortSignal);
134
93
  if (memory?.frontmatter.id !== id) continue;
135
94
  sourceMemories.set(id, memory);
136
95
  found = true;
137
96
  break;
138
97
  }
139
- const absentKey = `${options.memoryDir}\0${id}`;
140
- if (!found && safeId && (absentSourceIds.get(absentKey) ?? 0) <= options.nowMs) pending.push(id);
98
+ if (!found) pending.push(id);
141
99
  }
142
100
  if (pending.length === 0) return sourceMemories;
143
101
 
144
- const wanted = new Set(pending);
145
- const walked = [
146
- ...(await storage.collectActiveMemoryPaths({ abortSignal: options.abortSignal })),
147
- ...(await storage.collectColdMemoryPaths({ abortSignal: options.abortSignal })),
148
- ];
149
- for (const filePath of walked) {
150
- throwIfAborted(options.abortSignal, "harmonic retrieval aborted");
151
- if (!wanted.has(path.basename(filePath, ".md"))) continue;
152
- const memory = await readMemoryFile(storage, null, filePath, options.abortSignal);
153
- if (memory && wanted.has(memory.frontmatter.id)) sourceMemories.set(memory.frontmatter.id, memory);
154
- }
155
- if (absentSourceIds.size > ABSENT_SOURCE_MAX_ENTRIES) absentSourceIds.clear();
156
- for (const id of pending) {
157
- if (!sourceMemories.has(id)) absentSourceIds.set(`${options.memoryDir}\0${id}`, options.nowMs + ABSENT_SOURCE_TTL_MS);
158
- }
102
+ const unresolved = await readUnresolvedHarmonicSources({
103
+ storage, rootReal, rebuiltAt: batch.rebuiltAt, sourceMemoryIds: pending,
104
+ nowMs: options.nowMs, abortSignal: options.abortSignal,
105
+ });
106
+ for (const [id, memory] of unresolved) sourceMemories.set(id, memory);
159
107
  return sourceMemories;
160
108
  }
161
109
 
@@ -168,7 +116,7 @@ async function readCorpusSourceMemories(options: {
168
116
  const storage = new StorageManager(options.memoryDir);
169
117
  const [hotMemories, coldMemories] = await Promise.all([
170
118
  storage.readAllMemories({ abortSignal: options.abortSignal }),
171
- storage.readAllColdMemories(),
119
+ storage.readAllColdMemories({ abortSignal: options.abortSignal }),
172
120
  ]);
173
121
  for (const memory of [...hotMemories, ...coldMemories]) {
174
122
  throwIfAborted(options.abortSignal, "harmonic retrieval aborted");
@@ -0,0 +1,178 @@
1
+ import assert from "node:assert/strict";
2
+ import { execFile } from "node:child_process";
3
+ import { mkdir, mkdtemp, readFile, realpath, rm, writeFile } from "node:fs/promises";
4
+ import { tmpdir } from "node:os";
5
+ import path from "node:path";
6
+ import { promisify } from "node:util";
7
+ import test from "node:test";
8
+ import { recordAbstractionNode } from "./abstraction-nodes.js";
9
+ import { readProjectedHarmonicGraph } from "./harmonic-retrieval.js";
10
+ import { rebuildMemoryProjection } from "./maintenance/rebuild-memory-projection.js";
11
+ import { StorageManager } from "./storage.js";
12
+ import { readUnresolvedHarmonicSources } from "./harmonic-source-lookup.js";
13
+ import { bumpMemoryCorpusVersionForDir } from "./memory-corpus-version.js";
14
+
15
+ async function seed(memoryDir: string) {
16
+ const storage = new StorageManager(memoryDir);
17
+ await storage.ensureDirectories();
18
+ const real = await storage.writeMemory("fact", "real harmonic source", { source: "test" });
19
+ await recordAbstractionNode({ memoryDir, node: {
20
+ schemaVersion: 1, nodeId: "source-lookup", recordedAt: new Date().toISOString(),
21
+ sessionKey: "agent:test", kind: "topic", abstractionLevel: "meso",
22
+ title: "source lookup", summary: "source lookup",
23
+ sourceMemoryIds: [real.id, "missing-source", "hot-import", "cold/import"],
24
+ } });
25
+ await rebuildMemoryProjection({ memoryDir, storage, dryRun: false });
26
+ return { storage, real };
27
+ }
28
+
29
+ async function importFile(memoryDir: string, tier: string, name: string, id: string) {
30
+ const dir = path.join(memoryDir, tier, "facts", "2000-01-01");
31
+ await mkdir(dir, { recursive: true });
32
+ await writeFile(path.join(dir, name),
33
+ `---\nid: ${id}\ncategory: fact\ncreated: 2000-01-01T00:00:00.000Z\nupdated: 2000-01-01T00:00:00.000Z\nsource: test\nconfidence: 0.8\nconfidenceTier: implied\ntags: []\n---\n\nImported ${id} body.\n`);
34
+ }
35
+
36
+ test("old-dated imports with non-id filenames resolve in both tiers without a corpus parse (#3188)", async (t) => {
37
+ const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-lookup-"));
38
+ try {
39
+ const { real } = await seed(memoryDir);
40
+ await importFile(memoryDir, "", "unrelated-hot-name.md", "hot-import");
41
+ await importFile(memoryDir, "cold", "unrelated-cold-name.md", "cold/import");
42
+ let scans = 0;
43
+ t.mock.method(StorageManager.prototype, "readAllMemories", async () => { scans += 1; return []; });
44
+ const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
45
+ assert.deepEqual(graph.nodes[0]?.sourceMemoryIds?.slice().sort(), [real.id, "hot-import", "cold/import"].sort());
46
+ assert.equal(scans, 0, "unprojected legacy ids must not force the full frontmatter corpus scan");
47
+ } finally {
48
+ t.mock.restoreAll();
49
+ await rm(memoryDir, { recursive: true, force: true });
50
+ }
51
+ });
52
+
53
+ test("confirmed missing sources survive a fresh process without another path walk (#3188)", async () => {
54
+ const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-durable-"));
55
+ try {
56
+ const { real } = await seed(memoryDir);
57
+ const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
58
+ assert.deepEqual(graph.nodes[0]?.sourceMemoryIds, [real.id]);
59
+ const script = `
60
+ import { StorageManager } from ${JSON.stringify(new URL("./storage.ts", import.meta.url).href)};
61
+ import { readProjectedHarmonicGraph } from ${JSON.stringify(new URL("./harmonic-retrieval.ts", import.meta.url).href)};
62
+ StorageManager.prototype.collectActiveMemoryPaths = async () => { throw new Error("unexpected hot walk after restart"); };
63
+ StorageManager.prototype.collectColdMemoryPaths = async () => { throw new Error("unexpected cold walk after restart"); };
64
+ StorageManager.prototype.readAllMemories = async () => { throw new Error("unexpected corpus scan after restart"); };
65
+ const graph = await readProjectedHarmonicGraph({ memoryDir: ${JSON.stringify(memoryDir)}, anchorsEnabled: false });
66
+ if (graph.nodes[0]?.sourceMemoryIds?.join() !== ${JSON.stringify(real.id)}) throw new Error("source lost after restart");
67
+ `;
68
+ await promisify(execFile)(process.execPath, ["--import", "tsx", "--input-type=module", "-e", script]);
69
+ } finally {
70
+ await rm(memoryDir, { recursive: true, force: true });
71
+ }
72
+ });
73
+
74
+ for (const invalidation of ["ttl", "rebuiltAt", "corpusVersion"]) {
75
+ test(`durable misses invalidate on ${invalidation} without losing an imported source (#3188)`, async () => {
76
+ const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-epoch-"));
77
+ try {
78
+ const { storage } = await seed(memoryDir);
79
+ const nowMs = Date.now();
80
+ const options = {
81
+ storage, rootReal: await realpath(memoryDir), rebuiltAt: new Date(nowMs).toISOString(),
82
+ nowMs, sourceMemoryIds: ["restored-id"],
83
+ };
84
+ assert.equal((await readUnresolvedHarmonicSources(options)).size, 0);
85
+ await importFile(memoryDir, "", "not-the-source-id.md", "restored-id");
86
+ assert.equal((await readUnresolvedHarmonicSources(options)).size, 0, "the existing ten-minute miss window is preserved");
87
+ if (invalidation === "ttl") options.nowMs += 10 * 60_000;
88
+ if (invalidation === "rebuiltAt") options.rebuiltAt = new Date(nowMs + 1).toISOString();
89
+ if (invalidation === "corpusVersion") bumpMemoryCorpusVersionForDir(memoryDir);
90
+ const restored = await readUnresolvedHarmonicSources(options);
91
+ assert.equal(restored.get("restored-id")?.content.trim(), "Imported restored-id body.");
92
+ } finally {
93
+ await rm(memoryDir, { recursive: true, force: true });
94
+ }
95
+ });
96
+ }
97
+
98
+ test("harmonic cold walk receives cancellation and cannot publish a partial absence cache (#3188)", async (t) => {
99
+ const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-cancel-"));
100
+ try {
101
+ await seed(memoryDir);
102
+ await importFile(memoryDir, "cold", "cold-import.md", "cold/import");
103
+ const controller = new AbortController();
104
+ const original = StorageManager.prototype.collectColdMemoryPaths;
105
+ t.mock.method(StorageManager.prototype, "collectColdMemoryPaths", function (
106
+ this: StorageManager, options?: Parameters<StorageManager["collectColdMemoryPaths"]>[0],
107
+ ) {
108
+ assert.equal(options?.abortSignal, controller.signal);
109
+ controller.abort();
110
+ return original.call(this, options);
111
+ });
112
+ await assert.rejects(
113
+ () => readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false, abortSignal: controller.signal }),
114
+ { name: "AbortError" },
115
+ );
116
+ await assert.rejects(() => readFile(path.join(memoryDir, "state/harmonic-source-paths.json")), { code: "ENOENT" });
117
+ t.mock.restoreAll();
118
+ const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
119
+ assert.equal(graph.nodes[0]?.sourceMemoryIds?.includes("cold/import"), true);
120
+ } finally {
121
+ t.mock.restoreAll();
122
+ await rm(memoryDir, { recursive: true, force: true });
123
+ }
124
+ });
125
+
126
+ test("an unreadable/unwritable path cache never suppresses an imported source (#3188)", async () => {
127
+ const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-cache-errors-"));
128
+ try {
129
+ await seed(memoryDir);
130
+ await importFile(memoryDir, "", "not-id.md", "hot-import");
131
+ const cachePath = path.join(memoryDir, "state/harmonic-source-paths.json");
132
+ await mkdir(cachePath);
133
+ const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
134
+ assert.equal(graph.nodes[0]?.sourceMemoryIds?.includes("hot-import"), true);
135
+ await rm(cachePath, { recursive: true });
136
+ await writeFile(cachePath, "{broken");
137
+ const recovered = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
138
+ assert.equal(recovered.nodes[0]?.sourceMemoryIds?.includes("hot-import"), true);
139
+ } finally {
140
+ await rm(memoryDir, { recursive: true, force: true });
141
+ }
142
+ });
143
+
144
+ test("an unresolved opaque id keeps the old scan candidate set for an edited projected file (#3188)", async () => {
145
+ const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-opaque-"));
146
+ try {
147
+ const { storage, real } = await seed(memoryDir);
148
+ const memory = await storage.getMemoryById(real.id);
149
+ assert.ok(memory);
150
+ await writeFile(memory.path,
151
+ `---\nid: cold/import\ncategory: fact\ncreated: 2000-01-01T00:00:00.000Z\nupdated: 2000-01-01T00:00:00.000Z\nsource: test\nconfidence: 0.8\nconfidenceTier: implied\ntags: []\n---\n\nEdited projected legacy source.\n`);
152
+ const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
153
+ assert.deepEqual(graph.nodes[0]?.sourceMemoryIds, ["cold/import"]);
154
+ assert.equal(graph.nodes[0]?.summary, "Edited projected legacy source.");
155
+ } finally {
156
+ await rm(memoryDir, { recursive: true, force: true });
157
+ }
158
+ });
159
+
160
+ test("cached import paths reread source status without another walk (#3188)", async (t) => {
161
+ const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-fresh-status-"));
162
+ try {
163
+ const { real } = await seed(memoryDir);
164
+ await importFile(memoryDir, "", "not-id.md", "hot-import");
165
+ const first = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
166
+ assert.equal(first.nodes[0]?.sourceMemoryIds?.includes("hot-import"), true);
167
+ const filePath = path.join(memoryDir, "facts/2000-01-01/not-id.md");
168
+ await writeFile(filePath, (await readFile(filePath, "utf8")).replace("category: fact", "category: fact\nstatus: quarantined"));
169
+ t.mock.method(StorageManager.prototype, "collectActiveMemoryPaths", async () => { throw new Error("unexpected hot walk"); });
170
+ t.mock.method(StorageManager.prototype, "collectColdMemoryPaths", async () => { throw new Error("unexpected cold walk"); });
171
+ t.mock.method(StorageManager.prototype, "readAllMemories", async () => { throw new Error("unexpected corpus parse"); });
172
+ const second = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
173
+ assert.deepEqual(second.nodes[0]?.sourceMemoryIds, [real.id]);
174
+ } finally {
175
+ t.mock.restoreAll();
176
+ await rm(memoryDir, { recursive: true, force: true });
177
+ }
178
+ });