@remnic/core 9.69.6 → 9.69.7

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 (263) hide show
  1. package/dist/access-admin-ops-surface.d.ts +1 -1
  2. package/dist/access-admin-ops-surface.js +24 -24
  3. package/dist/access-authorization-probe.d.ts +1 -1
  4. package/dist/access-authorization-probe.js +25 -25
  5. package/dist/access-boundary.d.ts +1 -1
  6. package/dist/access-boundary.js +24 -24
  7. package/dist/access-cli.js +79 -79
  8. package/dist/access-extraction-force-flush.d.ts +1 -1
  9. package/dist/access-extraction-force-flush.js +24 -24
  10. package/dist/access-http-lcm-compaction.d.ts +1 -1
  11. package/dist/access-http-lifecycle-flush.d.ts +1 -1
  12. package/dist/access-http-offline-stream.d.ts +1 -1
  13. package/dist/access-http-query.js +26 -26
  14. package/dist/access-http.d.ts +2 -2
  15. package/dist/access-http.js +42 -42
  16. package/dist/access-identity-continuity-surface.js +24 -24
  17. package/dist/access-lcm-surface.d.ts +1 -1
  18. package/dist/access-lcm-surface.js +24 -24
  19. package/dist/access-mcp.d.ts +1 -1
  20. package/dist/access-mcp.js +33 -33
  21. package/dist/access-namespace-preflight.js +24 -24
  22. package/dist/access-observe-write-surface.d.ts +1 -1
  23. package/dist/access-observe-write-surface.js +24 -24
  24. package/dist/access-offline-manifest.js +3 -3
  25. package/dist/access-operations-batch.js +27 -27
  26. package/dist/access-operations.d.ts +6 -6
  27. package/dist/access-operations.js +32 -32
  28. package/dist/access-recall-concurrency.d.ts +1 -1
  29. package/dist/access-recall-concurrency.js +24 -24
  30. package/dist/access-recall-response.d.ts +1 -1
  31. package/dist/access-recall-response.js +24 -24
  32. package/dist/access-recall-surface.d.ts +1 -1
  33. package/dist/access-recall-surface.js +24 -24
  34. package/dist/access-schema.d.ts +89 -89
  35. package/dist/access-schema.js +5 -5
  36. package/dist/access-service-helpers.d.ts +1 -1
  37. package/dist/access-service.d.ts +1 -1
  38. package/dist/access-service.js +24 -24
  39. package/dist/access-surface-catalog.d.ts +1 -1
  40. package/dist/access-surface-catalog.js +26 -26
  41. package/dist/active-recall.js +5 -5
  42. package/dist/adapters/index.js +7 -7
  43. package/dist/adapters/registry.js +3 -3
  44. package/dist/briefing.js +6 -6
  45. package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-7FJQINUR.js} +2 -2
  46. package/dist/causal-behavior.js +2 -2
  47. package/dist/causal-chain.js +2 -2
  48. package/dist/causal-consolidation.js +9 -9
  49. package/dist/causal-retrieval.js +2 -2
  50. package/dist/causal-trajectory-graph.js +2 -2
  51. package/dist/causal-trajectory.js +1 -1
  52. package/dist/{chunk-7RZJWZ46.js → chunk-227UFSEQ.js} +5 -5
  53. package/dist/{chunk-QA6H4PIO.js → chunk-26JWBSWD.js} +3 -3
  54. package/dist/{chunk-7VA7PARC.js → chunk-2MW3UQNX.js} +2 -2
  55. package/dist/{chunk-BXLOS5AJ.js → chunk-2NLLXCJG.js} +2 -2
  56. package/dist/{chunk-JBPKEARU.js → chunk-2QSZNTDO.js} +7 -7
  57. package/dist/{chunk-P6GKRT2H.js → chunk-2Z3DG5CQ.js} +1 -1
  58. package/dist/{chunk-NM5EOKN7.js → chunk-6C57JBJ3.js} +2 -2
  59. package/dist/{chunk-DD2BKHSD.js → chunk-6EE5LJSZ.js} +2 -2
  60. package/dist/{chunk-VDX2J7OX.js → chunk-7LCGFUMB.js} +4 -4
  61. package/dist/{chunk-YPNTBYEV.js → chunk-A3WMMQAH.js} +3 -3
  62. package/dist/{chunk-SZZGVXKC.js → chunk-ANN5VMHT.js} +2 -2
  63. package/dist/{chunk-TP3N5364.js → chunk-APGIIJRE.js} +2 -2
  64. package/dist/{chunk-OLBZ2WGG.js → chunk-C2JCVZWX.js} +2 -2
  65. package/dist/{chunk-7DXW5V2W.js → chunk-CTCGHNWN.js} +5 -5
  66. package/dist/{chunk-JJAOVJ3E.js → chunk-DJZWNKFO.js} +2 -2
  67. package/dist/{chunk-XOGYSWQZ.js → chunk-DZNNWPQ7.js} +17 -17
  68. package/dist/{chunk-6JYTP3JP.js → chunk-E5WTGEWX.js} +3 -3
  69. package/dist/{chunk-CGFDT752.js → chunk-E6Z4LWNJ.js} +4 -4
  70. package/dist/{chunk-PY5E3UOD.js → chunk-EG6NUYY3.js} +2 -2
  71. package/dist/{chunk-EJJ57PTY.js → chunk-GD7D7WP2.js} +2 -2
  72. package/dist/{chunk-X3DTN2RC.js → chunk-GFGQOZGG.js} +10 -10
  73. package/dist/{chunk-YTCE2JQL.js → chunk-GH7UF5BV.js} +96 -45
  74. package/dist/chunk-GH7UF5BV.js.map +1 -0
  75. package/dist/{chunk-EVLHZ6F3.js → chunk-GISV63M2.js} +2 -2
  76. package/dist/{chunk-MDQXW235.js → chunk-GTZLPFAT.js} +2 -2
  77. package/dist/{chunk-YERBUSU2.js → chunk-H3HOC6UT.js} +2 -2
  78. package/dist/{chunk-AJFKQJQK.js → chunk-HINMCD7V.js} +2 -2
  79. package/dist/{chunk-ISDSX7GW.js → chunk-IGUWU5BD.js} +1 -1
  80. package/dist/{chunk-SKVSBTFQ.js → chunk-IWO4HEOL.js} +2 -2
  81. package/dist/{chunk-6EXRODDF.js → chunk-J2TT3RV6.js} +2 -2
  82. package/dist/{chunk-XJJYSX6F.js → chunk-JCUG7AXZ.js} +4 -4
  83. package/dist/{chunk-BX6GW4KC.js → chunk-JMAG7WZ7.js} +2 -2
  84. package/dist/{chunk-W6V2XVUO.js → chunk-KLLSFJBJ.js} +3 -3
  85. package/dist/{chunk-C5FRCM4B.js → chunk-LHGIBXVX.js} +2 -2
  86. package/dist/{chunk-PGD3DXZP.js → chunk-M5UJJUON.js} +3 -3
  87. package/dist/{chunk-ZIZUB6VB.js → chunk-MWHSWK4W.js} +34 -34
  88. package/dist/{chunk-WTWHORVW.js → chunk-N27L5IY2.js} +5 -5
  89. package/dist/{chunk-4OH6FGAO.js → chunk-N5VXPTXC.js} +12 -12
  90. package/dist/{chunk-HDEQRI2O.js → chunk-NAZROP6I.js} +2 -2
  91. package/dist/{chunk-R3YVNAJB.js → chunk-NDE7CH6C.js} +2 -2
  92. package/dist/{chunk-BIJAWZYW.js → chunk-OLT3YTDH.js} +4 -4
  93. package/dist/{chunk-GM35IHF7.js → chunk-PRK4WTPU.js} +2 -2
  94. package/dist/{chunk-LGVIKA7O.js → chunk-QAITDA5B.js} +6 -6
  95. package/dist/{chunk-MOUCCUET.js → chunk-QGUFN25Q.js} +2 -2
  96. package/dist/{chunk-5HP6LVWU.js → chunk-QHYSECIG.js} +2 -2
  97. package/dist/{chunk-SZ3SRRYZ.js → chunk-RXS4SQ5S.js} +2 -2
  98. package/dist/{chunk-6KQLDPKA.js → chunk-S6AHHQ6C.js} +2 -2
  99. package/dist/{chunk-NAB4MKTJ.js → chunk-S6DX26S3.js} +3 -3
  100. package/dist/{chunk-R4FPBSFD.js → chunk-SO73GYOZ.js} +2 -2
  101. package/dist/{chunk-M4MNLPO7.js → chunk-SXQZMC7R.js} +2 -2
  102. package/dist/{chunk-JHTF22NQ.js → chunk-TA7UZZMW.js} +2 -2
  103. package/dist/{chunk-3X7Z467X.js → chunk-UJMOG5LL.js} +2 -2
  104. package/dist/{chunk-TGDFKC7X.js → chunk-VOPOPTZ7.js} +2 -2
  105. package/dist/{chunk-IFHT77WK.js → chunk-WF2WCZCR.js} +2 -2
  106. package/dist/{chunk-6F5WBXE2.js → chunk-X2NFFBTO.js} +4 -4
  107. package/dist/{chunk-IHFN3JTR.js → chunk-X5TGZAP2.js} +3 -3
  108. package/dist/{chunk-RJ57OOCD.js → chunk-X66BHMAU.js} +2 -2
  109. package/dist/{chunk-DQEMWVMT.js → chunk-X7Y7WX73.js} +1 -1
  110. package/dist/{chunk-WAPSYHNR.js → chunk-XHGDFN7A.js} +5 -5
  111. package/dist/{chunk-FGV7V2N4.js → chunk-Y3WMJAZ3.js} +2 -2
  112. package/dist/{chunk-ZET6A3OF.js → chunk-YHCBJULX.js} +2 -2
  113. package/dist/{chunk-EAG7YMIS.js → chunk-YVMTXBJJ.js} +2 -2
  114. package/dist/{chunk-OUKBMQ2O.js → chunk-Z3SQEEB6.js} +2 -2
  115. package/dist/{chunk-OUAK37ID.js → chunk-ZNXPGZJQ.js} +2 -2
  116. package/dist/{chunk-MVH7YAWY.js → chunk-ZPN6SSWA.js} +2 -2
  117. package/dist/{cli-Bvy4jdBu.d.ts → cli-CFpMhqz5.d.ts} +1 -1
  118. package/dist/cli.d.ts +2 -2
  119. package/dist/cli.js +60 -60
  120. package/dist/coding/export-okf-codegraph.js +6 -6
  121. package/dist/coding/pre-action-gate.js +2 -2
  122. package/dist/compounding/engine.js +6 -6
  123. package/dist/config.js +5 -5
  124. package/dist/connectors/codex-materialize-runner.js +6 -6
  125. package/dist/connectors/index.js +6 -6
  126. package/dist/convergence-refresh.js +8 -8
  127. package/dist/conversation-index/backend.js +2 -2
  128. package/dist/corpus-watermark.js +8 -8
  129. package/dist/entity-retrieval.js +6 -6
  130. package/dist/external-wiki-access.d.ts +1 -1
  131. package/dist/external-wiki-access.js +25 -25
  132. package/dist/external-wiki-mcp-tools.d.ts +1 -1
  133. package/dist/extraction-span-source-hash.d.ts +45 -0
  134. package/dist/extraction-span-source-hash.js +52 -0
  135. package/dist/extraction-span-source-hash.js.map +1 -0
  136. package/dist/extraction.js +6 -6
  137. package/dist/{graph-edge-decay-FXGELBFA.js → graph-edge-decay-DGTBFALQ.js} +4 -4
  138. package/dist/graph-snapshot.js +3 -3
  139. package/dist/graph.js +2 -2
  140. package/dist/harmonic-retrieval.js +1 -1
  141. package/dist/index.d.ts +694 -681
  142. package/dist/index.js +89 -85
  143. package/dist/lcm/engine.js +2 -2
  144. package/dist/lcm/index.js +2 -2
  145. package/dist/location/index.js +8 -8
  146. package/dist/maintenance/memory-governance.js +6 -6
  147. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +6 -6
  148. package/dist/maintenance/rebuild-memory-projection.js +7 -7
  149. package/dist/mcp-memory-inspector-app.d.ts +1 -1
  150. package/dist/memory-subject-cli.d.ts +1 -1
  151. package/dist/memory-subject.d.ts +1 -1
  152. package/dist/namespaces/migrate.js +7 -7
  153. package/dist/namespaces/search.js +4 -4
  154. package/dist/namespaces/storage.js +6 -6
  155. package/dist/offline-sync.js +2 -2
  156. package/dist/operator-doctor-corpus.js +9 -9
  157. package/dist/operator-toolkit.js +21 -21
  158. package/dist/orchestration/maintenance.js +14 -14
  159. package/dist/orchestrator.js +81 -81
  160. package/dist/{public-http-2MyshWxl.d.ts → public-http-C9-CHc40.d.ts} +1 -1
  161. package/dist/recall-state-view-zero-diff.d.ts +23 -0
  162. package/dist/recall-state-view-zero-diff.js +84 -0
  163. package/dist/recall-state-view-zero-diff.js.map +1 -0
  164. package/dist/resume-bundles.js +6 -6
  165. package/dist/schemas.d.ts +176 -176
  166. package/dist/search/factory.js +3 -3
  167. package/dist/search/index.js +3 -3
  168. package/dist/semantic-consolidation.js +7 -7
  169. package/dist/semantic-rule-promotion.js +6 -6
  170. package/dist/semantic-rule-verifier.js +6 -6
  171. package/dist/shared-context/manager.d.ts +6 -6
  172. package/dist/source-agent-qualifier.js +6 -6
  173. package/dist/standup/build.js +6 -6
  174. package/dist/storage.js +5 -5
  175. package/dist/support-passport/index.d.ts +4 -4
  176. package/dist/support-passport/index.js +27 -27
  177. package/dist/transfer/backup.js +2 -2
  178. package/dist/transfer/capsule-export.js +2 -2
  179. package/dist/transfer/capsule-import.js +2 -2
  180. package/dist/transfer/export-okf.js +7 -7
  181. package/dist/transfer/types.d.ts +78 -78
  182. package/dist/verified-recall.js +6 -6
  183. package/dist/who-knows-cli.d.ts +1 -1
  184. package/dist/who-knows-cli.js +7 -7
  185. package/dist/who-knows.d.ts +1 -1
  186. package/dist/who-knows.js +6 -6
  187. package/package.json +2 -2
  188. package/src/activity/timeline/index.ts +1 -0
  189. package/src/activity/timeline/week-config-hash.test.ts +207 -0
  190. package/src/activity/timeline/week-config-hash.ts +83 -0
  191. package/src/extraction-span-source-hash.test.ts +165 -0
  192. package/src/extraction-span-source-hash.ts +100 -0
  193. package/src/recall-state-view-zero-diff.test.ts +282 -0
  194. package/src/recall-state-view-zero-diff.ts +125 -0
  195. package/src/shared-context/authority-precedence.test.ts +127 -0
  196. package/src/shared-context/authority-precedence.ts +68 -0
  197. package/dist/chunk-YTCE2JQL.js.map +0 -1
  198. package/dist/{access-service-LbwWl05g.d.ts → access-service-DcfM0Vf0.d.ts} +64 -64
  199. /package/dist/{capsule-crypto-YO5QJ6L3.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  200. /package/dist/{chunk-7RZJWZ46.js.map → chunk-227UFSEQ.js.map} +0 -0
  201. /package/dist/{chunk-QA6H4PIO.js.map → chunk-26JWBSWD.js.map} +0 -0
  202. /package/dist/{chunk-7VA7PARC.js.map → chunk-2MW3UQNX.js.map} +0 -0
  203. /package/dist/{chunk-BXLOS5AJ.js.map → chunk-2NLLXCJG.js.map} +0 -0
  204. /package/dist/{chunk-JBPKEARU.js.map → chunk-2QSZNTDO.js.map} +0 -0
  205. /package/dist/{chunk-P6GKRT2H.js.map → chunk-2Z3DG5CQ.js.map} +0 -0
  206. /package/dist/{chunk-NM5EOKN7.js.map → chunk-6C57JBJ3.js.map} +0 -0
  207. /package/dist/{chunk-DD2BKHSD.js.map → chunk-6EE5LJSZ.js.map} +0 -0
  208. /package/dist/{chunk-VDX2J7OX.js.map → chunk-7LCGFUMB.js.map} +0 -0
  209. /package/dist/{chunk-YPNTBYEV.js.map → chunk-A3WMMQAH.js.map} +0 -0
  210. /package/dist/{chunk-SZZGVXKC.js.map → chunk-ANN5VMHT.js.map} +0 -0
  211. /package/dist/{chunk-TP3N5364.js.map → chunk-APGIIJRE.js.map} +0 -0
  212. /package/dist/{chunk-OLBZ2WGG.js.map → chunk-C2JCVZWX.js.map} +0 -0
  213. /package/dist/{chunk-7DXW5V2W.js.map → chunk-CTCGHNWN.js.map} +0 -0
  214. /package/dist/{chunk-JJAOVJ3E.js.map → chunk-DJZWNKFO.js.map} +0 -0
  215. /package/dist/{chunk-XOGYSWQZ.js.map → chunk-DZNNWPQ7.js.map} +0 -0
  216. /package/dist/{chunk-6JYTP3JP.js.map → chunk-E5WTGEWX.js.map} +0 -0
  217. /package/dist/{chunk-CGFDT752.js.map → chunk-E6Z4LWNJ.js.map} +0 -0
  218. /package/dist/{chunk-PY5E3UOD.js.map → chunk-EG6NUYY3.js.map} +0 -0
  219. /package/dist/{chunk-EJJ57PTY.js.map → chunk-GD7D7WP2.js.map} +0 -0
  220. /package/dist/{chunk-X3DTN2RC.js.map → chunk-GFGQOZGG.js.map} +0 -0
  221. /package/dist/{chunk-EVLHZ6F3.js.map → chunk-GISV63M2.js.map} +0 -0
  222. /package/dist/{chunk-MDQXW235.js.map → chunk-GTZLPFAT.js.map} +0 -0
  223. /package/dist/{chunk-YERBUSU2.js.map → chunk-H3HOC6UT.js.map} +0 -0
  224. /package/dist/{chunk-AJFKQJQK.js.map → chunk-HINMCD7V.js.map} +0 -0
  225. /package/dist/{chunk-ISDSX7GW.js.map → chunk-IGUWU5BD.js.map} +0 -0
  226. /package/dist/{chunk-SKVSBTFQ.js.map → chunk-IWO4HEOL.js.map} +0 -0
  227. /package/dist/{chunk-6EXRODDF.js.map → chunk-J2TT3RV6.js.map} +0 -0
  228. /package/dist/{chunk-XJJYSX6F.js.map → chunk-JCUG7AXZ.js.map} +0 -0
  229. /package/dist/{chunk-BX6GW4KC.js.map → chunk-JMAG7WZ7.js.map} +0 -0
  230. /package/dist/{chunk-W6V2XVUO.js.map → chunk-KLLSFJBJ.js.map} +0 -0
  231. /package/dist/{chunk-C5FRCM4B.js.map → chunk-LHGIBXVX.js.map} +0 -0
  232. /package/dist/{chunk-PGD3DXZP.js.map → chunk-M5UJJUON.js.map} +0 -0
  233. /package/dist/{chunk-ZIZUB6VB.js.map → chunk-MWHSWK4W.js.map} +0 -0
  234. /package/dist/{chunk-WTWHORVW.js.map → chunk-N27L5IY2.js.map} +0 -0
  235. /package/dist/{chunk-4OH6FGAO.js.map → chunk-N5VXPTXC.js.map} +0 -0
  236. /package/dist/{chunk-HDEQRI2O.js.map → chunk-NAZROP6I.js.map} +0 -0
  237. /package/dist/{chunk-R3YVNAJB.js.map → chunk-NDE7CH6C.js.map} +0 -0
  238. /package/dist/{chunk-BIJAWZYW.js.map → chunk-OLT3YTDH.js.map} +0 -0
  239. /package/dist/{chunk-GM35IHF7.js.map → chunk-PRK4WTPU.js.map} +0 -0
  240. /package/dist/{chunk-LGVIKA7O.js.map → chunk-QAITDA5B.js.map} +0 -0
  241. /package/dist/{chunk-MOUCCUET.js.map → chunk-QGUFN25Q.js.map} +0 -0
  242. /package/dist/{chunk-5HP6LVWU.js.map → chunk-QHYSECIG.js.map} +0 -0
  243. /package/dist/{chunk-SZ3SRRYZ.js.map → chunk-RXS4SQ5S.js.map} +0 -0
  244. /package/dist/{chunk-6KQLDPKA.js.map → chunk-S6AHHQ6C.js.map} +0 -0
  245. /package/dist/{chunk-NAB4MKTJ.js.map → chunk-S6DX26S3.js.map} +0 -0
  246. /package/dist/{chunk-R4FPBSFD.js.map → chunk-SO73GYOZ.js.map} +0 -0
  247. /package/dist/{chunk-M4MNLPO7.js.map → chunk-SXQZMC7R.js.map} +0 -0
  248. /package/dist/{chunk-JHTF22NQ.js.map → chunk-TA7UZZMW.js.map} +0 -0
  249. /package/dist/{chunk-3X7Z467X.js.map → chunk-UJMOG5LL.js.map} +0 -0
  250. /package/dist/{chunk-TGDFKC7X.js.map → chunk-VOPOPTZ7.js.map} +0 -0
  251. /package/dist/{chunk-IFHT77WK.js.map → chunk-WF2WCZCR.js.map} +0 -0
  252. /package/dist/{chunk-6F5WBXE2.js.map → chunk-X2NFFBTO.js.map} +0 -0
  253. /package/dist/{chunk-IHFN3JTR.js.map → chunk-X5TGZAP2.js.map} +0 -0
  254. /package/dist/{chunk-RJ57OOCD.js.map → chunk-X66BHMAU.js.map} +0 -0
  255. /package/dist/{chunk-DQEMWVMT.js.map → chunk-X7Y7WX73.js.map} +0 -0
  256. /package/dist/{chunk-WAPSYHNR.js.map → chunk-XHGDFN7A.js.map} +0 -0
  257. /package/dist/{chunk-FGV7V2N4.js.map → chunk-Y3WMJAZ3.js.map} +0 -0
  258. /package/dist/{chunk-ZET6A3OF.js.map → chunk-YHCBJULX.js.map} +0 -0
  259. /package/dist/{chunk-EAG7YMIS.js.map → chunk-YVMTXBJJ.js.map} +0 -0
  260. /package/dist/{chunk-OUKBMQ2O.js.map → chunk-Z3SQEEB6.js.map} +0 -0
  261. /package/dist/{chunk-OUAK37ID.js.map → chunk-ZNXPGZJQ.js.map} +0 -0
  262. /package/dist/{chunk-MVH7YAWY.js.map → chunk-ZPN6SSWA.js.map} +0 -0
  263. /package/dist/{graph-edge-decay-FXGELBFA.js.map → graph-edge-decay-DGTBFALQ.js.map} +0 -0
@@ -5,7 +5,7 @@ import {
5
5
  rejectSymlinkPath,
6
6
  renderFrontmatter,
7
7
  writeBundleFile
8
- } from "../chunk-SKVSBTFQ.js";
8
+ } from "../chunk-IWO4HEOL.js";
9
9
  import {
10
10
  ACTIVE_DECISION_STATUSES,
11
11
  CodegraphRuntimeError,
@@ -25,12 +25,12 @@ import {
25
25
  OKF_CODE_MODULE_TYPE,
26
26
  OKF_DECISION_RECORD_TYPE,
27
27
  StorageManager
28
- } from "../chunk-IFHT77WK.js";
28
+ } from "../chunk-WF2WCZCR.js";
29
29
  import "../chunk-UHVXE24Y.js";
30
30
  import "../chunk-4ZWCQJNM.js";
31
31
  import "../chunk-WVGXCBOC.js";
32
- import "../chunk-ZET6A3OF.js";
33
- import "../chunk-JJAOVJ3E.js";
32
+ import "../chunk-YHCBJULX.js";
33
+ import "../chunk-DJZWNKFO.js";
34
34
  import "../chunk-N37X5RU7.js";
35
35
  import "../chunk-NNBZS3DY.js";
36
36
  import "../chunk-CYEPCZN5.js";
@@ -39,10 +39,10 @@ import "../chunk-YQNNHLCG.js";
39
39
  import "../chunk-W7IGLX4G.js";
40
40
  import "../chunk-6KTXE6A3.js";
41
41
  import "../chunk-GUMZC2BO.js";
42
- import "../chunk-7RZJWZ46.js";
43
- import "../chunk-A7Q43EUZ.js";
42
+ import "../chunk-227UFSEQ.js";
44
43
  import "../chunk-ET356KSB.js";
45
44
  import "../chunk-72A4L5JJ.js";
45
+ import "../chunk-A7Q43EUZ.js";
46
46
  import "../chunk-S2V7RUCL.js";
47
47
  import "../chunk-XXW32OL7.js";
48
48
  import "../chunk-S2HLHAZ4.js";
@@ -5,8 +5,8 @@ import {
5
5
  PreActionFailureGate,
6
6
  normalizeActionIntent,
7
7
  sanitizePayloadString
8
- } from "../chunk-JHTF22NQ.js";
9
- import "../chunk-P6GKRT2H.js";
8
+ } from "../chunk-TA7UZZMW.js";
9
+ import "../chunk-2Z3DG5CQ.js";
10
10
  import "../chunk-YCVB7X56.js";
11
11
  import "../chunk-A2IYSXDQ.js";
12
12
  import "../chunk-P77QX3ID.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  CompoundingEngine,
3
3
  defaultTierMigrationCycleBudget
4
- } from "../chunk-GM35IHF7.js";
4
+ } from "../chunk-PRK4WTPU.js";
5
5
  import "../chunk-VI637ILW.js";
6
6
  import "../chunk-N4F7ZSSG.js";
7
- import "../chunk-IFHT77WK.js";
7
+ import "../chunk-WF2WCZCR.js";
8
8
  import "../chunk-UHVXE24Y.js";
9
9
  import "../chunk-4ZWCQJNM.js";
10
10
  import "../chunk-WVGXCBOC.js";
11
- import "../chunk-ZET6A3OF.js";
12
- import "../chunk-JJAOVJ3E.js";
11
+ import "../chunk-YHCBJULX.js";
12
+ import "../chunk-DJZWNKFO.js";
13
13
  import "../chunk-N37X5RU7.js";
14
14
  import "../chunk-NNBZS3DY.js";
15
15
  import "../chunk-CYEPCZN5.js";
@@ -18,10 +18,10 @@ import "../chunk-YQNNHLCG.js";
18
18
  import "../chunk-W7IGLX4G.js";
19
19
  import "../chunk-6KTXE6A3.js";
20
20
  import "../chunk-GUMZC2BO.js";
21
- import "../chunk-7RZJWZ46.js";
22
- import "../chunk-A7Q43EUZ.js";
21
+ import "../chunk-227UFSEQ.js";
23
22
  import "../chunk-ET356KSB.js";
24
23
  import "../chunk-72A4L5JJ.js";
24
+ import "../chunk-A7Q43EUZ.js";
25
25
  import "../chunk-S2V7RUCL.js";
26
26
  import "../chunk-XXW32OL7.js";
27
27
  import "../chunk-S2HLHAZ4.js";
package/dist/config.js CHANGED
@@ -4,12 +4,12 @@ import {
4
4
  isOpenaiApiKeyDisabled,
5
5
  parseConfig,
6
6
  resolveEnvVars
7
- } from "./chunk-QA6H4PIO.js";
7
+ } from "./chunk-26JWBSWD.js";
8
8
  import "./chunk-ZKOPY4WW.js";
9
9
  import "./chunk-62OKGIJA.js";
10
10
  import "./chunk-KJUWWN3T.js";
11
11
  import "./chunk-TEZ2HTC7.js";
12
- import "./chunk-JHTF22NQ.js";
12
+ import "./chunk-TA7UZZMW.js";
13
13
  import "./chunk-SN4JXNLL.js";
14
14
  import "./chunk-Z5LAYHGJ.js";
15
15
  import "./chunk-6ZMAMSHS.js";
@@ -33,7 +33,7 @@ import "./chunk-K6MV3TRQ.js";
33
33
  import "./chunk-236PXYG7.js";
34
34
  import "./chunk-ZCUTSMR2.js";
35
35
  import "./chunk-QDW3E4RD.js";
36
- import "./chunk-P6GKRT2H.js";
36
+ import "./chunk-2Z3DG5CQ.js";
37
37
  import "./chunk-NXH34IPL.js";
38
38
  import "./chunk-ZIKENA2C.js";
39
39
  import "./chunk-M6L7HI7R.js";
@@ -49,11 +49,11 @@ import "./chunk-5FVVY2EB.js";
49
49
  import "./chunk-JDSVLVCG.js";
50
50
  import "./chunk-5GKPFL3S.js";
51
51
  import "./chunk-JAKIDQB2.js";
52
- import "./chunk-XJJYSX6F.js";
52
+ import "./chunk-JCUG7AXZ.js";
53
53
  import "./chunk-UI3NYK34.js";
54
54
  import "./chunk-GCGJW34D.js";
55
- import "./chunk-AREGMX2J.js";
56
55
  import "./chunk-NBP4EX5N.js";
56
+ import "./chunk-AREGMX2J.js";
57
57
  import "./chunk-LQWOFU6L.js";
58
58
  import "./chunk-P7FMDTKL.js";
59
59
  import "./chunk-EYIEWJNI.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  runCodexMaterialize,
3
3
  runPostConsolidationMaterialize
4
- } from "../chunk-6KQLDPKA.js";
4
+ } from "../chunk-S6AHHQ6C.js";
5
5
  import "../chunk-3UXOZBHV.js";
6
6
  import "../chunk-ZXBTTMGZ.js";
7
- import "../chunk-IFHT77WK.js";
7
+ import "../chunk-WF2WCZCR.js";
8
8
  import "../chunk-UHVXE24Y.js";
9
9
  import "../chunk-4ZWCQJNM.js";
10
10
  import "../chunk-WVGXCBOC.js";
11
- import "../chunk-ZET6A3OF.js";
12
- import "../chunk-JJAOVJ3E.js";
11
+ import "../chunk-YHCBJULX.js";
12
+ import "../chunk-DJZWNKFO.js";
13
13
  import "../chunk-N37X5RU7.js";
14
14
  import "../chunk-NNBZS3DY.js";
15
15
  import "../chunk-CYEPCZN5.js";
@@ -18,10 +18,10 @@ import "../chunk-YQNNHLCG.js";
18
18
  import "../chunk-W7IGLX4G.js";
19
19
  import "../chunk-6KTXE6A3.js";
20
20
  import "../chunk-GUMZC2BO.js";
21
- import "../chunk-7RZJWZ46.js";
22
- import "../chunk-A7Q43EUZ.js";
21
+ import "../chunk-227UFSEQ.js";
23
22
  import "../chunk-ET356KSB.js";
24
23
  import "../chunk-72A4L5JJ.js";
24
+ import "../chunk-A7Q43EUZ.js";
25
25
  import "../chunk-S2V7RUCL.js";
26
26
  import "../chunk-XXW32OL7.js";
27
27
  import "../chunk-S2HLHAZ4.js";
@@ -33,7 +33,7 @@ import {
33
33
  import "../chunk-EMDLM3LW.js";
34
34
  import {
35
35
  runCodexMaterialize
36
- } from "../chunk-6KQLDPKA.js";
36
+ } from "../chunk-S6AHHQ6C.js";
37
37
  import "../chunk-3UXOZBHV.js";
38
38
  import {
39
39
  MATERIALIZE_VERSION,
@@ -50,12 +50,12 @@ import {
50
50
  truncateToTokenBudget,
51
51
  validateMemoryMd
52
52
  } from "../chunk-ZXBTTMGZ.js";
53
- import "../chunk-IFHT77WK.js";
53
+ import "../chunk-WF2WCZCR.js";
54
54
  import "../chunk-UHVXE24Y.js";
55
55
  import "../chunk-4ZWCQJNM.js";
56
56
  import "../chunk-WVGXCBOC.js";
57
- import "../chunk-ZET6A3OF.js";
58
- import "../chunk-JJAOVJ3E.js";
57
+ import "../chunk-YHCBJULX.js";
58
+ import "../chunk-DJZWNKFO.js";
59
59
  import "../chunk-N37X5RU7.js";
60
60
  import "../chunk-NNBZS3DY.js";
61
61
  import "../chunk-CYEPCZN5.js";
@@ -64,10 +64,10 @@ import "../chunk-YQNNHLCG.js";
64
64
  import "../chunk-W7IGLX4G.js";
65
65
  import "../chunk-6KTXE6A3.js";
66
66
  import "../chunk-GUMZC2BO.js";
67
- import "../chunk-7RZJWZ46.js";
68
- import "../chunk-A7Q43EUZ.js";
67
+ import "../chunk-227UFSEQ.js";
69
68
  import "../chunk-ET356KSB.js";
70
69
  import "../chunk-72A4L5JJ.js";
70
+ import "../chunk-A7Q43EUZ.js";
71
71
  import "../chunk-S2V7RUCL.js";
72
72
  import "../chunk-XXW32OL7.js";
73
73
  import "../chunk-S2HLHAZ4.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  refreshConvergedNamespaces
3
- } from "./chunk-FGV7V2N4.js";
4
- import "./chunk-6JYTP3JP.js";
3
+ } from "./chunk-Y3WMJAZ3.js";
4
+ import "./chunk-E5WTGEWX.js";
5
5
  import "./chunk-KJTKLXTH.js";
6
6
  import "./chunk-2DQ2XREU.js";
7
- import "./chunk-SZZGVXKC.js";
8
- import "./chunk-IFHT77WK.js";
7
+ import "./chunk-ANN5VMHT.js";
8
+ import "./chunk-WF2WCZCR.js";
9
9
  import "./chunk-UHVXE24Y.js";
10
10
  import "./chunk-4ZWCQJNM.js";
11
11
  import "./chunk-WVGXCBOC.js";
12
- import "./chunk-ZET6A3OF.js";
13
- import "./chunk-JJAOVJ3E.js";
12
+ import "./chunk-YHCBJULX.js";
13
+ import "./chunk-DJZWNKFO.js";
14
14
  import "./chunk-N37X5RU7.js";
15
15
  import "./chunk-NNBZS3DY.js";
16
16
  import "./chunk-CYEPCZN5.js";
@@ -19,10 +19,10 @@ import "./chunk-YQNNHLCG.js";
19
19
  import "./chunk-W7IGLX4G.js";
20
20
  import "./chunk-6KTXE6A3.js";
21
21
  import "./chunk-GUMZC2BO.js";
22
- import "./chunk-7RZJWZ46.js";
23
- import "./chunk-A7Q43EUZ.js";
22
+ import "./chunk-227UFSEQ.js";
24
23
  import "./chunk-ET356KSB.js";
25
24
  import "./chunk-72A4L5JJ.js";
25
+ import "./chunk-A7Q43EUZ.js";
26
26
  import "./chunk-S2V7RUCL.js";
27
27
  import "./chunk-XXW32OL7.js";
28
28
  import "./chunk-S2HLHAZ4.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createConversationIndexBackend
3
- } from "../chunk-7RZJWZ46.js";
4
- import "../chunk-A7Q43EUZ.js";
3
+ } from "../chunk-227UFSEQ.js";
5
4
  import "../chunk-ET356KSB.js";
6
5
  import "../chunk-72A4L5JJ.js";
6
+ import "../chunk-A7Q43EUZ.js";
7
7
  import "../chunk-O75CRYGF.js";
8
8
  import "../chunk-3WCASNQZ.js";
9
9
  import "../chunk-PZ5AY32C.js";
@@ -9,15 +9,15 @@ import {
9
9
  computeServiceCorpusWatermarks,
10
10
  digestPartitionCensus,
11
11
  resolveCorpusNamespaceRoots
12
- } from "./chunk-HDEQRI2O.js";
13
- import "./chunk-YPNTBYEV.js";
14
- import "./chunk-EJJ57PTY.js";
15
- import "./chunk-IFHT77WK.js";
12
+ } from "./chunk-NAZROP6I.js";
13
+ import "./chunk-A3WMMQAH.js";
14
+ import "./chunk-GD7D7WP2.js";
15
+ import "./chunk-WF2WCZCR.js";
16
16
  import "./chunk-UHVXE24Y.js";
17
17
  import "./chunk-4ZWCQJNM.js";
18
18
  import "./chunk-WVGXCBOC.js";
19
- import "./chunk-ZET6A3OF.js";
20
- import "./chunk-JJAOVJ3E.js";
19
+ import "./chunk-YHCBJULX.js";
20
+ import "./chunk-DJZWNKFO.js";
21
21
  import "./chunk-N37X5RU7.js";
22
22
  import "./chunk-NNBZS3DY.js";
23
23
  import "./chunk-CYEPCZN5.js";
@@ -26,10 +26,10 @@ import "./chunk-YQNNHLCG.js";
26
26
  import "./chunk-W7IGLX4G.js";
27
27
  import "./chunk-6KTXE6A3.js";
28
28
  import "./chunk-GUMZC2BO.js";
29
- import "./chunk-7RZJWZ46.js";
30
- import "./chunk-A7Q43EUZ.js";
29
+ import "./chunk-227UFSEQ.js";
31
30
  import "./chunk-ET356KSB.js";
32
31
  import "./chunk-72A4L5JJ.js";
32
+ import "./chunk-A7Q43EUZ.js";
33
33
  import "./chunk-S2V7RUCL.js";
34
34
  import "./chunk-XXW32OL7.js";
35
35
  import "./chunk-S2HLHAZ4.js";
@@ -3,19 +3,19 @@ import {
3
3
  entityIndexVersion,
4
4
  entityRecentTranscriptLookbackHours,
5
5
  readRecentEntityTranscriptEntries
6
- } from "./chunk-C5FRCM4B.js";
6
+ } from "./chunk-LHGIBXVX.js";
7
7
  import "./chunk-GKUA4MGB.js";
8
8
  import "./chunk-5AUY5Z5E.js";
9
9
  import "./chunk-SVH57F5Z.js";
10
10
  import "./chunk-MKYRCCSN.js";
11
11
  import "./chunk-2DQ2XREU.js";
12
12
  import "./chunk-7ZNJN5WZ.js";
13
- import "./chunk-IFHT77WK.js";
13
+ import "./chunk-WF2WCZCR.js";
14
14
  import "./chunk-UHVXE24Y.js";
15
15
  import "./chunk-4ZWCQJNM.js";
16
16
  import "./chunk-WVGXCBOC.js";
17
- import "./chunk-ZET6A3OF.js";
18
- import "./chunk-JJAOVJ3E.js";
17
+ import "./chunk-YHCBJULX.js";
18
+ import "./chunk-DJZWNKFO.js";
19
19
  import "./chunk-N37X5RU7.js";
20
20
  import "./chunk-NNBZS3DY.js";
21
21
  import "./chunk-CYEPCZN5.js";
@@ -24,10 +24,10 @@ import "./chunk-YQNNHLCG.js";
24
24
  import "./chunk-W7IGLX4G.js";
25
25
  import "./chunk-6KTXE6A3.js";
26
26
  import "./chunk-GUMZC2BO.js";
27
- import "./chunk-7RZJWZ46.js";
28
- import "./chunk-A7Q43EUZ.js";
27
+ import "./chunk-227UFSEQ.js";
29
28
  import "./chunk-ET356KSB.js";
30
29
  import "./chunk-72A4L5JJ.js";
30
+ import "./chunk-A7Q43EUZ.js";
31
31
  import "./chunk-S2V7RUCL.js";
32
32
  import "./chunk-XXW32OL7.js";
33
33
  import "./chunk-S2HLHAZ4.js";
@@ -1,4 +1,4 @@
1
- import { B as BoundOperation } from './access-service-LbwWl05g.js';
1
+ import { B as BoundOperation } from './access-service-DcfM0Vf0.js';
2
2
  import { ExternalWikiSearchResult, ExternalWikiSearchInput } from './external-wiki-search.js';
3
3
  import './types-eM7QIcX2.js';
4
4
  import './message-parts/index.js';
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  externalWikiSearchOperation
3
- } from "./chunk-TP3N5364.js";
3
+ } from "./chunk-APGIIJRE.js";
4
4
  import "./chunk-7T4TOGMS.js";
5
5
  import "./chunk-7YQ6ESEA.js";
6
- import "./chunk-XOGYSWQZ.js";
6
+ import "./chunk-DZNNWPQ7.js";
7
7
  import "./chunk-GDASG7NC.js";
8
8
  import "./chunk-GDB4J2H3.js";
9
- import "./chunk-7DXW5V2W.js";
9
+ import "./chunk-CTCGHNWN.js";
10
10
  import "./chunk-QJCWK2A7.js";
11
11
  import "./chunk-VQ7B2Q6M.js";
12
+ import "./chunk-6C57JBJ3.js";
12
13
  import "./chunk-PJSK6OJM.js";
13
- import "./chunk-NM5EOKN7.js";
14
14
  import "./chunk-GNVZQ5JN.js";
15
15
  import "./chunk-YN2UN7N3.js";
16
16
  import "./chunk-5QZR2RA3.js";
@@ -21,7 +21,7 @@ import "./chunk-H7XKCNR6.js";
21
21
  import "./chunk-H6RSANGQ.js";
22
22
  import "./chunk-SOBJ6NEY.js";
23
23
  import "./chunk-LK4TOYPU.js";
24
- import "./chunk-R3YVNAJB.js";
24
+ import "./chunk-NDE7CH6C.js";
25
25
  import "./chunk-CVILPI77.js";
26
26
  import "./chunk-2HIJHXB3.js";
27
27
  import "./chunk-AQEJKOKI.js";
@@ -29,7 +29,7 @@ import "./chunk-HTP6XRUI.js";
29
29
  import "./chunk-UD7UNYRD.js";
30
30
  import "./chunk-IISBCCWR.js";
31
31
  import "./chunk-2YA5N2BY.js";
32
- import "./chunk-OUKBMQ2O.js";
32
+ import "./chunk-Z3SQEEB6.js";
33
33
  import "./chunk-EI6V5UXY.js";
34
34
  import "./chunk-J3JEW5CT.js";
35
35
  import "./chunk-5TBO7CDR.js";
@@ -42,25 +42,25 @@ import "./chunk-LTHVM4XN.js";
42
42
  import "./chunk-X5YYSAZX.js";
43
43
  import "./chunk-C37ZRXX7.js";
44
44
  import "./chunk-7ZNJN5WZ.js";
45
- import "./chunk-SZZGVXKC.js";
46
- import "./chunk-HDEQRI2O.js";
47
- import "./chunk-YPNTBYEV.js";
48
- import "./chunk-EJJ57PTY.js";
45
+ import "./chunk-ANN5VMHT.js";
46
+ import "./chunk-NAZROP6I.js";
47
+ import "./chunk-A3WMMQAH.js";
48
+ import "./chunk-GD7D7WP2.js";
49
49
  import "./chunk-UFGFMWAD.js";
50
- import "./chunk-6KQLDPKA.js";
50
+ import "./chunk-S6AHHQ6C.js";
51
51
  import "./chunk-3UXOZBHV.js";
52
52
  import "./chunk-ZXBTTMGZ.js";
53
- import "./chunk-BIJAWZYW.js";
53
+ import "./chunk-OLT3YTDH.js";
54
+ import "./chunk-DEUNUKTD.js";
54
55
  import "./chunk-LXY5VVGM.js";
55
56
  import "./chunk-2LSZVONP.js";
56
- import "./chunk-DEUNUKTD.js";
57
- import "./chunk-MVH7YAWY.js";
58
- import "./chunk-IFHT77WK.js";
57
+ import "./chunk-ZPN6SSWA.js";
58
+ import "./chunk-WF2WCZCR.js";
59
59
  import "./chunk-UHVXE24Y.js";
60
60
  import "./chunk-4ZWCQJNM.js";
61
61
  import "./chunk-WVGXCBOC.js";
62
- import "./chunk-ZET6A3OF.js";
63
- import "./chunk-JJAOVJ3E.js";
62
+ import "./chunk-YHCBJULX.js";
63
+ import "./chunk-DJZWNKFO.js";
64
64
  import "./chunk-N37X5RU7.js";
65
65
  import "./chunk-NNBZS3DY.js";
66
66
  import "./chunk-CYEPCZN5.js";
@@ -69,10 +69,10 @@ import "./chunk-YQNNHLCG.js";
69
69
  import "./chunk-W7IGLX4G.js";
70
70
  import "./chunk-6KTXE6A3.js";
71
71
  import "./chunk-GUMZC2BO.js";
72
- import "./chunk-7RZJWZ46.js";
73
- import "./chunk-A7Q43EUZ.js";
72
+ import "./chunk-227UFSEQ.js";
74
73
  import "./chunk-ET356KSB.js";
75
74
  import "./chunk-72A4L5JJ.js";
75
+ import "./chunk-A7Q43EUZ.js";
76
76
  import "./chunk-S2V7RUCL.js";
77
77
  import "./chunk-XXW32OL7.js";
78
78
  import "./chunk-S2HLHAZ4.js";
@@ -131,7 +131,7 @@ import "./chunk-K6MV3TRQ.js";
131
131
  import "./chunk-236PXYG7.js";
132
132
  import "./chunk-ZCUTSMR2.js";
133
133
  import "./chunk-QDW3E4RD.js";
134
- import "./chunk-P6GKRT2H.js";
134
+ import "./chunk-2Z3DG5CQ.js";
135
135
  import "./chunk-NXH34IPL.js";
136
136
  import "./chunk-ZIKENA2C.js";
137
137
  import "./chunk-M6L7HI7R.js";
@@ -140,9 +140,9 @@ import "./chunk-6Q3ZTEF6.js";
140
140
  import "./chunk-YCVB7X56.js";
141
141
  import "./chunk-PQVCH2AE.js";
142
142
  import "./chunk-PJKTFXE2.js";
143
- import "./chunk-VDX2J7OX.js";
143
+ import "./chunk-7LCGFUMB.js";
144
+ import "./chunk-X7Y7WX73.js";
144
145
  import "./chunk-WEHSQBFR.js";
145
- import "./chunk-DQEMWVMT.js";
146
146
  import "./chunk-J4EB7DNW.js";
147
147
  import "./chunk-BJMBJZ2Y.js";
148
148
  import "./chunk-UKJAGEXH.js";
@@ -153,7 +153,7 @@ import "./chunk-SOAU2OE2.js";
153
153
  import "./chunk-3QL24R5Y.js";
154
154
  import "./chunk-ZN7SMKAK.js";
155
155
  import "./chunk-LNEWDF2A.js";
156
- import "./chunk-RJ57OOCD.js";
156
+ import "./chunk-X66BHMAU.js";
157
157
  import "./chunk-DDX6KIXF.js";
158
158
  import "./chunk-ZRUEP4IK.js";
159
159
  import "./chunk-2OXIPF3A.js";
@@ -176,11 +176,11 @@ import "./chunk-5FVVY2EB.js";
176
176
  import "./chunk-JDSVLVCG.js";
177
177
  import "./chunk-5GKPFL3S.js";
178
178
  import "./chunk-JAKIDQB2.js";
179
- import "./chunk-XJJYSX6F.js";
179
+ import "./chunk-JCUG7AXZ.js";
180
180
  import "./chunk-UI3NYK34.js";
181
181
  import "./chunk-GCGJW34D.js";
182
- import "./chunk-AREGMX2J.js";
183
182
  import "./chunk-NBP4EX5N.js";
183
+ import "./chunk-AREGMX2J.js";
184
184
  import "./chunk-LQWOFU6L.js";
185
185
  import "./chunk-P7FMDTKL.js";
186
186
  import "./chunk-MRV7VSQK.js";
@@ -1,4 +1,4 @@
1
- import { K as McpTool } from './access-service-LbwWl05g.js';
1
+ import { K as McpTool } from './access-service-DcfM0Vf0.js';
2
2
  import './types-eM7QIcX2.js';
3
3
  import './message-parts/index.js';
4
4
  import './bounded-jsonl-state.js';
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Span source stamp/verify (issue #2333).
3
+ *
4
+ * Offsets index the exact normalized string sent to the model. If that string
5
+ * drifts before materialization, the offsets point at different characters and
6
+ * a wrong quote is persisted as verbatim source. The stamp lets materialization
7
+ * detect the drift without carrying the source text alongside it.
8
+ *
9
+ * Pure apart from hashing: no I/O, no clock, no randomness. The input text is
10
+ * never mutated and never appears in a result or error message.
11
+ */
12
+ interface SpanSourceStamp {
13
+ /** Hex digest of the exact string the model was shown. */
14
+ hash: string;
15
+ /** Length of that string, so a mismatch reports which dimension drifted. */
16
+ length: number;
17
+ }
18
+ type SpanSourceCheck = {
19
+ ok: true;
20
+ } | {
21
+ ok: false;
22
+ error: "length_mismatch" | "hash_mismatch";
23
+ expected: SpanSourceStamp;
24
+ actual: SpanSourceStamp;
25
+ };
26
+ /**
27
+ * Hash the exact string. No trimming, no newline normalization.
28
+ *
29
+ * The digest covers UTF-16LE code units, not UTF-8 bytes: Node's UTF-8
30
+ * encoder replaces an unpaired surrogate with U+FFFD before hashing, so
31
+ * "\ud800", "\ud801", and "\ufffd" all produce ONE digest under utf8 and
32
+ * drift between them would verify as unchanged. Unpaired surrogates reach
33
+ * real memory text through JSON escapes, and this stamp exists to catch
34
+ * exactly that class of silent substitution, so it hashes a lossless
35
+ * representation of the string instead.
36
+ */
37
+ declare function stampSpanSource(text: string): SpanSourceStamp;
38
+ /**
39
+ * Verify the materialized string against its stamp. Length is compared first:
40
+ * it is the cheaper, more diagnostic dimension. Mismatch results carry both
41
+ * stamps and never the text itself.
42
+ */
43
+ declare function verifySpanSource(text: string, expected: SpanSourceStamp): SpanSourceCheck;
44
+
45
+ export { type SpanSourceCheck, type SpanSourceStamp, stampSpanSource, verifySpanSource };
@@ -0,0 +1,52 @@
1
+ import "./chunk-PZ5AY32C.js";
2
+
3
+ // src/extraction-span-source-hash.ts
4
+ import { createHash } from "crypto";
5
+ var HASH_PATTERN = /^[0-9a-f]{64}$/;
6
+ function requireText(text) {
7
+ if (typeof text !== "string") {
8
+ throw new TypeError(`text must be a string, got ${typeof text}`);
9
+ }
10
+ }
11
+ function requireStamp(expected) {
12
+ if (!Object.hasOwn(expected, "hash")) {
13
+ throw new RangeError("expected stamp is missing field hash");
14
+ }
15
+ if (!Object.hasOwn(expected, "length")) {
16
+ throw new RangeError("expected stamp is missing field length");
17
+ }
18
+ const { hash, length } = expected;
19
+ if (typeof hash !== "string" || !HASH_PATTERN.test(hash)) {
20
+ throw new RangeError(
21
+ "expected stamp field hash must be 64 lowercase hex characters"
22
+ );
23
+ }
24
+ if (!Number.isInteger(length) || length < 0) {
25
+ throw new RangeError(
26
+ "expected stamp field length must be a non-negative integer"
27
+ );
28
+ }
29
+ }
30
+ function stampSpanSource(text) {
31
+ requireText(text);
32
+ const hash = createHash("sha256").update(Buffer.from(text, "utf16le")).digest("hex");
33
+ return { hash, length: text.length };
34
+ }
35
+ function verifySpanSource(text, expected) {
36
+ requireText(text);
37
+ requireStamp(expected);
38
+ const actual = stampSpanSource(text);
39
+ const safeExpected = { hash: expected.hash, length: expected.length };
40
+ if (actual.length !== safeExpected.length) {
41
+ return { ok: false, error: "length_mismatch", expected: safeExpected, actual };
42
+ }
43
+ if (actual.hash !== safeExpected.hash) {
44
+ return { ok: false, error: "hash_mismatch", expected: safeExpected, actual };
45
+ }
46
+ return { ok: true };
47
+ }
48
+ export {
49
+ stampSpanSource,
50
+ verifySpanSource
51
+ };
52
+ //# sourceMappingURL=extraction-span-source-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/extraction-span-source-hash.ts"],"sourcesContent":["/**\n * Span source stamp/verify (issue #2333).\n *\n * Offsets index the exact normalized string sent to the model. If that string\n * drifts before materialization, the offsets point at different characters and\n * a wrong quote is persisted as verbatim source. The stamp lets materialization\n * detect the drift without carrying the source text alongside it.\n *\n * Pure apart from hashing: no I/O, no clock, no randomness. The input text is\n * never mutated and never appears in a result or error message.\n */\n\nimport { createHash } from \"node:crypto\";\n\nexport interface SpanSourceStamp {\n /** Hex digest of the exact string the model was shown. */\n hash: string;\n /** Length of that string, so a mismatch reports which dimension drifted. */\n length: number;\n}\n\nexport type SpanSourceCheck =\n | { ok: true }\n | {\n ok: false;\n error: \"length_mismatch\" | \"hash_mismatch\";\n expected: SpanSourceStamp;\n actual: SpanSourceStamp;\n };\n\nconst HASH_PATTERN = /^[0-9a-f]{64}$/;\n\nfunction requireText(text: string): void {\n if (typeof text !== \"string\") {\n throw new TypeError(`text must be a string, got ${typeof text}`);\n }\n}\n\nfunction requireStamp(expected: SpanSourceStamp): void {\n if (!Object.hasOwn(expected, \"hash\")) {\n throw new RangeError(\"expected stamp is missing field hash\");\n }\n if (!Object.hasOwn(expected, \"length\")) {\n throw new RangeError(\"expected stamp is missing field length\");\n }\n const { hash, length } = expected;\n if (typeof hash !== \"string\" || !HASH_PATTERN.test(hash)) {\n throw new RangeError(\n \"expected stamp field hash must be 64 lowercase hex characters\",\n );\n }\n if (!Number.isInteger(length) || length < 0) {\n throw new RangeError(\n \"expected stamp field length must be a non-negative integer\",\n );\n }\n}\n\n/**\n * Hash the exact string. No trimming, no newline normalization.\n *\n * The digest covers UTF-16LE code units, not UTF-8 bytes: Node's UTF-8\n * encoder replaces an unpaired surrogate with U+FFFD before hashing, so\n * \"\\ud800\", \"\\ud801\", and \"\\ufffd\" all produce ONE digest under utf8 and\n * drift between them would verify as unchanged. Unpaired surrogates reach\n * real memory text through JSON escapes, and this stamp exists to catch\n * exactly that class of silent substitution, so it hashes a lossless\n * representation of the string instead.\n */\nexport function stampSpanSource(text: string): SpanSourceStamp {\n requireText(text);\n const hash = createHash(\"sha256\").update(Buffer.from(text, \"utf16le\")).digest(\"hex\");\n return { hash, length: text.length };\n}\n\n/**\n * Verify the materialized string against its stamp. Length is compared first:\n * it is the cheaper, more diagnostic dimension. Mismatch results carry both\n * stamps and never the text itself.\n */\nexport function verifySpanSource(\n text: string,\n expected: SpanSourceStamp,\n): SpanSourceCheck {\n requireText(text);\n requireStamp(expected);\n const actual = stampSpanSource(text);\n // Project the caller's stamp down to exactly the two stamp fields. Echoing\n // the original object would re-export any extra property it carries — a\n // `source` field holding the text defeats the whole point of a stamp, which\n // exists so the content does not have to travel.\n const safeExpected: SpanSourceStamp = { hash: expected.hash, length: expected.length };\n if (actual.length !== safeExpected.length) {\n return { ok: false, error: \"length_mismatch\", expected: safeExpected, actual };\n }\n if (actual.hash !== safeExpected.hash) {\n return { ok: false, error: \"hash_mismatch\", expected: safeExpected, actual };\n }\n return { ok: true };\n}\n"],"mappings":";;;AAYA,SAAS,kBAAkB;AAkB3B,IAAM,eAAe;AAErB,SAAS,YAAY,MAAoB;AACvC,MAAI,OAAO,SAAS,UAAU;AAC5B,UAAM,IAAI,UAAU,8BAA8B,OAAO,IAAI,EAAE;AAAA,EACjE;AACF;AAEA,SAAS,aAAa,UAAiC;AACrD,MAAI,CAAC,OAAO,OAAO,UAAU,MAAM,GAAG;AACpC,UAAM,IAAI,WAAW,sCAAsC;AAAA,EAC7D;AACA,MAAI,CAAC,OAAO,OAAO,UAAU,QAAQ,GAAG;AACtC,UAAM,IAAI,WAAW,wCAAwC;AAAA,EAC/D;AACA,QAAM,EAAE,MAAM,OAAO,IAAI;AACzB,MAAI,OAAO,SAAS,YAAY,CAAC,aAAa,KAAK,IAAI,GAAG;AACxD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,KAAK,SAAS,GAAG;AAC3C,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAaO,SAAS,gBAAgB,MAA+B;AAC7D,cAAY,IAAI;AAChB,QAAM,OAAO,WAAW,QAAQ,EAAE,OAAO,OAAO,KAAK,MAAM,SAAS,CAAC,EAAE,OAAO,KAAK;AACnF,SAAO,EAAE,MAAM,QAAQ,KAAK,OAAO;AACrC;AAOO,SAAS,iBACd,MACA,UACiB;AACjB,cAAY,IAAI;AAChB,eAAa,QAAQ;AACrB,QAAM,SAAS,gBAAgB,IAAI;AAKnC,QAAM,eAAgC,EAAE,MAAM,SAAS,MAAM,QAAQ,SAAS,OAAO;AACrF,MAAI,OAAO,WAAW,aAAa,QAAQ;AACzC,WAAO,EAAE,IAAI,OAAO,OAAO,mBAAmB,UAAU,cAAc,OAAO;AAAA,EAC/E;AACA,MAAI,OAAO,SAAS,aAAa,MAAM;AACrC,WAAO,EAAE,IAAI,OAAO,OAAO,iBAAiB,UAAU,cAAc,OAAO;AAAA,EAC7E;AACA,SAAO,EAAE,IAAI,KAAK;AACpB;","names":[]}
@@ -30,15 +30,15 @@ import "./chunk-NLE6TSLG.js";
30
30
  import "./chunk-IVKIODHO.js";
31
31
  import "./chunk-WKDFJXW5.js";
32
32
  import "./chunk-JUXOTY6J.js";
33
- import "./chunk-6KQLDPKA.js";
33
+ import "./chunk-S6AHHQ6C.js";
34
34
  import "./chunk-3UXOZBHV.js";
35
35
  import "./chunk-ZXBTTMGZ.js";
36
- import "./chunk-IFHT77WK.js";
36
+ import "./chunk-WF2WCZCR.js";
37
37
  import "./chunk-UHVXE24Y.js";
38
38
  import "./chunk-4ZWCQJNM.js";
39
39
  import "./chunk-WVGXCBOC.js";
40
- import "./chunk-ZET6A3OF.js";
41
- import "./chunk-JJAOVJ3E.js";
40
+ import "./chunk-YHCBJULX.js";
41
+ import "./chunk-DJZWNKFO.js";
42
42
  import "./chunk-N37X5RU7.js";
43
43
  import "./chunk-NNBZS3DY.js";
44
44
  import "./chunk-CYEPCZN5.js";
@@ -47,10 +47,10 @@ import "./chunk-YQNNHLCG.js";
47
47
  import "./chunk-W7IGLX4G.js";
48
48
  import "./chunk-6KTXE6A3.js";
49
49
  import "./chunk-GUMZC2BO.js";
50
- import "./chunk-7RZJWZ46.js";
51
- import "./chunk-A7Q43EUZ.js";
50
+ import "./chunk-227UFSEQ.js";
52
51
  import "./chunk-ET356KSB.js";
53
52
  import "./chunk-72A4L5JJ.js";
53
+ import "./chunk-A7Q43EUZ.js";
54
54
  import "./chunk-S2V7RUCL.js";
55
55
  import "./chunk-XXW32OL7.js";
56
56
  import "./chunk-S2HLHAZ4.js";
@@ -5,11 +5,11 @@ import {
5
5
  readGraphEdgeDecayStatus,
6
6
  runGraphEdgeDecayMaintenance,
7
7
  runGraphEdgeDecayMaintenanceAcrossNamespaces
8
- } from "./chunk-OLBZ2WGG.js";
9
- import "./chunk-BIJAWZYW.js";
8
+ } from "./chunk-C2JCVZWX.js";
9
+ import "./chunk-OLT3YTDH.js";
10
+ import "./chunk-DEUNUKTD.js";
10
11
  import "./chunk-LXY5VVGM.js";
11
12
  import "./chunk-2LSZVONP.js";
12
- import "./chunk-DEUNUKTD.js";
13
13
  import "./chunk-PCXDUHQH.js";
14
14
  import "./chunk-VUFL7X3H.js";
15
15
  import "./chunk-PZ5AY32C.js";
@@ -21,4 +21,4 @@ export {
21
21
  runGraphEdgeDecayMaintenance,
22
22
  runGraphEdgeDecayMaintenanceAcrossNamespaces
23
23
  };
24
- //# sourceMappingURL=graph-edge-decay-FXGELBFA.js.map
24
+ //# sourceMappingURL=graph-edge-decay-DGTBFALQ.js.map
@@ -4,11 +4,11 @@ import {
4
4
  buildGraphSnapshot,
5
5
  normalizeGraphSnapshotLimit,
6
6
  parseGraphSnapshotSince
7
- } from "./chunk-OUKBMQ2O.js";
8
- import "./chunk-BIJAWZYW.js";
7
+ } from "./chunk-Z3SQEEB6.js";
8
+ import "./chunk-OLT3YTDH.js";
9
+ import "./chunk-DEUNUKTD.js";
9
10
  import "./chunk-LXY5VVGM.js";
10
11
  import "./chunk-2LSZVONP.js";
11
- import "./chunk-DEUNUKTD.js";
12
12
  import "./chunk-PZ5AY32C.js";
13
13
  export {
14
14
  GRAPH_SNAPSHOT_DEFAULT_LIMIT,
package/dist/graph.js CHANGED
@@ -17,12 +17,12 @@ import {
17
17
  readEdges,
18
18
  readEdgesStrict,
19
19
  withGraphWriteLock
20
- } from "./chunk-BIJAWZYW.js";
20
+ } from "./chunk-OLT3YTDH.js";
21
+ import "./chunk-DEUNUKTD.js";
21
22
  import {
22
23
  reconstructActivationPath
23
24
  } from "./chunk-LXY5VVGM.js";
24
25
  import "./chunk-2LSZVONP.js";
25
- import "./chunk-DEUNUKTD.js";
26
26
  import "./chunk-PZ5AY32C.js";
27
27
  export {
28
28
  CAUSAL_PHRASES,