@remnic/core 9.63.8 → 9.63.10

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 (454) hide show
  1. package/dist/access-admin-ops-surface.d.ts +11 -11
  2. package/dist/access-admin-ops-surface.js +23 -23
  3. package/dist/access-authorization-probe.d.ts +11 -11
  4. package/dist/access-authorization-probe.js +24 -24
  5. package/dist/access-boundary.d.ts +11 -11
  6. package/dist/access-boundary.js +23 -23
  7. package/dist/access-cli.js +84 -82
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +1 -1
  10. package/dist/access-extraction-force-flush.d.ts +11 -11
  11. package/dist/access-extraction-force-flush.js +23 -23
  12. package/dist/access-health-types.d.ts +1 -1
  13. package/dist/access-http-lcm-compaction.d.ts +11 -11
  14. package/dist/access-http-lifecycle-flush.d.ts +11 -11
  15. package/dist/access-http-offline-stream.d.ts +11 -11
  16. package/dist/access-http-query.d.ts +2 -2
  17. package/dist/access-http-query.js +25 -25
  18. package/dist/access-http.d.ts +12 -12
  19. package/dist/access-http.js +36 -36
  20. package/dist/access-identity-continuity-surface.d.ts +9 -9
  21. package/dist/access-identity-continuity-surface.js +23 -23
  22. package/dist/access-lcm-surface.d.ts +11 -11
  23. package/dist/access-lcm-surface.js +23 -23
  24. package/dist/access-mcp.d.ts +11 -11
  25. package/dist/access-mcp.js +30 -30
  26. package/dist/access-memory-search-fanout.d.ts +2 -2
  27. package/dist/{access-namespace-preflight-DB0zXFek.d.ts → access-namespace-preflight-CrF0FKaz.d.ts} +1 -1
  28. package/dist/access-namespace-preflight.d.ts +3 -3
  29. package/dist/access-namespace-preflight.js +23 -23
  30. package/dist/access-observe-write-surface.d.ts +11 -11
  31. package/dist/access-observe-write-surface.js +23 -23
  32. package/dist/access-offline-manifest.d.ts +9 -9
  33. package/dist/access-operations-batch.js +25 -25
  34. package/dist/access-operations.d.ts +14 -14
  35. package/dist/access-operations.js +29 -29
  36. package/dist/access-recall-concurrency.d.ts +11 -11
  37. package/dist/access-recall-concurrency.js +23 -23
  38. package/dist/access-recall-response.d.ts +11 -11
  39. package/dist/access-recall-response.js +23 -23
  40. package/dist/access-recall-surface.d.ts +11 -11
  41. package/dist/access-recall-surface.js +23 -23
  42. package/dist/access-schema.d.ts +88 -88
  43. package/dist/access-schema.js +3 -3
  44. package/dist/{access-service-BaPa_km6.d.ts → access-service-C0AE0jLs.d.ts} +71 -71
  45. package/dist/access-service-helpers.d.ts +11 -11
  46. package/dist/access-service.d.ts +11 -11
  47. package/dist/access-service.js +23 -23
  48. package/dist/access-surface-catalog.d.ts +11 -11
  49. package/dist/access-surface-catalog.js +25 -25
  50. package/dist/access-wearables-meetings-surface.d.ts +3 -3
  51. package/dist/action-confidence.d.ts +1 -1
  52. package/dist/active-memory-bridge.d.ts +1 -1
  53. package/dist/active-recall.d.ts +1 -1
  54. package/dist/ambient-provenance.d.ts +1 -1
  55. package/dist/artifact-search.d.ts +1 -1
  56. package/dist/{auto-sync-3SHMZVQS.js → auto-sync-5L7EUZ27.js} +4 -3
  57. package/dist/{auto-sync-3SHMZVQS.js.map → auto-sync-5L7EUZ27.js.map} +1 -1
  58. package/dist/behavior-learner.d.ts +1 -1
  59. package/dist/behavior-signals.d.ts +1 -1
  60. package/dist/bootstrap.d.ts +9 -9
  61. package/dist/briefing-window.d.ts +2 -2
  62. package/dist/briefing.d.ts +5 -3
  63. package/dist/briefing.js +11 -9
  64. package/dist/buffer-surprise-report.d.ts +1 -1
  65. package/dist/buffer-turn-helpers.d.ts +1 -1
  66. package/dist/buffer.d.ts +2 -2
  67. package/dist/bulk-import/index.d.ts +3 -3
  68. package/dist/calibration.d.ts +1 -1
  69. package/dist/capabilities.d.ts +1 -1
  70. package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-GWVG7LGC.js} +2 -2
  71. package/dist/{catalog-CCzmf8IH.d.ts → catalog-C0KIwZqR.d.ts} +1 -1
  72. package/dist/causal-behavior.d.ts +1 -1
  73. package/dist/causal-consolidation.d.ts +1 -1
  74. package/dist/causal-consolidation.js +10 -10
  75. package/dist/causal-trajectory-graph.d.ts +1 -1
  76. package/dist/{chunk-4POAMKV6.js → chunk-27IOSH2W.js} +5 -2
  77. package/dist/chunk-27IOSH2W.js.map +1 -0
  78. package/dist/{chunk-OQIRBGUU.js → chunk-2Q4UAPLD.js} +4 -4
  79. package/dist/{chunk-3IMYRX3W.js → chunk-34E5NBQI.js} +2 -2
  80. package/dist/{chunk-BRHKW7GY.js → chunk-4IIDTPSK.js} +2 -2
  81. package/dist/{chunk-Q5XKKDFQ.js → chunk-5SZ6CLGJ.js} +2 -2
  82. package/dist/{chunk-VDX2J7OX.js → chunk-5W7CTZ2E.js} +4 -4
  83. package/dist/{chunk-EUYWQ7TS.js → chunk-652S5A5D.js} +2 -2
  84. package/dist/{chunk-ULZFZL7K.js → chunk-6IKXAAJI.js} +17 -28
  85. package/dist/chunk-6IKXAAJI.js.map +1 -0
  86. package/dist/{chunk-3TDAA7VA.js → chunk-6NMZXEJ7.js} +2 -2
  87. package/dist/{chunk-ZOAAY2OE.js → chunk-77E7LLMV.js} +7 -7
  88. package/dist/{chunk-MIUL6AUZ.js → chunk-7ML7STOD.js} +3 -3
  89. package/dist/{chunk-5SCFDQEJ.js → chunk-BPLPGOUJ.js} +2 -2
  90. package/dist/{chunk-RWMSMTQP.js → chunk-BS75WJBH.js} +2 -2
  91. package/dist/{chunk-XE2QCCT2.js → chunk-BTBAHTQ5.js} +2 -2
  92. package/dist/{chunk-42TIIO2M.js → chunk-BTUIHRRR.js} +2 -2
  93. package/dist/chunk-CIO7GCWE.js +29 -0
  94. package/dist/chunk-CIO7GCWE.js.map +1 -0
  95. package/dist/{chunk-SNEUAZ6B.js → chunk-CK3DZ6OE.js} +2 -2
  96. package/dist/{chunk-AJRJDXYR.js → chunk-E7MYSCSL.js} +2 -2
  97. package/dist/{chunk-3T6HIIKA.js → chunk-EHC3FIJ4.js} +2 -2
  98. package/dist/{chunk-EDZNW3HE.js → chunk-EPRBTGLM.js} +6 -6
  99. package/dist/{chunk-YTXNDEUS.js → chunk-FEP45MYY.js} +4 -3
  100. package/dist/{chunk-YTXNDEUS.js.map → chunk-FEP45MYY.js.map} +1 -1
  101. package/dist/{chunk-KFB4YNXM.js → chunk-G5F4MXXC.js} +2 -2
  102. package/dist/{chunk-VANZKHTN.js → chunk-G5OB4XZX.js} +4 -4
  103. package/dist/{chunk-N7V3P4V5.js → chunk-H5VDBZLZ.js} +2 -2
  104. package/dist/{chunk-645WOU5I.js → chunk-H7BZBSP6.js} +4 -4
  105. package/dist/{chunk-SZ4HFZKB.js → chunk-HMKPFW7R.js} +2 -2
  106. package/dist/{chunk-VFZQXYN5.js → chunk-HZXO2CJ6.js} +2 -2
  107. package/dist/{chunk-KXWE62IH.js → chunk-IOE75NA4.js} +2 -2
  108. package/dist/{chunk-PQHNZ63P.js → chunk-JJ45UTNT.js} +18 -5
  109. package/dist/chunk-JJ45UTNT.js.map +1 -0
  110. package/dist/{chunk-5TF5STAV.js → chunk-K477BTF4.js} +4 -4
  111. package/dist/{chunk-ML3U4KPR.js → chunk-K547KS3X.js} +4 -4
  112. package/dist/{chunk-UHGBNIOS.js → chunk-KVDUKH5E.js} +7 -2
  113. package/dist/chunk-KVDUKH5E.js.map +1 -0
  114. package/dist/{chunk-XTMYB2HY.js → chunk-LJQGQUNS.js} +2 -2
  115. package/dist/{chunk-WAS4HV46.js → chunk-LNH76ZJX.js} +87 -3
  116. package/dist/chunk-LNH76ZJX.js.map +1 -0
  117. package/dist/{chunk-VYMICVRA.js → chunk-LQNBQEMC.js} +2 -2
  118. package/dist/{chunk-J6QIAYNR.js → chunk-LVXBC6YB.js} +7 -2
  119. package/dist/{chunk-J6QIAYNR.js.map → chunk-LVXBC6YB.js.map} +1 -1
  120. package/dist/{chunk-IVKIODHO.js → chunk-MB6GLPRY.js} +4 -4
  121. package/dist/{chunk-BPQ7L27U.js → chunk-MIM7QT6H.js} +16 -16
  122. package/dist/chunk-MKYRCCSN.js +145 -0
  123. package/dist/chunk-MKYRCCSN.js.map +1 -0
  124. package/dist/{chunk-WBPD6SBZ.js → chunk-MNI7KB4Q.js} +54 -54
  125. package/dist/{chunk-6433HV72.js → chunk-MVIYRRVJ.js} +5 -5
  126. package/dist/{chunk-BXLOS5AJ.js → chunk-OWHERGF2.js} +2 -2
  127. package/dist/{chunk-QQYHYW2N.js → chunk-PQODT53H.js} +3 -3
  128. package/dist/{chunk-PHKU6BZ2.js → chunk-R7FQQQ23.js} +2 -2
  129. package/dist/{chunk-TOP3FSDW.js → chunk-RFFCBYBD.js} +11 -11
  130. package/dist/{chunk-O52TB5SL.js → chunk-SAWGVTCE.js} +2 -2
  131. package/dist/{chunk-LTYH2L6E.js → chunk-SILX74CP.js} +9 -9
  132. package/dist/{chunk-MYI3RKI6.js → chunk-SYU5JOBQ.js} +2 -2
  133. package/dist/{chunk-SY5JUJ2X.js → chunk-U5XC6DIS.js} +39 -39
  134. package/dist/{chunk-JXS5PDQ7.js → chunk-UOBPK2OS.js} +25 -7
  135. package/dist/chunk-UOBPK2OS.js.map +1 -0
  136. package/dist/{chunk-BOSIHHOH.js → chunk-UUYQWKHO.js} +2 -2
  137. package/dist/{chunk-DQEMWVMT.js → chunk-UVYI6VIX.js} +1 -1
  138. package/dist/{chunk-M4AHBM72.js → chunk-VCBG52MM.js} +4 -4
  139. package/dist/{chunk-62Y5AGCM.js → chunk-VENMDW4U.js} +10 -10
  140. package/dist/{chunk-6NAPOLRO.js → chunk-VY47VI2T.js} +6 -4
  141. package/dist/chunk-VY47VI2T.js.map +1 -0
  142. package/dist/{chunk-QTXNS3HB.js → chunk-WCWIV2JH.js} +2 -2
  143. package/dist/{chunk-6UKSOXAO.js → chunk-WQ6TRWAE.js} +3 -3
  144. package/dist/{chunk-CBY54QYW.js → chunk-X6HNXVXS.js} +4 -4
  145. package/dist/{chunk-DGUVXXAU.js → chunk-XFJUPJD7.js} +2 -2
  146. package/dist/{chunk-JPWSYHLB.js → chunk-YGSDWO3U.js} +2 -2
  147. package/dist/{chunk-GBVRVYF4.js → chunk-YINSSARY.js} +1 -1
  148. package/dist/{chunk-Q6OL23WM.js → chunk-Z4UPRZR6.js} +2 -2
  149. package/dist/{chunk-4F67JJPG.js → chunk-ZPN7W3OP.js} +2 -2
  150. package/dist/{cli-D0tV7eeU.d.ts → cli-xoJTOdMQ.d.ts} +5 -5
  151. package/dist/cli.d.ts +13 -13
  152. package/dist/cli.js +55 -54
  153. package/dist/coding/pre-action-gate.d.ts +1 -1
  154. package/dist/compounding/engine.d.ts +2 -2
  155. package/dist/compounding/engine.js +9 -9
  156. package/dist/compounding/preference-consolidator.d.ts +1 -1
  157. package/dist/compression-optimizer.d.ts +1 -1
  158. package/dist/config.d.ts +1 -1
  159. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  160. package/dist/connectors/codex-materialize-runner.js +9 -9
  161. package/dist/connectors/codex-materialize.d.ts +1 -1
  162. package/dist/connectors/index.d.ts +1 -1
  163. package/dist/connectors/index.js +9 -9
  164. package/dist/consolidation-provenance-check.d.ts +2 -2
  165. package/dist/consolidation-undo.d.ts +2 -2
  166. package/dist/contradiction/index.d.ts +2 -2
  167. package/dist/contradiction/index.js +4 -4
  168. package/dist/converge-config.d.ts +1 -1
  169. package/dist/convergence-refresh.d.ts +2 -2
  170. package/dist/convergence-refresh.js +11 -11
  171. package/dist/conversation-index/backend.d.ts +1 -1
  172. package/dist/conversation-index/chunker.d.ts +1 -1
  173. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  174. package/dist/conversation-index/indexer.d.ts +1 -1
  175. package/dist/conversation-index/search.d.ts +1 -1
  176. package/dist/corpus-watermark.d.ts +1 -1
  177. package/dist/corpus-watermark.js +11 -11
  178. package/dist/day-summary.d.ts +1 -1
  179. package/dist/day-summary.js +1 -1
  180. package/dist/delinearize.d.ts +1 -1
  181. package/dist/dependency-propagation-config.d.ts +1 -1
  182. package/dist/{dependency-propagation-delivery-DiY5T63p.d.ts → dependency-propagation-delivery-Cph4PnBe.d.ts} +1 -1
  183. package/dist/direct-answer-wiring.d.ts +1 -1
  184. package/dist/direct-answer-wiring.js +2 -1
  185. package/dist/direct-answer.d.ts +1 -1
  186. package/dist/embedding-fallback.d.ts +1 -1
  187. package/dist/enrichment/index.d.ts +1 -1
  188. package/dist/entity-origin-fields.d.ts +1 -1
  189. package/dist/entity-retrieval-i18n.d.ts +34 -0
  190. package/dist/entity-retrieval-i18n.js +13 -0
  191. package/dist/entity-retrieval-i18n.js.map +1 -0
  192. package/dist/entity-retrieval.d.ts +2 -2
  193. package/dist/entity-retrieval.js +10 -9
  194. package/dist/entity-schema.d.ts +1 -1
  195. package/dist/episodic-context.d.ts +1 -1
  196. package/dist/event-order-recall.js +2 -2
  197. package/dist/explicit-capture.d.ts +9 -9
  198. package/dist/external-wiki-access.d.ts +11 -11
  199. package/dist/external-wiki-access.js +24 -24
  200. package/dist/external-wiki-collection-registration.d.ts +1 -1
  201. package/dist/external-wiki-collection.d.ts +1 -1
  202. package/dist/external-wiki-mcp-tools.d.ts +11 -11
  203. package/dist/extraction-error-classification.d.ts +1 -1
  204. package/dist/extraction-faithfulness.d.ts +1 -1
  205. package/dist/extraction-judge-telemetry.d.ts +1 -1
  206. package/dist/extraction-judge-training.d.ts +1 -1
  207. package/dist/extraction-judge.d.ts +1 -1
  208. package/dist/extraction-liveness.d.ts +1 -1
  209. package/dist/extraction-normalization.d.ts +1 -1
  210. package/dist/extraction-prompt.d.ts +1 -1
  211. package/dist/extraction-source-grounding-helpers.d.ts +10 -1
  212. package/dist/extraction-source-grounding-helpers.js +3 -1
  213. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  214. package/dist/extraction-source-grounding-rules.js +2 -2
  215. package/dist/extraction-source-grounding.d.ts +1 -1
  216. package/dist/extraction-source-grounding.js +3 -3
  217. package/dist/extraction.d.ts +1 -1
  218. package/dist/extraction.js +18 -18
  219. package/dist/fallback-llm.d.ts +1 -1
  220. package/dist/graph-dashboard-diff.d.ts +1 -1
  221. package/dist/graph-dashboard-key.d.ts +1 -1
  222. package/dist/graph-dashboard-parser.d.ts +1 -1
  223. package/dist/graph-edge-reinforcement.d.ts +1 -1
  224. package/dist/graph-path-reconstruction.d.ts +1 -1
  225. package/dist/graph-path-scoring.d.ts +1 -1
  226. package/dist/graph-snapshot.d.ts +1 -1
  227. package/dist/graph.d.ts +1 -1
  228. package/dist/harmonic-retrieval.js +1 -1
  229. package/dist/importance.d.ts +1 -1
  230. package/dist/importance.js +2 -1
  231. package/dist/importers/index.d.ts +1 -1
  232. package/dist/in-flight-reads.d.ts +1 -1
  233. package/dist/index.d.ts +697 -697
  234. package/dist/index.js +98 -96
  235. package/dist/intent.d.ts +1 -1
  236. package/dist/lcm/engine.d.ts +1 -1
  237. package/dist/lcm/engine.js +2 -2
  238. package/dist/lcm/index.d.ts +1 -1
  239. package/dist/lcm/index.js +4 -4
  240. package/dist/lcm/tools.d.ts +1 -1
  241. package/dist/lifecycle.d.ts +1 -1
  242. package/dist/live-connectors-runner.d.ts +1 -1
  243. package/dist/local-llm.d.ts +1 -1
  244. package/dist/local-llm.js +2 -2
  245. package/dist/local-model-endpoint.d.ts +1 -1
  246. package/dist/maintenance/memory-governance.d.ts +1 -1
  247. package/dist/maintenance/memory-governance.js +9 -9
  248. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  249. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +9 -9
  250. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  251. package/dist/maintenance/rebuild-memory-projection.js +10 -10
  252. package/dist/{maintenance-CaqA4z7V.d.ts → maintenance-BNq31xpo.d.ts} +3 -3
  253. package/dist/mcp-memory-inspector-app.d.ts +11 -11
  254. package/dist/memory-action-policy.d.ts +1 -1
  255. package/dist/memory-cache.d.ts +1 -1
  256. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  257. package/dist/memory-projection-store.d.ts +1 -1
  258. package/dist/memory-provenance.d.ts +1 -1
  259. package/dist/memory-snapshot.d.ts +1 -1
  260. package/dist/memory-worth-outcomes.d.ts +2 -2
  261. package/dist/models-json.d.ts +1 -1
  262. package/dist/namespaces/migrate.d.ts +3 -3
  263. package/dist/namespaces/migrate.js +10 -10
  264. package/dist/namespaces/principal.d.ts +1 -1
  265. package/dist/namespaces/search.d.ts +1 -1
  266. package/dist/namespaces/search.js +7 -7
  267. package/dist/namespaces/storage.d.ts +3 -3
  268. package/dist/namespaces/storage.js +9 -9
  269. package/dist/native-knowledge.d.ts +1 -1
  270. package/dist/offline-sync-impression-drain.d.ts +1 -1
  271. package/dist/operator-doctor-corpus.d.ts +1 -1
  272. package/dist/operator-doctor-corpus.js +12 -12
  273. package/dist/operator-doctor-replica.d.ts +1 -1
  274. package/dist/operator-toolkit.d.ts +3 -3
  275. package/dist/operator-toolkit.js +17 -17
  276. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  277. package/dist/orchestration/maintenance.d.ts +4 -4
  278. package/dist/orchestration/maintenance.js +15 -15
  279. package/dist/{orchestrator-Bay_AofR.d.ts → orchestrator-CBuUOP2J.d.ts} +8 -8
  280. package/dist/orchestrator.d.ts +9 -9
  281. package/dist/orchestrator.js +84 -82
  282. package/dist/patterns-cli.d.ts +1 -1
  283. package/dist/{pipeline-X606GdRJ.d.ts → pipeline-CW_Q4WvX.d.ts} +1 -1
  284. package/dist/policy-runtime.d.ts +1 -1
  285. package/dist/proactive-contention.d.ts +1 -1
  286. package/dist/provenance.d.ts +1 -1
  287. package/dist/{public-http-BtjiyKah.d.ts → public-http-DR3sHfwk.d.ts} +1 -1
  288. package/dist/qmd-preflight.d.ts +2 -2
  289. package/dist/{qmd-DCKeR-GX.d.ts → qmd-q-cAzYuC.d.ts} +1 -1
  290. package/dist/qmd-recall-cache.d.ts +1 -1
  291. package/dist/qmd.d.ts +2 -2
  292. package/dist/recall-concurrency-config.d.ts +1 -1
  293. package/dist/recall-disclosure-escalation.d.ts +1 -1
  294. package/dist/recall-explain-renderer.d.ts +1 -1
  295. package/dist/recall-memory-map.d.ts +1 -1
  296. package/dist/recall-planner-llm.d.ts +1 -1
  297. package/dist/recall-state.d.ts +1 -1
  298. package/dist/recall-tag-filter.d.ts +1 -1
  299. package/dist/recall-timings.d.ts +1 -1
  300. package/dist/recall-xray-cli.d.ts +1 -1
  301. package/dist/recall-xray-renderer.d.ts +1 -1
  302. package/dist/recall-xray.d.ts +1 -1
  303. package/dist/reconcile/cursor.d.ts +1 -1
  304. package/dist/reconcile/manifest.d.ts +1 -1
  305. package/dist/reconcile/plan.d.ts +1 -1
  306. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  307. package/dist/replay/normalizers/claude.d.ts +1 -1
  308. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  309. package/dist/replay/normalizers/shared.d.ts +1 -1
  310. package/dist/replay/runner.d.ts +1 -1
  311. package/dist/replay/types.d.ts +1 -1
  312. package/dist/replica-divergence.d.ts +1 -1
  313. package/dist/replica-peers-config.d.ts +1 -1
  314. package/dist/resolve-auth-token.d.ts +1 -1
  315. package/dist/retrieval-agents.d.ts +2 -2
  316. package/dist/retrieval-tiers.d.ts +1 -1
  317. package/dist/routing/engine.d.ts +1 -1
  318. package/dist/routing/store.d.ts +1 -1
  319. package/dist/salvage-envelope.d.ts +1 -1
  320. package/dist/schemas.d.ts +108 -108
  321. package/dist/{scope-profiles-_Y_RHCeE.d.ts → scope-profiles-CIr4mXgp.d.ts} +1 -1
  322. package/dist/search/embed-helper.d.ts +1 -1
  323. package/dist/search/factory.d.ts +1 -1
  324. package/dist/search/factory.js +6 -6
  325. package/dist/search/index.d.ts +1 -1
  326. package/dist/search/index.js +11 -11
  327. package/dist/search/lancedb-backend.d.ts +1 -1
  328. package/dist/search/lancedb-backend.js +2 -2
  329. package/dist/search/meilisearch-backend.d.ts +1 -1
  330. package/dist/search/meilisearch-backend.js +2 -2
  331. package/dist/search/noop-backend.d.ts +1 -1
  332. package/dist/search/orama-backend.d.ts +1 -1
  333. package/dist/search/orama-backend.js +2 -2
  334. package/dist/search/port.d.ts +1 -1
  335. package/dist/search/remote-backend.d.ts +1 -1
  336. package/dist/{semantic-consolidation-DT2VSrU0.d.ts → semantic-consolidation-BZ6J46j-.d.ts} +1 -1
  337. package/dist/semantic-consolidation.d.ts +2 -2
  338. package/dist/semantic-consolidation.js +10 -10
  339. package/dist/semantic-rule-promotion.js +9 -9
  340. package/dist/semantic-rule-verifier.d.ts +1 -1
  341. package/dist/semantic-rule-verifier.js +9 -9
  342. package/dist/{service-BMo-gwDE.d.ts → service-CCl4iyyY.d.ts} +2 -2
  343. package/dist/session-observer-bands.d.ts +1 -1
  344. package/dist/session-observer-state.d.ts +1 -1
  345. package/dist/shared-context/manager.d.ts +9 -9
  346. package/dist/signal.d.ts +1 -1
  347. package/dist/source-agent-qualifier.d.ts +1 -1
  348. package/dist/source-agent-qualifier.js +13 -13
  349. package/dist/{storage-CGzJGUUu.d.ts → storage-BPXmJKIt.d.ts} +1 -1
  350. package/dist/storage.d.ts +2 -2
  351. package/dist/storage.js +8 -8
  352. package/dist/summarizer.d.ts +1 -1
  353. package/dist/summarizer.js +3 -3
  354. package/dist/summary-snapshot.d.ts +1 -1
  355. package/dist/support-passport/index.d.ts +14 -14
  356. package/dist/support-passport/index.js +26 -26
  357. package/dist/temporal-supersession.d.ts +2 -2
  358. package/dist/temporal-timeline-recall.d.ts +1 -1
  359. package/dist/temporal-validity.d.ts +1 -1
  360. package/dist/threading.d.ts +1 -1
  361. package/dist/tier-migration.d.ts +2 -2
  362. package/dist/tier-routing.d.ts +1 -1
  363. package/dist/topics.d.ts +1 -1
  364. package/dist/topics.js +2 -1
  365. package/dist/transcript.d.ts +1 -1
  366. package/dist/transfer/backup.js +2 -2
  367. package/dist/transfer/capsule-export.js +2 -2
  368. package/dist/transfer/capsule-import.js +2 -2
  369. package/dist/transfer/types.d.ts +66 -66
  370. package/dist/trust-score-stage.d.ts +1 -1
  371. package/dist/trust-score.d.ts +1 -1
  372. package/dist/{types-CBEAYU76.d.ts → types-CltSWcND.d.ts} +1 -1
  373. package/dist/types.d.ts +1 -1
  374. package/dist/utility-runtime.d.ts +1 -1
  375. package/dist/verified-recall.js +9 -9
  376. package/dist/write-envelope.d.ts +1 -1
  377. package/package.json +2 -2
  378. package/src/briefing.test.ts +50 -0
  379. package/src/briefing.ts +3 -2
  380. package/src/chat/chat-engine.test.ts +15 -0
  381. package/src/chat/chat-engine.ts +13 -2
  382. package/src/day-summary.test.ts +63 -0
  383. package/src/day-summary.ts +13 -1
  384. package/src/entity-retrieval-i18n.test.ts +115 -0
  385. package/src/entity-retrieval-i18n.ts +161 -0
  386. package/src/entity-retrieval.ts +34 -34
  387. package/src/extraction-source-grounding-helpers.ts +112 -2
  388. package/src/extraction-source-grounding-rules.ts +3 -1
  389. package/src/extraction-source-grounding.test.ts +52 -0
  390. package/src/importance.ts +32 -22
  391. package/src/taxonomy/resolver.ts +7 -7
  392. package/src/topics.ts +5 -2
  393. package/src/utils/script-aware-text.ts +52 -0
  394. package/src/write-classifiers-cjk.test.ts +115 -0
  395. package/dist/chunk-4POAMKV6.js.map +0 -1
  396. package/dist/chunk-6NAPOLRO.js.map +0 -1
  397. package/dist/chunk-JXS5PDQ7.js.map +0 -1
  398. package/dist/chunk-PQHNZ63P.js.map +0 -1
  399. package/dist/chunk-UHGBNIOS.js.map +0 -1
  400. package/dist/chunk-ULZFZL7K.js.map +0 -1
  401. package/dist/chunk-WAS4HV46.js.map +0 -1
  402. /package/dist/{capsule-crypto-YO5QJ6L3.js.map → capsule-crypto-GWVG7LGC.js.map} +0 -0
  403. /package/dist/{chunk-OQIRBGUU.js.map → chunk-2Q4UAPLD.js.map} +0 -0
  404. /package/dist/{chunk-3IMYRX3W.js.map → chunk-34E5NBQI.js.map} +0 -0
  405. /package/dist/{chunk-BRHKW7GY.js.map → chunk-4IIDTPSK.js.map} +0 -0
  406. /package/dist/{chunk-Q5XKKDFQ.js.map → chunk-5SZ6CLGJ.js.map} +0 -0
  407. /package/dist/{chunk-VDX2J7OX.js.map → chunk-5W7CTZ2E.js.map} +0 -0
  408. /package/dist/{chunk-EUYWQ7TS.js.map → chunk-652S5A5D.js.map} +0 -0
  409. /package/dist/{chunk-3TDAA7VA.js.map → chunk-6NMZXEJ7.js.map} +0 -0
  410. /package/dist/{chunk-ZOAAY2OE.js.map → chunk-77E7LLMV.js.map} +0 -0
  411. /package/dist/{chunk-MIUL6AUZ.js.map → chunk-7ML7STOD.js.map} +0 -0
  412. /package/dist/{chunk-5SCFDQEJ.js.map → chunk-BPLPGOUJ.js.map} +0 -0
  413. /package/dist/{chunk-RWMSMTQP.js.map → chunk-BS75WJBH.js.map} +0 -0
  414. /package/dist/{chunk-XE2QCCT2.js.map → chunk-BTBAHTQ5.js.map} +0 -0
  415. /package/dist/{chunk-42TIIO2M.js.map → chunk-BTUIHRRR.js.map} +0 -0
  416. /package/dist/{chunk-SNEUAZ6B.js.map → chunk-CK3DZ6OE.js.map} +0 -0
  417. /package/dist/{chunk-AJRJDXYR.js.map → chunk-E7MYSCSL.js.map} +0 -0
  418. /package/dist/{chunk-3T6HIIKA.js.map → chunk-EHC3FIJ4.js.map} +0 -0
  419. /package/dist/{chunk-EDZNW3HE.js.map → chunk-EPRBTGLM.js.map} +0 -0
  420. /package/dist/{chunk-KFB4YNXM.js.map → chunk-G5F4MXXC.js.map} +0 -0
  421. /package/dist/{chunk-VANZKHTN.js.map → chunk-G5OB4XZX.js.map} +0 -0
  422. /package/dist/{chunk-N7V3P4V5.js.map → chunk-H5VDBZLZ.js.map} +0 -0
  423. /package/dist/{chunk-645WOU5I.js.map → chunk-H7BZBSP6.js.map} +0 -0
  424. /package/dist/{chunk-SZ4HFZKB.js.map → chunk-HMKPFW7R.js.map} +0 -0
  425. /package/dist/{chunk-VFZQXYN5.js.map → chunk-HZXO2CJ6.js.map} +0 -0
  426. /package/dist/{chunk-KXWE62IH.js.map → chunk-IOE75NA4.js.map} +0 -0
  427. /package/dist/{chunk-5TF5STAV.js.map → chunk-K477BTF4.js.map} +0 -0
  428. /package/dist/{chunk-ML3U4KPR.js.map → chunk-K547KS3X.js.map} +0 -0
  429. /package/dist/{chunk-XTMYB2HY.js.map → chunk-LJQGQUNS.js.map} +0 -0
  430. /package/dist/{chunk-VYMICVRA.js.map → chunk-LQNBQEMC.js.map} +0 -0
  431. /package/dist/{chunk-IVKIODHO.js.map → chunk-MB6GLPRY.js.map} +0 -0
  432. /package/dist/{chunk-BPQ7L27U.js.map → chunk-MIM7QT6H.js.map} +0 -0
  433. /package/dist/{chunk-WBPD6SBZ.js.map → chunk-MNI7KB4Q.js.map} +0 -0
  434. /package/dist/{chunk-6433HV72.js.map → chunk-MVIYRRVJ.js.map} +0 -0
  435. /package/dist/{chunk-BXLOS5AJ.js.map → chunk-OWHERGF2.js.map} +0 -0
  436. /package/dist/{chunk-QQYHYW2N.js.map → chunk-PQODT53H.js.map} +0 -0
  437. /package/dist/{chunk-PHKU6BZ2.js.map → chunk-R7FQQQ23.js.map} +0 -0
  438. /package/dist/{chunk-TOP3FSDW.js.map → chunk-RFFCBYBD.js.map} +0 -0
  439. /package/dist/{chunk-O52TB5SL.js.map → chunk-SAWGVTCE.js.map} +0 -0
  440. /package/dist/{chunk-LTYH2L6E.js.map → chunk-SILX74CP.js.map} +0 -0
  441. /package/dist/{chunk-MYI3RKI6.js.map → chunk-SYU5JOBQ.js.map} +0 -0
  442. /package/dist/{chunk-SY5JUJ2X.js.map → chunk-U5XC6DIS.js.map} +0 -0
  443. /package/dist/{chunk-BOSIHHOH.js.map → chunk-UUYQWKHO.js.map} +0 -0
  444. /package/dist/{chunk-DQEMWVMT.js.map → chunk-UVYI6VIX.js.map} +0 -0
  445. /package/dist/{chunk-M4AHBM72.js.map → chunk-VCBG52MM.js.map} +0 -0
  446. /package/dist/{chunk-62Y5AGCM.js.map → chunk-VENMDW4U.js.map} +0 -0
  447. /package/dist/{chunk-QTXNS3HB.js.map → chunk-WCWIV2JH.js.map} +0 -0
  448. /package/dist/{chunk-6UKSOXAO.js.map → chunk-WQ6TRWAE.js.map} +0 -0
  449. /package/dist/{chunk-CBY54QYW.js.map → chunk-X6HNXVXS.js.map} +0 -0
  450. /package/dist/{chunk-DGUVXXAU.js.map → chunk-XFJUPJD7.js.map} +0 -0
  451. /package/dist/{chunk-JPWSYHLB.js.map → chunk-YGSDWO3U.js.map} +0 -0
  452. /package/dist/{chunk-GBVRVYF4.js.map → chunk-YINSSARY.js.map} +0 -0
  453. /package/dist/{chunk-Q6OL23WM.js.map → chunk-Z4UPRZR6.js.map} +0 -0
  454. /package/dist/{chunk-4F67JJPG.js.map → chunk-ZPN7W3OP.js.map} +0 -0
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  externalWikiSearchOperation
3
- } from "./chunk-KXWE62IH.js";
3
+ } from "./chunk-IOE75NA4.js";
4
4
  import {
5
5
  memoryStoreRequestSchema
6
- } from "./chunk-DGUVXXAU.js";
6
+ } from "./chunk-XFJUPJD7.js";
7
7
  import {
8
8
  CorrectionContractError,
9
9
  DECISION_SUBCOMMANDS,
10
10
  DELTA_SUBCOMMANDS,
11
11
  defineOperation,
12
12
  isCodegraphToolName
13
- } from "./chunk-BPQ7L27U.js";
13
+ } from "./chunk-MIM7QT6H.js";
14
14
  import {
15
15
  serializeMutations,
16
16
  withHeldFileLock
@@ -1818,4 +1818,4 @@ export {
1818
1818
  codegraphIngestTracesOperation,
1819
1819
  REGISTERED_OPERATIONS
1820
1820
  };
1821
- //# sourceMappingURL=chunk-5TF5STAV.js.map
1821
+ //# sourceMappingURL=chunk-K477BTF4.js.map
@@ -1,10 +1,10 @@
1
- import {
2
- scanMemoryDir
3
- } from "./chunk-W7IGLX4G.js";
4
1
  import {
5
2
  isSearchAborted,
6
3
  throwIfSearchAborted
7
4
  } from "./chunk-GUMZC2BO.js";
5
+ import {
6
+ scanMemoryDir
7
+ } from "./chunk-W7IGLX4G.js";
8
8
  import {
9
9
  reportSearchDegradation,
10
10
  resolveEnsureCollectionArgs
@@ -776,4 +776,4 @@ export {
776
776
  resolveOramaCollectionDbFilePath,
777
777
  OramaBackend
778
778
  };
779
- //# sourceMappingURL=chunk-ML3U4KPR.js.map
779
+ //# sourceMappingURL=chunk-K547KS3X.js.map
@@ -1,3 +1,7 @@
1
+ import {
2
+ cjkBigrams
3
+ } from "./chunk-CIO7GCWE.js";
4
+
1
5
  // src/topics.ts
2
6
  var STOP_WORDS = /* @__PURE__ */ new Set([
3
7
  "a",
@@ -134,7 +138,8 @@ var STOP_WORDS = /* @__PURE__ */ new Set([
134
138
  "use"
135
139
  ]);
136
140
  function extractTerms(content) {
137
- return content.toLowerCase().replace(/[^a-z0-9\s-]/g, " ").split(/\s+/).filter((w) => w.length >= 3 && !STOP_WORDS.has(w));
141
+ const latin = content.toLowerCase().replace(/[^a-z0-9\s-]/g, " ").split(/\s+/).filter((w) => w.length >= 3 && !STOP_WORDS.has(w));
142
+ return [...latin, ...cjkBigrams(content)];
138
143
  }
139
144
  function extractTopics(memories, topN = 50) {
140
145
  if (memories.length === 0) return [];
@@ -202,4 +207,4 @@ export {
202
207
  extractTopics,
203
208
  findTrendingTopics
204
209
  };
205
- //# sourceMappingURL=chunk-UHGBNIOS.js.map
210
+ //# sourceMappingURL=chunk-KVDUKH5E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/topics.ts"],"sourcesContent":["/**\n * Topic Extraction (Phase 4B)\n *\n * Extract key topics from all memories using TF-IDF weighting.\n * Runs as a batch process during consolidation.\n */\n\nimport type { MemoryFile, TopicScore } from \"./types.js\";\nimport { cjkBigrams } from \"./utils/script-aware-text.js\";\n\n/** Stop words to exclude from topic extraction */\nconst STOP_WORDS = new Set([\n \"a\", \"an\", \"the\", \"is\", \"are\", \"was\", \"were\", \"be\", \"been\", \"being\",\n \"have\", \"has\", \"had\", \"do\", \"does\", \"did\", \"will\", \"would\", \"could\",\n \"should\", \"may\", \"might\", \"must\", \"shall\", \"can\", \"need\", \"to\", \"of\",\n \"in\", \"for\", \"on\", \"with\", \"at\", \"by\", \"from\", \"as\", \"into\", \"through\",\n \"during\", \"before\", \"after\", \"above\", \"below\", \"between\", \"this\", \"that\",\n \"these\", \"those\", \"i\", \"me\", \"my\", \"we\", \"our\", \"you\", \"your\", \"he\",\n \"she\", \"it\", \"they\", \"them\", \"their\", \"what\", \"which\", \"who\", \"how\",\n \"when\", \"where\", \"why\", \"and\", \"but\", \"or\", \"if\", \"because\", \"so\",\n \"just\", \"about\", \"like\", \"also\", \"very\", \"really\", \"here\", \"there\",\n \"now\", \"then\", \"only\", \"even\", \"still\", \"already\", \"always\", \"never\",\n \"often\", \"sometimes\", \"usually\", \"well\", \"much\", \"more\", \"most\", \"some\",\n \"any\", \"all\", \"each\", \"every\", \"both\", \"few\", \"many\", \"other\", \"same\",\n \"such\", \"own\", \"than\", \"too\", \"very\", \"just\", \"over\", \"under\", \"again\",\n \"further\", \"once\", \"here\", \"there\", \"when\", \"where\", \"why\", \"how\",\n \"user\", \"agent\", \"memory\", \"fact\", \"preference\", \"using\", \"used\", \"use\",\n]);\n\n/**\n * Extract terms from content.\n * Returns normalized lowercase terms >= 3 chars, plus CJK bigrams so\n * non-Latin memories contribute topics instead of none (issue #2192).\n */\nfunction extractTerms(content: string): string[] {\n const latin = content\n .toLowerCase()\n .replace(/[^a-z0-9\\s-]/g, \" \")\n .split(/\\s+/)\n .filter((w) => w.length >= 3 && !STOP_WORDS.has(w));\n return [...latin, ...cjkBigrams(content)];\n}\n\n/**\n * Calculate TF-IDF scores for terms across all memories.\n *\n * TF (term frequency) = count of term in document / total terms in document\n * IDF (inverse document frequency) = log(total documents / documents containing term)\n * TF-IDF = TF * IDF\n *\n * Terms with high TF-IDF are frequent in specific memories but rare overall.\n */\nexport function extractTopics(\n memories: MemoryFile[],\n topN: number = 50,\n): TopicScore[] {\n if (memories.length === 0) return [];\n\n // Count term frequency per document and document frequency\n const docFreq = new Map<string, number>(); // term -> number of documents containing it\n const termFreqPerDoc: Map<string, number>[] = []; // per-doc term frequencies\n\n for (const memory of memories) {\n const terms = extractTerms(memory.content);\n const termFreq = new Map<string, number>();\n\n for (const term of terms) {\n termFreq.set(term, (termFreq.get(term) ?? 0) + 1);\n }\n\n // Track which terms appear in this document\n for (const term of termFreq.keys()) {\n docFreq.set(term, (docFreq.get(term) ?? 0) + 1);\n }\n\n termFreqPerDoc.push(termFreq);\n }\n\n const totalDocs = memories.length;\n\n // Calculate TF-IDF for each term\n const tfidfScores = new Map<string, { score: number; count: number }>();\n\n for (let i = 0; i < memories.length; i++) {\n const termFreq = termFreqPerDoc[i];\n const totalTerms = [...termFreq.values()].reduce((a, b) => a + b, 0);\n\n for (const [term, count] of termFreq) {\n const tf = count / totalTerms;\n const df = docFreq.get(term) ?? 1;\n const idf = Math.log(totalDocs / df);\n const tfidf = tf * idf;\n\n const existing = tfidfScores.get(term);\n if (existing) {\n existing.score += tfidf;\n existing.count += count;\n } else {\n tfidfScores.set(term, { score: tfidf, count });\n }\n }\n }\n\n // Convert to array and sort by score\n const topics: TopicScore[] = [...tfidfScores.entries()]\n .map(([term, { score, count }]) => ({ term, score, count }))\n .sort((a, b) => b.score - a.score)\n .slice(0, topN);\n\n return topics;\n}\n\n/**\n * Compare two topic lists to find trending changes.\n * Returns topics that are new or significantly increased.\n */\nexport function findTrendingTopics(\n currentTopics: TopicScore[],\n previousTopics: TopicScore[],\n threshold: number = 0.5,\n): { rising: TopicScore[]; falling: TopicScore[] } {\n const prevMap = new Map(previousTopics.map((t) => [t.term, t.score]));\n const currMap = new Map(currentTopics.map((t) => [t.term, t.score]));\n\n const rising: TopicScore[] = [];\n const falling: TopicScore[] = [];\n\n for (const topic of currentTopics) {\n const prevScore = prevMap.get(topic.term) ?? 0;\n const change = topic.score - prevScore;\n\n if (change > threshold) {\n rising.push({ ...topic, score: change });\n }\n }\n\n for (const topic of previousTopics) {\n const currScore = currMap.get(topic.term) ?? 0;\n const change = topic.score - currScore;\n\n if (change > threshold && currScore < topic.score * 0.5) {\n falling.push({ ...topic, score: change });\n }\n }\n\n return {\n rising: rising.sort((a, b) => b.score - a.score).slice(0, 10),\n falling: falling.sort((a, b) => b.score - a.score).slice(0, 10),\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rebuildMemoryProjection
3
- } from "./chunk-6UKSOXAO.js";
3
+ } from "./chunk-WQ6TRWAE.js";
4
4
 
5
5
  // src/convergence-refresh.ts
6
6
  async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, getStorage, searchEnabled) {
@@ -32,4 +32,4 @@ async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, get
32
32
  export {
33
33
  refreshConvergedNamespaces
34
34
  };
35
- //# sourceMappingURL=chunk-XTMYB2HY.js.map
35
+ //# sourceMappingURL=chunk-LJQGQUNS.js.map
@@ -282,9 +282,9 @@ var GROUNDING_COMMON_VERB_FORMS = {
282
282
  works: true
283
283
  };
284
284
  function groundingLexemes(text) {
285
- const rawTokens = text.normalize("NFKC").match(
285
+ const rawTokens = (text.normalize("NFKC").match(
286
286
  /[\p{L}\p{N}]+(?:['’][\p{L}\p{N}]+)?(?:\+\+[\p{L}\p{N}]*|#[\p{L}\p{N}]*)?/gu
287
- ) ?? [];
287
+ ) ?? []).flatMap(splitSpacelessScriptToken);
288
288
  const tokens = rawTokens.map((rawToken) => rawToken.replaceAll("\u2019", "'").toLocaleLowerCase());
289
289
  let predicateIndex = tokens.findIndex((token, index) => {
290
290
  const previousToken = tokens[index - 1];
@@ -388,6 +388,89 @@ function tokenize(text) {
388
388
  }
389
389
  return tokens;
390
390
  }
391
+ var SPACELESS_SCRIPT_CHARACTER_PATTERN = new RegExp(
392
+ "[\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Hangul}\\p{Script=Thai}\\p{Script=Lao}\\p{Script=Khmer}\\p{Script=Myanmar}]",
393
+ "u"
394
+ );
395
+ var SPACELESS_SCRIPT_LCS_SOURCE_LIMIT = 4096;
396
+ function containsSpacelessScriptCharacter(text) {
397
+ return SPACELESS_SCRIPT_CHARACTER_PATTERN.test(text);
398
+ }
399
+ function splitSpacelessScriptToken(rawToken) {
400
+ if (!containsSpacelessScriptCharacter(rawToken)) return [rawToken];
401
+ const parts = [];
402
+ let otherScriptRun = "";
403
+ for (const character of rawToken) {
404
+ if (containsSpacelessScriptCharacter(character)) {
405
+ if (otherScriptRun.length > 0) {
406
+ parts.push(otherScriptRun);
407
+ otherScriptRun = "";
408
+ }
409
+ parts.push(character);
410
+ } else {
411
+ otherScriptRun += character;
412
+ }
413
+ }
414
+ if (otherScriptRun.length > 0) parts.push(otherScriptRun);
415
+ return parts;
416
+ }
417
+ function spacelessScriptCharacterSequence(text) {
418
+ const characters = [];
419
+ for (const character of text.normalize("NFKC")) {
420
+ if (containsSpacelessScriptCharacter(character)) characters.push(character);
421
+ }
422
+ return characters;
423
+ }
424
+ function spacelessScriptCharacterNgrams(text) {
425
+ const grams = /* @__PURE__ */ new Set();
426
+ let previousCharacter = "";
427
+ for (const character of spacelessScriptCharacterSequence(text)) {
428
+ if (previousCharacter !== "") grams.add(previousCharacter + character);
429
+ previousCharacter = character;
430
+ }
431
+ return grams;
432
+ }
433
+ function longestCommonSubstringLength(left, right) {
434
+ if (left.length === 0 || right.length === 0) return 0;
435
+ let longest = 0;
436
+ let previousRow = new Array(right.length).fill(0);
437
+ for (const leftCharacter of left) {
438
+ const currentRow = new Array(right.length).fill(0);
439
+ for (let index = 0; index < right.length; index += 1) {
440
+ if (leftCharacter !== right[index]) continue;
441
+ currentRow[index] = (index > 0 ? previousRow[index - 1] : 0) + 1;
442
+ if (currentRow[index] > longest) longest = currentRow[index];
443
+ }
444
+ previousRow = currentRow;
445
+ }
446
+ return longest;
447
+ }
448
+ function spacelessScriptGroundedTokenScore(candidate, source) {
449
+ const candidateGrams = spacelessScriptCharacterNgrams(candidate);
450
+ if (candidateGrams.size === 0) return null;
451
+ const sourceGrams = spacelessScriptCharacterNgrams(source);
452
+ let sharedGrams = 0;
453
+ for (const gram of candidateGrams) {
454
+ if (sourceGrams.has(gram)) sharedGrams += 1;
455
+ }
456
+ if (sharedGrams < GROUNDING_MIN_SHARED_TOKENS) return 0;
457
+ const coverage = sharedGrams / candidateGrams.size;
458
+ if (coverage < GROUNDING_MIN_COVERAGE) return 0;
459
+ const candidateCharacters = spacelessScriptCharacterSequence(candidate);
460
+ const sourceCharacters = spacelessScriptCharacterSequence(source);
461
+ if (sourceCharacters.length <= SPACELESS_SCRIPT_LCS_SOURCE_LIMIT) {
462
+ const anchoredFraction = longestCommonSubstringLength(candidateCharacters, sourceCharacters) / candidateCharacters.length;
463
+ if (anchoredFraction < GROUNDING_MIN_COVERAGE) return 0;
464
+ }
465
+ const sourceTokens = tokenize(source);
466
+ for (const token of tokenize(candidate)) {
467
+ if (containsSpacelessScriptCharacter(token)) continue;
468
+ if (![...sourceTokens].some((sourceToken) => areGroundingTokensCompatible(token, sourceToken))) {
469
+ return 0;
470
+ }
471
+ }
472
+ return coverage;
473
+ }
391
474
  function normalizeForExactMatch(text) {
392
475
  return text.normalize("NFKC").toLocaleLowerCase().replace(/\s+/gu, " ").trim();
393
476
  }
@@ -648,6 +731,7 @@ export {
648
731
  GROUNDING_MIN_COVERAGE,
649
732
  stemToken,
650
733
  tokenize,
734
+ spacelessScriptGroundedTokenScore,
651
735
  normalizeForExactMatch,
652
736
  sourceSentences,
653
737
  groundingTokenSequence,
@@ -656,4 +740,4 @@ export {
656
740
  areGroundingTokensCompatible,
657
741
  hasContradictoryPolarity
658
742
  };
659
- //# sourceMappingURL=chunk-WAS4HV46.js.map
743
+ //# sourceMappingURL=chunk-LNH76ZJX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/extraction-source-grounding-helpers.ts"],"sourcesContent":["export function isInterrogativeSourceSentence(sentence: string): boolean {\n const normalized = sentence.trim();\n const embeddedQuestionVerbIndex = normalized.search(\n /\\b(?:determine|know|wonder|ask(?:ed)?|question|decide|check|confirm|find|figure|understand|unclear)\\b/iu,\n );\n const embeddedQuestionMarkerIndex = normalized.search(/\\b(?:whether|if)\\b/iu);\n const hasEmbeddedQuestion = embeddedQuestionVerbIndex >= 0\n && embeddedQuestionMarkerIndex > embeddedQuestionVerbIndex;\n return normalized.endsWith(\"?\")\n || hasEmbeddedQuestion\n || (\n !normalized.includes(\":\")\n && /^(?:suppose|assuming|assume|maybe|perhaps|hypothetically|if|whether|imagine|imagining|presume|presuming|supposing|is|are|am|was|were|do|does|did|can|could|will|would|should|has|have|had|what|which|when|where|why|how|who|whom)\\b/iu.test(\n normalized,\n )\n );\n}\n\nexport function containsContiguousGroundingTokens(\n candidateTokens: ReadonlyArray<string>,\n sourceTokens: ReadonlyArray<string>,\n): boolean {\n if (candidateTokens.length === 0 || candidateTokens.length > sourceTokens.length) return false;\n return sourceTokens.some((_, start) =>\n candidateTokens.every((token, offset) => sourceTokens[start + offset] === token),\n );\n}\n\nexport function hasExplicitRoleSubjectToken(\n candidateRole: string | undefined,\n sourceTokensBySentence: ReadonlyArray<ReadonlyArray<string>>,\n): boolean {\n return candidateRole !== undefined\n && sourceTokensBySentence.some((tokens) =>\n tokens.some((token) => token.replace(/^[\\u0000\\u0001]/u, \"\") === candidateRole));\n}\n\nexport function splitGroundingClauses(\n sentences: ReadonlyArray<string>,\n inheritCoordinatedSubjects = false,\n): string[] {\n return sentences.flatMap((sentence) => {\n const clauses = sentence\n .split(/,\\s+(?=[\\p{L}][\\p{L}\\p{N}'’-]*\\s+\\S)/gu)\n .flatMap((commaClause) =>\n commaClause\n .split(/\\s*(?::|[—–])\\s+|\\s+\\/\\s+/u)\n .flatMap((delimiterClause) =>\n delimiterClause\n .split(/\\s+(?:and|but|or|while|although|because)\\s+/gu)\n .map((clause) => clause.trim())\n .filter((clause) => clause.length > 0),\n ),\n );\n if (!inheritCoordinatedSubjects || clauses.length < 2) return clauses;\n\n const firstLexemes = groundingLexemes(clauses[0]!)\n .filter(({ token }) => GROUNDING_STOPWORDS[token] !== true);\n const firstPredicateIndex = firstLexemes.findIndex(({ isPredicate }) => isPredicate);\n let subjectLexemes = firstLexemes\n .slice(0, firstPredicateIndex < 1 ? 1 : firstPredicateIndex)\n .filter(({ token }) => !token.endsWith(\"ly\"));\n let subject = subjectLexemes.map(({ surface }) => surface).join(\" \");\n let predicate = firstLexemes[firstPredicateIndex < 1 ? 1 : firstPredicateIndex]?.surface;\n if (subject.length === 0 || predicate === undefined) return clauses;\n\n const sourceSpans = [clauses[0]!];\n for (const clause of clauses.slice(1)) {\n const clauseLexemes = groundingLexemes(clause)\n .filter(({ token }) => GROUNDING_STOPWORDS[token] !== true);\n const clausePredicateIndex = clauseLexemes.findIndex(({ isPredicate }) => isPredicate);\n const clauseSubjectLexemes = clausePredicateIndex > 0\n ? clauseLexemes\n .slice(0, clausePredicateIndex)\n .filter(({ token }) => !token.endsWith(\"ly\"))\n : [];\n const repeatsSubject = clauseSubjectLexemes.length === subjectLexemes.length\n && subjectLexemes.every(\n ({ token }, index) => clauseSubjectLexemes[index]?.token === token,\n );\n if (repeatsSubject) {\n sourceSpans.push(clause);\n continue;\n }\n if (clauseSubjectLexemes.length > 0) {\n subjectLexemes = clauseSubjectLexemes;\n subject = subjectLexemes.map(({ surface }) => surface).join(\" \");\n predicate = clauseLexemes[clausePredicateIndex]?.surface;\n sourceSpans.push(clause);\n continue;\n }\n const prefix = clausePredicateIndex === -1 ? `${subject} ${predicate}` : subject;\n sourceSpans.push(clause, `${prefix} ${clause}`);\n }\n return sourceSpans;\n });\n}\n\nexport const GROUNDING_STOPWORDS: Record<string, true> = {\n a: true,\n an: true,\n and: true,\n are: true,\n as: true,\n at: true,\n be: true,\n been: true,\n being: true,\n but: true,\n by: true,\n can: true,\n could: true,\n did: true,\n do: true,\n does: true,\n for: true,\n from: true,\n had: true,\n has: true,\n have: true,\n he: true,\n her: true,\n here: true,\n hers: true,\n him: true,\n his: true,\n how: true,\n i: true,\n if: true,\n in: true,\n into: true,\n is: true,\n it: true,\n its: true,\n just: true,\n me: true,\n my: true,\n no: true,\n not: true,\n of: true,\n on: true,\n only: true,\n or: true,\n our: true,\n ours: true,\n she: true,\n so: true,\n than: true,\n that: true,\n the: true,\n their: true,\n them: true,\n then: true,\n there: true,\n these: true,\n they: true,\n this: true,\n those: true,\n to: true,\n too: true,\n under: true,\n up: true,\n us: true,\n very: true,\n was: true,\n we: true,\n were: true,\n what: true,\n when: true,\n why: true,\n where: true,\n which: true,\n who: true,\n whom: true,\n will: true,\n with: true,\n would: true,\n you: true,\n your: true,\n};\n\nexport const GROUNDING_NEGATION_TOKENS = new Set([\n \"no\",\n \"not\",\n \"false\",\n \"untrue\",\n \"incorrect\",\n \"wrong\",\n \"never\",\n \"without\",\n \"neither\",\n \"nor\",\n \"none\",\n \"cannot\",\n \"cant\",\n \"can't\",\n \"don't\",\n \"doesn't\",\n \"didn't\",\n \"isn't\",\n \"aren't\",\n \"wasn't\",\n \"weren't\",\n \"won't\",\n \"wouldn't\",\n \"couldn't\",\n \"shouldn't\",\n \"haven't\",\n \"hasn't\",\n \"hadn't\",\n]);\n\nexport const GROUNDING_AUXILIARY_TOKENS = new Set([\n \"am\",\n \"are\",\n \"be\",\n \"been\",\n \"being\",\n \"can\",\n \"could\",\n \"did\",\n \"do\",\n \"does\",\n \"had\",\n \"has\",\n \"have\",\n \"is\",\n \"was\",\n \"were\",\n \"will\",\n \"would\",\n \"should\",\n]);\n\nexport const GROUNDING_COPULAR_FORMS = new Set([\n \"am\",\n \"are\",\n \"be\",\n \"been\",\n \"being\",\n \"is\",\n \"was\",\n \"were\",\n]);\n\nexport const GROUNDING_SUBJECT_PRONOUNS = new Set([\n \"he\",\n \"she\",\n \"they\",\n \"it\",\n \"i\",\n \"we\",\n \"you\",\n]);\nexport const GROUNDING_ENTITY_TYPE_PREFIXES = new Set([\n \"person\",\n \"project\",\n \"tool\",\n \"company\",\n \"place\",\n \"other\",\n]);\n\nexport const GROUNDING_COMMON_VERB_FORMS: Record<string, true> = {\n add: true,\n adds: true,\n call: true,\n calls: true,\n contain: true,\n contains: true,\n employ: true,\n deploy: true,\n deploys: true,\n design: true,\n designs: true,\n employs: true,\n fill: true,\n fills: true,\n go: true,\n goes: true,\n gone: true,\n went: true,\n give: true,\n gives: true,\n has: true,\n host: true,\n hosts: true,\n like: true,\n likes: true,\n manage: true,\n manages: true,\n make: true,\n makes: true,\n need: true,\n needs: true,\n own: true,\n owns: true,\n plan: true,\n plans: true,\n prefer: true,\n prefers: true,\n require: true,\n requires: true,\n run: true,\n runs: true,\n sleep: true,\n sleeps: true,\n stop: true,\n stops: true,\n swim: true,\n swims: true,\n share: true,\n shares: true,\n support: true,\n supports: true,\n take: true,\n takes: true,\n try: true,\n tries: true,\n use: true,\n uses: true,\n want: true,\n wants: true,\n work: true,\n works: true,\n};\n\n\nexport interface GroundingLexeme {\n token: string;\n surface: string;\n isPredicate: boolean;\n preserveTerminalS: boolean;\n}\n\nexport function groundingLexemes(text: string): GroundingLexeme[] {\n const rawTokens = (text.normalize(\"NFKC\").match(\n /[\\p{L}\\p{N}]+(?:['’][\\p{L}\\p{N}]+)?(?:\\+\\+[\\p{L}\\p{N}]*|#[\\p{L}\\p{N}]*)?/gu,\n ) ?? []).flatMap(splitSpacelessScriptToken);\n const tokens = rawTokens.map((rawToken) =>\n rawToken.replaceAll(\"’\", \"'\").toLocaleLowerCase());\n let predicateIndex = tokens.findIndex((token, index) => {\n const previousToken = tokens[index - 1];\n const followsAuxiliary = previousToken !== undefined\n && GROUNDING_AUXILIARY_TOKENS.has(previousToken);\n let previousMeaningfulIndex = index - 1;\n while (\n previousMeaningfulIndex >= 0\n && !GROUNDING_COPULAR_FORMS.has(tokens[previousMeaningfulIndex] ?? \"\")\n && (\n GROUNDING_STOPWORDS[tokens[previousMeaningfulIndex] ?? \"\"] === true\n || (tokens[previousMeaningfulIndex] ?? \"\").endsWith(\"ly\")\n )\n ) {\n previousMeaningfulIndex -= 1;\n }\n const followsCopularAuxiliary = GROUNDING_COPULAR_FORMS.has(\n tokens[previousMeaningfulIndex] ?? \"\",\n );\n const capitalized = /^\\p{Lu}/u.test(rawTokens[index] ?? \"\");\n const terminalSInflection = index > 0\n && token.endsWith(\"s\")\n && !token.endsWith(\"ss\")\n && !GROUNDING_AUXILIARY_TOKENS.has(token);\n const capitalizedSubjectHasLaterPredicate = index === 0\n && tokens.some((laterToken, laterIndex) =>\n laterIndex > 0\n && !/^\\p{Lu}/u.test(rawTokens[laterIndex] ?? \"\")\n && (\n GROUNDING_AUXILIARY_TOKENS.has(laterToken)\n || GROUNDING_COMMON_VERB_FORMS[laterToken] === true\n || laterToken.endsWith(\"ed\")\n || laterToken.endsWith(\"ing\")\n ));\n if (capitalized && (index !== 0 || capitalizedSubjectHasLaterPredicate)) return false;\n if (followsCopularAuxiliary && terminalSInflection) return false;\n return GROUNDING_COMMON_VERB_FORMS[token] === true\n || token.endsWith(\"ed\")\n || token.endsWith(\"ing\")\n || (followsAuxiliary && !followsCopularAuxiliary)\n || terminalSInflection;\n });\n if (predicateIndex === -1) {\n const leadingSubjectLength = rawTokens.findIndex((rawToken) => !/^\\p{Lu}/u.test(rawToken));\n if (leadingSubjectLength > 0) {\n predicateIndex = tokens.findIndex((token, index) =>\n index >= leadingSubjectLength\n && (\n GROUNDING_AUXILIARY_TOKENS.has(token)\n || (\n GROUNDING_STOPWORDS[token] !== true\n && !/^\\p{Lu}/u.test(rawTokens[index] ?? \"\")\n )\n ));\n }\n }\n return rawTokens.map((rawToken, index) => {\n const token = tokens[index]!;\n const isPredicate = index === predicateIndex;\n return {\n token,\n surface: rawToken,\n preserveTerminalS: !isPredicate && (\n /^\\p{Lu}/u.test(rawToken)\n || token.endsWith(\"s\")\n ),\n isPredicate,\n };\n });\n}\n\nexport function tokenSequence(text: string): string[] {\n return groundingLexemes(text).map(({ token }) => token);\n}\n\nexport function containsExactTokenSequence(candidate: string, source: string): boolean {\n const candidateTokens = tokenSequence(candidate);\n const sourceTokens = tokenSequence(source);\n if (candidateTokens.length === 0 || candidateTokens.length > sourceTokens.length) return false;\n return sourceTokens.some((_, index) =>\n candidateTokens.every((token, offset) => sourceTokens[index + offset] === token),\n );\n\n}\n\nexport function isNegationCue(token: string): boolean {\n return GROUNDING_NEGATION_TOKENS.has(token) || token.endsWith(\"n't\");\n}\n\nexport function isAttachedNegatedAuxiliary(token: string): boolean {\n return token.endsWith(\"n't\")\n || token === \"cannot\"\n || token === \"cant\"\n || token === \"can't\";\n}\n\nexport function isNegatedAt(tokens: ReadonlyArray<string>, index: number): boolean {\n if (tokens[index - 1] === \"only\" && tokens[index - 2] === \"not\") return false;\n const previousStart = Math.max(0, index - 2);\n for (let i = previousStart; i < index; i += 1) {\n if (isNegationCue(tokens[i])) return true;\n }\n\n if (tokens[index - 1] === \"than\" && tokens[index - 2] === \"rather\") return true;\n if (tokens[index - 1] === \"of\" && tokens[index - 2] === \"instead\") return true;\n\n const next = tokens[index + 1];\n if (next !== undefined && isAttachedNegatedAuxiliary(next)) return true;\n const nextNext = tokens[index + 2];\n return next !== undefined\n && nextNext !== undefined\n && GROUNDING_AUXILIARY_TOKENS.has(next)\n && isNegationCue(nextNext);\n}\n\nexport const GROUNDING_MIN_SHARED_TOKENS = 2;\nexport const GROUNDING_MIN_COVERAGE = 0.5;\n\nconst STRICT_GROUNDING_TOKEN_PREFIX = \"\\u0000\";\nconst INFLECTED_GROUNDING_TOKEN_PREFIX = \"\\u0001\";\n\nexport function stemToken(\n token: string,\n preserveTerminalS = false,\n markExact = false,\n): string {\n if (token.endsWith(\"'s\")) return token.slice(0, -2);\n if (preserveTerminalS) {\n if (!markExact) return token;\n return `${STRICT_GROUNDING_TOKEN_PREFIX}${token}`;\n }\n if (token.length > 5 && token.endsWith(\"ing\")) {\n const stem = token.slice(0, -3);\n const inflectionDoubled = /(.)\\1$/u.test(stem) && stem.length > 3 && !/[lsz]$/u.test(stem);\n const normalized = inflectionDoubled ? stem.slice(0, -1) : stem;\n return markExact ? `${INFLECTED_GROUNDING_TOKEN_PREFIX}${normalized}` : normalized;\n }\n if (token.length > 4 && token.endsWith(\"ied\")) {\n const normalized = `${token.slice(0, -3)}y`;\n return markExact ? `${INFLECTED_GROUNDING_TOKEN_PREFIX}${normalized}` : normalized;\n }\n if (token.length > 4 && token.endsWith(\"ed\")) {\n const stem = token.slice(0, -2);\n const inflectionDoubled = /(.)\\1$/u.test(stem) && stem.length > 3 && !/[lsz]$/u.test(stem);\n const normalized = inflectionDoubled ? stem.slice(0, -1) : stem;\n return markExact ? `${INFLECTED_GROUNDING_TOKEN_PREFIX}${normalized}` : normalized;\n }\n if (token.length > 3 && token.endsWith(\"s\") && !token.endsWith(\"ss\")) {\n return token.endsWith(\"ies\") ? `${token.slice(0, -3)}y` : token.slice(0, -1);\n }\n return token;\n}\n\n\nexport function tokenize(text: string): Set<string> {\n const tokens = new Set<string>();\n for (const { token, preserveTerminalS } of groundingLexemes(text)) {\n if (GROUNDING_STOPWORDS[token] !== true) tokens.add(stemToken(token, preserveTerminalS, true));\n }\n return tokens;\n}\n\nconst SPACELESS_SCRIPT_CHARACTER_PATTERN = new RegExp(\n \"[\\\\p{Script=Han}\\\\p{Script=Hiragana}\\\\p{Script=Katakana}\\\\p{Script=Hangul}\"\n + \"\\\\p{Script=Thai}\\\\p{Script=Lao}\\\\p{Script=Khmer}\\\\p{Script=Myanmar}]\",\n \"u\",\n);\nconst SPACELESS_SCRIPT_LCS_SOURCE_LIMIT = 4096;\n\nfunction containsSpacelessScriptCharacter(text: string): boolean {\n return SPACELESS_SCRIPT_CHARACTER_PATTERN.test(text);\n}\n\n/**\n * Scripts without word separators (CJK, Hangul, Thai, ...) must not become one\n * whitespace-delimited token: a paraphrase never matches a whole-run token, so\n * grounded CJK facts and entity names were dropped. Split those runs into\n * per-character lexemes so contiguous-token matching behaves as substring\n * matching for these scripts.\n */\nfunction splitSpacelessScriptToken(rawToken: string): string[] {\n if (!containsSpacelessScriptCharacter(rawToken)) return [rawToken];\n const parts: string[] = [];\n let otherScriptRun = \"\";\n for (const character of rawToken) {\n if (containsSpacelessScriptCharacter(character)) {\n if (otherScriptRun.length > 0) {\n parts.push(otherScriptRun);\n otherScriptRun = \"\";\n }\n parts.push(character);\n } else {\n otherScriptRun += character;\n }\n }\n if (otherScriptRun.length > 0) parts.push(otherScriptRun);\n return parts;\n}\n\nfunction spacelessScriptCharacterSequence(text: string): string[] {\n const characters: string[] = [];\n for (const character of text.normalize(\"NFKC\")) {\n if (containsSpacelessScriptCharacter(character)) characters.push(character);\n }\n return characters;\n}\n\nfunction spacelessScriptCharacterNgrams(text: string): Set<string> {\n const grams = new Set<string>();\n let previousCharacter = \"\";\n for (const character of spacelessScriptCharacterSequence(text)) {\n if (previousCharacter !== \"\") grams.add(previousCharacter + character);\n previousCharacter = character;\n }\n return grams;\n}\n\nfunction longestCommonSubstringLength(\n left: ReadonlyArray<string>,\n right: ReadonlyArray<string>,\n): number {\n if (left.length === 0 || right.length === 0) return 0;\n let longest = 0;\n let previousRow = new Array<number>(right.length).fill(0);\n for (const leftCharacter of left) {\n const currentRow = new Array<number>(right.length).fill(0);\n for (let index = 0; index < right.length; index += 1) {\n if (leftCharacter !== right[index]) continue;\n currentRow[index] = (index > 0 ? previousRow[index - 1] : 0) + 1;\n if (currentRow[index] > longest) longest = currentRow[index];\n }\n previousRow = currentRow;\n }\n return longest;\n}\n\n/**\n * Script-aware grounding score for candidates written in scripts without word\n * separators. Returns null when the candidate has no such characters, so\n * whitespace-delimited candidates keep the default scorer. The longest-common-\n * span gate rejects topical overlap that shares mostly function characters.\n * ponytail: n-grams and the common-span gate ignore argument order; swap in a\n * segmentation-aware matcher if CJK role confusion surfaces.\n */\nexport function spacelessScriptGroundedTokenScore(candidate: string, source: string): number | null {\n const candidateGrams = spacelessScriptCharacterNgrams(candidate);\n if (candidateGrams.size === 0) return null;\n const sourceGrams = spacelessScriptCharacterNgrams(source);\n let sharedGrams = 0;\n for (const gram of candidateGrams) {\n if (sourceGrams.has(gram)) sharedGrams += 1;\n }\n if (sharedGrams < GROUNDING_MIN_SHARED_TOKENS) return 0;\n const coverage = sharedGrams / candidateGrams.size;\n if (coverage < GROUNDING_MIN_COVERAGE) return 0;\n const candidateCharacters = spacelessScriptCharacterSequence(candidate);\n const sourceCharacters = spacelessScriptCharacterSequence(source);\n if (sourceCharacters.length <= SPACELESS_SCRIPT_LCS_SOURCE_LIMIT) {\n const anchoredFraction = longestCommonSubstringLength(candidateCharacters, sourceCharacters)\n / candidateCharacters.length;\n if (anchoredFraction < GROUNDING_MIN_COVERAGE) return 0;\n }\n const sourceTokens = tokenize(source);\n for (const token of tokenize(candidate)) {\n if (containsSpacelessScriptCharacter(token)) continue;\n if (![...sourceTokens].some((sourceToken) => areGroundingTokensCompatible(token, sourceToken))) {\n return 0;\n }\n }\n return coverage;\n}\n\nexport function normalizeForExactMatch(text: string): string {\n return text.normalize(\"NFKC\").toLocaleLowerCase().replace(/\\s+/gu, \" \").trim();\n}\n\nexport function sourceSentences(source: string): string[] {\n const sentences: string[] = [];\n let sentenceStart = 0;\n for (let index = 0; index < source.length; index += 1) {\n const character = source[index];\n const nextCharacter = source[index + 1];\n const boundary = character === \"!\"\n || character === \"?\"\n || character === \";\"\n || character === \"\\n\"\n || (character === \".\" && (\n nextCharacter === undefined\n || /\\s/u.test(nextCharacter)\n || /[\"')\\]}]/u.test(nextCharacter)\n ));\n if (!boundary) continue;\n let sentenceEnd = character === \"\\n\" ? index : index + 1;\n while (/[.!?;\\n]/u.test(source[sentenceEnd] ?? \"\")) sentenceEnd += 1;\n const sentence = source.slice(sentenceStart, sentenceEnd).trim();\n if (sentence.length > 0) sentences.push(sentence);\n sentenceStart = sentenceEnd;\n index = sentenceEnd - 1;\n }\n const trailingSentence = source.slice(sentenceStart).trim();\n if (trailingSentence.length > 0) sentences.push(trailingSentence);\n return sentences.length > 0 ? sentences : [source];\n}\n\n\nexport function groundingTokenSequence(text: string): string[] {\n let lexemes = groundingLexemes(text);\n while (lexemes.length > 0 && GROUNDING_AUXILIARY_TOKENS.has(lexemes[0]!.token)) {\n lexemes = lexemes.slice(1);\n }\n return lexemes\n .filter(({ token }) => GROUNDING_STOPWORDS[token] !== true)\n .map(({ token, preserveTerminalS }) => stemToken(token, preserveTerminalS, true));\n}\nexport function normalizedGroundingAlignmentTokenSequence(text: string): string[] {\n const normalized = normalizedGroundingTokenSequence(text);\n const firstLexeme = groundingLexemes(text)[0];\n if (firstLexeme === undefined || !GROUNDING_SUBJECT_PRONOUNS.has(firstLexeme.token)) {\n return normalized;\n }\n return [stemToken(firstLexeme.token, firstLexeme.preserveTerminalS, true), ...normalized];\n}\n\n\nexport function normalizedGroundingTokenSequence(text: string): string[] {\n return groundingTokenSequence(text).map((token) => token.replace(/'$/u, \"\"));\n}\n\nexport function areGroundingTokensCompatible(left: string, right: string): boolean {\n const leftPrefix = left[0];\n const rightPrefix = right[0];\n const leftMarked = leftPrefix === STRICT_GROUNDING_TOKEN_PREFIX\n || leftPrefix === INFLECTED_GROUNDING_TOKEN_PREFIX;\n const rightMarked = rightPrefix === STRICT_GROUNDING_TOKEN_PREFIX\n || rightPrefix === INFLECTED_GROUNDING_TOKEN_PREFIX;\n const leftToken = leftMarked ? left.slice(1) : left;\n const rightToken = rightMarked ? right.slice(1) : right;\n if (leftToken === rightToken) {\n const strictToInflected = (\n leftPrefix === STRICT_GROUNDING_TOKEN_PREFIX\n && rightPrefix === INFLECTED_GROUNDING_TOKEN_PREFIX\n ) || (\n rightPrefix === STRICT_GROUNDING_TOKEN_PREFIX\n && leftPrefix === INFLECTED_GROUNDING_TOKEN_PREFIX\n );\n return !strictToInflected;\n }\n if (leftPrefix === STRICT_GROUNDING_TOKEN_PREFIX || rightPrefix === STRICT_GROUNDING_TOKEN_PREFIX) {\n return false;\n }\n return `${leftToken}e` === rightToken || leftToken === `${rightToken}e`;\n}\nconst GROUNDING_DENIAL_REPORTING_VERBS = new Set([\n \"deny\",\n \"denied\",\n \"denies\",\n \"denying\",\n \"dispute\",\n \"disputed\",\n \"disputes\",\n \"disputing\",\n \"reject\",\n \"rejected\",\n \"rejects\",\n \"rejecting\",\n \"refute\",\n \"refuted\",\n \"refutes\",\n \"refuting\",\n \"contradict\",\n \"contradicted\",\n \"contradicts\",\n \"contradicting\",\n \"disprove\",\n \"disproved\",\n \"disproves\",\n \"disproving\",\n]);\n\nfunction isDenialReportingVerb(token: string): boolean {\n return GROUNDING_DENIAL_REPORTING_VERBS.has(token);\n}\nconst GROUNDING_NON_ASSERTIVE_REPORTING_VERBS = new Set([\n \"allege\",\n \"alleged\",\n \"alleges\",\n \"alleging\",\n \"allegedly\",\n \"assert\",\n \"asserted\",\n \"asserts\",\n \"asserting\",\n \"believe\",\n \"believed\",\n \"believes\",\n \"believing\",\n \"claim\",\n \"claimed\",\n \"claims\",\n \"claiming\",\n \"doubt\",\n \"doubted\",\n \"doubts\",\n \"doubting\",\n \"uncertain\",\n \"unsure\",\n \"unclear\",\n \"unknown\",\n \"possibly\",\n \"probably\",\n \"imagine\",\n \"imagined\",\n \"imagines\",\n \"imagining\",\n \"report\",\n \"reported\",\n \"reports\",\n \"reporting\",\n \"reportedly\",\n \"say\",\n \"said\",\n \"says\",\n \"saying\",\n \"speculate\",\n \"speculated\",\n \"speculates\",\n \"speculating\",\n \"suspect\",\n \"suspected\",\n \"suspects\",\n \"suspecting\",\n \"suppose\",\n \"supposed\",\n \"supposes\",\n \"supposing\",\n \"supposedly\",\n \"think\",\n \"thought\",\n \"thinks\",\n \"thinking\",\n]);\n\nfunction isNonAssertiveReportingVerb(token: string): boolean {\n return GROUNDING_NON_ASSERTIVE_REPORTING_VERBS.has(token);\n}\n\nfunction isGroundingClauseBoundary(token: string): boolean {\n return token === \"and\"\n || token === \"but\"\n || token === \"or\"\n || token === \"while\"\n || token === \"although\"\n || token === \"because\";\n}\n\nfunction isNonAssertiveReportingAt(tokens: ReadonlyArray<string>, index: number): boolean {\n let boundary = 0;\n for (let cursor = 0; cursor < index; cursor += 1) {\n if (isGroundingClauseBoundary(tokens[cursor]!)) boundary = cursor + 1;\n }\n for (let cursor = index - 1; cursor >= boundary; cursor -= 1) {\n if (\n tokens[cursor] === \"that\"\n && cursor > boundary\n && isNonAssertiveReportingVerb(tokens[cursor - 1]!)\n ) {\n return true;\n }\n if (isNonAssertiveReportingVerb(tokens[cursor]!) && index - cursor <= 5) return true;\n }\n return false;\n}\n\nfunction isDeniedAt(tokens: ReadonlyArray<string>, index: number): boolean {\n let boundary = 0;\n for (let cursor = 0; cursor < index; cursor += 1) {\n if (isGroundingClauseBoundary(tokens[cursor]!)) boundary = cursor + 1;\n }\n for (let cursor = index - 1; cursor >= boundary; cursor -= 1) {\n const token = tokens[cursor];\n if (token === \"that\" && cursor > boundary && isDenialReportingVerb(tokens[cursor - 1]!)) {\n return true;\n }\n if (isDenialReportingVerb(token) && index - cursor <= 5) return true;\n }\n return false;\n}\n\nexport function hasContradictoryPolarity(candidate: string, source: string): boolean {\n const candidateLexemes = groundingLexemes(candidate);\n const candidateTokens = candidateLexemes.map(({ token }) => token);\n let coherentContradiction = false;\n for (const clause of sourceSentences(source).flatMap((sentence) =>\n sentence.split(/\\s+(?:and|but|or|while|although|because)\\s+/gu))) {\n const sourceLexemes = groundingLexemes(clause);\n const sourceTokens = sourceLexemes.map(({ token }) => token);\n let sourceCursor = 0;\n let allTokensFound = true;\n let contradiction = false;\n for (const [candidateIndex, candidateToken] of candidateTokens.entries()) {\n if (GROUNDING_STOPWORDS[candidateToken] === true) continue;\n const sourceIndex = sourceTokens.findIndex(\n (sourceToken, index) =>\n index >= sourceCursor\n && stemToken(sourceToken, sourceLexemes[index]?.preserveTerminalS === true)\n === stemToken(candidateToken, candidateLexemes[candidateIndex]?.preserveTerminalS === true),\n );\n if (sourceIndex === -1) {\n allTokensFound = false;\n break;\n }\n const candidateNegated = isNegatedAt(candidateTokens, candidateIndex)\n || isDeniedAt(candidateTokens, candidateIndex);\n const sourceNegated = isNegatedAt(sourceTokens, sourceIndex)\n || isDeniedAt(sourceTokens, sourceIndex);\n const candidateNonAssertive = isNonAssertiveReportingAt(candidateTokens, candidateIndex);\n const sourceNonAssertive = isNonAssertiveReportingAt(sourceTokens, sourceIndex);\n if (\n candidateNegated !== sourceNegated\n || candidateNonAssertive !== sourceNonAssertive\n ) {\n contradiction = true;\n }\n sourceCursor = sourceIndex + 1;\n }\n if (allTokensFound) {\n if (!contradiction) return false;\n coherentContradiction = true;\n }\n }\n if (coherentContradiction) return true;\n\n const sourceLexemes = groundingLexemes(source);\n const sourceTokens = sourceLexemes.map(({ token }) => token);\n const sourcePositions = new Map<string, number[]>();\n sourceLexemes.forEach(({ token, preserveTerminalS }, index) => {\n const key = stemToken(token, preserveTerminalS);\n const positions = sourcePositions.get(key);\n if (positions) positions.push(index);\n else sourcePositions.set(key, [index]);\n });\n for (const [candidateIndex, token] of candidateTokens.entries()) {\n if (GROUNDING_STOPWORDS[token] === true) continue;\n const positions = sourcePositions.get(\n stemToken(token, candidateLexemes[candidateIndex]?.preserveTerminalS === true),\n );\n if (!positions || positions.length === 0) continue;\n const sourceIndex = positions[positions.length - 1];\n const candidateNegated = isNegatedAt(candidateTokens, candidateIndex)\n || isDeniedAt(candidateTokens, candidateIndex);\n const sourceNegated = isNegatedAt(sourceTokens, sourceIndex)\n || isDeniedAt(sourceTokens, sourceIndex);\n const candidateNonAssertive = isNonAssertiveReportingAt(candidateTokens, candidateIndex);\n const sourceNonAssertive = isNonAssertiveReportingAt(sourceTokens, sourceIndex);\n if (\n candidateNegated !== sourceNegated\n || candidateNonAssertive !== sourceNonAssertive\n ) {\n return true;\n }\n }\n return false;\n}\n"],"mappings":"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","names":["sourceLexemes","sourceTokens"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SupportPassportCreateGrantRequestSchema,
3
3
  defineOperation
4
- } from "./chunk-BPQ7L27U.js";
4
+ } from "./chunk-MIM7QT6H.js";
5
5
  import {
6
6
  SupportPassportCardCategorySchema,
7
7
  SupportPassportMemoryIdSchema,
@@ -220,4 +220,4 @@ var supportPassportGrantAskOperation = defineOperation({
220
220
  result: await ctx.service.supportPassportAskGrant(grantId, secret, question, ctx.abortSignal)
221
221
  })
222
222
  });
223
- //# sourceMappingURL=chunk-VYMICVRA.js.map
223
+ //# sourceMappingURL=chunk-LQNBQEMC.js.map
@@ -92,6 +92,11 @@ async function loadDaySummaryPrompt() {
92
92
  }
93
93
  return EMBEDDED_DAY_SUMMARY_PROMPT;
94
94
  }
95
+ var FSI = "\u2068";
96
+ var PDI = "\u2069";
97
+ function bidiIsolate(text) {
98
+ return `${FSI}${text}${PDI}`;
99
+ }
95
100
  function formatDaySummaryMemories(memories) {
96
101
  if (typeof memories === "string") {
97
102
  return memories.trim();
@@ -100,7 +105,7 @@ function formatDaySummaryMemories(memories) {
100
105
  const category = memory.frontmatter.category || "fact";
101
106
  const created = memory.frontmatter.created || "unknown";
102
107
  return `[${memory.frontmatter.id}] (${category}, ${created})
103
- ${memory.content}`;
108
+ ${bidiIsolate(memory.content)}`;
104
109
  }).join("\n\n").trim();
105
110
  }
106
111
  async function buildExtensionsFooterForSummary(config) {
@@ -116,4 +121,4 @@ export {
116
121
  formatDaySummaryMemories,
117
122
  buildExtensionsFooterForSummary
118
123
  };
119
- //# sourceMappingURL=chunk-J6QIAYNR.js.map
124
+ //# sourceMappingURL=chunk-LVXBC6YB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/day-summary.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { log } from \"./logger.js\";\nimport type { MemoryFile, PluginConfig } from \"./types.js\";\nimport { discoverMemoryExtensions, renderExtensionsFooter, resolveExtensionsRoot } from \"./memory-extension-host/index.js\";\nimport { resolvePipelineProcessingCapabilities } from \"./capabilities.js\";\n\nconst PROMPT_RELATIVE_PATH = path.join(\"prompts\", \"day_summary.prompt.md\");\n\n// Embedded fallback prompt for packaged/plugin-install builds where\n// prompts/day_summary.prompt.md may not be present in the runtime bundle.\nconst EMBEDDED_DAY_SUMMARY_PROMPT = `# Baseline day-summary prompt\n\nYou are writing an Engram end-of-day summary.\n\nYour job:\n- compress the day into a short, useful recap\n- prioritize concrete events, decisions, mood/energy signals, and open loops\n- include a few practical next actions for tomorrow\n- avoid hype, fluff, therapy-speak, and invented facts\n\nOutput JSON with these keys:\n- \\`summary\\` — one short paragraph\n- \\`bullets\\` — 2 to 5 bullets with the most important moments\n- \\`next_actions\\` — 1 to 3 concrete actions\n- \\`risks_or_open_loops\\` — 0 to 3 things that still need attention\n\nRules:\n- stay grounded in the input only\n- if the day was mixed, say so plainly\n- do not overstate confidence or importance\n- prefer specific verbs over vague abstractions\n\nBrevity:\n- keep the summary under 90 words\n- keep bullets short and information-dense\n- omit anything that does not change what tomorrow should care about\n\nStructure:\n- \\`summary\\` should be one paragraph only\n- \\`bullets\\` should contain the most important moments, not generic restatements\n- \\`next_actions\\` and \\`risks_or_open_loops\\` should be distinct and non-overlapping\n\nRisk:\n- explicitly surface unresolved blockers, dependencies, or fragile assumptions\n- do not bury open loops inside the summary if they deserve separate attention\n\nTone:\n- sound like a clear internal daily note, not a report template\n- stay natural and direct while remaining compact`;\n\nfunction candidateRoots(): string[] {\n const currentFile = fileURLToPath(import.meta.url);\n const here = path.dirname(currentFile);\n const candidates = [path.resolve(here, \"..\"), path.resolve(here, \"..\", \"..\")];\n\n const seen = new Set<string>();\n return candidates.filter((candidate) => {\n const normalized = path.resolve(candidate);\n if (seen.has(normalized)) return false;\n seen.add(normalized);\n return true;\n });\n}\n\nasync function resolvePromptPath(): Promise<string | null> {\n const { existsSync } = await import(\"node:fs\");\n for (const root of candidateRoots()) {\n const candidate = path.join(root, PROMPT_RELATIVE_PATH);\n if (existsSync(candidate)) {\n return candidate;\n }\n }\n return null;\n}\n\nexport async function loadDaySummaryPrompt(): Promise<string> {\n const promptPath = await resolvePromptPath();\n if (promptPath) {\n try {\n const { readFile } = await import(\"node:fs/promises\");\n const raw = await readFile(promptPath, \"utf-8\");\n // CRLF-compatible regex: allow \\r\\n or \\n line endings\n const match = raw.match(/```(?:[a-zA-Z0-9_-]+)?\\r?\\n([\\s\\S]*?)\\r?\\n```/);\n if (match?.[1]) {\n return match[1].trim();\n }\n log.warn(\"day summary prompt file does not contain a fenced prompt block; using embedded fallback\");\n } catch (err) {\n log.warn(`day summary prompt file read failed; using embedded fallback: ${err}`);\n }\n }\n return EMBEDDED_DAY_SUMMARY_PROMPT;\n}\n\nexport function formatDaySummaryMemories(memories: string | MemoryFile[]): string {\n if (typeof memories === \"string\") {\n return memories.trim();\n }\n\n return memories\n .map((memory) => {\n const category = memory.frontmatter.category || \"fact\";\n const created = memory.frontmatter.created || \"unknown\";\n return `[${memory.frontmatter.id}] (${category}, ${created})\\n${memory.content}`;\n })\n .join(\"\\n\\n\")\n .trim();\n}\n\n/**\n * Build a one-line extension footer for day-summary and summary-snapshot contexts.\n * Returns \"\" when extensions are disabled or none are found.\n */\nexport async function buildExtensionsFooterForSummary(\n config: PluginConfig,\n): Promise<string> {\n if (!resolvePipelineProcessingCapabilities(config).memoryExtensions) return \"\";\n const root = resolveExtensionsRoot(config);\n const extensions = await discoverMemoryExtensions(root, log);\n if (extensions.length === 0) return \"\";\n return renderExtensionsFooter(extensions);\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAM9B,IAAM,uBAAuB,KAAK,KAAK,WAAW,uBAAuB;AAIzE,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCpC,SAAS,iBAA2B;AAClC,QAAM,cAAc,cAAc,YAAY,GAAG;AACjD,QAAM,OAAO,KAAK,QAAQ,WAAW;AACrC,QAAM,aAAa,CAAC,KAAK,QAAQ,MAAM,IAAI,GAAG,KAAK,QAAQ,MAAM,MAAM,IAAI,CAAC;AAE5E,QAAM,OAAO,oBAAI,IAAY;AAC7B,SAAO,WAAW,OAAO,CAAC,cAAc;AACtC,UAAM,aAAa,KAAK,QAAQ,SAAS;AACzC,QAAI,KAAK,IAAI,UAAU,EAAG,QAAO;AACjC,SAAK,IAAI,UAAU;AACnB,WAAO;AAAA,EACT,CAAC;AACH;AAEA,eAAe,oBAA4C;AACzD,QAAM,EAAE,WAAW,IAAI,MAAM,OAAO,IAAS;AAC7C,aAAW,QAAQ,eAAe,GAAG;AACnC,UAAM,YAAY,KAAK,KAAK,MAAM,oBAAoB;AACtD,QAAI,WAAW,SAAS,GAAG;AACzB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,uBAAwC;AAC5D,QAAM,aAAa,MAAM,kBAAkB;AAC3C,MAAI,YAAY;AACd,QAAI;AACF,YAAM,EAAE,SAAS,IAAI,MAAM,OAAO,aAAkB;AACpD,YAAM,MAAM,MAAM,SAAS,YAAY,OAAO;AAE9C,YAAM,QAAQ,IAAI,MAAM,+CAA+C;AACvE,UAAI,QAAQ,CAAC,GAAG;AACd,eAAO,MAAM,CAAC,EAAE,KAAK;AAAA,MACvB;AACA,UAAI,KAAK,yFAAyF;AAAA,IACpG,SAAS,KAAK;AACZ,UAAI,KAAK,iEAAiE,GAAG,EAAE;AAAA,IACjF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,yBAAyB,UAAyC;AAChF,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO,SAAS,KAAK;AAAA,EACvB;AAEA,SAAO,SACJ,IAAI,CAAC,WAAW;AACf,UAAM,WAAW,OAAO,YAAY,YAAY;AAChD,UAAM,UAAU,OAAO,YAAY,WAAW;AAC9C,WAAO,IAAI,OAAO,YAAY,EAAE,MAAM,QAAQ,KAAK,OAAO;AAAA,EAAM,OAAO,OAAO;AAAA,EAChF,CAAC,EACA,KAAK,MAAM,EACX,KAAK;AACV;AAMA,eAAsB,gCACpB,QACiB;AACjB,MAAI,CAAC,sCAAsC,MAAM,EAAE,iBAAkB,QAAO;AAC5E,QAAM,OAAO,sBAAsB,MAAM;AACzC,QAAM,aAAa,MAAM,yBAAyB,MAAM,GAAG;AAC3D,MAAI,WAAW,WAAW,EAAG,QAAO;AACpC,SAAO,uBAAuB,UAAU;AAC1C;","names":[]}
1
+ {"version":3,"sources":["../src/day-summary.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { log } from \"./logger.js\";\nimport type { MemoryFile, PluginConfig } from \"./types.js\";\nimport { discoverMemoryExtensions, renderExtensionsFooter, resolveExtensionsRoot } from \"./memory-extension-host/index.js\";\nimport { resolvePipelineProcessingCapabilities } from \"./capabilities.js\";\n\nconst PROMPT_RELATIVE_PATH = path.join(\"prompts\", \"day_summary.prompt.md\");\n\n// Embedded fallback prompt for packaged/plugin-install builds where\n// prompts/day_summary.prompt.md may not be present in the runtime bundle.\nconst EMBEDDED_DAY_SUMMARY_PROMPT = `# Baseline day-summary prompt\n\nYou are writing an Engram end-of-day summary.\n\nYour job:\n- compress the day into a short, useful recap\n- prioritize concrete events, decisions, mood/energy signals, and open loops\n- include a few practical next actions for tomorrow\n- avoid hype, fluff, therapy-speak, and invented facts\n\nOutput JSON with these keys:\n- \\`summary\\` — one short paragraph\n- \\`bullets\\` — 2 to 5 bullets with the most important moments\n- \\`next_actions\\` — 1 to 3 concrete actions\n- \\`risks_or_open_loops\\` — 0 to 3 things that still need attention\n\nRules:\n- stay grounded in the input only\n- if the day was mixed, say so plainly\n- do not overstate confidence or importance\n- prefer specific verbs over vague abstractions\n\nBrevity:\n- keep the summary under 90 words\n- keep bullets short and information-dense\n- omit anything that does not change what tomorrow should care about\n\nStructure:\n- \\`summary\\` should be one paragraph only\n- \\`bullets\\` should contain the most important moments, not generic restatements\n- \\`next_actions\\` and \\`risks_or_open_loops\\` should be distinct and non-overlapping\n\nRisk:\n- explicitly surface unresolved blockers, dependencies, or fragile assumptions\n- do not bury open loops inside the summary if they deserve separate attention\n\nTone:\n- sound like a clear internal daily note, not a report template\n- stay natural and direct while remaining compact`;\n\nfunction candidateRoots(): string[] {\n const currentFile = fileURLToPath(import.meta.url);\n const here = path.dirname(currentFile);\n const candidates = [path.resolve(here, \"..\"), path.resolve(here, \"..\", \"..\")];\n\n const seen = new Set<string>();\n return candidates.filter((candidate) => {\n const normalized = path.resolve(candidate);\n if (seen.has(normalized)) return false;\n seen.add(normalized);\n return true;\n });\n}\n\nasync function resolvePromptPath(): Promise<string | null> {\n const { existsSync } = await import(\"node:fs\");\n for (const root of candidateRoots()) {\n const candidate = path.join(root, PROMPT_RELATIVE_PATH);\n if (existsSync(candidate)) {\n return candidate;\n }\n }\n return null;\n}\n\nexport async function loadDaySummaryPrompt(): Promise<string> {\n const promptPath = await resolvePromptPath();\n if (promptPath) {\n try {\n const { readFile } = await import(\"node:fs/promises\");\n const raw = await readFile(promptPath, \"utf-8\");\n // CRLF-compatible regex: allow \\r\\n or \\n line endings\n const match = raw.match(/```(?:[a-zA-Z0-9_-]+)?\\r?\\n([\\s\\S]*?)\\r?\\n```/);\n if (match?.[1]) {\n return match[1].trim();\n }\n log.warn(\"day summary prompt file does not contain a fenced prompt block; using embedded fallback\");\n } catch (err) {\n log.warn(`day summary prompt file read failed; using embedded fallback: ${err}`);\n }\n }\n return EMBEDDED_DAY_SUMMARY_PROMPT;\n}\n\nconst FSI = \"\\u2068\"; // FIRST STRONG ISOLATE\nconst PDI = \"\\u2069\"; // POP DIRECTIONAL ISOLATE\n\n/**\n * Wrap user content in Unicode bidi isolates so RTL text (Arabic, Hebrew)\n * cannot reorder the surrounding Latin labels on the same composed line.\n * No visible change for LTR content (issue #2198).\n */\nfunction bidiIsolate(text: string): string {\n return `${FSI}${text}${PDI}`;\n}\n\nexport function formatDaySummaryMemories(memories: string | MemoryFile[]): string {\n if (typeof memories === \"string\") {\n return memories.trim();\n }\n\n return memories\n .map((memory) => {\n const category = memory.frontmatter.category || \"fact\";\n const created = memory.frontmatter.created || \"unknown\";\n return `[${memory.frontmatter.id}] (${category}, ${created})\\n${bidiIsolate(memory.content)}`;\n })\n .join(\"\\n\\n\")\n .trim();\n}\n\n/**\n * Build a one-line extension footer for day-summary and summary-snapshot contexts.\n * Returns \"\" when extensions are disabled or none are found.\n */\nexport async function buildExtensionsFooterForSummary(\n config: PluginConfig,\n): Promise<string> {\n if (!resolvePipelineProcessingCapabilities(config).memoryExtensions) return \"\";\n const root = resolveExtensionsRoot(config);\n const extensions = await discoverMemoryExtensions(root, log);\n if (extensions.length === 0) return \"\";\n return renderExtensionsFooter(extensions);\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAM9B,IAAM,uBAAuB,KAAK,KAAK,WAAW,uBAAuB;AAIzE,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCpC,SAAS,iBAA2B;AAClC,QAAM,cAAc,cAAc,YAAY,GAAG;AACjD,QAAM,OAAO,KAAK,QAAQ,WAAW;AACrC,QAAM,aAAa,CAAC,KAAK,QAAQ,MAAM,IAAI,GAAG,KAAK,QAAQ,MAAM,MAAM,IAAI,CAAC;AAE5E,QAAM,OAAO,oBAAI,IAAY;AAC7B,SAAO,WAAW,OAAO,CAAC,cAAc;AACtC,UAAM,aAAa,KAAK,QAAQ,SAAS;AACzC,QAAI,KAAK,IAAI,UAAU,EAAG,QAAO;AACjC,SAAK,IAAI,UAAU;AACnB,WAAO;AAAA,EACT,CAAC;AACH;AAEA,eAAe,oBAA4C;AACzD,QAAM,EAAE,WAAW,IAAI,MAAM,OAAO,IAAS;AAC7C,aAAW,QAAQ,eAAe,GAAG;AACnC,UAAM,YAAY,KAAK,KAAK,MAAM,oBAAoB;AACtD,QAAI,WAAW,SAAS,GAAG;AACzB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,uBAAwC;AAC5D,QAAM,aAAa,MAAM,kBAAkB;AAC3C,MAAI,YAAY;AACd,QAAI;AACF,YAAM,EAAE,SAAS,IAAI,MAAM,OAAO,aAAkB;AACpD,YAAM,MAAM,MAAM,SAAS,YAAY,OAAO;AAE9C,YAAM,QAAQ,IAAI,MAAM,+CAA+C;AACvE,UAAI,QAAQ,CAAC,GAAG;AACd,eAAO,MAAM,CAAC,EAAE,KAAK;AAAA,MACvB;AACA,UAAI,KAAK,yFAAyF;AAAA,IACpG,SAAS,KAAK;AACZ,UAAI,KAAK,iEAAiE,GAAG,EAAE;AAAA,IACjF;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,MAAM;AACZ,IAAM,MAAM;AAOZ,SAAS,YAAY,MAAsB;AACzC,SAAO,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;AAC5B;AAEO,SAAS,yBAAyB,UAAyC;AAChF,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO,SAAS,KAAK;AAAA,EACvB;AAEA,SAAO,SACJ,IAAI,CAAC,WAAW;AACf,UAAM,WAAW,OAAO,YAAY,YAAY;AAChD,UAAM,UAAU,OAAO,YAAY,WAAW;AAC9C,WAAO,IAAI,OAAO,YAAY,EAAE,MAAM,QAAQ,KAAK,OAAO;AAAA,EAAM,YAAY,OAAO,OAAO,CAAC;AAAA,EAC7F,CAAC,EACA,KAAK,MAAM,EACX,KAAK;AACV;AAMA,eAAsB,gCACpB,QACiB;AACjB,MAAI,CAAC,sCAAsC,MAAM,EAAE,iBAAkB,QAAO;AAC5E,QAAM,OAAO,sBAAsB,MAAM;AACzC,QAAM,aAAa,MAAM,yBAAyB,MAAM,GAAG;AAC3D,MAAI,WAAW,WAAW,EAAG,QAAO;AACpC,SAAO,uBAAuB,UAAU;AAC1C;","names":[]}
@@ -1,3 +1,6 @@
1
+ import {
2
+ ChatTransport
3
+ } from "./chunk-JUXOTY6J.js";
1
4
  import {
2
5
  SingleFlightProbe,
3
6
  extractNonRecoverableBackendReason,
@@ -8,9 +11,6 @@ import {
8
11
  resolveUnavailableVerdict,
9
12
  waitForRetryBackoff
10
13
  } from "./chunk-WKDFJXW5.js";
11
- import {
12
- ChatTransport
13
- } from "./chunk-JUXOTY6J.js";
14
14
  import {
15
15
  estimateTokenCount
16
16
  } from "./chunk-TOTT6S2V.js";
@@ -1096,4 +1096,4 @@ var LocalLlmClient = class _LocalLlmClient {
1096
1096
  export {
1097
1097
  LocalLlmClient
1098
1098
  };
1099
- //# sourceMappingURL=chunk-IVKIODHO.js.map
1099
+ //# sourceMappingURL=chunk-MB6GLPRY.js.map
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-GDB4J2H3.js";
9
9
  import {
10
10
  importCapsule
11
- } from "./chunk-6433HV72.js";
11
+ } from "./chunk-MVIYRRVJ.js";
12
12
  import {
13
13
  buildCodingGraphInstallHint,
14
14
  tryLoadCodingGraphModule
@@ -34,18 +34,18 @@ import {
34
34
  import {
35
35
  planSessionTranscriptMigration
36
36
  } from "./chunk-P5FPO2BR.js";
37
- import {
38
- decideDisclosureEscalation
39
- } from "./chunk-H7XKCNR6.js";
40
37
  import {
41
38
  toRecallExplainJson
42
39
  } from "./chunk-3F3CVVDS.js";
43
40
  import {
44
41
  estimateRecallTokens
45
42
  } from "./chunk-QICOU4RY.js";
43
+ import {
44
+ decideDisclosureEscalation
45
+ } from "./chunk-H7XKCNR6.js";
46
46
  import {
47
47
  readAggregateExtractionWatermark
48
- } from "./chunk-QTXNS3HB.js";
48
+ } from "./chunk-WCWIV2JH.js";
49
49
  import {
50
50
  ReplicaDivergenceMonitor
51
51
  } from "./chunk-CVILPI77.js";
@@ -81,19 +81,19 @@ import {
81
81
  } from "./chunk-NLE6TSLG.js";
82
82
  import {
83
83
  LocalLlmClient
84
- } from "./chunk-IVKIODHO.js";
84
+ } from "./chunk-MB6GLPRY.js";
85
85
  import {
86
86
  buildProcedurePersistBody,
87
87
  normalizeProcedureSteps
88
88
  } from "./chunk-QDW3E4RD.js";
89
+ import {
90
+ lcmEvidenceIdentity
91
+ } from "./chunk-C37ZRXX7.js";
89
92
  import {
90
93
  persistExplicitCapture,
91
94
  queueExplicitCaptureForReview,
92
95
  validateExplicitCaptureInput
93
96
  } from "./chunk-NS5ETDYD.js";
94
- import {
95
- lcmEvidenceIdentity
96
- } from "./chunk-C37ZRXX7.js";
97
97
  import {
98
98
  boundRecallContextComposition,
99
99
  composeRecallContext,
@@ -106,11 +106,11 @@ import {
106
106
  listMemoryGovernanceRuns,
107
107
  readMemoryGovernanceRunArtifact,
108
108
  runMemoryGovernance
109
- } from "./chunk-3TDAA7VA.js";
109
+ } from "./chunk-6NMZXEJ7.js";
110
110
  import {
111
111
  CorpusWatermarkCache,
112
112
  computeServiceCorpusCensus
113
- } from "./chunk-MYI3RKI6.js";
113
+ } from "./chunk-SYU5JOBQ.js";
114
114
  import {
115
115
  CrossNamespaceBudget,
116
116
  toBudgetWarning
@@ -134,17 +134,17 @@ import {
134
134
  enqueuePassiveCorrectionNotification,
135
135
  parseBriefingFocus,
136
136
  parseBriefingWindow
137
- } from "./chunk-YTXNDEUS.js";
137
+ } from "./chunk-FEP45MYY.js";
138
138
  import {
139
139
  parseEntityFile,
140
140
  parseFrontmatter,
141
141
  qmdCollectionPathParts,
142
142
  qmdResultPathCandidates,
143
143
  selfDeps
144
- } from "./chunk-Q5XKKDFQ.js";
144
+ } from "./chunk-5SZ6CLGJ.js";
145
145
  import {
146
146
  namespaceCollectionName
147
- } from "./chunk-AJRJDXYR.js";
147
+ } from "./chunk-E7MYSCSL.js";
148
148
  import {
149
149
  DEFAULT_RECALL_DISCLOSURE,
150
150
  isRecallDisclosure
@@ -189,7 +189,7 @@ import {
189
189
  } from "./chunk-JV3C2MNQ.js";
190
190
  import {
191
191
  exportCapsule
192
- } from "./chunk-VDX2J7OX.js";
192
+ } from "./chunk-5W7CTZ2E.js";
193
193
  import {
194
194
  evaluateActionConfidence
195
195
  } from "./chunk-Z2YFLXHU.js";
@@ -17670,4 +17670,4 @@ export {
17670
17670
  EngramAccessService,
17671
17671
  AccessAdminOpsSurface
17672
17672
  };
17673
- //# sourceMappingURL=chunk-BPQ7L27U.js.map
17673
+ //# sourceMappingURL=chunk-MIM7QT6H.js.map