@remnic/core 1.1.10 → 1.1.12

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 (299) hide show
  1. package/README.md +3 -3
  2. package/dist/access-cli.js +67 -59
  3. package/dist/access-cli.js.map +1 -1
  4. package/dist/access-http.d.ts +7 -4
  5. package/dist/access-http.js +30 -26
  6. package/dist/access-mcp.d.ts +9 -4
  7. package/dist/access-mcp.js +29 -25
  8. package/dist/access-schema.d.ts +188 -8
  9. package/dist/access-schema.js +12 -3
  10. package/dist/{access-service-BTTNyo1i.d.ts → access-service-DDjzFALq.d.ts} +54 -5
  11. package/dist/access-service.d.ts +7 -4
  12. package/dist/access-service.js +26 -23
  13. package/dist/action-confidence.d.ts +83 -0
  14. package/dist/action-confidence.js +22 -0
  15. package/dist/active-memory-bridge.d.ts +1 -1
  16. package/dist/active-recall.d.ts +1 -1
  17. package/dist/behavior-learner.d.ts +1 -1
  18. package/dist/behavior-signals.d.ts +1 -1
  19. package/dist/bootstrap.d.ts +4 -2
  20. package/dist/briefing.d.ts +1 -1
  21. package/dist/briefing.js +5 -5
  22. package/dist/buffer-surprise-report.d.ts +1 -1
  23. package/dist/buffer.d.ts +1 -1
  24. package/dist/calibration.d.ts +1 -1
  25. package/dist/calibration.js +4 -4
  26. package/dist/{capsule-export-LLEVB2RG.js → capsule-export-7QNCBZOQ.js} +3 -3
  27. package/dist/{capsule-import-UW45R2MZ.js → capsule-import-EPBHD2EN.js} +3 -3
  28. package/dist/causal-behavior.d.ts +1 -1
  29. package/dist/causal-consolidation.d.ts +1 -1
  30. package/dist/causal-consolidation.js +11 -11
  31. package/dist/{chunk-VQXK37XA.js → chunk-23ZZK64Y.js} +1 -1
  32. package/dist/chunk-23ZZK64Y.js.map +1 -0
  33. package/dist/{chunk-HJYHRE4S.js → chunk-242S3I2A.js} +2 -2
  34. package/dist/{chunk-MCC6KDQF.js → chunk-3B6KIRBH.js} +131 -13
  35. package/dist/chunk-3B6KIRBH.js.map +1 -0
  36. package/dist/chunk-4RA3C3EV.js +60 -0
  37. package/dist/chunk-4RA3C3EV.js.map +1 -0
  38. package/dist/{chunk-EYNQTST2.js → chunk-4YM32CRU.js} +4 -4
  39. package/dist/{chunk-6AUUAZEX.js → chunk-5NXIJZFX.js} +38 -8
  40. package/dist/chunk-5NXIJZFX.js.map +1 -0
  41. package/dist/chunk-6NKAQ74D.js +2237 -0
  42. package/dist/chunk-6NKAQ74D.js.map +1 -0
  43. package/dist/{chunk-PHNGXFQ6.js → chunk-7V22HTMD.js} +3 -3
  44. package/dist/{chunk-363MWCD3.js → chunk-7ZM3BFKK.js} +84 -62
  45. package/dist/chunk-7ZM3BFKK.js.map +1 -0
  46. package/dist/chunk-AC5LO7IU.js +308 -0
  47. package/dist/chunk-AC5LO7IU.js.map +1 -0
  48. package/dist/chunk-AH2JUU6X.js +336 -0
  49. package/dist/chunk-AH2JUU6X.js.map +1 -0
  50. package/dist/{chunk-VX2IUQFE.js → chunk-AQJNPMOA.js} +41 -11
  51. package/dist/chunk-AQJNPMOA.js.map +1 -0
  52. package/dist/{chunk-P73JTV34.js → chunk-BBE34QBJ.js} +4 -4
  53. package/dist/{chunk-5GCNE7CN.js → chunk-BZSQEPRW.js} +454 -140
  54. package/dist/chunk-BZSQEPRW.js.map +1 -0
  55. package/dist/chunk-C5BCH4ZS.js +317 -0
  56. package/dist/chunk-C5BCH4ZS.js.map +1 -0
  57. package/dist/{chunk-C5HUWVH2.js → chunk-CPKTBRS2.js} +6 -6
  58. package/dist/{chunk-IBX3VFOM.js → chunk-D4GAOFF6.js} +118 -2
  59. package/dist/chunk-D4GAOFF6.js.map +1 -0
  60. package/dist/chunk-DB5A3NHS.js +906 -0
  61. package/dist/chunk-DB5A3NHS.js.map +1 -0
  62. package/dist/{chunk-I6BQZSML.js → chunk-DZZPC36E.js} +10 -10
  63. package/dist/{chunk-O4XJUPSF.js → chunk-E2UCDP5S.js} +39 -2
  64. package/dist/chunk-E2UCDP5S.js.map +1 -0
  65. package/dist/{chunk-SRBJUAMP.js → chunk-FMEBPEAO.js} +11 -67
  66. package/dist/chunk-FMEBPEAO.js.map +1 -0
  67. package/dist/{chunk-4DXC6HQQ.js → chunk-FQDPCE3I.js} +5 -5
  68. package/dist/{chunk-NN3LPQ5D.js → chunk-HELQZFZO.js} +155 -16
  69. package/dist/chunk-HELQZFZO.js.map +1 -0
  70. package/dist/{chunk-57QNCUEZ.js → chunk-HL5LRPNA.js} +2 -2
  71. package/dist/{chunk-VTU2B4VF.js → chunk-HQZVVSVB.js} +2 -1
  72. package/dist/chunk-HQZVVSVB.js.map +1 -0
  73. package/dist/{chunk-6Z6UH6TK.js → chunk-HY3L4WKC.js} +69 -3
  74. package/dist/chunk-HY3L4WKC.js.map +1 -0
  75. package/dist/{chunk-QIGOEM65.js → chunk-IB3BFHGN.js} +5 -5
  76. package/dist/{chunk-RXTFCYQF.js → chunk-JESOB2HO.js} +6 -6
  77. package/dist/{chunk-2YMTO4ZJ.js → chunk-JKDVIE52.js} +9 -2
  78. package/dist/chunk-JKDVIE52.js.map +1 -0
  79. package/dist/{chunk-WGK4VHGP.js → chunk-MNU6ZBWT.js} +302 -140
  80. package/dist/chunk-MNU6ZBWT.js.map +1 -0
  81. package/dist/chunk-OAZ5MFUB.js +4124 -0
  82. package/dist/chunk-OAZ5MFUB.js.map +1 -0
  83. package/dist/{chunk-ZTSE2ZJ6.js → chunk-OIGNEXKZ.js} +50 -3
  84. package/dist/chunk-OIGNEXKZ.js.map +1 -0
  85. package/dist/chunk-OZKZ2TRP.js +3729 -0
  86. package/dist/chunk-OZKZ2TRP.js.map +1 -0
  87. package/dist/{chunk-GGD5W7TB.js → chunk-PD6O7AXF.js} +7 -2
  88. package/dist/chunk-PD6O7AXF.js.map +1 -0
  89. package/dist/{chunk-S3IP6R6K.js → chunk-PH4C2U43.js} +23 -3
  90. package/dist/chunk-PH4C2U43.js.map +1 -0
  91. package/dist/chunk-PYPOFEMK.js +294 -0
  92. package/dist/chunk-PYPOFEMK.js.map +1 -0
  93. package/dist/{chunk-EQINRHYR.js → chunk-QDZ2RLEC.js} +243 -7
  94. package/dist/chunk-QDZ2RLEC.js.map +1 -0
  95. package/dist/{chunk-KWBPHZUU.js → chunk-RK6F44Y6.js} +3 -2
  96. package/dist/chunk-RK6F44Y6.js.map +1 -0
  97. package/dist/{chunk-36CTNQY7.js → chunk-RVPLBATS.js} +42 -10
  98. package/dist/chunk-RVPLBATS.js.map +1 -0
  99. package/dist/chunk-SOAU2OE2.js +125 -0
  100. package/dist/chunk-SOAU2OE2.js.map +1 -0
  101. package/dist/{chunk-A4ACKWIW.js → chunk-U5JMRGKX.js} +55 -4
  102. package/dist/chunk-U5JMRGKX.js.map +1 -0
  103. package/dist/{chunk-LIO5X3CM.js → chunk-UVMUAWVT.js} +2 -2
  104. package/dist/chunk-VWT3F4IV.js +2161 -0
  105. package/dist/chunk-VWT3F4IV.js.map +1 -0
  106. package/dist/{chunk-PB5KW5PL.js → chunk-WEJG4TB5.js} +6 -6
  107. package/dist/{chunk-KBYWQWSB.js → chunk-X7HPGUVG.js} +2 -2
  108. package/dist/{chunk-Y5KDIOKF.js → chunk-XAMBKFQS.js} +383 -9
  109. package/dist/chunk-XAMBKFQS.js.map +1 -0
  110. package/dist/{chunk-ZL4S7ARC.js → chunk-Y3VMVTYX.js} +3 -3
  111. package/dist/{chunk-Z5S5HNGY.js → chunk-ZG7PTKBK.js} +21 -5
  112. package/dist/chunk-ZG7PTKBK.js.map +1 -0
  113. package/dist/{chunk-6XA7UN4Z.js → chunk-ZNQN6ZTA.js} +2 -2
  114. package/dist/{chunk-WTFWLUSX.js → chunk-ZVTKDVVM.js} +2 -2
  115. package/dist/{cli-BrEwQTnW.d.ts → cli-BR8KpIU0.d.ts} +2 -2
  116. package/dist/cli.d.ts +7 -4
  117. package/dist/cli.js +44 -40
  118. package/dist/codex-cli-fallback.d.ts +1 -0
  119. package/dist/codex-cli-fallback.js +1 -1
  120. package/dist/compression-optimizer.d.ts +1 -1
  121. package/dist/config.d.ts +1 -1
  122. package/dist/config.js +1 -1
  123. package/dist/consolidation-provenance-check.d.ts +1 -1
  124. package/dist/consolidation-undo.d.ts +1 -1
  125. package/dist/{contradiction-scan-3Z6YW7YA.js → contradiction-scan-QTXAMBUA.js} +3 -2
  126. package/dist/contradiction-scan-QTXAMBUA.js.map +1 -0
  127. package/dist/day-summary.d.ts +1 -1
  128. package/dist/delinearize.d.ts +1 -1
  129. package/dist/direct-answer-wiring.d.ts +1 -1
  130. package/dist/direct-answer-wiring.js +1 -1
  131. package/dist/direct-answer.d.ts +1 -1
  132. package/dist/embedding-fallback.d.ts +1 -1
  133. package/dist/{engine-FOC3IJLA.js → engine-35M5BKQ7.js} +7 -7
  134. package/dist/entity-retrieval.d.ts +1 -1
  135. package/dist/entity-retrieval.js +5 -5
  136. package/dist/entity-schema.d.ts +1 -1
  137. package/dist/event-order-recall.d.ts +17 -0
  138. package/dist/event-order-recall.js +11 -0
  139. package/dist/event-order-recall.js.map +1 -0
  140. package/dist/evidence-pack.d.ts +3 -1
  141. package/dist/evidence-pack.js +5 -3
  142. package/dist/explicit-capture.d.ts +4 -2
  143. package/dist/explicit-cue-recall.d.ts +19 -1
  144. package/dist/explicit-cue-recall.js +10 -4
  145. package/dist/extraction-judge-telemetry.d.ts +1 -1
  146. package/dist/extraction-judge-training.d.ts +1 -1
  147. package/dist/extraction-judge.d.ts +1 -1
  148. package/dist/extraction.d.ts +1 -1
  149. package/dist/extraction.js +8 -7
  150. package/dist/fallback-llm.d.ts +2 -1
  151. package/dist/fallback-llm.js +4 -4
  152. package/dist/focused-list-recall.d.ts +17 -0
  153. package/dist/focused-list-recall.js +11 -0
  154. package/dist/focused-list-recall.js.map +1 -0
  155. package/dist/identity-continuity.d.ts +1 -1
  156. package/dist/importance.d.ts +1 -1
  157. package/dist/{index-1qIcnbG1.d.ts → index-DJ9QWMw-.d.ts} +3 -2
  158. package/dist/index.d.ts +49 -12
  159. package/dist/index.js +289 -115
  160. package/dist/index.js.map +1 -1
  161. package/dist/intent.d.ts +1 -1
  162. package/dist/intent.js +1 -1
  163. package/dist/lifecycle.d.ts +1 -1
  164. package/dist/live-connectors-runner.d.ts +1 -1
  165. package/dist/local-llm.d.ts +8 -4
  166. package/dist/local-llm.js +1 -1
  167. package/dist/mcp-memory-inspector-app.d.ts +106 -0
  168. package/dist/mcp-memory-inspector-app.js +20 -0
  169. package/dist/mcp-memory-inspector-app.js.map +1 -0
  170. package/dist/memory-action-policy.d.ts +1 -1
  171. package/dist/memory-cache.d.ts +1 -1
  172. package/dist/{memory-governance-F3QOJGEY.js → memory-governance-IMPQZXFC.js} +7 -7
  173. package/dist/memory-governance-IMPQZXFC.js.map +1 -0
  174. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  175. package/dist/memory-projection-store.d.ts +1 -1
  176. package/dist/memory-provenance.d.ts +57 -0
  177. package/dist/memory-provenance.js +13 -0
  178. package/dist/memory-provenance.js.map +1 -0
  179. package/dist/memory-worth-outcomes.d.ts +1 -1
  180. package/dist/models-json.d.ts +1 -1
  181. package/dist/native-knowledge.d.ts +1 -1
  182. package/dist/objective-state-writers.d.ts +1 -1
  183. package/dist/objective-state-writers.js +2 -2
  184. package/dist/operator-toolkit.d.ts +1 -1
  185. package/dist/operator-toolkit.js +11 -11
  186. package/dist/{orchestrator-6IvQ-Phj.d.ts → orchestrator-DDMPqU6R.d.ts} +10 -1
  187. package/dist/orchestrator.d.ts +4 -2
  188. package/dist/orchestrator.js +53 -46
  189. package/dist/patterns-cli.d.ts +1 -1
  190. package/dist/policy-runtime.d.ts +1 -1
  191. package/dist/qmd-recall-cache.d.ts +1 -1
  192. package/dist/qmd.d.ts +1 -1
  193. package/dist/recall-disclosure-escalation.d.ts +1 -1
  194. package/dist/recall-explain-renderer.d.ts +3 -1
  195. package/dist/recall-explain-renderer.js +5 -3
  196. package/dist/recall-state.d.ts +1 -1
  197. package/dist/recall-tag-filter.d.ts +3 -1
  198. package/dist/recall-xray-cli.d.ts +3 -1
  199. package/dist/recall-xray-cli.js +6 -4
  200. package/dist/recall-xray-renderer.d.ts +3 -1
  201. package/dist/recall-xray-renderer.js +5 -3
  202. package/dist/recall-xray.d.ts +8 -1
  203. package/dist/recall-xray.js +4 -2
  204. package/dist/resolve-auth-token.d.ts +1 -1
  205. package/dist/resolve-provider-secret.js +1 -1
  206. package/dist/response-guidance-recall.d.ts +18 -0
  207. package/dist/response-guidance-recall.js +11 -0
  208. package/dist/response-guidance-recall.js.map +1 -0
  209. package/dist/resume-bundles.js +3 -3
  210. package/dist/retrieval-agents.d.ts +1 -1
  211. package/dist/retrieval-tiers.d.ts +1 -1
  212. package/dist/sdk-compat.d.ts +3 -2
  213. package/dist/sdk-compat.js.map +1 -1
  214. package/dist/semantic-consolidation.d.ts +1 -1
  215. package/dist/semantic-consolidation.js +6 -6
  216. package/dist/semantic-rule-promotion.js +5 -5
  217. package/dist/semantic-rule-verifier.d.ts +1 -1
  218. package/dist/semantic-rule-verifier.js +6 -6
  219. package/dist/session-observer-bands.d.ts +1 -1
  220. package/dist/session-observer-state.d.ts +1 -1
  221. package/dist/signal.d.ts +1 -1
  222. package/dist/storage.d.ts +3 -1
  223. package/dist/storage.js +4 -4
  224. package/dist/summarizer.d.ts +1 -1
  225. package/dist/summarizer.js +6 -6
  226. package/dist/summary-snapshot.d.ts +1 -1
  227. package/dist/targeted-fact-recall.d.ts +17 -0
  228. package/dist/targeted-fact-recall.js +11 -0
  229. package/dist/targeted-fact-recall.js.map +1 -0
  230. package/dist/telemetry-transcript.d.ts +7 -0
  231. package/dist/telemetry-transcript.js +16 -0
  232. package/dist/telemetry-transcript.js.map +1 -0
  233. package/dist/temporal-supersession.d.ts +1 -1
  234. package/dist/temporal-supersession.js +2 -1
  235. package/dist/temporal-validity.d.ts +1 -1
  236. package/dist/threading.d.ts +1 -1
  237. package/dist/tier-migration.d.ts +1 -1
  238. package/dist/tier-routing.d.ts +1 -1
  239. package/dist/tokens.js +1 -1
  240. package/dist/topics.d.ts +1 -1
  241. package/dist/transcript.d.ts +1 -1
  242. package/dist/trust-zones.d.ts +3 -2
  243. package/dist/trust-zones.js +1 -1
  244. package/dist/types.d.ts +60 -2
  245. package/dist/types.js +1 -1
  246. package/dist/user-model.d.ts +37 -0
  247. package/dist/user-model.js +28 -0
  248. package/dist/user-model.js.map +1 -0
  249. package/dist/utility-runtime.d.ts +1 -1
  250. package/dist/verified-recall.js +6 -6
  251. package/package.json +1 -1
  252. package/dist/chunk-2YMTO4ZJ.js.map +0 -1
  253. package/dist/chunk-363MWCD3.js.map +0 -1
  254. package/dist/chunk-36CTNQY7.js.map +0 -1
  255. package/dist/chunk-5GCNE7CN.js.map +0 -1
  256. package/dist/chunk-6AUUAZEX.js.map +0 -1
  257. package/dist/chunk-6Z6UH6TK.js.map +0 -1
  258. package/dist/chunk-74WWN7ZW.js +0 -82
  259. package/dist/chunk-74WWN7ZW.js.map +0 -1
  260. package/dist/chunk-A4ACKWIW.js.map +0 -1
  261. package/dist/chunk-EQINRHYR.js.map +0 -1
  262. package/dist/chunk-ERUDW6DU.js +0 -965
  263. package/dist/chunk-ERUDW6DU.js.map +0 -1
  264. package/dist/chunk-GGD5W7TB.js.map +0 -1
  265. package/dist/chunk-IBX3VFOM.js.map +0 -1
  266. package/dist/chunk-KWBPHZUU.js.map +0 -1
  267. package/dist/chunk-MCC6KDQF.js.map +0 -1
  268. package/dist/chunk-NN3LPQ5D.js.map +0 -1
  269. package/dist/chunk-O4XJUPSF.js.map +0 -1
  270. package/dist/chunk-S3IP6R6K.js.map +0 -1
  271. package/dist/chunk-SRBJUAMP.js.map +0 -1
  272. package/dist/chunk-VQXK37XA.js.map +0 -1
  273. package/dist/chunk-VTU2B4VF.js.map +0 -1
  274. package/dist/chunk-VX2IUQFE.js.map +0 -1
  275. package/dist/chunk-WGK4VHGP.js.map +0 -1
  276. package/dist/chunk-Y5KDIOKF.js.map +0 -1
  277. package/dist/chunk-Z5S5HNGY.js.map +0 -1
  278. package/dist/chunk-ZTSE2ZJ6.js.map +0 -1
  279. package/dist/contradiction-scan-3Z6YW7YA.js.map +0 -1
  280. /package/dist/{capsule-export-LLEVB2RG.js.map → action-confidence.js.map} +0 -0
  281. /package/dist/{capsule-import-UW45R2MZ.js.map → capsule-export-7QNCBZOQ.js.map} +0 -0
  282. /package/dist/{engine-FOC3IJLA.js.map → capsule-import-EPBHD2EN.js.map} +0 -0
  283. /package/dist/{chunk-HJYHRE4S.js.map → chunk-242S3I2A.js.map} +0 -0
  284. /package/dist/{chunk-EYNQTST2.js.map → chunk-4YM32CRU.js.map} +0 -0
  285. /package/dist/{chunk-PHNGXFQ6.js.map → chunk-7V22HTMD.js.map} +0 -0
  286. /package/dist/{chunk-P73JTV34.js.map → chunk-BBE34QBJ.js.map} +0 -0
  287. /package/dist/{chunk-C5HUWVH2.js.map → chunk-CPKTBRS2.js.map} +0 -0
  288. /package/dist/{chunk-I6BQZSML.js.map → chunk-DZZPC36E.js.map} +0 -0
  289. /package/dist/{chunk-4DXC6HQQ.js.map → chunk-FQDPCE3I.js.map} +0 -0
  290. /package/dist/{chunk-57QNCUEZ.js.map → chunk-HL5LRPNA.js.map} +0 -0
  291. /package/dist/{chunk-QIGOEM65.js.map → chunk-IB3BFHGN.js.map} +0 -0
  292. /package/dist/{chunk-RXTFCYQF.js.map → chunk-JESOB2HO.js.map} +0 -0
  293. /package/dist/{chunk-LIO5X3CM.js.map → chunk-UVMUAWVT.js.map} +0 -0
  294. /package/dist/{chunk-PB5KW5PL.js.map → chunk-WEJG4TB5.js.map} +0 -0
  295. /package/dist/{chunk-KBYWQWSB.js.map → chunk-X7HPGUVG.js.map} +0 -0
  296. /package/dist/{chunk-ZL4S7ARC.js.map → chunk-Y3VMVTYX.js.map} +0 -0
  297. /package/dist/{chunk-6XA7UN4Z.js.map → chunk-ZNQN6ZTA.js.map} +0 -0
  298. /package/dist/{chunk-WTFWLUSX.js.map → chunk-ZVTKDVVM.js.map} +0 -0
  299. /package/dist/{memory-governance-F3QOJGEY.js.map → engine-35M5BKQ7.js.map} +0 -0
@@ -1,965 +0,0 @@
1
- import {
2
- buildEvidencePack
3
- } from "./chunk-74WWN7ZW.js";
4
-
5
- // src/explicit-cue-recall.ts
6
- var DEFAULT_MAX_CHARS = 2400;
7
- var DEFAULT_MAX_ITEM_CHARS = 1200;
8
- var DEFAULT_MAX_REFERENCES = 24;
9
- var REFERENCE_SCAN_TOKEN_FACTOR = 3;
10
- var TURN_REFERENCE_WINDOW_RADIUS = 0;
11
- var LEXICAL_CUE_WINDOW_RADIUS = 1;
12
- var LEXICAL_CUE_SEARCH_LIMIT = 3;
13
- var LEXICAL_CUE_MAX_TOKENS = 400;
14
- var CONTENT_LABEL_SEARCH_LIMIT = 64;
15
- var CONTENT_LABEL_MAX_TOKENS = 2e3;
16
- var CONTENT_LABEL_MAX_PAIRED_WINDOWS_PER_REFERENCE = 1;
17
- var LATEST_STATE_CUES = /* @__PURE__ */ new Set([
18
- "as of",
19
- "currently",
20
- "latest",
21
- "most recent",
22
- "newest",
23
- "now",
24
- "updated",
25
- "changed",
26
- "change"
27
- ]);
28
- var STRUCTURED_PLAN_FIELD_CUES = /* @__PURE__ */ new Set([
29
- "accommodation",
30
- "attraction",
31
- "breakfast",
32
- "current city",
33
- "dinner",
34
- "flight",
35
- "flights",
36
- "hotel",
37
- "lunch",
38
- "restaurant",
39
- "restaurants",
40
- "transportation",
41
- "traveler",
42
- "travelers"
43
- ]);
44
- var STRUCTURED_PLAN_DEPENDENCY_CUES = /* @__PURE__ */ new Set([
45
- "comparison",
46
- "constraint",
47
- "constraints",
48
- "dependency",
49
- "dependencies",
50
- "join",
51
- "same",
52
- "shared"
53
- ]);
54
- var BENCHMARK_ABILITY_CUES = /* @__PURE__ */ new Map([
55
- ["information extraction", "ability=information_extraction"],
56
- ["knowledge update", "ability=knowledge_update"],
57
- ["multi session reasoning", "ability=multi_session_reasoning"],
58
- ["multi-session reasoning", "ability=multi_session_reasoning"],
59
- ["instruction following", "ability=instruction_following"]
60
- ]);
61
- var BENCHMARK_ANCHOR_VALUE_STOPWORDS = /* @__PURE__ */ new Set([
62
- "a",
63
- "about",
64
- "an",
65
- "for",
66
- "from",
67
- "in",
68
- "on",
69
- "the",
70
- "to",
71
- "use",
72
- "using",
73
- "with"
74
- ]);
75
- var RELATIVE_TEMPORAL_CUES = [
76
- "as of",
77
- "most recent",
78
- "last time",
79
- "last week",
80
- "last month",
81
- "last year",
82
- "last session",
83
- "last conversation",
84
- "next time",
85
- "next week",
86
- "next month",
87
- "next year",
88
- "next session",
89
- "next conversation",
90
- "previous time",
91
- "previous week",
92
- "previous month",
93
- "previous year",
94
- "previous session",
95
- "previous conversation",
96
- "prior time",
97
- "prior week",
98
- "prior month",
99
- "prior year",
100
- "prior session",
101
- "prior conversation",
102
- "today",
103
- "yesterday",
104
- "tomorrow",
105
- "tonight",
106
- "earlier",
107
- "later",
108
- "recently",
109
- "previously",
110
- "currently",
111
- "now",
112
- "latest",
113
- "newest",
114
- "oldest",
115
- "earliest",
116
- "before",
117
- "after",
118
- "since",
119
- "updated",
120
- "changed",
121
- "change"
122
- ];
123
- var SPEAKER_NAME_STOPWORDS = /* @__PURE__ */ new Set([
124
- "A",
125
- "According",
126
- "An",
127
- "And",
128
- "Are",
129
- "As",
130
- "At",
131
- "Before",
132
- "Can",
133
- "Compare",
134
- "Could",
135
- "Did",
136
- "Do",
137
- "Does",
138
- "For",
139
- "From",
140
- "Had",
141
- "Has",
142
- "Have",
143
- "How",
144
- "In",
145
- "Is",
146
- "It",
147
- "Join",
148
- "Of",
149
- "On",
150
- "Or",
151
- "Please",
152
- "Review",
153
- "Step",
154
- "Tell",
155
- "The",
156
- "To",
157
- "Turn",
158
- "Use",
159
- "Was",
160
- "Were",
161
- "What",
162
- "When",
163
- "Where",
164
- "Which",
165
- "Who",
166
- "Why",
167
- "Will",
168
- "Would"
169
- ]);
170
- var QUESTION_SLOT_STOPWORDS = /* @__PURE__ */ new Set([
171
- "answer",
172
- "choice",
173
- "did",
174
- "does",
175
- "do",
176
- "is",
177
- "should",
178
- "single",
179
- "the",
180
- "user",
181
- "was",
182
- "were"
183
- ]);
184
- async function buildExplicitCueRecallSection(options) {
185
- const engine = options.engine;
186
- const query = options.query.trim();
187
- const maxChars = normalizePositiveInteger(options.maxChars, DEFAULT_MAX_CHARS);
188
- if (!engine || query.length === 0 || maxChars <= 0) {
189
- return "";
190
- }
191
- const maxReferences = normalizePositiveInteger(
192
- options.maxReferences,
193
- DEFAULT_MAX_REFERENCES
194
- );
195
- if (maxReferences <= 0) {
196
- return "";
197
- }
198
- const evidenceItems = [];
199
- const seenTurns = /* @__PURE__ */ new Set();
200
- await collectTurnReferenceEvidence({
201
- engine,
202
- sessionId: options.sessionId,
203
- query,
204
- maxReferences,
205
- evidenceItems,
206
- seenTurns
207
- });
208
- await collectLexicalCueEvidence({
209
- engine,
210
- sessionId: options.sessionId,
211
- query,
212
- maxReferences,
213
- includeBenchmarkAnchorCues: options.includeBenchmarkAnchorCues,
214
- includeStructuredPlanCues: options.includeStructuredPlanCues,
215
- evidenceItems,
216
- seenTurns
217
- });
218
- return buildEvidencePack(evidenceItems, {
219
- title: "Explicit Cue Evidence",
220
- maxChars,
221
- maxItemChars: normalizePositiveInteger(
222
- options.maxItemChars,
223
- DEFAULT_MAX_ITEM_CHARS
224
- )
225
- });
226
- }
227
- async function collectTurnReferenceEvidence(options) {
228
- if (!options.sessionId) {
229
- return;
230
- }
231
- const references = collectExplicitTurnReferences(options.query).slice(
232
- 0,
233
- options.maxReferences
234
- );
235
- if (references.length === 0) {
236
- return;
237
- }
238
- await collectContentLabelReferenceEvidence({
239
- engine: options.engine,
240
- sessionId: options.sessionId,
241
- query: options.query,
242
- references,
243
- evidenceItems: options.evidenceItems,
244
- seenTurns: options.seenTurns
245
- });
246
- const windows = /* @__PURE__ */ new Map();
247
- for (const reference of references) {
248
- for (const center of candidateTurnIndexesForReference(reference)) {
249
- if (center < 0) {
250
- continue;
251
- }
252
- const fromTurn = Math.max(0, center - TURN_REFERENCE_WINDOW_RADIUS);
253
- const toTurn = center + TURN_REFERENCE_WINDOW_RADIUS;
254
- windows.set(`${fromTurn}:${toTurn}`, { fromTurn, toTurn });
255
- }
256
- }
257
- for (const window of [...windows.values()].sort(
258
- (left, right) => left.fromTurn - right.fromTurn || left.toTurn - right.toTurn
259
- )) {
260
- const expanded = await options.engine.expandContext(
261
- options.sessionId,
262
- window.fromTurn,
263
- window.toTurn,
264
- 2e3
265
- );
266
- appendExpandedEvidence(
267
- options.evidenceItems,
268
- options.seenTurns,
269
- options.sessionId,
270
- expanded
271
- );
272
- }
273
- }
274
- async function collectContentLabelReferenceEvidence(options) {
275
- const resolved = /* @__PURE__ */ new Set();
276
- for (const reference of options.references) {
277
- if (reference.includeDirectTurn) {
278
- continue;
279
- }
280
- const hits = await searchReferenceContentLabels(
281
- options.engine,
282
- reference.number,
283
- options.sessionId
284
- );
285
- if (hits.length === 0) {
286
- continue;
287
- }
288
- resolved.add(reference.number);
289
- let appendedWindows = 0;
290
- for (const hit of hits) {
291
- if (appendedWindows >= CONTENT_LABEL_MAX_PAIRED_WINDOWS_PER_REFERENCE) {
292
- break;
293
- }
294
- const { fromTurn, toTurn } = contentLabelEvidenceWindow(hit, {
295
- includeSuccessor: hasSuccessorTrajectoryIntent(options.query)
296
- });
297
- const expanded = await options.engine.expandContext(
298
- hit.session_id,
299
- fromTurn,
300
- toTurn,
301
- CONTENT_LABEL_MAX_TOKENS
302
- );
303
- if (!expandedHasPairedTrajectoryLabels(expanded, reference.number)) {
304
- continue;
305
- }
306
- if (expanded.length === 0) {
307
- appendEvidenceItem(options.evidenceItems, options.seenTurns, {
308
- id: `${hit.session_id}:${hit.turn_index}`,
309
- sessionId: hit.session_id,
310
- turnIndex: hit.turn_index,
311
- role: hit.role,
312
- content: hit.content
313
- });
314
- continue;
315
- }
316
- appendExpandedEvidence(
317
- options.evidenceItems,
318
- options.seenTurns,
319
- hit.session_id,
320
- expanded
321
- );
322
- appendedWindows += 1;
323
- }
324
- }
325
- return resolved;
326
- }
327
- async function searchReferenceContentLabels(engine, referenceNumber, sessionId) {
328
- const hits = /* @__PURE__ */ new Map();
329
- for (const labelKind of ["action", "observation"]) {
330
- const label = labelKind === "action" ? "Action" : "Observation";
331
- for (const query of [`[${label} ${referenceNumber}]`, `${label} ${referenceNumber}`]) {
332
- const results = await engine.searchContextFull(
333
- query,
334
- CONTENT_LABEL_SEARCH_LIMIT,
335
- sessionId
336
- );
337
- for (const result of results) {
338
- if (!isReferenceLabelRole(result.role, labelKind) || !contentHasReferenceLabel(result.content, labelKind, referenceNumber)) {
339
- continue;
340
- }
341
- hits.set(`${result.session_id}:${result.turn_index}:${labelKind}`, {
342
- turn_index: result.turn_index,
343
- role: result.role,
344
- content: result.content,
345
- session_id: result.session_id,
346
- labelKind
347
- });
348
- }
349
- }
350
- }
351
- const numericCandidates = candidateTurnIndexesForReference({
352
- number: referenceNumber,
353
- includeDirectTurn: false
354
- });
355
- return [...hits.values()].sort((left, right) => {
356
- const sessionOrder = left.session_id.localeCompare(right.session_id);
357
- if (sessionOrder !== 0) {
358
- return sessionOrder;
359
- }
360
- const leftDistance = nearestTurnDistance(left.turn_index, numericCandidates);
361
- const rightDistance = nearestTurnDistance(right.turn_index, numericCandidates);
362
- if (leftDistance !== rightDistance) {
363
- return leftDistance - rightDistance;
364
- }
365
- return left.turn_index - right.turn_index || left.labelKind.localeCompare(right.labelKind);
366
- });
367
- }
368
- function nearestTurnDistance(turnIndex, candidates) {
369
- let nearest = Number.POSITIVE_INFINITY;
370
- for (const candidate of candidates) {
371
- nearest = Math.min(nearest, Math.abs(turnIndex - candidate));
372
- }
373
- return nearest;
374
- }
375
- function contentLabelEvidenceWindow(hit, options = {}) {
376
- const successorTurns = options.includeSuccessor === true ? 2 : 0;
377
- if (hit.labelKind === "action") {
378
- return {
379
- fromTurn: Math.max(0, hit.turn_index - 1),
380
- toTurn: hit.turn_index + 1 + successorTurns
381
- };
382
- }
383
- return {
384
- fromTurn: Math.max(0, hit.turn_index - 1),
385
- toTurn: hit.turn_index + successorTurns
386
- };
387
- }
388
- function hasSuccessorTrajectoryIntent(query) {
389
- const raw = query.toLowerCase();
390
- const normalized = raw.replace(/[^a-z0-9]+/g, " ").trim();
391
- if ([
392
- /\bafter\s+(?:step|action|observation|turn)\s+\d+\b/,
393
- /\b(?:next|following|subsequent|successor)\s+(?:step|action|observation|turn)\b/,
394
- /\b(?:step|action|observation|turn)\s+\d+\s+(?:then|and then)\b/,
395
- /\bwhat\s+(?:happened|came|occurred)\s+next\b/
396
- ].some((pattern) => pattern.test(normalized))) {
397
- return true;
398
- }
399
- if (!hasLoopExitIntent(normalized)) {
400
- return false;
401
- }
402
- if (!hasBoundedTrajectoryReference(raw)) {
403
- return true;
404
- }
405
- return !asksForActionInsideBoundedRange(normalized) && hasNamedTrajectoryActionCue(normalized);
406
- }
407
- function hasBoundedTrajectoryReference(query) {
408
- return hasBoundedTrajectoryRange(query) || hasSingleTrajectoryReference(query);
409
- }
410
- function hasLoopExitIntent(normalizedQuery) {
411
- const exitVerbs = "(?:breaks?|breaking|broke|ends?|ending|ended|stops?|stopping|stopped)";
412
- const loopNouns = "(?:loop|cycle|pattern|sequence)";
413
- return [
414
- new RegExp(
415
- `\\b${exitVerbs}\\s+(?:out\\s+of\\s+)?(?:this|that|the|a|an)?\\s*${loopNouns}\\b`
416
- ),
417
- new RegExp(
418
- `\\b${loopNouns}\\s+(?:${exitVerbs}|is\\s+${exitVerbs}|was\\s+${exitVerbs})\\b`
419
- )
420
- ].some((pattern) => pattern.test(normalizedQuery));
421
- }
422
- function hasBoundedTrajectoryRange(query) {
423
- return [
424
- /\b(?:between|from|in|during|within)\s+(?:steps?|actions?|observations?|turns?)\s+#?\d+\s*(?:-|\u2013|\u2014|\bto\b|\bthrough\b|\bthru\b|\band\b)\s*#?\d+\b/,
425
- /\b(?:steps?|actions?|observations?|turns?)\s+#?\d+\s*(?:-|\u2013|\u2014|\bto\b|\bthrough\b|\bthru\b)\s*#?\d+\b/
426
- ].some((pattern) => pattern.test(query));
427
- }
428
- function hasSingleTrajectoryReference(query) {
429
- return /\b(?:in|during|within|at|on)?\s*(?:steps?|actions?|observations?|turns?)\s+#?\d+\b/.test(
430
- query
431
- );
432
- }
433
- function asksForActionInsideBoundedRange(normalizedQuery) {
434
- return /\b(?:which|what)\s+(?:single\s+)?(?:action|move|step|maneuver)\s+(?:broke|breaks|breaking|ended|ends|stopped|stops|mattered|accomplished|advanced)\b/.test(
435
- normalizedQuery
436
- );
437
- }
438
- function hasNamedTrajectoryActionCue(normalizedQuery) {
439
- const actions = "(?:up|down|left|right|wait|stay|push|pull|open|close|use|enter|exit)";
440
- return new RegExp(
441
- `\\b(?:${actions}\\s+(?:action|move|step|maneuver)|(?:action|move|step|maneuver)\\s+${actions})\\b`
442
- ).test(normalizedQuery);
443
- }
444
- function contentHasReferenceLabel(content, labelKind, referenceNumber) {
445
- const label = labelKind === "action" ? "Action" : "Observation";
446
- const escapedNumber = String(referenceNumber).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
447
- return new RegExp(
448
- `^\\s*\\[\\s*${label}\\s+${escapedNumber}\\s*\\]\\s*(?::\\s*)?`,
449
- "i"
450
- ).test(content);
451
- }
452
- function isReferenceLabelRole(role, labelKind) {
453
- if (labelKind === "action") {
454
- return role === "user";
455
- }
456
- return role === "assistant";
457
- }
458
- function expandedHasPairedTrajectoryLabels(expanded, referenceNumber) {
459
- let hasAction = false;
460
- let hasObservation = false;
461
- for (const message of expanded) {
462
- if (isReferenceLabelRole(message.role, "action") && contentHasReferenceLabel(message.content, "action", referenceNumber)) {
463
- hasAction = true;
464
- }
465
- if (isReferenceLabelRole(message.role, "observation") && contentHasReferenceLabel(message.content, "observation", referenceNumber)) {
466
- hasObservation = true;
467
- }
468
- }
469
- return hasAction && hasObservation;
470
- }
471
- async function collectLexicalCueEvidence(options) {
472
- const cues = collectLexicalCues(options.query, {
473
- includeBenchmarkAnchorCues: options.includeBenchmarkAnchorCues,
474
- includeStructuredPlanCues: options.includeStructuredPlanCues
475
- }).slice(0, options.maxReferences);
476
- const preferLatest = hasLatestStateIntent(options.query);
477
- for (const cue of cues) {
478
- const results = sortLexicalCueResults(
479
- await options.engine.searchContextFull(
480
- cue,
481
- LEXICAL_CUE_SEARCH_LIMIT,
482
- options.sessionId
483
- ),
484
- preferLatest
485
- );
486
- for (const result of results) {
487
- const windowRadius = preferLatest ? 0 : LEXICAL_CUE_WINDOW_RADIUS;
488
- const fromTurn = Math.max(0, result.turn_index - windowRadius);
489
- const toTurn = result.turn_index + windowRadius;
490
- const expanded = await options.engine.expandContext(
491
- result.session_id,
492
- fromTurn,
493
- toTurn,
494
- LEXICAL_CUE_MAX_TOKENS
495
- );
496
- if (expanded.length === 0) {
497
- appendEvidenceItem(options.evidenceItems, options.seenTurns, {
498
- id: `${result.session_id}:${result.turn_index}`,
499
- sessionId: result.session_id,
500
- turnIndex: result.turn_index,
501
- role: result.role,
502
- content: result.content,
503
- ...typeof result.score === "number" ? { score: result.score } : {}
504
- });
505
- continue;
506
- }
507
- appendExpandedEvidence(
508
- options.evidenceItems,
509
- options.seenTurns,
510
- result.session_id,
511
- expanded
512
- );
513
- }
514
- }
515
- }
516
- function appendExpandedEvidence(evidenceItems, seenTurns, sessionId, expanded) {
517
- for (const message of expanded) {
518
- appendEvidenceItem(evidenceItems, seenTurns, {
519
- id: `${sessionId}:${message.turn_index}`,
520
- sessionId,
521
- turnIndex: message.turn_index,
522
- role: message.role,
523
- content: message.content
524
- });
525
- }
526
- }
527
- function appendEvidenceItem(evidenceItems, seenTurns, item) {
528
- if (seenTurns.has(item.id)) {
529
- return;
530
- }
531
- seenTurns.add(item.id);
532
- evidenceItems.push(item);
533
- }
534
- function collectExplicitTurnReferences(query) {
535
- const references = /* @__PURE__ */ new Map();
536
- const addReference = (value, label) => {
537
- const existing = references.get(String(value));
538
- references.set(String(value), {
539
- number: value,
540
- includeDirectTurn: (existing?.includeDirectTurn ?? false) || label === "turn"
541
- });
542
- };
543
- const tokens = tokenizeReferenceQuery(query);
544
- for (let index = 0; index < tokens.length; index += 1) {
545
- const label = normalizeReferenceLabel(tokens[index]);
546
- if (!label) {
547
- continue;
548
- }
549
- const parsed = parseReferenceNumbers(tokens, index + 1);
550
- for (const number of parsed.numbers) {
551
- addReference(number, label);
552
- }
553
- index = Math.max(index, parsed.nextIndex - 1);
554
- }
555
- return [...references.values()].sort((left, right) => left.number - right.number);
556
- }
557
- function collectLexicalCues(query, options = {}) {
558
- const cues = /* @__PURE__ */ new Set();
559
- for (const match of query.matchAll(/\b[A-Za-z][A-Za-z0-9]{0,12}\d+:\d+\b/g)) {
560
- cues.add(match[0]);
561
- }
562
- for (const match of query.matchAll(/\b\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2})?Z?)?\b/g)) {
563
- cues.add(match[0]);
564
- }
565
- for (const cue of collectTemporalLexicalCues(query)) {
566
- cues.add(cue);
567
- }
568
- for (const cue of collectQuestionSlotCues(query)) {
569
- cues.add(cue);
570
- }
571
- if (options.includeBenchmarkAnchorCues) {
572
- for (const cue of collectBenchmarkAnchorCues(query)) {
573
- cues.add(cue);
574
- }
575
- }
576
- if (options.includeStructuredPlanCues) {
577
- for (const cue of collectStructuredPlanCues(query)) {
578
- cues.add(cue);
579
- }
580
- }
581
- for (const match of query.matchAll(/\b(?:session|source|chat|plan|task|event|file|tool)[_-][A-Za-z0-9][A-Za-z0-9_.:-]{0,80}\b/gi)) {
582
- cues.add(match[0]);
583
- }
584
- for (const match of query.matchAll(/\b[A-Z][a-z]{1,30}(?:\s+[A-Z][a-z]{1,30}){0,2}\b/g)) {
585
- const value = normalizeSpeakerNameCue(match[0]);
586
- if (value) {
587
- cues.add(value);
588
- }
589
- }
590
- for (const match of query.matchAll(/\[([A-Za-z0-9][A-Za-z0-9_.:/ -]{1,80})\]/g)) {
591
- const value = match[1]?.trim();
592
- if (value) {
593
- cues.add(value);
594
- }
595
- }
596
- return [...cues].sort((left, right) => left.localeCompare(right));
597
- }
598
- function collectQuestionSlotCues(query) {
599
- const cues = /* @__PURE__ */ new Set();
600
- for (const match of query.matchAll(
601
- /\b(?:what|which)\s+([a-z][a-z0-9_-]{2,30})\s+(?:does|do|did|is|are|was|were|should|would|could|can|will)\b/gi
602
- )) {
603
- const value = match[1]?.toLowerCase();
604
- if (value && !QUESTION_SLOT_STOPWORDS.has(value)) {
605
- cues.add(value);
606
- }
607
- }
608
- return [...cues].sort((left, right) => left.localeCompare(right));
609
- }
610
- function collectBenchmarkAnchorCues(query) {
611
- const cues = /* @__PURE__ */ new Set();
612
- const normalizedQuery = query.toLowerCase().replace(/\s+/g, " ");
613
- for (const [phrase, cue] of BENCHMARK_ABILITY_CUES) {
614
- if (containsBoundedPhrase(normalizedQuery, phrase)) {
615
- cues.add(cue);
616
- }
617
- }
618
- const tokens = tokenizeAnchorQuery(query);
619
- for (let index = 0; index < tokens.length; index += 1) {
620
- let prefix = normalizeBenchmarkAnchorPrefix(tokens[index]);
621
- if (!prefix) {
622
- continue;
623
- }
624
- let valueIndex = index + 1;
625
- if (prefix === "source" && tokens[valueIndex]?.toLowerCase() === "chat") {
626
- prefix = "source_chat";
627
- valueIndex += 1;
628
- }
629
- const maybeIdLabel = tokens[valueIndex]?.toLowerCase();
630
- if (maybeIdLabel === "id" || maybeIdLabel === "ids") {
631
- valueIndex += 1;
632
- }
633
- let consumedValue = false;
634
- for (let currentValueIndex = valueIndex; currentValueIndex < tokens.length; currentValueIndex += 1) {
635
- const rawValue = tokens[currentValueIndex];
636
- const normalizedValue = rawValue?.toLowerCase();
637
- if (!rawValue || normalizeBenchmarkAnchorPrefix(rawValue)) {
638
- break;
639
- }
640
- if (normalizedValue === "and" || normalizedValue === "or") {
641
- continue;
642
- }
643
- if (BENCHMARK_ANCHOR_VALUE_STOPWORDS.has(normalizedValue)) {
644
- break;
645
- }
646
- if (!isBenchmarkAnchorValue(rawValue)) {
647
- break;
648
- }
649
- addBenchmarkAnchorCues(cues, prefix, rawValue);
650
- consumedValue = true;
651
- index = currentValueIndex;
652
- }
653
- if (!consumedValue) {
654
- continue;
655
- }
656
- }
657
- return [...cues].sort((left, right) => left.localeCompare(right));
658
- }
659
- function addBenchmarkAnchorCues(cues, prefix, rawValue) {
660
- cues.add(`${prefix}_id=${rawValue}`);
661
- cues.add(`${prefix}-${rawValue}`);
662
- if (prefix === "source_chat") {
663
- cues.add(`chat_id=${rawValue}`);
664
- }
665
- }
666
- function isBenchmarkAnchorValue(token) {
667
- for (const char of token) {
668
- if (isAsciiDigitChar(char)) {
669
- return true;
670
- }
671
- }
672
- return false;
673
- }
674
- function isAsciiDigitChar(char) {
675
- const code = char.charCodeAt(0);
676
- return code >= 48 && code <= 57;
677
- }
678
- function normalizeBenchmarkAnchorPrefix(token) {
679
- switch (token?.toLowerCase()) {
680
- case "ability":
681
- case "chat":
682
- case "plan":
683
- case "rubric":
684
- case "source":
685
- return token.toLowerCase();
686
- default:
687
- return void 0;
688
- }
689
- }
690
- function tokenizeAnchorQuery(query) {
691
- const tokens = [];
692
- let current = "";
693
- const push = () => {
694
- const token = trimTrailingAnchorTokenPunctuation(current);
695
- if (token.length > 0) {
696
- tokens.push(token);
697
- }
698
- current = "";
699
- };
700
- for (const char of query) {
701
- if (isAsciiLetterOrDigit(char) || char === "_" || char === "-" || char === "." || char === ":") {
702
- current += char;
703
- continue;
704
- }
705
- push();
706
- }
707
- push();
708
- return tokens;
709
- }
710
- function trimTrailingAnchorTokenPunctuation(token) {
711
- let end = token.length;
712
- while (end > 0) {
713
- const char = token[end - 1];
714
- if (char !== "." && char !== ":" && char !== ";" && char !== "!" && char !== "?") {
715
- break;
716
- }
717
- end -= 1;
718
- }
719
- return token.slice(0, end);
720
- }
721
- function collectStructuredPlanCues(query) {
722
- const cues = /* @__PURE__ */ new Set();
723
- const normalizedQuery = query.toLowerCase().replace(/\s+/g, " ");
724
- for (const cue of STRUCTURED_PLAN_FIELD_CUES) {
725
- if (containsBoundedPhrase(normalizedQuery, cue)) {
726
- cues.add(cue);
727
- }
728
- }
729
- if (cues.size === 0) {
730
- return [];
731
- }
732
- for (const cue of STRUCTURED_PLAN_DEPENDENCY_CUES) {
733
- if (containsBoundedPhrase(normalizedQuery, cue)) {
734
- cues.add(cue);
735
- }
736
- }
737
- return [...cues].sort((left, right) => left.localeCompare(right));
738
- }
739
- function containsBoundedPhrase(normalizedHaystack, phrase) {
740
- let searchFrom = 0;
741
- while (searchFrom < normalizedHaystack.length) {
742
- const index = normalizedHaystack.indexOf(phrase, searchFrom);
743
- if (index < 0) {
744
- return false;
745
- }
746
- const afterIndex = index + phrase.length;
747
- if (isTemporalCueBoundary(normalizedHaystack[index - 1]) && isTemporalCueBoundary(normalizedHaystack[afterIndex])) {
748
- return true;
749
- }
750
- searchFrom = afterIndex;
751
- }
752
- return false;
753
- }
754
- function collectTemporalLexicalCues(query) {
755
- const cues = /* @__PURE__ */ new Set();
756
- const normalizedQuery = query.toLowerCase().replace(/\s+/g, " ");
757
- for (const cue of RELATIVE_TEMPORAL_CUES) {
758
- if (containsBoundedPhrase(normalizedQuery, cue)) {
759
- cues.add(cue);
760
- }
761
- }
762
- return [...cues].sort((left, right) => left.localeCompare(right));
763
- }
764
- function hasLatestStateIntent(query) {
765
- return collectTemporalLexicalCues(query).some(
766
- (cue) => LATEST_STATE_CUES.has(cue)
767
- );
768
- }
769
- function sortLexicalCueResults(results, preferLatest) {
770
- return [...results].sort((left, right) => {
771
- if (preferLatest) {
772
- const sessionOrder2 = left.session_id.localeCompare(right.session_id);
773
- if (sessionOrder2 !== 0) {
774
- return sessionOrder2;
775
- }
776
- const turnOrder = right.turn_index - left.turn_index;
777
- if (turnOrder !== 0) {
778
- return turnOrder;
779
- }
780
- return (right.score ?? 0) - (left.score ?? 0);
781
- }
782
- const scoreDelta = (right.score ?? 0) - (left.score ?? 0);
783
- if (scoreDelta !== 0) {
784
- return scoreDelta;
785
- }
786
- const sessionOrder = left.session_id.localeCompare(right.session_id);
787
- if (sessionOrder !== 0) {
788
- return sessionOrder;
789
- }
790
- return left.turn_index - right.turn_index;
791
- });
792
- }
793
- function normalizeSpeakerNameCue(value) {
794
- const words = value.trim().split(/\s+/).filter(Boolean);
795
- while (words.length > 0 && SPEAKER_NAME_STOPWORDS.has(words[0])) {
796
- words.shift();
797
- }
798
- while (words.length > 0 && SPEAKER_NAME_STOPWORDS.has(words[words.length - 1])) {
799
- words.pop();
800
- }
801
- return words.length > 0 ? words.join(" ") : void 0;
802
- }
803
- function isTemporalCueBoundary(char) {
804
- if (!char) {
805
- return true;
806
- }
807
- return !isAsciiLetterOrDigit(char);
808
- }
809
- function tokenizeReferenceQuery(query) {
810
- const tokens = [];
811
- let current = "";
812
- const flushCurrent = () => {
813
- if (current) {
814
- tokens.push(current);
815
- current = "";
816
- }
817
- };
818
- for (const char of query) {
819
- if (isAsciiLetterOrDigit(char)) {
820
- current += char;
821
- continue;
822
- }
823
- flushCurrent();
824
- if (char === "#" || char === ",") {
825
- tokens.push(char);
826
- } else if (isReferenceDash(char)) {
827
- tokens.push("-");
828
- }
829
- }
830
- flushCurrent();
831
- return tokens;
832
- }
833
- function parseReferenceNumbers(tokens, startIndex) {
834
- const numbers = [];
835
- let lastNumber;
836
- let pendingRangeStart;
837
- let index = startIndex;
838
- const scanEnd = Math.min(
839
- tokens.length,
840
- startIndex + DEFAULT_MAX_REFERENCES * REFERENCE_SCAN_TOKEN_FACTOR
841
- );
842
- for (; index < scanEnd; index += 1) {
843
- const token = tokens[index];
844
- const normalized = token.toLowerCase();
845
- const value = parseNonNegativeIntegerToken(token);
846
- if (value !== void 0) {
847
- if (pendingRangeStart !== void 0) {
848
- numbers.push(...expandReferenceRange(pendingRangeStart, value));
849
- pendingRangeStart = void 0;
850
- } else {
851
- numbers.push(value);
852
- }
853
- lastNumber = value;
854
- continue;
855
- }
856
- if (normalized === "#" || normalized === "number" || normalized === ",") {
857
- continue;
858
- }
859
- if (normalized === "-" || normalized === "to" || normalized === "through" || normalized === "thru") {
860
- if (lastNumber !== void 0) {
861
- if (numbers[numbers.length - 1] === lastNumber) {
862
- numbers.pop();
863
- }
864
- pendingRangeStart = lastNumber;
865
- }
866
- continue;
867
- }
868
- if (normalized === "and" && numbers.length > 0) {
869
- continue;
870
- }
871
- if (normalizeReferenceLabel(token)) {
872
- break;
873
- }
874
- break;
875
- }
876
- if (pendingRangeStart !== void 0) {
877
- numbers.push(pendingRangeStart);
878
- }
879
- return {
880
- numbers: [...new Set(numbers)],
881
- nextIndex: index
882
- };
883
- }
884
- function expandReferenceRange(start, end) {
885
- const low = Math.min(start, end);
886
- const high = Math.max(start, end);
887
- if (high - low + 1 > DEFAULT_MAX_REFERENCES) {
888
- return [start, end];
889
- }
890
- const values = [];
891
- for (let value = low; value <= high; value += 1) {
892
- values.push(value);
893
- }
894
- return values;
895
- }
896
- function normalizeReferenceLabel(token) {
897
- const normalized = token?.toLowerCase();
898
- switch (normalized) {
899
- case "step":
900
- case "steps":
901
- return "step";
902
- case "turn":
903
- case "turns":
904
- return "turn";
905
- case "action":
906
- case "actions":
907
- return "action";
908
- case "observation":
909
- case "observations":
910
- return "observation";
911
- default:
912
- return void 0;
913
- }
914
- }
915
- function candidateTurnIndexesForReference(reference) {
916
- const candidates = /* @__PURE__ */ new Set();
917
- if (reference.includeDirectTurn) {
918
- for (let offset = -1; offset <= 1; offset += 1) {
919
- candidates.add(reference.number + offset);
920
- }
921
- }
922
- const pairedBase = reference.number * 2;
923
- for (let offset = -1; offset <= 1; offset += 1) {
924
- candidates.add(pairedBase + offset);
925
- }
926
- return [...candidates].sort((left, right) => left - right);
927
- }
928
- function parseNonNegativeIntegerToken(token) {
929
- if (token.length === 0) {
930
- return void 0;
931
- }
932
- let value = 0;
933
- for (const char of token) {
934
- const code = char.charCodeAt(0);
935
- if (code < 48 || code > 57) {
936
- return void 0;
937
- }
938
- value = value * 10 + (code - 48);
939
- }
940
- return value;
941
- }
942
- function normalizePositiveInteger(value, fallback) {
943
- if (typeof value !== "number" || !Number.isFinite(value)) {
944
- return fallback;
945
- }
946
- return Math.max(0, Math.floor(value));
947
- }
948
- function isAsciiLetterOrDigit(char) {
949
- const code = char.charCodeAt(0);
950
- return code >= 48 && code <= 57 || code >= 65 && code <= 90 || code >= 97 && code <= 122;
951
- }
952
- function isReferenceDash(char) {
953
- return char === "-" || char === "\u2010" || char === "\u2011" || char === "\u2012" || char === "\u2013" || char === "\u2014" || char === "\u2015";
954
- }
955
-
956
- export {
957
- buildExplicitCueRecallSection,
958
- collectExplicitTurnReferences,
959
- collectLexicalCues,
960
- collectQuestionSlotCues,
961
- collectBenchmarkAnchorCues,
962
- collectStructuredPlanCues,
963
- collectTemporalLexicalCues
964
- };
965
- //# sourceMappingURL=chunk-ERUDW6DU.js.map