@remnic/core 10.0.50 → 10.0.52

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 (272) hide show
  1. package/dist/access-admin-ops-surface.js +22 -22
  2. package/dist/access-authorization-probe.js +23 -23
  3. package/dist/access-boundary.d.ts +6 -1
  4. package/dist/access-boundary.d.ts.map +1 -1
  5. package/dist/access-boundary.js +22 -22
  6. package/dist/access-cli.js +68 -68
  7. package/dist/access-errors.d.ts.map +1 -1
  8. package/dist/access-errors.js +1 -1
  9. package/dist/access-extraction-force-flush.js +22 -22
  10. package/dist/access-http-briefing.js +23 -23
  11. package/dist/access-http-query.js +24 -24
  12. package/dist/access-http.js +42 -42
  13. package/dist/access-identity-continuity-surface.js +22 -22
  14. package/dist/access-lcm-surface.js +22 -22
  15. package/dist/access-mcp.js +32 -32
  16. package/dist/access-memory-search-fanout.js +2 -2
  17. package/dist/access-namespace-preflight.js +22 -22
  18. package/dist/access-observe-write-category.js +2 -2
  19. package/dist/access-observe-write-surface.js +22 -22
  20. package/dist/access-offline-manifest.js +2 -2
  21. package/dist/access-operations-batch.js +23 -23
  22. package/dist/access-operations.js +30 -30
  23. package/dist/access-recall-concurrency.js +22 -22
  24. package/dist/access-recall-diagnostics.js +2 -2
  25. package/dist/access-recall-response.js +22 -22
  26. package/dist/access-recall-surface.js +22 -22
  27. package/dist/access-schema.d.ts +245 -773
  28. package/dist/access-schema.d.ts.map +1 -1
  29. package/dist/access-schema.js +1 -1
  30. package/dist/access-service.js +22 -22
  31. package/dist/access-surface-catalog.js +24 -24
  32. package/dist/access-token-capabilities.js +2 -2
  33. package/dist/active-recall.js +5 -5
  34. package/dist/briefing.js +3 -3
  35. package/dist/causal-consolidation.js +4 -4
  36. package/dist/{chunk-7YVER7ZO.js → chunk-2EXF6IIB.js} +2 -2
  37. package/dist/{chunk-HPNXS6W6.js → chunk-2ONKXEC7.js} +3 -3
  38. package/dist/{chunk-DMKTOCC7.js → chunk-2S6JADBB.js} +2 -2
  39. package/dist/{chunk-ZSEFGDCI.js → chunk-2TGIKMMZ.js} +2 -2
  40. package/dist/{chunk-Q3PNQYAC.js → chunk-44EUCSG4.js} +2 -2
  41. package/dist/{chunk-PJCVI44H.js → chunk-4FM35YIA.js} +3 -3
  42. package/dist/{chunk-M6TP6UYD.js → chunk-6ZAU7LAR.js} +2 -2
  43. package/dist/{chunk-SJTSWG2Z.js → chunk-72CBJ5VP.js} +3 -3
  44. package/dist/{chunk-EKYWZYZJ.js → chunk-75BK4XGV.js} +17 -17
  45. package/dist/{chunk-HKOMHP6D.js → chunk-A6JDT6QF.js} +2 -2
  46. package/dist/{chunk-TFWJXWL6.js → chunk-AHGOOZUC.js} +2 -2
  47. package/dist/{chunk-A7AISUJI.js → chunk-AJG2TAMR.js} +2 -2
  48. package/dist/{chunk-VCOMACR6.js → chunk-AZLD4CKG.js} +19 -19
  49. package/dist/{chunk-GXVXBYRA.js → chunk-B35EQQ7L.js} +3 -3
  50. package/dist/{chunk-E6UNM67F.js → chunk-B6SPPYGJ.js} +2 -2
  51. package/dist/{chunk-TXKQBQYW.js → chunk-CK6GCGMX.js} +3 -3
  52. package/dist/{chunk-NPLM7AFU.js → chunk-DF6ZF2BN.js} +3 -3
  53. package/dist/{chunk-6ZQX3R66.js → chunk-DJFULNXK.js} +4 -4
  54. package/dist/{chunk-JBWD3J5U.js → chunk-DQOGZZJA.js} +3 -3
  55. package/dist/{chunk-K5QQXVG6.js → chunk-EC2KVA27.js} +7 -7
  56. package/dist/{chunk-N74WJ7B2.js → chunk-EZS6QJNC.js} +2 -2
  57. package/dist/{chunk-MWURUSRE.js → chunk-FNNGWN3O.js} +2 -2
  58. package/dist/{chunk-5FUDSK6Z.js → chunk-FT75AQ74.js} +3 -3
  59. package/dist/{chunk-ZMO2S5RT.js → chunk-G6A3SGCE.js} +3 -3
  60. package/dist/chunk-G6A3SGCE.js.map +1 -0
  61. package/dist/{chunk-IMKOJVD4.js → chunk-GBGU5OZP.js} +52 -51
  62. package/dist/chunk-GBGU5OZP.js.map +1 -0
  63. package/dist/{chunk-5X2H3X4J.js → chunk-GE3ZX6YK.js} +2 -2
  64. package/dist/{chunk-UNOAVHV4.js → chunk-HCIRR3BA.js} +3 -3
  65. package/dist/{chunk-MLNXATFG.js → chunk-HEF4BRMT.js} +3 -3
  66. package/dist/{chunk-Z5277JWF.js → chunk-HQUYENKK.js} +7 -10
  67. package/dist/chunk-HQUYENKK.js.map +1 -0
  68. package/dist/{chunk-6UDLN4IA.js → chunk-I6ORDT54.js} +2 -2
  69. package/dist/{chunk-M4HRYLOA.js → chunk-IUQXRRJB.js} +3 -3
  70. package/dist/{chunk-GQIYL7OD.js → chunk-JIJAWTRK.js} +3 -3
  71. package/dist/{chunk-4KS4IHKH.js → chunk-JX3E4XCW.js} +2 -2
  72. package/dist/{chunk-ZFNXJEUG.js → chunk-KAJYSO3U.js} +2 -2
  73. package/dist/{chunk-QS765SBL.js → chunk-KETS5A62.js} +2 -2
  74. package/dist/{chunk-N7FNCE7F.js → chunk-KIWO4327.js} +2 -2
  75. package/dist/{chunk-FC3ZFEXF.js → chunk-KJ3MDX4V.js} +2 -2
  76. package/dist/{chunk-BNJAVRNJ.js → chunk-L3EFYRYK.js} +8 -8
  77. package/dist/{chunk-3MUKQQ7A.js → chunk-LGEH473S.js} +24 -29
  78. package/dist/chunk-LGEH473S.js.map +1 -0
  79. package/dist/{chunk-P7OVFGMU.js → chunk-LMB47UM6.js} +2 -2
  80. package/dist/{chunk-7SAE6T36.js → chunk-LWMLBVGB.js} +2 -2
  81. package/dist/{chunk-ZNRTHYYW.js → chunk-MC7PXJDP.js} +7 -7
  82. package/dist/{chunk-M2DOJBH7.js → chunk-MUNYUSBU.js} +2 -2
  83. package/dist/{chunk-LMMBV7QC.js → chunk-OCRLJJOV.js} +4 -4
  84. package/dist/{chunk-7J6A5MV2.js → chunk-ON77FQXH.js} +2 -2
  85. package/dist/{chunk-WV4UYDP6.js → chunk-POJRFSJM.js} +3 -3
  86. package/dist/{chunk-LKRXGOQW.js → chunk-QA3Y2O6H.js} +2 -2
  87. package/dist/{chunk-23ZLN5X6.js → chunk-QT5MGENX.js} +14 -6
  88. package/dist/chunk-QT5MGENX.js.map +1 -0
  89. package/dist/{chunk-YECEEJUU.js → chunk-RA7YRL6H.js} +2 -2
  90. package/dist/{chunk-UALXWWGN.js → chunk-RJDYDF5K.js} +4 -4
  91. package/dist/{chunk-WXJC2L66.js → chunk-ROAKLYOL.js} +2 -2
  92. package/dist/{chunk-NWIT3U2N.js → chunk-S5CQI2KF.js} +2 -2
  93. package/dist/{chunk-P6P35FY4.js → chunk-SDESKFKT.js} +2 -2
  94. package/dist/{chunk-UXGXJUZ5.js → chunk-SFRBUBUZ.js} +7 -7
  95. package/dist/{chunk-CRN3EPE2.js → chunk-SHNM7RIT.js} +3 -3
  96. package/dist/{chunk-XC3H7KON.js → chunk-SPTPBKZX.js} +2 -2
  97. package/dist/{chunk-IUYXCTA7.js → chunk-TC55M5PO.js} +2 -2
  98. package/dist/{chunk-EWBXMGXR.js → chunk-UCLJTGP3.js} +2 -2
  99. package/dist/{chunk-UZVQFGAY.js → chunk-UM3ZLT2X.js} +206 -165
  100. package/dist/chunk-UM3ZLT2X.js.map +1 -0
  101. package/dist/{chunk-754XN6LX.js → chunk-V27FK6D6.js} +2 -2
  102. package/dist/{chunk-LIBVANOF.js → chunk-V6Z4NAJZ.js} +2 -2
  103. package/dist/{chunk-XTXWR6KQ.js → chunk-VUMWVYMR.js} +7 -7
  104. package/dist/{chunk-ZSMA67FV.js → chunk-WY66J4PI.js} +2 -2
  105. package/dist/{chunk-5G53JSRO.js → chunk-XWJUFER3.js} +3 -3
  106. package/dist/{chunk-NSP5PIQH.js → chunk-Y3T5KQCR.js} +2 -2
  107. package/dist/{chunk-QTDZ2NYC.js → chunk-Y77FXULH.js} +2 -2
  108. package/dist/{chunk-IG747LRN.js → chunk-YO2JEX2Z.js} +2 -2
  109. package/dist/{chunk-KW5YZELC.js → chunk-ZKK3VMWU.js} +2 -2
  110. package/dist/cli.js +55 -55
  111. package/dist/coding/export-okf-codegraph.js +2 -2
  112. package/dist/compounding/engine.js +4 -4
  113. package/dist/config.js +5 -5
  114. package/dist/connectors/codex-materialize-runner.js +3 -3
  115. package/dist/connectors/index.js +7 -7
  116. package/dist/convergence-refresh.js +5 -5
  117. package/dist/corpus-watermark.js +7 -7
  118. package/dist/deep-recall-config.js +2 -2
  119. package/dist/deep-recall-http-glue.js +4 -4
  120. package/dist/{entity-canonical-id-migration-ZBNRGUNV.js → entity-canonical-id-migration-F3JVG6K6.js} +2 -2
  121. package/dist/entity-retrieval.js +3 -3
  122. package/dist/external-wiki-access.js +23 -23
  123. package/dist/extraction-span-wire.d.ts.map +1 -1
  124. package/dist/extraction-span-wire.js +1 -1
  125. package/dist/extraction.js +11 -11
  126. package/dist/harmonic-retrieval.js +3 -3
  127. package/dist/index.js +68 -68
  128. package/dist/location/index.js +6 -6
  129. package/dist/maintenance/memory-governance.js +3 -3
  130. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
  131. package/dist/maintenance/rebuild-memory-projection-runner.js +5 -5
  132. package/dist/maintenance/rebuild-memory-projection.js +4 -4
  133. package/dist/memory-browse-http-glue.js +2 -2
  134. package/dist/memory-browse-operations.js +23 -23
  135. package/dist/namespaces/migrate.js +4 -4
  136. package/dist/namespaces/storage.js +3 -3
  137. package/dist/offline-sync-impression-drain.js +2 -2
  138. package/dist/operator-doctor-corpus.js +10 -10
  139. package/dist/operator-doctor-replica.js +4 -4
  140. package/dist/operator-toolkit.js +17 -17
  141. package/dist/orchestration/extraction-persist-deps.d.ts +2 -0
  142. package/dist/orchestration/extraction-persist-deps.d.ts.map +1 -1
  143. package/dist/orchestration/extraction-persist-promotion.d.ts +40 -10
  144. package/dist/orchestration/extraction-persist-promotion.d.ts.map +1 -1
  145. package/dist/orchestration/extraction-persist.d.ts.map +1 -1
  146. package/dist/orchestration/maintenance.js +15 -15
  147. package/dist/orchestrator.d.ts.map +1 -1
  148. package/dist/orchestrator.js +68 -68
  149. package/dist/recall-navigation-http-glue.js +2 -2
  150. package/dist/recall-navigation-operations.js +23 -23
  151. package/dist/recall-navigation.js +22 -22
  152. package/dist/relay/mission.d.ts +731 -3403
  153. package/dist/relay/mission.d.ts.map +1 -1
  154. package/dist/replica-divergence.js +3 -3
  155. package/dist/resume-bundles.js +6 -6
  156. package/dist/schemas.d.ts +346 -1771
  157. package/dist/schemas.d.ts.map +1 -1
  158. package/dist/semantic-consolidation.js +4 -4
  159. package/dist/semantic-rule-promotion.js +3 -3
  160. package/dist/semantic-rule-verifier.js +3 -3
  161. package/dist/shared-context/manager.d.ts +13 -33
  162. package/dist/shared-context/manager.d.ts.map +1 -1
  163. package/dist/source-agent-qualifier.js +9 -9
  164. package/dist/standup/build.js +4 -4
  165. package/dist/storage.js +2 -2
  166. package/dist/support-passport/access-operations.d.ts +51 -51
  167. package/dist/support-passport/contracts.d.ts +85 -126
  168. package/dist/support-passport/contracts.d.ts.map +1 -1
  169. package/dist/support-passport/generated-batch.d.ts +3 -17
  170. package/dist/support-passport/generated-batch.d.ts.map +1 -1
  171. package/dist/support-passport/grant-contracts.d.ts +75 -381
  172. package/dist/support-passport/grant-contracts.d.ts.map +1 -1
  173. package/dist/support-passport/index.js +25 -25
  174. package/dist/support-passport/model-audit.d.ts +17 -82
  175. package/dist/support-passport/model-audit.d.ts.map +1 -1
  176. package/dist/support-passport/model-bridge.d.ts +12 -51
  177. package/dist/support-passport/model-bridge.d.ts.map +1 -1
  178. package/dist/support-passport/model-contracts.d.ts +53 -192
  179. package/dist/support-passport/model-contracts.d.ts.map +1 -1
  180. package/dist/tokens.js +3 -3
  181. package/dist/transfer/export-okf.js +3 -3
  182. package/dist/transfer/types.d.ts +32 -737
  183. package/dist/transfer/types.d.ts.map +1 -1
  184. package/dist/verified-recall.js +3 -3
  185. package/dist/who-knows-cli.js +5 -5
  186. package/dist/who-knows.js +4 -4
  187. package/package.json +3 -4
  188. package/src/access-boundary.test.ts +14 -0
  189. package/src/access-boundary.ts +48 -42
  190. package/src/access-category-alias.test.ts +9 -7
  191. package/src/access-errors.test.ts +21 -9
  192. package/src/access-errors.ts +45 -31
  193. package/src/access-http.test.ts +1 -1
  194. package/src/access-schema.ts +13 -17
  195. package/src/extraction-scope-source-agent.test.ts +6 -6
  196. package/src/extraction-span-wire.test.ts +28 -0
  197. package/src/extraction-span-wire.ts +34 -6
  198. package/src/orchestration/extraction-persist-deps.ts +3 -0
  199. package/src/orchestration/extraction-persist-promotion.ts +104 -16
  200. package/src/orchestration/extraction-persist.ts +66 -77
  201. package/src/orchestrator-entity-write-failure.test.ts +370 -0
  202. package/src/orchestrator.ts +1 -0
  203. package/src/storage/entity-canonical-id-migration.ts +2 -2
  204. package/dist/chunk-23ZLN5X6.js.map +0 -1
  205. package/dist/chunk-3MUKQQ7A.js.map +0 -1
  206. package/dist/chunk-IMKOJVD4.js.map +0 -1
  207. package/dist/chunk-UZVQFGAY.js.map +0 -1
  208. package/dist/chunk-Z5277JWF.js.map +0 -1
  209. package/dist/chunk-ZMO2S5RT.js.map +0 -1
  210. /package/dist/{chunk-7YVER7ZO.js.map → chunk-2EXF6IIB.js.map} +0 -0
  211. /package/dist/{chunk-HPNXS6W6.js.map → chunk-2ONKXEC7.js.map} +0 -0
  212. /package/dist/{chunk-DMKTOCC7.js.map → chunk-2S6JADBB.js.map} +0 -0
  213. /package/dist/{chunk-ZSEFGDCI.js.map → chunk-2TGIKMMZ.js.map} +0 -0
  214. /package/dist/{chunk-Q3PNQYAC.js.map → chunk-44EUCSG4.js.map} +0 -0
  215. /package/dist/{chunk-PJCVI44H.js.map → chunk-4FM35YIA.js.map} +0 -0
  216. /package/dist/{chunk-M6TP6UYD.js.map → chunk-6ZAU7LAR.js.map} +0 -0
  217. /package/dist/{chunk-SJTSWG2Z.js.map → chunk-72CBJ5VP.js.map} +0 -0
  218. /package/dist/{chunk-EKYWZYZJ.js.map → chunk-75BK4XGV.js.map} +0 -0
  219. /package/dist/{chunk-HKOMHP6D.js.map → chunk-A6JDT6QF.js.map} +0 -0
  220. /package/dist/{chunk-TFWJXWL6.js.map → chunk-AHGOOZUC.js.map} +0 -0
  221. /package/dist/{chunk-A7AISUJI.js.map → chunk-AJG2TAMR.js.map} +0 -0
  222. /package/dist/{chunk-VCOMACR6.js.map → chunk-AZLD4CKG.js.map} +0 -0
  223. /package/dist/{chunk-GXVXBYRA.js.map → chunk-B35EQQ7L.js.map} +0 -0
  224. /package/dist/{chunk-E6UNM67F.js.map → chunk-B6SPPYGJ.js.map} +0 -0
  225. /package/dist/{chunk-TXKQBQYW.js.map → chunk-CK6GCGMX.js.map} +0 -0
  226. /package/dist/{chunk-NPLM7AFU.js.map → chunk-DF6ZF2BN.js.map} +0 -0
  227. /package/dist/{chunk-6ZQX3R66.js.map → chunk-DJFULNXK.js.map} +0 -0
  228. /package/dist/{chunk-JBWD3J5U.js.map → chunk-DQOGZZJA.js.map} +0 -0
  229. /package/dist/{chunk-K5QQXVG6.js.map → chunk-EC2KVA27.js.map} +0 -0
  230. /package/dist/{chunk-N74WJ7B2.js.map → chunk-EZS6QJNC.js.map} +0 -0
  231. /package/dist/{chunk-MWURUSRE.js.map → chunk-FNNGWN3O.js.map} +0 -0
  232. /package/dist/{chunk-5FUDSK6Z.js.map → chunk-FT75AQ74.js.map} +0 -0
  233. /package/dist/{chunk-5X2H3X4J.js.map → chunk-GE3ZX6YK.js.map} +0 -0
  234. /package/dist/{chunk-UNOAVHV4.js.map → chunk-HCIRR3BA.js.map} +0 -0
  235. /package/dist/{chunk-MLNXATFG.js.map → chunk-HEF4BRMT.js.map} +0 -0
  236. /package/dist/{chunk-6UDLN4IA.js.map → chunk-I6ORDT54.js.map} +0 -0
  237. /package/dist/{chunk-M4HRYLOA.js.map → chunk-IUQXRRJB.js.map} +0 -0
  238. /package/dist/{chunk-GQIYL7OD.js.map → chunk-JIJAWTRK.js.map} +0 -0
  239. /package/dist/{chunk-4KS4IHKH.js.map → chunk-JX3E4XCW.js.map} +0 -0
  240. /package/dist/{chunk-ZFNXJEUG.js.map → chunk-KAJYSO3U.js.map} +0 -0
  241. /package/dist/{chunk-QS765SBL.js.map → chunk-KETS5A62.js.map} +0 -0
  242. /package/dist/{chunk-N7FNCE7F.js.map → chunk-KIWO4327.js.map} +0 -0
  243. /package/dist/{chunk-FC3ZFEXF.js.map → chunk-KJ3MDX4V.js.map} +0 -0
  244. /package/dist/{chunk-BNJAVRNJ.js.map → chunk-L3EFYRYK.js.map} +0 -0
  245. /package/dist/{chunk-P7OVFGMU.js.map → chunk-LMB47UM6.js.map} +0 -0
  246. /package/dist/{chunk-7SAE6T36.js.map → chunk-LWMLBVGB.js.map} +0 -0
  247. /package/dist/{chunk-ZNRTHYYW.js.map → chunk-MC7PXJDP.js.map} +0 -0
  248. /package/dist/{chunk-M2DOJBH7.js.map → chunk-MUNYUSBU.js.map} +0 -0
  249. /package/dist/{chunk-LMMBV7QC.js.map → chunk-OCRLJJOV.js.map} +0 -0
  250. /package/dist/{chunk-7J6A5MV2.js.map → chunk-ON77FQXH.js.map} +0 -0
  251. /package/dist/{chunk-WV4UYDP6.js.map → chunk-POJRFSJM.js.map} +0 -0
  252. /package/dist/{chunk-LKRXGOQW.js.map → chunk-QA3Y2O6H.js.map} +0 -0
  253. /package/dist/{chunk-YECEEJUU.js.map → chunk-RA7YRL6H.js.map} +0 -0
  254. /package/dist/{chunk-UALXWWGN.js.map → chunk-RJDYDF5K.js.map} +0 -0
  255. /package/dist/{chunk-WXJC2L66.js.map → chunk-ROAKLYOL.js.map} +0 -0
  256. /package/dist/{chunk-NWIT3U2N.js.map → chunk-S5CQI2KF.js.map} +0 -0
  257. /package/dist/{chunk-P6P35FY4.js.map → chunk-SDESKFKT.js.map} +0 -0
  258. /package/dist/{chunk-UXGXJUZ5.js.map → chunk-SFRBUBUZ.js.map} +0 -0
  259. /package/dist/{chunk-CRN3EPE2.js.map → chunk-SHNM7RIT.js.map} +0 -0
  260. /package/dist/{chunk-XC3H7KON.js.map → chunk-SPTPBKZX.js.map} +0 -0
  261. /package/dist/{chunk-IUYXCTA7.js.map → chunk-TC55M5PO.js.map} +0 -0
  262. /package/dist/{chunk-EWBXMGXR.js.map → chunk-UCLJTGP3.js.map} +0 -0
  263. /package/dist/{chunk-754XN6LX.js.map → chunk-V27FK6D6.js.map} +0 -0
  264. /package/dist/{chunk-LIBVANOF.js.map → chunk-V6Z4NAJZ.js.map} +0 -0
  265. /package/dist/{chunk-XTXWR6KQ.js.map → chunk-VUMWVYMR.js.map} +0 -0
  266. /package/dist/{chunk-ZSMA67FV.js.map → chunk-WY66J4PI.js.map} +0 -0
  267. /package/dist/{chunk-5G53JSRO.js.map → chunk-XWJUFER3.js.map} +0 -0
  268. /package/dist/{chunk-NSP5PIQH.js.map → chunk-Y3T5KQCR.js.map} +0 -0
  269. /package/dist/{chunk-QTDZ2NYC.js.map → chunk-Y77FXULH.js.map} +0 -0
  270. /package/dist/{chunk-IG747LRN.js.map → chunk-YO2JEX2Z.js.map} +0 -0
  271. /package/dist/{chunk-KW5YZELC.js.map → chunk-ZKK3VMWU.js.map} +0 -0
  272. /package/dist/{entity-canonical-id-migration-ZBNRGUNV.js.map → entity-canonical-id-migration-F3JVG6K6.js.map} +0 -0
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  ActivityStore,
15
15
  MaintenanceScheduler
16
- } from "./chunk-K5QQXVG6.js";
16
+ } from "./chunk-EC2KVA27.js";
17
17
  import {
18
18
  runPeerProfileReasoner
19
19
  } from "./chunk-I74SUMNI.js";
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  CompoundingEngine,
34
34
  defaultTierMigrationCycleBudget
35
- } from "./chunk-GXVXBYRA.js";
35
+ } from "./chunk-B35EQQ7L.js";
36
36
  import {
37
37
  SharedContextManager
38
38
  } from "./chunk-5KBIOI4G.js";
@@ -169,7 +169,7 @@ import {
169
169
  } from "./chunk-XXSOVESA.js";
170
170
  import {
171
171
  ExtractionEngine
172
- } from "./chunk-TXKQBQYW.js";
172
+ } from "./chunk-CK6GCGMX.js";
173
173
  import {
174
174
  buildFocusedListRecallSection,
175
175
  shouldRecallFocusedListEvidence
@@ -213,7 +213,7 @@ import {
213
213
  buildEntityRecallSection,
214
214
  entityRecentTranscriptLookbackHours,
215
215
  readRecentEntityTranscriptEntries
216
- } from "./chunk-MWURUSRE.js";
216
+ } from "./chunk-FNNGWN3O.js";
217
217
  import {
218
218
  EmbeddingFallback
219
219
  } from "./chunk-GFAEKSFR.js";
@@ -225,7 +225,7 @@ import {
225
225
  } from "./chunk-7G5NTS7F.js";
226
226
  import {
227
227
  refreshConvergedNamespaces
228
- } from "./chunk-Q3PNQYAC.js";
228
+ } from "./chunk-44EUCSG4.js";
229
229
  import {
230
230
  builtInConnectorPackageSpecifier,
231
231
  ensureBuiltInWearableConnectors,
@@ -234,7 +234,7 @@ import {
234
234
  runTimelinePublishCli,
235
235
  screenCandidateFact,
236
236
  summarizeVaultPublish
237
- } from "./chunk-VCOMACR6.js";
237
+ } from "./chunk-AZLD4CKG.js";
238
238
  import {
239
239
  RoutingRulesStore
240
240
  } from "./chunk-TBUEE7XF.js";
@@ -244,14 +244,14 @@ import {
244
244
  import {
245
245
  compareVerifiedEpisodeResults,
246
246
  searchVerifiedEpisodes
247
- } from "./chunk-WXJC2L66.js";
247
+ } from "./chunk-ROAKLYOL.js";
248
248
  import {
249
249
  ThreadingManager
250
250
  } from "./chunk-R7WYAXPO.js";
251
251
  import {
252
252
  compareVerifiedSemanticRuleResults,
253
253
  searchVerifiedSemanticRules
254
- } from "./chunk-XC3H7KON.js";
254
+ } from "./chunk-SPTPBKZX.js";
255
255
  import {
256
256
  searchWorkProductLedgerEntries
257
257
  } from "./chunk-B2NXOVZN.js";
@@ -264,10 +264,10 @@ import {
264
264
  import {
265
265
  runNamespaceMaintenanceFanout,
266
266
  summarizeNamespaceMaintenanceHealth
267
- } from "./chunk-BNJAVRNJ.js";
267
+ } from "./chunk-L3EFYRYK.js";
268
268
  import {
269
269
  planNamespaceMaintenance
270
- } from "./chunk-SJTSWG2Z.js";
270
+ } from "./chunk-72CBJ5VP.js";
271
271
  import {
272
272
  isAboveImportanceThreshold,
273
273
  scoreImportance
@@ -296,7 +296,7 @@ import {
296
296
  materializeAfterSemanticConsolidation,
297
297
  parseConsolidationResponse,
298
298
  parseOperatorAwareConsolidationResponse
299
- } from "./chunk-P7OVFGMU.js";
299
+ } from "./chunk-LMB47UM6.js";
300
300
  import {
301
301
  SmartBuffer
302
302
  } from "./chunk-IN6U2BS5.js";
@@ -335,7 +335,7 @@ import {
335
335
  embeddingsFromCosineHits,
336
336
  normalizeConnectorScope,
337
337
  runSeedGraduationPass
338
- } from "./chunk-QTDZ2NYC.js";
338
+ } from "./chunk-Y77FXULH.js";
339
339
  import {
340
340
  compileCorrectionRule,
341
341
  correctionsFilePath,
@@ -373,7 +373,7 @@ import {
373
373
  } from "./chunk-QW27DOHG.js";
374
374
  import {
375
375
  MeetingsInputError
376
- } from "./chunk-EKYWZYZJ.js";
376
+ } from "./chunk-75BK4XGV.js";
377
377
  import {
378
378
  WearablesInputError,
379
379
  describeErrorForOperator
@@ -391,7 +391,7 @@ import {
391
391
  } from "./chunk-AAANTXCQ.js";
392
392
  import {
393
393
  NamespaceCatalog
394
- } from "./chunk-KW5YZELC.js";
394
+ } from "./chunk-ZKK3VMWU.js";
395
395
  import {
396
396
  RecallResultFormatter,
397
397
  SessionContextCoordinator,
@@ -400,7 +400,7 @@ import {
400
400
  detectPassiveCorrections,
401
401
  renderSessionExperiencePreview,
402
402
  scoreSessionExperienceForPrompt
403
- } from "./chunk-IMKOJVD4.js";
403
+ } from "./chunk-GBGU5OZP.js";
404
404
  import {
405
405
  importCapsule
406
406
  } from "./chunk-A3UFV4K3.js";
@@ -443,7 +443,7 @@ import {
443
443
  } from "./chunk-5DVOBBTV.js";
444
444
  import {
445
445
  searchHarmonicRetrieval
446
- } from "./chunk-ZSMA67FV.js";
446
+ } from "./chunk-WY66J4PI.js";
447
447
  import {
448
448
  ProfilingCollector
449
449
  } from "./chunk-DOWACHYO.js";
@@ -469,7 +469,7 @@ import {
469
469
  } from "./chunk-LXATZLSC.js";
470
470
  import {
471
471
  NamespaceStorageRouter
472
- } from "./chunk-TFWJXWL6.js";
472
+ } from "./chunk-AHGOOZUC.js";
473
473
  import {
474
474
  GraphIndex
475
475
  } from "./chunk-KRAMCBIW.js";
@@ -537,7 +537,7 @@ import {
537
537
  } from "./chunk-74AY3S7U.js";
538
538
  import {
539
539
  buildChainFollowupGenerator
540
- } from "./chunk-HKOMHP6D.js";
540
+ } from "./chunk-A6JDT6QF.js";
541
541
  import {
542
542
  decideLifecycleTransition,
543
543
  resolveLifecycleState
@@ -582,7 +582,7 @@ import {
582
582
  reconstructFusionInputs,
583
583
  selfDeps,
584
584
  serializeFusionDay
585
- } from "./chunk-GQIYL7OD.js";
585
+ } from "./chunk-JIJAWTRK.js";
586
586
  import {
587
587
  bodyIsEscaped,
588
588
  decodeTranscriptBody,
@@ -5199,6 +5199,91 @@ async function readPromotionReceiptStatus(storage, filePath) {
5199
5199
  }
5200
5200
  }
5201
5201
 
5202
+ // src/orchestration/harmonic-construction-persist.ts
5203
+ function filterHarmonicEntityMentions(facts, entityMentions) {
5204
+ const identitiesBySegment = /* @__PURE__ */ new Map();
5205
+ for (const entity of entityMentions) {
5206
+ const segment = harmonicEntitySegment(entity.name);
5207
+ const identities = identitiesBySegment.get(segment) ?? /* @__PURE__ */ new Set();
5208
+ identities.add(normalizedHarmonicEntityIdentity(entity.name));
5209
+ identitiesBySegment.set(segment, identities);
5210
+ }
5211
+ return entityMentions.flatMap((entity) => {
5212
+ const allowSegmentFallback = identitiesBySegment.get(harmonicEntitySegment(entity.name))?.size === 1;
5213
+ const activeFacts = facts.filter(
5214
+ (fact) => typeof fact.entityRef === "string" && harmonicEntityReferenceMatches(fact.entityRef, entity.name, allowSegmentFallback)
5215
+ );
5216
+ return activeFacts.length > 0 ? [{ ...entity, facts: activeFacts.map((fact) => fact.content) }] : [];
5217
+ });
5218
+ }
5219
+ async function enqueueMergedTargetForHarmonicConstruction(entries, storage, fact, memoryId, content, insertedAt) {
5220
+ let committed = null;
5221
+ try {
5222
+ committed = await storage.getMemoryByIdIncludingArchived(memoryId);
5223
+ } catch {
5224
+ committed = null;
5225
+ }
5226
+ const derived = committed && committed.content === content ? {
5227
+ ...fact,
5228
+ category: committed.frontmatter.category,
5229
+ tags: [.../* @__PURE__ */ new Set([...committed.frontmatter.tags ?? [], ...fact.tags])],
5230
+ entityRef: committed.frontmatter.entityRef ?? fact.entityRef,
5231
+ validAt: committed.frontmatter.valid_at ?? fact.validAt
5232
+ } : fact;
5233
+ const entry = entries.get(storage.dir) ?? { storage, facts: [] };
5234
+ const prior = entry.facts.findIndex((existing) => existing.memoryId === memoryId);
5235
+ if (prior !== -1) {
5236
+ entry.facts[prior] = {
5237
+ ...derived,
5238
+ content,
5239
+ memoryId,
5240
+ insertedAt,
5241
+ cueAnchors: [
5242
+ ...entry.facts[prior].cueAnchors ?? [],
5243
+ ...derived.cueAnchors ?? []
5244
+ ]
5245
+ };
5246
+ } else {
5247
+ entry.facts.push({ ...derived, content, memoryId, insertedAt });
5248
+ }
5249
+ entries.set(storage.dir, entry);
5250
+ }
5251
+ async function persistConstructedHarmonicRecords(options) {
5252
+ const sessionKey = options.sessionKey?.trim();
5253
+ if (!sessionKey) {
5254
+ log.warn("harmonic construction skipped: extraction session key is missing");
5255
+ return;
5256
+ }
5257
+ const recordedAt = options.validAt && Number.isFinite(Date.parse(options.validAt)) ? new Date(options.validAt).toISOString() : (/* @__PURE__ */ new Date()).toISOString();
5258
+ const entries = [...options.entries];
5259
+ const sharedEpisodeTitle = entries.length === 1 ? options.episodeTitle : void 0;
5260
+ for (const entry of entries) {
5261
+ try {
5262
+ const records = deriveHarmonicRecords({
5263
+ sessionKey,
5264
+ recordedAt,
5265
+ episodeTitle: sharedEpisodeTitle,
5266
+ persistedFacts: entry.facts,
5267
+ entityMentions: filterHarmonicEntityMentions(entry.facts, options.entityMentions).map((entity) => ({
5268
+ name: entity.name,
5269
+ type: entity.type,
5270
+ facts: entity.facts
5271
+ }))
5272
+ });
5273
+ await persistHarmonicRecords({
5274
+ memoryDir: entry.storage.dir,
5275
+ abstractionNodeStoreDir: entry.storage.dir === options.baseStorageDir ? options.abstractionNodeStoreDir : void 0,
5276
+ nodes: records.nodes,
5277
+ anchors: options.anchorsEnabled ? records.anchors : []
5278
+ });
5279
+ } catch (error) {
5280
+ log.warn(
5281
+ `harmonic construction failed open for namespace ${entry.storage.dir}: ${error instanceof Error ? error.message : String(error)}`
5282
+ );
5283
+ }
5284
+ }
5285
+ }
5286
+
5202
5287
  // src/orchestration/extraction-persist-promotion.ts
5203
5288
  var confidenceTierOrder = [
5204
5289
  "explicit",
@@ -5246,11 +5331,57 @@ async function readActiveMemoriesBothTiers(storage) {
5246
5331
  ]);
5247
5332
  return coldMems.length === 0 ? hotMems : [...hotMems, ...coldMems];
5248
5333
  }
5249
- async function flushDeferredFactHashOnFailure(saveContentHashIndexes, deferred) {
5250
- if (!deferred) return;
5251
- await saveContentHashIndexes().catch(
5252
- (err) => log.warn(`content-hash flush after post-write failure failed: ${err}`)
5334
+ async function finalizeExtractionCommittedWrites(options) {
5335
+ await options.saveContentHashIndexes().catch((err) => {
5336
+ log.warn(`content-hash index save failed: ${err}`);
5337
+ });
5338
+ const behaviorEntries = [...options.behaviorSignalsByStorage];
5339
+ for (const { storage: targetStorage, events } of behaviorEntries) {
5340
+ const dedupedSignals = dedupeBehaviorSignalsByMemoryAndHash(events);
5341
+ if (dedupedSignals.length === 0) continue;
5342
+ await targetStorage.appendBehaviorSignals(dedupedSignals).catch(
5343
+ (err) => log.warn(`appendBehaviorSignals failed (non-fatal): ${err}`)
5344
+ );
5345
+ }
5346
+ const harmonic = options.harmonic;
5347
+ let harmonicEntryCount = 0;
5348
+ if (harmonic?.enabled) {
5349
+ const entries = [...harmonic.entries];
5350
+ harmonicEntryCount = entries.length;
5351
+ if (entries.length > 0) {
5352
+ await persistConstructedHarmonicRecords({
5353
+ entries,
5354
+ baseStorageDir: harmonic.baseStorageDir,
5355
+ abstractionNodeStoreDir: harmonic.abstractionNodeStoreDir,
5356
+ sessionKey: harmonic.sessionKey,
5357
+ validAt: harmonic.validAt,
5358
+ episodeTitle: harmonic.episodeTitle,
5359
+ anchorsEnabled: harmonic.anchorsEnabled,
5360
+ entityMentions: harmonic.entityMentions
5361
+ });
5362
+ }
5363
+ }
5364
+ void (async () => {
5365
+ if (options.persistedIdsByStorage.size === 0) {
5366
+ await options.updateTemporalTagIndexes(options.fallbackStorage, []);
5367
+ return;
5368
+ }
5369
+ for (const entry of options.persistedIdsByStorage.values()) {
5370
+ await options.updateTemporalTagIndexes(entry.storage, entry.ids);
5371
+ }
5372
+ })().catch(
5373
+ (err) => log.debug(`temporal-index update error (non-fatal): ${err}`)
5253
5374
  );
5375
+ if (!options.scheduleQmd || !options.requestQmdMaintenance) return;
5376
+ const hasCommitted = options.persistedIdsByStorage.size > 0 || behaviorEntries.length > 0 || harmonicEntryCount > 0;
5377
+ if (!hasCommitted) return;
5378
+ try {
5379
+ options.requestQmdMaintenance();
5380
+ } catch (err) {
5381
+ log.warn(
5382
+ `QMD maintenance schedule after partial persist failed (non-fatal): ${err}`
5383
+ );
5384
+ }
5254
5385
  }
5255
5386
  function promotionWithholdsToolScope(options) {
5256
5387
  return options.toolScoped === true || withholdToolScopedFromSharedNamespace(options);
@@ -5427,91 +5558,6 @@ async function retireStaleMergedTargetPromotionCopies(args) {
5427
5558
  return retired;
5428
5559
  }
5429
5560
 
5430
- // src/orchestration/harmonic-construction-persist.ts
5431
- function filterHarmonicEntityMentions(facts, entityMentions) {
5432
- const identitiesBySegment = /* @__PURE__ */ new Map();
5433
- for (const entity of entityMentions) {
5434
- const segment = harmonicEntitySegment(entity.name);
5435
- const identities = identitiesBySegment.get(segment) ?? /* @__PURE__ */ new Set();
5436
- identities.add(normalizedHarmonicEntityIdentity(entity.name));
5437
- identitiesBySegment.set(segment, identities);
5438
- }
5439
- return entityMentions.flatMap((entity) => {
5440
- const allowSegmentFallback = identitiesBySegment.get(harmonicEntitySegment(entity.name))?.size === 1;
5441
- const activeFacts = facts.filter(
5442
- (fact) => typeof fact.entityRef === "string" && harmonicEntityReferenceMatches(fact.entityRef, entity.name, allowSegmentFallback)
5443
- );
5444
- return activeFacts.length > 0 ? [{ ...entity, facts: activeFacts.map((fact) => fact.content) }] : [];
5445
- });
5446
- }
5447
- async function enqueueMergedTargetForHarmonicConstruction(entries, storage, fact, memoryId, content, insertedAt) {
5448
- let committed = null;
5449
- try {
5450
- committed = await storage.getMemoryByIdIncludingArchived(memoryId);
5451
- } catch {
5452
- committed = null;
5453
- }
5454
- const derived = committed && committed.content === content ? {
5455
- ...fact,
5456
- category: committed.frontmatter.category,
5457
- tags: [.../* @__PURE__ */ new Set([...committed.frontmatter.tags ?? [], ...fact.tags])],
5458
- entityRef: committed.frontmatter.entityRef ?? fact.entityRef,
5459
- validAt: committed.frontmatter.valid_at ?? fact.validAt
5460
- } : fact;
5461
- const entry = entries.get(storage.dir) ?? { storage, facts: [] };
5462
- const prior = entry.facts.findIndex((existing) => existing.memoryId === memoryId);
5463
- if (prior !== -1) {
5464
- entry.facts[prior] = {
5465
- ...derived,
5466
- content,
5467
- memoryId,
5468
- insertedAt,
5469
- cueAnchors: [
5470
- ...entry.facts[prior].cueAnchors ?? [],
5471
- ...derived.cueAnchors ?? []
5472
- ]
5473
- };
5474
- } else {
5475
- entry.facts.push({ ...derived, content, memoryId, insertedAt });
5476
- }
5477
- entries.set(storage.dir, entry);
5478
- }
5479
- async function persistConstructedHarmonicRecords(options) {
5480
- const sessionKey = options.sessionKey?.trim();
5481
- if (!sessionKey) {
5482
- log.warn("harmonic construction skipped: extraction session key is missing");
5483
- return;
5484
- }
5485
- const recordedAt = options.validAt && Number.isFinite(Date.parse(options.validAt)) ? new Date(options.validAt).toISOString() : (/* @__PURE__ */ new Date()).toISOString();
5486
- const entries = [...options.entries];
5487
- const sharedEpisodeTitle = entries.length === 1 ? options.episodeTitle : void 0;
5488
- for (const entry of entries) {
5489
- try {
5490
- const records = deriveHarmonicRecords({
5491
- sessionKey,
5492
- recordedAt,
5493
- episodeTitle: sharedEpisodeTitle,
5494
- persistedFacts: entry.facts,
5495
- entityMentions: filterHarmonicEntityMentions(entry.facts, options.entityMentions).map((entity) => ({
5496
- name: entity.name,
5497
- type: entity.type,
5498
- facts: entity.facts
5499
- }))
5500
- });
5501
- await persistHarmonicRecords({
5502
- memoryDir: entry.storage.dir,
5503
- abstractionNodeStoreDir: entry.storage.dir === options.baseStorageDir ? options.abstractionNodeStoreDir : void 0,
5504
- nodes: records.nodes,
5505
- anchors: options.anchorsEnabled ? records.anchors : []
5506
- });
5507
- } catch (error) {
5508
- log.warn(
5509
- `harmonic construction failed open for namespace ${entry.storage.dir}: ${error instanceof Error ? error.message : String(error)}`
5510
- );
5511
- }
5512
- }
5513
- }
5514
-
5515
5561
  // src/orchestration/semantic-merge-persist.ts
5516
5562
  import path5 from "path";
5517
5563
 
@@ -6925,6 +6971,28 @@ var ExtractionPersistCoordinator = class {
6925
6971
  0,
6926
6972
  this.deps.config.extractionMaxProfileUpdatesPerRun
6927
6973
  );
6974
+ const finalizeCommittedWrites = async (scheduleQmd) => {
6975
+ await finalizeExtractionCommittedWrites({
6976
+ saveContentHashIndexes: () => this.deps.saveContentHashIndexes(),
6977
+ behaviorSignalsByStorage: behaviorSignalsByStorage.values(),
6978
+ harmonic: {
6979
+ enabled: harmonicConstructionEnabled,
6980
+ entries: harmonicFactsByStorage.values(),
6981
+ baseStorageDir: storage.dir,
6982
+ abstractionNodeStoreDir: !scopeProfileWritePlan && harmonicBaseNamespace === this.deps.config.defaultNamespace ? this.deps.config.abstractionNodeStoreDir : void 0,
6983
+ sessionKey: sourceContext?.sessionKey,
6984
+ validAt: sourceContext?.validAt,
6985
+ episodeTitle: result.episodeTitle,
6986
+ anchorsEnabled: harmonicAnchorsEnabled,
6987
+ entityMentions: entities
6988
+ },
6989
+ updateTemporalTagIndexes: (target, ids) => this.deps.updateTemporalTagIndexes(target, ids),
6990
+ fallbackStorage: storage,
6991
+ persistedIdsByStorage,
6992
+ requestQmdMaintenance: () => this.deps.requestQmdMaintenance(),
6993
+ scheduleQmd
6994
+ });
6995
+ };
6928
6996
  if (facts.length < result.facts.length || entities.length < result.entities.length || questions.length < result.questions.length || profileUpdates.length < result.profileUpdates.length) {
6929
6997
  log.warn(
6930
6998
  `persistExtraction: capped extraction payload to guardrails (facts ${facts.length}/${result.facts.length}, entities ${entities.length}/${result.entities.length}, questions ${questions.length}/${result.questions.length}, profile ${profileUpdates.length}/${result.profileUpdates.length})`
@@ -7860,6 +7928,22 @@ var ExtractionPersistCoordinator = class {
7860
7928
  const memoryId = factWrite.id;
7861
7929
  const tombstoneBlocked = factWrite.tombstoneBlocked;
7862
7930
  const postWriteGuard = faithfulnessEnforceStatus === "pending_review" || tombstoneBlocked;
7931
+ trackBehaviorSignals(
7932
+ targetStorage,
7933
+ buildBehaviorSignalsForMemory({
7934
+ memoryId,
7935
+ category: writeCategory,
7936
+ content: fact.content,
7937
+ namespace: this.deps.storageDirNamespace(targetStorage.dir),
7938
+ confidence: fact.confidence,
7939
+ source: "extraction"
7940
+ })
7941
+ );
7942
+ trackPersistedId(targetStorage, memoryId, {
7943
+ pendingReview: postWriteGuard,
7944
+ category: writeCategory,
7945
+ harmonicFact
7946
+ });
7863
7947
  try {
7864
7948
  const contradictionOutcome = await this.deps.applyDeferredContradictionResolve(
7865
7949
  contradiction,
@@ -7871,7 +7955,9 @@ var ExtractionPersistCoordinator = class {
7871
7955
  await anchorSnapshots.remove(targetStorage, contradiction.supersededId);
7872
7956
  }
7873
7957
  } catch (err) {
7874
- await flushDeferredFactHashOnFailure(() => this.deps.saveContentHashIndexes(), factDedupEnabled);
7958
+ await finalizeCommittedWrites(true).catch(
7959
+ (finalizeErr) => log.warn(`committed-write finalization after post-write failure failed: ${finalizeErr}`)
7960
+ );
7875
7961
  throw err;
7876
7962
  }
7877
7963
  if (routedRuleId) {
@@ -7899,22 +7985,6 @@ var ExtractionPersistCoordinator = class {
7899
7985
  }
7900
7986
  }
7901
7987
  try {
7902
- trackBehaviorSignals(
7903
- targetStorage,
7904
- buildBehaviorSignalsForMemory({
7905
- memoryId,
7906
- category: writeCategory,
7907
- content: fact.content,
7908
- namespace: this.deps.storageDirNamespace(targetStorage.dir),
7909
- confidence: fact.confidence,
7910
- source: "extraction"
7911
- })
7912
- );
7913
- trackPersistedId(targetStorage, memoryId, {
7914
- pendingReview: postWriteGuard,
7915
- category: writeCategory,
7916
- harmonicFact
7917
- });
7918
7988
  await anchorSnapshots.replace(targetStorage, memoryId, writeCategory, memoryPathById);
7919
7989
  if (!postWriteGuard && threadEpisodeIdsForGraph && !threadEpisodeIdsForGraph.includes(memoryId)) {
7920
7990
  threadEpisodeIdsForGraph.push(memoryId);
@@ -8015,7 +8085,9 @@ var ExtractionPersistCoordinator = class {
8015
8085
  );
8016
8086
  }
8017
8087
  } catch (err) {
8018
- await flushDeferredFactHashOnFailure(() => this.deps.saveContentHashIndexes(), factDedupEnabled);
8088
+ await finalizeCommittedWrites(true).catch(
8089
+ (finalizeErr) => log.warn(`committed-write finalization after post-write failure failed: ${finalizeErr}`)
8090
+ );
8019
8091
  throw err;
8020
8092
  }
8021
8093
  }
@@ -8051,7 +8123,10 @@ var ExtractionPersistCoordinator = class {
8051
8123
  recordDurableNonFactWrite();
8052
8124
  }
8053
8125
  } catch (err) {
8054
- log.warn(`persistExtraction: entity write failed: ${err}`);
8126
+ await finalizeCommittedWrites(true).catch(
8127
+ (finalizeErr) => log.warn(`committed-write finalization after entity failure failed: ${finalizeErr}`)
8128
+ );
8129
+ throw err;
8055
8130
  }
8056
8131
  }
8057
8132
  if (resolveRecallEnhancementCapabilities(this.deps.config).entityRelationships && Array.isArray(result.relationships)) {
@@ -8131,19 +8206,7 @@ ${q.context ?? ""}`], entityScreenOn, entityScreenProfile);
8131
8206
  if (durableNonFactWritten) {
8132
8207
  touchBaseNonFactNamespace();
8133
8208
  }
8134
- await this.deps.saveContentHashIndexes().catch((err) => {
8135
- log.warn(`content-hash index save failed: ${err}`);
8136
- });
8137
- for (const {
8138
- storage: targetStorage,
8139
- events
8140
- } of behaviorSignalsByStorage.values()) {
8141
- const dedupedSignals = dedupeBehaviorSignalsByMemoryAndHash(events);
8142
- if (dedupedSignals.length === 0) continue;
8143
- await targetStorage.appendBehaviorSignals(dedupedSignals).catch(
8144
- (err) => log.warn(`appendBehaviorSignals failed (non-fatal): ${err}`)
8145
- );
8146
- }
8209
+ await finalizeCommittedWrites(false);
8147
8210
  const dedupSuffix = `${dedupedCount > 0 ? ` (${dedupedCount} deduped)` : ""}${semanticMergedCount > 0 ? ` (${semanticMergedCount} merged)` : ""}`;
8148
8211
  const gatedSuffix = importanceGatedCount > 0 ? ` (${importanceGatedCount} gated)` : "";
8149
8212
  const judgeSuffix = judgeGatedCount > 0 ? ` (${judgeGatedCount} judge-rejected)` : "";
@@ -8151,29 +8214,6 @@ ${q.context ?? ""}`], entityScreenOn, entityScreenProfile);
8151
8214
  log.info(
8152
8215
  `persisted: ${facts.length - dedupedCount - importanceGatedCount - judgeGatedCount - redactionGatedCount - semanticMergedCount} facts${dedupSuffix}${gatedSuffix}${judgeSuffix}${redactionSuffix}, ${entities.length} entities, ${questions.length} questions, ${profileUpdates.length} profile updates`
8153
8216
  );
8154
- if (harmonicConstructionEnabled && harmonicFactsByStorage.size > 0) {
8155
- await persistConstructedHarmonicRecords({
8156
- entries: harmonicFactsByStorage.values(),
8157
- baseStorageDir: storage.dir,
8158
- abstractionNodeStoreDir: !scopeProfileWritePlan && harmonicBaseNamespace === this.deps.config.defaultNamespace ? this.deps.config.abstractionNodeStoreDir : void 0,
8159
- sessionKey: sourceContext?.sessionKey,
8160
- validAt: sourceContext?.validAt,
8161
- episodeTitle: result.episodeTitle,
8162
- anchorsEnabled: harmonicAnchorsEnabled,
8163
- entityMentions: entities
8164
- });
8165
- }
8166
- void (async () => {
8167
- if (persistedIdsByStorage.size === 0) {
8168
- await this.deps.updateTemporalTagIndexes(storage, []);
8169
- return;
8170
- }
8171
- for (const entry of persistedIdsByStorage.values()) {
8172
- await this.deps.updateTemporalTagIndexes(entry.storage, entry.ids);
8173
- }
8174
- })().catch(
8175
- (err) => log.debug(`temporal-index update error (non-fatal): ${err}`)
8176
- );
8177
8217
  this.deps.setLastPersistExtractionPendingReviewIds(pendingReviewPersistedIds);
8178
8218
  return { persistedIds, memoryPathById };
8179
8219
  }
@@ -22023,7 +22063,8 @@ var Orchestrator = class {
22023
22063
  indexPersistedMemory: (storage, memoryId) => this.indexPersistedMemory(storage, memoryId),
22024
22064
  buildGraphEdge: (storage, memoryRelPath, entityRef, memoryId, factContent, allMemsForGraph, memoryPathById, threadIdForEdge, threadEpisodeIdsForGraph, fallbackCausalPredecessor, graphCaps) => this.buildGraphEdge(storage, memoryRelPath, entityRef, memoryId, factContent, allMemsForGraph, memoryPathById, threadIdForEdge, threadEpisodeIdsForGraph, fallbackCausalPredecessor, graphCaps),
22025
22065
  invalidateGraphEdgeCache: (storage) => this.graphIndexFor(storage).invalidateEdgeCache(),
22026
- updateTemporalTagIndexes: (storage, persistedIds) => this.updateTemporalTagIndexes(storage, persistedIds)
22066
+ updateTemporalTagIndexes: (storage, persistedIds) => this.updateTemporalTagIndexes(storage, persistedIds),
22067
+ requestQmdMaintenance: () => this.requestQmdMaintenance()
22027
22068
  });
22028
22069
  }
22029
22070
  return this._extractionPersistCoordinator;
@@ -31573,4 +31614,4 @@ export {
31573
31614
  qmdStartupCollectionChecksWithTimeout,
31574
31615
  Orchestrator
31575
31616
  };
31576
- //# sourceMappingURL=chunk-UZVQFGAY.js.map
31617
+ //# sourceMappingURL=chunk-UM3ZLT2X.js.map