@remnic/core 9.28.0 → 9.29.1

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 (426) hide show
  1. package/dist/access-admin-ops-surface.d.ts +10 -10
  2. package/dist/access-admin-ops-surface.js +32 -32
  3. package/dist/access-authorization-probe.d.ts +10 -10
  4. package/dist/access-authorization-probe.js +33 -33
  5. package/dist/access-boundary.d.ts +10 -10
  6. package/dist/access-boundary.js +32 -32
  7. package/dist/access-cli.js +101 -98
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-health-types.d.ts +1 -1
  10. package/dist/access-http-lcm-compaction.d.ts +10 -10
  11. package/dist/access-http.d.ts +10 -10
  12. package/dist/access-http.js +43 -43
  13. package/dist/access-identity-continuity-surface.d.ts +8 -8
  14. package/dist/access-identity-continuity-surface.js +32 -32
  15. package/dist/access-lcm-surface.d.ts +10 -10
  16. package/dist/access-lcm-surface.js +32 -32
  17. package/dist/access-mcp.d.ts +10 -10
  18. package/dist/access-mcp.js +38 -38
  19. package/dist/access-memory-search-fanout.d.ts +2 -2
  20. package/dist/access-memory-search-fanout.js +3 -3
  21. package/dist/{access-namespace-preflight-BiQ_-iUJ.d.ts → access-namespace-preflight-DCXBkDp0.d.ts} +1 -1
  22. package/dist/access-namespace-preflight.d.ts +3 -3
  23. package/dist/access-namespace-preflight.js +32 -32
  24. package/dist/access-observe-write-surface.d.ts +10 -10
  25. package/dist/access-observe-write-surface.js +32 -32
  26. package/dist/access-operations-batch.js +35 -35
  27. package/dist/access-operations.d.ts +10 -10
  28. package/dist/access-operations.js +37 -37
  29. package/dist/access-recall-concurrency.d.ts +10 -10
  30. package/dist/access-recall-concurrency.js +32 -32
  31. package/dist/access-recall-response.d.ts +10 -10
  32. package/dist/access-recall-response.js +32 -32
  33. package/dist/access-recall-surface.d.ts +10 -10
  34. package/dist/access-recall-surface.js +32 -32
  35. package/dist/access-schema.d.ts +7 -7
  36. package/dist/access-schema.js +4 -4
  37. package/dist/{access-service-CXkIgcGh.d.ts → access-service-DvPW_M5j.d.ts} +7 -7
  38. package/dist/access-service.d.ts +10 -10
  39. package/dist/access-service.js +32 -32
  40. package/dist/access-surface-catalog.d.ts +10 -10
  41. package/dist/access-wearables-meetings-surface.d.ts +3 -3
  42. package/dist/action-confidence.d.ts +1 -1
  43. package/dist/active-memory-bridge.d.ts +1 -1
  44. package/dist/active-memory-bridge.js +3 -3
  45. package/dist/active-recall.d.ts +1 -1
  46. package/dist/active-recall.js +1 -1
  47. package/dist/adapters/index.js +4 -4
  48. package/dist/adapters/registry.js +2 -2
  49. package/dist/behavior-learner.d.ts +1 -1
  50. package/dist/behavior-signals.d.ts +1 -1
  51. package/dist/bootstrap.d.ts +8 -8
  52. package/dist/briefing.d.ts +2 -2
  53. package/dist/briefing.js +8 -8
  54. package/dist/buffer-surprise-report.d.ts +1 -1
  55. package/dist/buffer.d.ts +2 -2
  56. package/dist/buffer.js +2 -2
  57. package/dist/bulk-import/index.d.ts +3 -3
  58. package/dist/calibration.d.ts +1 -1
  59. package/dist/capabilities.d.ts +3 -2
  60. package/dist/capabilities.js +1 -1
  61. package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-GWVG7LGC.js} +2 -2
  62. package/dist/{catalog-Bouj8Gfg.d.ts → catalog-BIVgftWu.d.ts} +1 -1
  63. package/dist/causal-behavior.d.ts +1 -1
  64. package/dist/causal-consolidation.d.ts +1 -1
  65. package/dist/causal-consolidation.js +9 -9
  66. package/dist/causal-trajectory-graph.d.ts +1 -1
  67. package/dist/{chunk-GQSMYXKL.js → chunk-2AXMQWCN.js} +2 -2
  68. package/dist/{chunk-VYYNBJXH.js → chunk-2D7FEUCK.js} +6 -6
  69. package/dist/{chunk-PXQM2HOG.js → chunk-2GXM5N5A.js} +2 -2
  70. package/dist/{chunk-RDQGLJRR.js → chunk-2XRE6FLM.js} +2 -1
  71. package/dist/{chunk-RDQGLJRR.js.map → chunk-2XRE6FLM.js.map} +1 -1
  72. package/dist/{chunk-JIF3VRKQ.js → chunk-35DL7IOI.js} +10 -10
  73. package/dist/{chunk-2H7OEVPO.js → chunk-3GD2HFR6.js} +2 -2
  74. package/dist/{chunk-KKBTBUVT.js → chunk-3JNDOAQ2.js} +5 -5
  75. package/dist/{chunk-4TFIRMTE.js → chunk-4A6YGWQN.js} +2 -2
  76. package/dist/{chunk-IKMAO55B.js → chunk-55MDBZLC.js} +2 -2
  77. package/dist/{chunk-RKXZ7P4V.js → chunk-5QDRGWT2.js} +3 -3
  78. package/dist/{chunk-IPLYGWQF.js → chunk-5W7CTZ2E.js} +6 -6
  79. package/dist/{chunk-ALTP3MFS.js → chunk-5ZCUDWD4.js} +2 -2
  80. package/dist/{chunk-B7GROTXD.js → chunk-6LKEUCEM.js} +2 -2
  81. package/dist/{chunk-2AJ72VVS.js → chunk-7BZOBA5J.js} +3 -3
  82. package/dist/{chunk-44DUJETW.js → chunk-7HXCF4RE.js} +2 -2
  83. package/dist/{chunk-WVVK2RFM.js → chunk-7L45JFPW.js} +14 -14
  84. package/dist/{chunk-R372P2EH.js → chunk-ACXPX4AG.js} +2 -2
  85. package/dist/{chunk-7CPOZH6Y.js → chunk-ALSGMEJR.js} +5 -5
  86. package/dist/{chunk-JGUXPJUQ.js → chunk-AS7YMSL6.js} +2 -2
  87. package/dist/{chunk-DKQM5Q6Q.js → chunk-CW4AGY3G.js} +4 -4
  88. package/dist/{chunk-ZN4UZWMT.js → chunk-D2ANTDGO.js} +3 -3
  89. package/dist/{chunk-3UOSVTFR.js → chunk-D3LMYTBV.js} +9 -9
  90. package/dist/{chunk-FOCEI3TN.js → chunk-DRBXHRXE.js} +2 -1
  91. package/dist/chunk-DRBXHRXE.js.map +1 -0
  92. package/dist/{chunk-LIHC3T43.js → chunk-E5OBR6CJ.js} +4 -4
  93. package/dist/{chunk-XY7QPJDA.js → chunk-E6EE5B67.js} +2 -2
  94. package/dist/{chunk-TBMRQZDY.js → chunk-EP5BVCRI.js} +2 -2
  95. package/dist/{chunk-MJPV4LBH.js → chunk-FUYEVEX7.js} +83 -83
  96. package/dist/{chunk-2BEJ4XCF.js → chunk-FZRQZW4H.js} +2 -2
  97. package/dist/{chunk-X6ROIHFE.js → chunk-G5R3D5UP.js} +2 -2
  98. package/dist/{chunk-2FYNLDKJ.js → chunk-GAWOEQEQ.js} +2 -2
  99. package/dist/{chunk-TKBDJTXG.js → chunk-GBJ4RDFR.js} +94 -20
  100. package/dist/chunk-GBJ4RDFR.js.map +1 -0
  101. package/dist/{chunk-QH6CS6XJ.js → chunk-H24WNPA2.js} +2 -2
  102. package/dist/{chunk-VFNI3RPT.js → chunk-HKJCMOT6.js} +2 -2
  103. package/dist/{chunk-JQ7T5VDC.js → chunk-HUHX2OCX.js} +1 -1
  104. package/dist/chunk-HUHX2OCX.js.map +1 -0
  105. package/dist/{chunk-EZWWCN7I.js → chunk-IAEAFLF2.js} +2 -2
  106. package/dist/{chunk-NBNDVNJ2.js → chunk-IGPEJVBY.js} +3 -3
  107. package/dist/{chunk-MQVINOJQ.js → chunk-IYZ5K7MU.js} +3 -3
  108. package/dist/{chunk-Q5VJUNXA.js → chunk-JMQUBRV6.js} +105 -42
  109. package/dist/chunk-JMQUBRV6.js.map +1 -0
  110. package/dist/{chunk-2TQ2UFKH.js → chunk-JP3YPDAW.js} +57 -57
  111. package/dist/{chunk-P2CLYN6H.js → chunk-K5GB36ME.js} +2 -2
  112. package/dist/{chunk-227UFSEQ.js → chunk-LEPOP46W.js} +4 -4
  113. package/dist/{chunk-FBZTWUK5.js → chunk-OFHFH655.js} +8 -8
  114. package/dist/{chunk-GJPCP5CA.js → chunk-OP6F6L3S.js} +2 -2
  115. package/dist/{chunk-FGBJBYWP.js → chunk-OVRQLAYR.js} +3 -3
  116. package/dist/{chunk-2NLLXCJG.js → chunk-OWHERGF2.js} +2 -2
  117. package/dist/{chunk-3BSJBIZ3.js → chunk-OYJKSZIQ.js} +2 -2
  118. package/dist/chunk-P2BM76KT.js +528 -0
  119. package/dist/chunk-P2BM76KT.js.map +1 -0
  120. package/dist/{chunk-UR5SIN7H.js → chunk-PBUZNGMX.js} +30 -30
  121. package/dist/{chunk-P2OZKKYP.js → chunk-PHWUFPCO.js} +2 -2
  122. package/dist/{chunk-Q6YJW6KE.js → chunk-PKRIQL3V.js} +2 -2
  123. package/dist/{chunk-BR4UFMLO.js → chunk-PTSNLEXK.js} +3 -3
  124. package/dist/{chunk-AHFZXUZM.js → chunk-QDKK63Y7.js} +3 -3
  125. package/dist/{chunk-JBPKEARU.js → chunk-RKNJBZ55.js} +4 -4
  126. package/dist/{chunk-FCCMFVS6.js → chunk-RPSYDM6C.js} +2 -2
  127. package/dist/chunk-RPW2NOU6.js +33 -0
  128. package/dist/chunk-RPW2NOU6.js.map +1 -0
  129. package/dist/{chunk-MWTMTW2T.js → chunk-SH6YO3LT.js} +3 -3
  130. package/dist/{chunk-IYT632D5.js → chunk-UBKEQOTD.js} +3 -3
  131. package/dist/{chunk-BJJAX3IZ.js → chunk-UTRO5UJU.js} +2 -2
  132. package/dist/{chunk-X7Y7WX73.js → chunk-UVYI6VIX.js} +1 -1
  133. package/dist/{chunk-S24E4MBQ.js → chunk-VSURVXKY.js} +9 -9
  134. package/dist/chunk-WOCNN776.js +742 -0
  135. package/dist/chunk-WOCNN776.js.map +1 -0
  136. package/dist/{chunk-YOBNCD3Z.js → chunk-WRFBW2TT.js} +10 -10
  137. package/dist/{chunk-MXJ3VP6S.js → chunk-WU7TTVOD.js} +7 -7
  138. package/dist/{chunk-EG64LXKL.js → chunk-XOZ4ALGB.js} +3 -3
  139. package/dist/{chunk-2PHX3I5C.js → chunk-Z54EM5YZ.js} +10 -10
  140. package/dist/{cli-DJbkaZBU.d.ts → cli-CxoSOiG0.d.ts} +5 -5
  141. package/dist/cli.d.ts +12 -12
  142. package/dist/cli.js +65 -65
  143. package/dist/compounding/engine.d.ts +2 -2
  144. package/dist/compounding/engine.js +9 -9
  145. package/dist/compounding/preference-consolidator.d.ts +1 -1
  146. package/dist/compression-optimizer.d.ts +1 -1
  147. package/dist/config.d.ts +1 -1
  148. package/dist/config.js +1 -1
  149. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  150. package/dist/connectors/codex-materialize-runner.js +8 -8
  151. package/dist/connectors/codex-materialize.d.ts +1 -1
  152. package/dist/connectors/index.d.ts +1 -1
  153. package/dist/connectors/index.js +9 -9
  154. package/dist/consolidation-provenance-check.d.ts +2 -2
  155. package/dist/consolidation-undo.d.ts +2 -2
  156. package/dist/contradiction/index.d.ts +2 -2
  157. package/dist/contradiction/index.js +6 -6
  158. package/dist/{contradiction-scan-HMF7CNKD.js → contradiction-scan-HYLIRMJ2.js} +3 -3
  159. package/dist/conversation-index/backend.d.ts +1 -1
  160. package/dist/conversation-index/backend.js +2 -2
  161. package/dist/conversation-index/chunker.d.ts +1 -1
  162. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  163. package/dist/conversation-index/indexer.d.ts +1 -1
  164. package/dist/conversation-index/search.d.ts +1 -1
  165. package/dist/corpus-watermark.d.ts +1 -1
  166. package/dist/corpus-watermark.js +16 -16
  167. package/dist/day-summary.d.ts +1 -1
  168. package/dist/day-summary.js +2 -2
  169. package/dist/delinearize.d.ts +1 -1
  170. package/dist/direct-answer-wiring.d.ts +1 -1
  171. package/dist/direct-answer.d.ts +1 -1
  172. package/dist/embedding-fallback.d.ts +1 -1
  173. package/dist/embedding-fallback.js +2 -2
  174. package/dist/enrichment/index.d.ts +1 -1
  175. package/dist/entity-retrieval.d.ts +2 -2
  176. package/dist/entity-retrieval.js +8 -8
  177. package/dist/entity-schema.d.ts +1 -1
  178. package/dist/explicit-capture.d.ts +8 -8
  179. package/dist/explicit-capture.js +2 -2
  180. package/dist/extraction-error-classification.d.ts +1 -1
  181. package/dist/extraction-faithfulness.d.ts +1 -1
  182. package/dist/extraction-judge-telemetry.d.ts +1 -1
  183. package/dist/extraction-judge-training.d.ts +1 -1
  184. package/dist/extraction-judge.d.ts +1 -1
  185. package/dist/extraction-liveness.d.ts +1 -1
  186. package/dist/extraction-source-grounding-helpers.d.ts +34 -0
  187. package/dist/extraction-source-grounding-helpers.js +62 -0
  188. package/dist/extraction-source-grounding-helpers.js.map +1 -0
  189. package/dist/extraction-source-grounding-rules.d.ts +18 -0
  190. package/dist/extraction-source-grounding-rules.js +12 -0
  191. package/dist/extraction-source-grounding-rules.js.map +1 -0
  192. package/dist/extraction-source-grounding.d.ts +11 -0
  193. package/dist/extraction-source-grounding.js +13 -0
  194. package/dist/extraction-source-grounding.js.map +1 -0
  195. package/dist/extraction.d.ts +3 -1
  196. package/dist/extraction.js +7 -4
  197. package/dist/fallback-llm.d.ts +1 -1
  198. package/dist/{first-start-migration-BKNGOFED.js → first-start-migration-F2QJD66E.js} +5 -5
  199. package/dist/graph-dashboard-diff.d.ts +1 -1
  200. package/dist/graph-dashboard-key.d.ts +1 -1
  201. package/dist/graph-dashboard-parser.d.ts +1 -1
  202. package/dist/graph-edge-reinforcement.d.ts +1 -1
  203. package/dist/graph-snapshot.d.ts +1 -1
  204. package/dist/graph.d.ts +1 -1
  205. package/dist/importance.d.ts +1 -1
  206. package/dist/importers/index.d.ts +1 -1
  207. package/dist/in-flight-reads.d.ts +1 -1
  208. package/dist/index.d.ts +19 -19
  209. package/dist/index.js +156 -153
  210. package/dist/intent.d.ts +1 -1
  211. package/dist/lcm/engine.d.ts +1 -1
  212. package/dist/lcm/engine.js +4 -4
  213. package/dist/lcm/index.d.ts +1 -1
  214. package/dist/lcm/index.js +10 -10
  215. package/dist/lcm/tools.d.ts +1 -1
  216. package/dist/lifecycle.d.ts +1 -1
  217. package/dist/live-connectors-runner.d.ts +1 -1
  218. package/dist/local-llm.d.ts +1 -1
  219. package/dist/local-llm.js +2 -2
  220. package/dist/local-model-endpoint.d.ts +1 -1
  221. package/dist/maintenance/memory-governance.d.ts +1 -1
  222. package/dist/maintenance/memory-governance.js +8 -8
  223. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  224. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -8
  225. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  226. package/dist/maintenance/rebuild-memory-projection.js +9 -9
  227. package/dist/{maintenance-DveW6azo.d.ts → maintenance-Cb-PjxQd.d.ts} +3 -3
  228. package/dist/mcp-memory-inspector-app.d.ts +10 -10
  229. package/dist/memory-action-policy.d.ts +1 -1
  230. package/dist/memory-cache.d.ts +1 -1
  231. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  232. package/dist/memory-projection-store.d.ts +1 -1
  233. package/dist/memory-provenance.d.ts +1 -1
  234. package/dist/memory-worth-outcomes.d.ts +2 -2
  235. package/dist/models-json.d.ts +1 -1
  236. package/dist/namespaces/migrate.d.ts +3 -3
  237. package/dist/namespaces/migrate.js +15 -15
  238. package/dist/namespaces/principal.d.ts +1 -1
  239. package/dist/namespaces/principal.js +2 -2
  240. package/dist/namespaces/search.d.ts +1 -1
  241. package/dist/namespaces/search.js +7 -7
  242. package/dist/namespaces/storage.d.ts +3 -3
  243. package/dist/namespaces/storage.js +8 -8
  244. package/dist/native-knowledge.d.ts +1 -1
  245. package/dist/offline-sync-impression-drain.d.ts +1 -1
  246. package/dist/offline-sync-impression-drain.js +6 -6
  247. package/dist/operator-doctor-corpus.d.ts +1 -1
  248. package/dist/operator-doctor-corpus.js +17 -17
  249. package/dist/operator-doctor-replica.d.ts +1 -1
  250. package/dist/operator-toolkit.d.ts +3 -3
  251. package/dist/operator-toolkit.js +23 -23
  252. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  253. package/dist/orchestration/compression-guideline-coordinator.js +2 -2
  254. package/dist/orchestration/maintenance.d.ts +4 -4
  255. package/dist/orchestration/maintenance.js +15 -15
  256. package/dist/{orchestrator-Cvlgpe6I.d.ts → orchestrator-5GKqb_HL.d.ts} +7 -7
  257. package/dist/orchestrator.d.ts +8 -8
  258. package/dist/orchestrator.js +103 -100
  259. package/dist/patterns-cli.d.ts +1 -1
  260. package/dist/{pipeline-BveYVaz7.d.ts → pipeline-3Qi1TpRo.d.ts} +1 -1
  261. package/dist/policy-runtime.d.ts +1 -1
  262. package/dist/proactive-contention.d.ts +1 -1
  263. package/dist/provenance.d.ts +1 -1
  264. package/dist/{qmd-CLWDsbYR.d.ts → qmd-D9JqzzRX.d.ts} +1 -1
  265. package/dist/qmd-preflight.d.ts +2 -2
  266. package/dist/qmd-recall-cache.d.ts +1 -1
  267. package/dist/qmd.d.ts +2 -2
  268. package/dist/recall-concurrency-config.d.ts +1 -1
  269. package/dist/recall-disclosure-escalation.d.ts +1 -1
  270. package/dist/recall-explain-renderer.d.ts +1 -1
  271. package/dist/recall-explain-renderer.js +3 -3
  272. package/dist/recall-memory-map.d.ts +1 -1
  273. package/dist/recall-planner-llm.d.ts +1 -1
  274. package/dist/recall-state.d.ts +1 -1
  275. package/dist/recall-tag-filter.d.ts +1 -1
  276. package/dist/recall-timings.d.ts +1 -1
  277. package/dist/recall-xray-cli.d.ts +1 -1
  278. package/dist/recall-xray-cli.js +4 -4
  279. package/dist/recall-xray-renderer.d.ts +1 -1
  280. package/dist/recall-xray-renderer.js +3 -3
  281. package/dist/recall-xray.d.ts +1 -1
  282. package/dist/recall-xray.js +2 -2
  283. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  284. package/dist/replay/normalizers/claude.d.ts +1 -1
  285. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  286. package/dist/replay/normalizers/shared.d.ts +1 -1
  287. package/dist/replay/runner.d.ts +1 -1
  288. package/dist/replay/types.d.ts +1 -1
  289. package/dist/replica-divergence.d.ts +1 -1
  290. package/dist/replica-peers-config.d.ts +1 -1
  291. package/dist/resolve-auth-token.d.ts +1 -1
  292. package/dist/resume-bundles.js +2 -2
  293. package/dist/retrieval-agents.d.ts +2 -2
  294. package/dist/retrieval-tiers.d.ts +1 -1
  295. package/dist/routing/engine.d.ts +1 -1
  296. package/dist/routing/store.d.ts +1 -1
  297. package/dist/salvage-envelope.d.ts +1 -1
  298. package/dist/{scope-profiles-BVf3DZ7z.d.ts → scope-profiles-C4g6_UdP.d.ts} +1 -1
  299. package/dist/search/embed-helper.d.ts +1 -1
  300. package/dist/search/embed-helper.js +2 -2
  301. package/dist/search/factory.d.ts +1 -1
  302. package/dist/search/factory.js +6 -6
  303. package/dist/search/index.d.ts +1 -1
  304. package/dist/search/index.js +10 -10
  305. package/dist/search/lancedb-backend.d.ts +1 -1
  306. package/dist/search/meilisearch-backend.d.ts +1 -1
  307. package/dist/search/noop-backend.d.ts +1 -1
  308. package/dist/search/orama-backend.d.ts +1 -1
  309. package/dist/search/port.d.ts +1 -1
  310. package/dist/search/remote-backend.d.ts +1 -1
  311. package/dist/{semantic-consolidation-DXLV47y2.d.ts → semantic-consolidation-BrxqnzTW.d.ts} +1 -1
  312. package/dist/semantic-consolidation.d.ts +2 -2
  313. package/dist/semantic-consolidation.js +9 -9
  314. package/dist/semantic-rule-promotion.js +8 -8
  315. package/dist/semantic-rule-verifier.d.ts +1 -1
  316. package/dist/semantic-rule-verifier.js +8 -8
  317. package/dist/{service-DbgPTeMJ.d.ts → service-Bi1JgxdP.d.ts} +2 -2
  318. package/dist/session-observer-bands.d.ts +1 -1
  319. package/dist/session-observer-state.d.ts +1 -1
  320. package/dist/shared-context/manager.d.ts +1 -1
  321. package/dist/shared-context/manager.js +2 -2
  322. package/dist/signal.d.ts +1 -1
  323. package/dist/{storage-DOzTm8wG.d.ts → storage-CcH6yPk2.d.ts} +1 -1
  324. package/dist/storage.d.ts +2 -2
  325. package/dist/storage.js +7 -7
  326. package/dist/summarizer.d.ts +1 -1
  327. package/dist/summarizer.js +3 -3
  328. package/dist/summary-snapshot.d.ts +1 -1
  329. package/dist/temporal-supersession.d.ts +2 -2
  330. package/dist/temporal-timeline-recall.d.ts +1 -1
  331. package/dist/temporal-validity.d.ts +1 -1
  332. package/dist/threading.d.ts +1 -1
  333. package/dist/tier-migration.d.ts +2 -2
  334. package/dist/tier-routing.d.ts +1 -1
  335. package/dist/{tier-stats-XKD7SXYY.js → tier-stats-OPTSBNRH.js} +2 -2
  336. package/dist/topics.d.ts +1 -1
  337. package/dist/transcript.d.ts +1 -1
  338. package/dist/transfer/autodetect.js +1 -1
  339. package/dist/transfer/backup.js +2 -2
  340. package/dist/transfer/capsule-export.js +3 -3
  341. package/dist/transfer/capsule-import.js +2 -2
  342. package/dist/trust-score-stage.d.ts +1 -1
  343. package/dist/trust-score.d.ts +1 -1
  344. package/dist/{types-BA7W-_xy.d.ts → types-Dg0w9ADr.d.ts} +1 -0
  345. package/dist/types.d.ts +1 -1
  346. package/dist/types.js +1 -1
  347. package/dist/utility-runtime.d.ts +1 -1
  348. package/dist/verified-recall.js +8 -8
  349. package/dist/write-envelope.d.ts +1 -1
  350. package/package.json +2 -2
  351. package/src/capabilities.test.ts +1 -0
  352. package/src/capabilities.ts +7 -7
  353. package/src/config.test.ts +5 -0
  354. package/src/config.ts +1 -1
  355. package/src/extraction-source-grounding-helpers.ts +603 -0
  356. package/src/extraction-source-grounding-rules.ts +1031 -0
  357. package/src/extraction-source-grounding.test.ts +2337 -0
  358. package/src/extraction-source-grounding.ts +50 -0
  359. package/src/extraction.ts +120 -15
  360. package/src/storage/entity-canonical-id-migration.ts +151 -23
  361. package/src/types.ts +2 -2
  362. package/dist/chunk-FOCEI3TN.js.map +0 -1
  363. package/dist/chunk-JQ7T5VDC.js.map +0 -1
  364. package/dist/chunk-Q5VJUNXA.js.map +0 -1
  365. package/dist/chunk-TKBDJTXG.js.map +0 -1
  366. /package/dist/{capsule-crypto-7FJQINUR.js.map → capsule-crypto-GWVG7LGC.js.map} +0 -0
  367. /package/dist/{chunk-GQSMYXKL.js.map → chunk-2AXMQWCN.js.map} +0 -0
  368. /package/dist/{chunk-VYYNBJXH.js.map → chunk-2D7FEUCK.js.map} +0 -0
  369. /package/dist/{chunk-PXQM2HOG.js.map → chunk-2GXM5N5A.js.map} +0 -0
  370. /package/dist/{chunk-JIF3VRKQ.js.map → chunk-35DL7IOI.js.map} +0 -0
  371. /package/dist/{chunk-2H7OEVPO.js.map → chunk-3GD2HFR6.js.map} +0 -0
  372. /package/dist/{chunk-KKBTBUVT.js.map → chunk-3JNDOAQ2.js.map} +0 -0
  373. /package/dist/{chunk-4TFIRMTE.js.map → chunk-4A6YGWQN.js.map} +0 -0
  374. /package/dist/{chunk-IKMAO55B.js.map → chunk-55MDBZLC.js.map} +0 -0
  375. /package/dist/{chunk-RKXZ7P4V.js.map → chunk-5QDRGWT2.js.map} +0 -0
  376. /package/dist/{chunk-IPLYGWQF.js.map → chunk-5W7CTZ2E.js.map} +0 -0
  377. /package/dist/{chunk-ALTP3MFS.js.map → chunk-5ZCUDWD4.js.map} +0 -0
  378. /package/dist/{chunk-B7GROTXD.js.map → chunk-6LKEUCEM.js.map} +0 -0
  379. /package/dist/{chunk-2AJ72VVS.js.map → chunk-7BZOBA5J.js.map} +0 -0
  380. /package/dist/{chunk-44DUJETW.js.map → chunk-7HXCF4RE.js.map} +0 -0
  381. /package/dist/{chunk-WVVK2RFM.js.map → chunk-7L45JFPW.js.map} +0 -0
  382. /package/dist/{chunk-R372P2EH.js.map → chunk-ACXPX4AG.js.map} +0 -0
  383. /package/dist/{chunk-7CPOZH6Y.js.map → chunk-ALSGMEJR.js.map} +0 -0
  384. /package/dist/{chunk-JGUXPJUQ.js.map → chunk-AS7YMSL6.js.map} +0 -0
  385. /package/dist/{chunk-DKQM5Q6Q.js.map → chunk-CW4AGY3G.js.map} +0 -0
  386. /package/dist/{chunk-ZN4UZWMT.js.map → chunk-D2ANTDGO.js.map} +0 -0
  387. /package/dist/{chunk-3UOSVTFR.js.map → chunk-D3LMYTBV.js.map} +0 -0
  388. /package/dist/{chunk-LIHC3T43.js.map → chunk-E5OBR6CJ.js.map} +0 -0
  389. /package/dist/{chunk-XY7QPJDA.js.map → chunk-E6EE5B67.js.map} +0 -0
  390. /package/dist/{chunk-TBMRQZDY.js.map → chunk-EP5BVCRI.js.map} +0 -0
  391. /package/dist/{chunk-MJPV4LBH.js.map → chunk-FUYEVEX7.js.map} +0 -0
  392. /package/dist/{chunk-2BEJ4XCF.js.map → chunk-FZRQZW4H.js.map} +0 -0
  393. /package/dist/{chunk-X6ROIHFE.js.map → chunk-G5R3D5UP.js.map} +0 -0
  394. /package/dist/{chunk-2FYNLDKJ.js.map → chunk-GAWOEQEQ.js.map} +0 -0
  395. /package/dist/{chunk-QH6CS6XJ.js.map → chunk-H24WNPA2.js.map} +0 -0
  396. /package/dist/{chunk-VFNI3RPT.js.map → chunk-HKJCMOT6.js.map} +0 -0
  397. /package/dist/{chunk-EZWWCN7I.js.map → chunk-IAEAFLF2.js.map} +0 -0
  398. /package/dist/{chunk-NBNDVNJ2.js.map → chunk-IGPEJVBY.js.map} +0 -0
  399. /package/dist/{chunk-MQVINOJQ.js.map → chunk-IYZ5K7MU.js.map} +0 -0
  400. /package/dist/{chunk-2TQ2UFKH.js.map → chunk-JP3YPDAW.js.map} +0 -0
  401. /package/dist/{chunk-P2CLYN6H.js.map → chunk-K5GB36ME.js.map} +0 -0
  402. /package/dist/{chunk-227UFSEQ.js.map → chunk-LEPOP46W.js.map} +0 -0
  403. /package/dist/{chunk-FBZTWUK5.js.map → chunk-OFHFH655.js.map} +0 -0
  404. /package/dist/{chunk-GJPCP5CA.js.map → chunk-OP6F6L3S.js.map} +0 -0
  405. /package/dist/{chunk-FGBJBYWP.js.map → chunk-OVRQLAYR.js.map} +0 -0
  406. /package/dist/{chunk-2NLLXCJG.js.map → chunk-OWHERGF2.js.map} +0 -0
  407. /package/dist/{chunk-3BSJBIZ3.js.map → chunk-OYJKSZIQ.js.map} +0 -0
  408. /package/dist/{chunk-UR5SIN7H.js.map → chunk-PBUZNGMX.js.map} +0 -0
  409. /package/dist/{chunk-P2OZKKYP.js.map → chunk-PHWUFPCO.js.map} +0 -0
  410. /package/dist/{chunk-Q6YJW6KE.js.map → chunk-PKRIQL3V.js.map} +0 -0
  411. /package/dist/{chunk-BR4UFMLO.js.map → chunk-PTSNLEXK.js.map} +0 -0
  412. /package/dist/{chunk-AHFZXUZM.js.map → chunk-QDKK63Y7.js.map} +0 -0
  413. /package/dist/{chunk-JBPKEARU.js.map → chunk-RKNJBZ55.js.map} +0 -0
  414. /package/dist/{chunk-FCCMFVS6.js.map → chunk-RPSYDM6C.js.map} +0 -0
  415. /package/dist/{chunk-MWTMTW2T.js.map → chunk-SH6YO3LT.js.map} +0 -0
  416. /package/dist/{chunk-IYT632D5.js.map → chunk-UBKEQOTD.js.map} +0 -0
  417. /package/dist/{chunk-BJJAX3IZ.js.map → chunk-UTRO5UJU.js.map} +0 -0
  418. /package/dist/{chunk-X7Y7WX73.js.map → chunk-UVYI6VIX.js.map} +0 -0
  419. /package/dist/{chunk-S24E4MBQ.js.map → chunk-VSURVXKY.js.map} +0 -0
  420. /package/dist/{chunk-YOBNCD3Z.js.map → chunk-WRFBW2TT.js.map} +0 -0
  421. /package/dist/{chunk-MXJ3VP6S.js.map → chunk-WU7TTVOD.js.map} +0 -0
  422. /package/dist/{chunk-EG64LXKL.js.map → chunk-XOZ4ALGB.js.map} +0 -0
  423. /package/dist/{chunk-2PHX3I5C.js.map → chunk-Z54EM5YZ.js.map} +0 -0
  424. /package/dist/{contradiction-scan-HMF7CNKD.js.map → contradiction-scan-HYLIRMJ2.js.map} +0 -0
  425. /package/dist/{first-start-migration-BKNGOFED.js.map → first-start-migration-F2QJD66E.js.map} +0 -0
  426. /package/dist/{tier-stats-XKD7SXYY.js.map → tier-stats-OPTSBNRH.js.map} +0 -0
@@ -0,0 +1,528 @@
1
+ // src/extraction-source-grounding-helpers.ts
2
+ function isInterrogativeSourceSentence(sentence) {
3
+ const normalized = sentence.trim();
4
+ const embeddedQuestionVerbIndex = normalized.search(
5
+ /\b(?:determine|know|wonder|ask(?:ed)?|question|decide|check|confirm|find|figure|understand|unclear)\b/iu
6
+ );
7
+ const embeddedQuestionMarkerIndex = normalized.search(/\b(?:whether|if)\b/iu);
8
+ const hasEmbeddedQuestion = embeddedQuestionVerbIndex >= 0 && embeddedQuestionMarkerIndex > embeddedQuestionVerbIndex;
9
+ return normalized.endsWith("?") || hasEmbeddedQuestion || !normalized.includes(":") && /^(?: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)\b/iu.test(
10
+ normalized
11
+ );
12
+ }
13
+ function containsContiguousGroundingTokens(candidateTokens, sourceTokens) {
14
+ if (candidateTokens.length === 0 || candidateTokens.length > sourceTokens.length) return false;
15
+ return sourceTokens.some(
16
+ (_, start) => candidateTokens.every((token, offset) => sourceTokens[start + offset] === token)
17
+ );
18
+ }
19
+ function hasExplicitRoleSubjectToken(candidateRole, sourceTokensBySentence) {
20
+ return candidateRole !== void 0 && sourceTokensBySentence.some((tokens) => tokens.includes(candidateRole));
21
+ }
22
+ function splitGroundingClauses(sentences) {
23
+ return sentences.flatMap(
24
+ (sentence) => sentence.split(/,\s+(?=[\p{L}][\p{L}\p{N}'’-]*\s+\S)/gu).flatMap(
25
+ (commaClause) => commaClause.split(/\s*(?::|[—–])\s+|\s+\/\s+/u).flatMap(
26
+ (delimiterClause) => delimiterClause.split(/\s+(?:and|but|or|while|although|because)\s+/gu).map((clause) => clause.trim()).filter((clause) => clause.length > 0)
27
+ )
28
+ )
29
+ );
30
+ }
31
+ var GROUNDING_STOPWORDS = {
32
+ a: true,
33
+ an: true,
34
+ and: true,
35
+ are: true,
36
+ as: true,
37
+ at: true,
38
+ be: true,
39
+ been: true,
40
+ being: true,
41
+ but: true,
42
+ by: true,
43
+ can: true,
44
+ could: true,
45
+ did: true,
46
+ do: true,
47
+ does: true,
48
+ for: true,
49
+ from: true,
50
+ had: true,
51
+ has: true,
52
+ have: true,
53
+ he: true,
54
+ her: true,
55
+ here: true,
56
+ hers: true,
57
+ him: true,
58
+ his: true,
59
+ how: true,
60
+ i: true,
61
+ if: true,
62
+ in: true,
63
+ into: true,
64
+ is: true,
65
+ it: true,
66
+ its: true,
67
+ just: true,
68
+ me: true,
69
+ my: true,
70
+ no: true,
71
+ not: true,
72
+ of: true,
73
+ on: true,
74
+ only: true,
75
+ or: true,
76
+ our: true,
77
+ ours: true,
78
+ she: true,
79
+ so: true,
80
+ than: true,
81
+ that: true,
82
+ the: true,
83
+ their: true,
84
+ them: true,
85
+ then: true,
86
+ there: true,
87
+ these: true,
88
+ they: true,
89
+ this: true,
90
+ those: true,
91
+ to: true,
92
+ too: true,
93
+ under: true,
94
+ up: true,
95
+ us: true,
96
+ very: true,
97
+ was: true,
98
+ we: true,
99
+ were: true,
100
+ what: true,
101
+ when: true,
102
+ why: true,
103
+ where: true,
104
+ which: true,
105
+ who: true,
106
+ will: true,
107
+ with: true,
108
+ would: true,
109
+ you: true,
110
+ your: true
111
+ };
112
+ var GROUNDING_NEGATION_TOKENS = /* @__PURE__ */ new Set([
113
+ "no",
114
+ "not",
115
+ "false",
116
+ "untrue",
117
+ "incorrect",
118
+ "wrong",
119
+ "never",
120
+ "without",
121
+ "neither",
122
+ "nor",
123
+ "none",
124
+ "cannot",
125
+ "cant",
126
+ "can't",
127
+ "don't",
128
+ "doesn't",
129
+ "didn't",
130
+ "isn't",
131
+ "aren't",
132
+ "wasn't",
133
+ "weren't",
134
+ "won't",
135
+ "wouldn't",
136
+ "couldn't",
137
+ "shouldn't",
138
+ "haven't",
139
+ "hasn't",
140
+ "hadn't"
141
+ ]);
142
+ var GROUNDING_AUXILIARY_TOKENS = /* @__PURE__ */ new Set([
143
+ "am",
144
+ "are",
145
+ "be",
146
+ "been",
147
+ "being",
148
+ "can",
149
+ "could",
150
+ "did",
151
+ "do",
152
+ "does",
153
+ "had",
154
+ "has",
155
+ "have",
156
+ "is",
157
+ "was",
158
+ "were",
159
+ "will",
160
+ "would",
161
+ "should"
162
+ ]);
163
+ var GROUNDING_COPULAR_FORMS = /* @__PURE__ */ new Set([
164
+ "am",
165
+ "are",
166
+ "be",
167
+ "been",
168
+ "being",
169
+ "is",
170
+ "was",
171
+ "were"
172
+ ]);
173
+ var GROUNDING_SUBJECT_PRONOUNS = /* @__PURE__ */ new Set([
174
+ "he",
175
+ "she",
176
+ "they",
177
+ "it",
178
+ "i",
179
+ "we",
180
+ "you"
181
+ ]);
182
+ var GROUNDING_ENTITY_TYPE_PREFIXES = /* @__PURE__ */ new Set([
183
+ "person",
184
+ "project",
185
+ "tool",
186
+ "company",
187
+ "place",
188
+ "other"
189
+ ]);
190
+ var GROUNDING_COMMON_VERB_FORMS = /* @__PURE__ */ new Set([
191
+ "contains",
192
+ "employs",
193
+ "gives",
194
+ "has",
195
+ "hosts",
196
+ "likes",
197
+ "makes",
198
+ "needs",
199
+ "owns",
200
+ "prefers",
201
+ "requires",
202
+ "runs",
203
+ "shares",
204
+ "supports",
205
+ "takes",
206
+ "uses",
207
+ "wants",
208
+ "works"
209
+ ]);
210
+ function groundingLexemes(text) {
211
+ return text.normalize("NFKC").match(
212
+ /[\p{L}\p{N}]+(?:['’][\p{L}\p{N}]+)?(?:\+\+[\p{L}\p{N}]*|#[\p{L}\p{N}]*)?/gu
213
+ )?.map((rawToken) => {
214
+ const token = rawToken.replaceAll("\u2019", "'").toLocaleLowerCase();
215
+ return {
216
+ token,
217
+ preserveTerminalS: /^\p{Lu}/u.test(rawToken) && !GROUNDING_COMMON_VERB_FORMS.has(token)
218
+ };
219
+ }) ?? [];
220
+ }
221
+ function tokenSequence(text) {
222
+ return groundingLexemes(text).map(({ token }) => token);
223
+ }
224
+ function containsExactTokenSequence(candidate, source) {
225
+ const candidateTokens = tokenSequence(candidate);
226
+ const sourceTokens = tokenSequence(source);
227
+ if (candidateTokens.length === 0 || candidateTokens.length > sourceTokens.length) return false;
228
+ return sourceTokens.some(
229
+ (_, index) => candidateTokens.every((token, offset) => sourceTokens[index + offset] === token)
230
+ );
231
+ }
232
+ function isNegationCue(token) {
233
+ return GROUNDING_NEGATION_TOKENS.has(token) || token.endsWith("n't");
234
+ }
235
+ function isAttachedNegatedAuxiliary(token) {
236
+ return token.endsWith("n't") || token === "cannot" || token === "cant" || token === "can't";
237
+ }
238
+ function isNegatedAt(tokens, index) {
239
+ if (tokens[index - 1] === "only" && tokens[index - 2] === "not") return false;
240
+ const previousStart = Math.max(0, index - 2);
241
+ for (let i = previousStart; i < index; i += 1) {
242
+ if (isNegationCue(tokens[i])) return true;
243
+ }
244
+ if (tokens[index - 1] === "than" && tokens[index - 2] === "rather") return true;
245
+ if (tokens[index - 1] === "of" && tokens[index - 2] === "instead") return true;
246
+ const next = tokens[index + 1];
247
+ if (next !== void 0 && isAttachedNegatedAuxiliary(next)) return true;
248
+ const nextNext = tokens[index + 2];
249
+ return next !== void 0 && nextNext !== void 0 && GROUNDING_AUXILIARY_TOKENS.has(next) && isNegationCue(nextNext);
250
+ }
251
+ var GROUNDING_MIN_SHARED_TOKENS = 2;
252
+ var GROUNDING_MIN_COVERAGE = 0.5;
253
+ function stemToken(token, preserveTerminalS = false) {
254
+ if (token.endsWith("'s")) return token.slice(0, -2);
255
+ if (preserveTerminalS) return token;
256
+ if (token.length > 5 && token.endsWith("ing")) {
257
+ const stem = token.slice(0, -3);
258
+ return /(.)\1$/u.test(stem) ? stem.slice(0, -1) : stem;
259
+ }
260
+ if (token.length > 4 && token.endsWith("ed")) return token.slice(0, -2);
261
+ if (!preserveTerminalS && token.length > 3 && token.endsWith("s") && !token.endsWith("ss") && GROUNDING_COMMON_VERB_FORMS.has(token)) {
262
+ return token.slice(0, -1);
263
+ }
264
+ return token;
265
+ }
266
+ function tokenize(text) {
267
+ const tokens = /* @__PURE__ */ new Set();
268
+ for (const { token, preserveTerminalS } of groundingLexemes(text)) {
269
+ if (GROUNDING_STOPWORDS[token] !== true) tokens.add(stemToken(token, preserveTerminalS));
270
+ }
271
+ return tokens;
272
+ }
273
+ function normalizeForExactMatch(text) {
274
+ return text.normalize("NFKC").toLocaleLowerCase().replace(/\s+/gu, " ").trim();
275
+ }
276
+ function sourceSentences(source) {
277
+ const sentences = [];
278
+ let sentenceStart = 0;
279
+ for (let index = 0; index < source.length; index += 1) {
280
+ const character = source[index];
281
+ const nextCharacter = source[index + 1];
282
+ const boundary = character === "!" || character === "?" || character === ";" || character === "\n" || character === "." && (nextCharacter === void 0 || /\s/u.test(nextCharacter) || /["')\]}]/u.test(nextCharacter));
283
+ if (!boundary) continue;
284
+ let sentenceEnd = character === "\n" ? index : index + 1;
285
+ while (/[.!?;\n]/u.test(source[sentenceEnd] ?? "")) sentenceEnd += 1;
286
+ const sentence = source.slice(sentenceStart, sentenceEnd).trim();
287
+ if (sentence.length > 0) sentences.push(sentence);
288
+ sentenceStart = sentenceEnd;
289
+ index = sentenceEnd - 1;
290
+ }
291
+ const trailingSentence = source.slice(sentenceStart).trim();
292
+ if (trailingSentence.length > 0) sentences.push(trailingSentence);
293
+ return sentences.length > 0 ? sentences : [source];
294
+ }
295
+ function groundingTokenSequence(text) {
296
+ let lexemes = groundingLexemes(text);
297
+ while (lexemes.length > 0 && GROUNDING_AUXILIARY_TOKENS.has(lexemes[0].token)) {
298
+ lexemes = lexemes.slice(1);
299
+ }
300
+ return lexemes.filter(({ token }) => GROUNDING_STOPWORDS[token] !== true).map(({ token, preserveTerminalS }) => stemToken(token, preserveTerminalS));
301
+ }
302
+ function normalizedGroundingAlignmentTokenSequence(text) {
303
+ const normalized = normalizedGroundingTokenSequence(text);
304
+ const firstLexeme = groundingLexemes(text)[0];
305
+ if (firstLexeme === void 0 || !GROUNDING_SUBJECT_PRONOUNS.has(firstLexeme.token)) {
306
+ return normalized;
307
+ }
308
+ return [stemToken(firstLexeme.token, firstLexeme.preserveTerminalS), ...normalized];
309
+ }
310
+ function normalizedGroundingTokenSequence(text) {
311
+ return groundingTokenSequence(text).map((token) => token.replace(/'$/u, ""));
312
+ }
313
+ function areGroundingTokensCompatible(left, right) {
314
+ return left === right || `${left}e` === right || left === `${right}e`;
315
+ }
316
+ var GROUNDING_DENIAL_REPORTING_VERBS = /* @__PURE__ */ new Set([
317
+ "deny",
318
+ "denied",
319
+ "denies",
320
+ "denying",
321
+ "dispute",
322
+ "disputed",
323
+ "disputes",
324
+ "disputing",
325
+ "reject",
326
+ "rejected",
327
+ "rejects",
328
+ "rejecting",
329
+ "refute",
330
+ "refuted",
331
+ "refutes",
332
+ "refuting",
333
+ "contradict",
334
+ "contradicted",
335
+ "contradicts",
336
+ "contradicting",
337
+ "disprove",
338
+ "disproved",
339
+ "disproves",
340
+ "disproving"
341
+ ]);
342
+ function isDenialReportingVerb(token) {
343
+ return GROUNDING_DENIAL_REPORTING_VERBS.has(token);
344
+ }
345
+ var GROUNDING_NON_ASSERTIVE_REPORTING_VERBS = /* @__PURE__ */ new Set([
346
+ "allege",
347
+ "alleged",
348
+ "alleges",
349
+ "alleging",
350
+ "allegedly",
351
+ "assert",
352
+ "asserted",
353
+ "asserts",
354
+ "asserting",
355
+ "believe",
356
+ "believed",
357
+ "believes",
358
+ "believing",
359
+ "claim",
360
+ "claimed",
361
+ "claims",
362
+ "claiming",
363
+ "doubt",
364
+ "doubted",
365
+ "doubts",
366
+ "doubting",
367
+ "uncertain",
368
+ "unsure",
369
+ "unclear",
370
+ "unknown",
371
+ "possibly",
372
+ "probably",
373
+ "imagine",
374
+ "imagined",
375
+ "imagines",
376
+ "imagining",
377
+ "report",
378
+ "reported",
379
+ "reports",
380
+ "reporting",
381
+ "reportedly",
382
+ "say",
383
+ "said",
384
+ "says",
385
+ "saying",
386
+ "speculate",
387
+ "speculated",
388
+ "speculates",
389
+ "speculating",
390
+ "suspect",
391
+ "suspected",
392
+ "suspects",
393
+ "suspecting",
394
+ "suppose",
395
+ "supposed",
396
+ "supposes",
397
+ "supposing",
398
+ "supposedly",
399
+ "think",
400
+ "thought",
401
+ "thinks",
402
+ "thinking"
403
+ ]);
404
+ function isNonAssertiveReportingVerb(token) {
405
+ return GROUNDING_NON_ASSERTIVE_REPORTING_VERBS.has(token);
406
+ }
407
+ function isGroundingClauseBoundary(token) {
408
+ return token === "and" || token === "but" || token === "or" || token === "while" || token === "although" || token === "because";
409
+ }
410
+ function isNonAssertiveReportingAt(tokens, index) {
411
+ let boundary = 0;
412
+ for (let cursor = 0; cursor < index; cursor += 1) {
413
+ if (isGroundingClauseBoundary(tokens[cursor])) boundary = cursor + 1;
414
+ }
415
+ for (let cursor = index - 1; cursor >= boundary; cursor -= 1) {
416
+ if (tokens[cursor] === "that" && cursor > boundary && isNonAssertiveReportingVerb(tokens[cursor - 1])) {
417
+ return true;
418
+ }
419
+ if (isNonAssertiveReportingVerb(tokens[cursor]) && index - cursor <= 5) return true;
420
+ }
421
+ return false;
422
+ }
423
+ function isDeniedAt(tokens, index) {
424
+ let boundary = 0;
425
+ for (let cursor = 0; cursor < index; cursor += 1) {
426
+ if (isGroundingClauseBoundary(tokens[cursor])) boundary = cursor + 1;
427
+ }
428
+ for (let cursor = index - 1; cursor >= boundary; cursor -= 1) {
429
+ const token = tokens[cursor];
430
+ if (token === "that" && cursor > boundary && isDenialReportingVerb(tokens[cursor - 1])) {
431
+ return true;
432
+ }
433
+ if (isDenialReportingVerb(token) && index - cursor <= 5) return true;
434
+ }
435
+ return false;
436
+ }
437
+ function hasContradictoryPolarity(candidate, source) {
438
+ const candidateLexemes = groundingLexemes(candidate);
439
+ const candidateTokens = candidateLexemes.map(({ token }) => token);
440
+ let coherentContradiction = false;
441
+ for (const clause of sourceSentences(source).flatMap((sentence) => sentence.split(/\s+(?:and|but|or|while|although|because)\s+/gu))) {
442
+ const sourceLexemes2 = groundingLexemes(clause);
443
+ const sourceTokens2 = sourceLexemes2.map(({ token }) => token);
444
+ let sourceCursor = 0;
445
+ let allTokensFound = true;
446
+ let contradiction = false;
447
+ for (const [candidateIndex, candidateToken] of candidateTokens.entries()) {
448
+ if (GROUNDING_STOPWORDS[candidateToken] === true) continue;
449
+ const sourceIndex = sourceTokens2.findIndex(
450
+ (sourceToken, index) => index >= sourceCursor && stemToken(sourceToken, sourceLexemes2[index]?.preserveTerminalS === true) === stemToken(candidateToken, candidateLexemes[candidateIndex]?.preserveTerminalS === true)
451
+ );
452
+ if (sourceIndex === -1) {
453
+ allTokensFound = false;
454
+ break;
455
+ }
456
+ const candidateNegated = isNegatedAt(candidateTokens, candidateIndex) || isDeniedAt(candidateTokens, candidateIndex);
457
+ const sourceNegated = isNegatedAt(sourceTokens2, sourceIndex) || isDeniedAt(sourceTokens2, sourceIndex);
458
+ const candidateNonAssertive = isNonAssertiveReportingAt(candidateTokens, candidateIndex);
459
+ const sourceNonAssertive = isNonAssertiveReportingAt(sourceTokens2, sourceIndex);
460
+ if (candidateNegated !== sourceNegated || candidateNonAssertive !== sourceNonAssertive) {
461
+ contradiction = true;
462
+ }
463
+ sourceCursor = sourceIndex + 1;
464
+ }
465
+ if (allTokensFound) {
466
+ if (!contradiction) return false;
467
+ coherentContradiction = true;
468
+ }
469
+ }
470
+ if (coherentContradiction) return true;
471
+ const sourceLexemes = groundingLexemes(source);
472
+ const sourceTokens = sourceLexemes.map(({ token }) => token);
473
+ const sourcePositions = /* @__PURE__ */ new Map();
474
+ sourceLexemes.forEach(({ token, preserveTerminalS }, index) => {
475
+ const key = stemToken(token, preserveTerminalS);
476
+ const positions = sourcePositions.get(key);
477
+ if (positions) positions.push(index);
478
+ else sourcePositions.set(key, [index]);
479
+ });
480
+ for (const [candidateIndex, token] of candidateTokens.entries()) {
481
+ if (GROUNDING_STOPWORDS[token] === true) continue;
482
+ const positions = sourcePositions.get(
483
+ stemToken(token, candidateLexemes[candidateIndex]?.preserveTerminalS === true)
484
+ );
485
+ if (!positions || positions.length === 0) continue;
486
+ const sourceIndex = positions[positions.length - 1];
487
+ const candidateNegated = isNegatedAt(candidateTokens, candidateIndex) || isDeniedAt(candidateTokens, candidateIndex);
488
+ const sourceNegated = isNegatedAt(sourceTokens, sourceIndex) || isDeniedAt(sourceTokens, sourceIndex);
489
+ const candidateNonAssertive = isNonAssertiveReportingAt(candidateTokens, candidateIndex);
490
+ const sourceNonAssertive = isNonAssertiveReportingAt(sourceTokens, sourceIndex);
491
+ if (candidateNegated !== sourceNegated || candidateNonAssertive !== sourceNonAssertive) {
492
+ return true;
493
+ }
494
+ }
495
+ return false;
496
+ }
497
+
498
+ export {
499
+ isInterrogativeSourceSentence,
500
+ containsContiguousGroundingTokens,
501
+ hasExplicitRoleSubjectToken,
502
+ splitGroundingClauses,
503
+ GROUNDING_STOPWORDS,
504
+ GROUNDING_NEGATION_TOKENS,
505
+ GROUNDING_AUXILIARY_TOKENS,
506
+ GROUNDING_COPULAR_FORMS,
507
+ GROUNDING_SUBJECT_PRONOUNS,
508
+ GROUNDING_ENTITY_TYPE_PREFIXES,
509
+ GROUNDING_COMMON_VERB_FORMS,
510
+ groundingLexemes,
511
+ tokenSequence,
512
+ containsExactTokenSequence,
513
+ isNegationCue,
514
+ isAttachedNegatedAuxiliary,
515
+ isNegatedAt,
516
+ GROUNDING_MIN_SHARED_TOKENS,
517
+ GROUNDING_MIN_COVERAGE,
518
+ stemToken,
519
+ tokenize,
520
+ normalizeForExactMatch,
521
+ sourceSentences,
522
+ groundingTokenSequence,
523
+ normalizedGroundingAlignmentTokenSequence,
524
+ normalizedGroundingTokenSequence,
525
+ areGroundingTokensCompatible,
526
+ hasContradictoryPolarity
527
+ };
528
+ //# sourceMappingURL=chunk-P2BM76KT.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)\\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) => tokens.includes(candidateRole));\n}\n\nexport function splitGroundingClauses(sentences: ReadonlyArray<string>): string[] {\n return sentences.flatMap((sentence) =>\n 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 );\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 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 = new Set([\n \"contains\",\n \"employs\",\n \"gives\",\n \"has\",\n \"hosts\",\n \"likes\",\n \"makes\",\n \"needs\",\n \"owns\",\n \"prefers\",\n \"requires\",\n \"runs\",\n \"shares\",\n \"supports\",\n \"takes\",\n \"uses\",\n \"wants\",\n \"works\",\n]);\n\nexport interface GroundingLexeme {\n token: string;\n preserveTerminalS: boolean;\n}\n\nexport function groundingLexemes(text: string): GroundingLexeme[] {\n return text.normalize(\"NFKC\").match(\n /[\\p{L}\\p{N}]+(?:['’][\\p{L}\\p{N}]+)?(?:\\+\\+[\\p{L}\\p{N}]*|#[\\p{L}\\p{N}]*)?/gu,\n )\n ?.map((rawToken) => {\n const token = rawToken.replaceAll(\"’\", \"'\").toLocaleLowerCase();\n return {\n token,\n preserveTerminalS: /^\\p{Lu}/u.test(rawToken) && !GROUNDING_COMMON_VERB_FORMS.has(token),\n };\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\nexport function stemToken(token: string, preserveTerminalS = false): string {\n if (token.endsWith(\"'s\")) return token.slice(0, -2);\n if (preserveTerminalS) return token;\n if (token.length > 5 && token.endsWith(\"ing\")) {\n const stem = token.slice(0, -3);\n return /(.)\\1$/u.test(stem) ? stem.slice(0, -1) : stem;\n }\n if (token.length > 4 && token.endsWith(\"ed\")) return token.slice(0, -2);\n if (\n !preserveTerminalS\n && token.length > 3\n && token.endsWith(\"s\")\n && !token.endsWith(\"ss\")\n && GROUNDING_COMMON_VERB_FORMS.has(token)\n ) {\n return 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));\n }\n return tokens;\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));\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), ...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 return left === right || `${left}e` === right || left === `${right}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"]}