hippo-memory 1.59.0 → 1.61.0

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 (596) hide show
  1. package/README.md +1 -1
  2. package/dist/ablation.js +9 -27
  3. package/dist/agent-memories/apply.js +4 -1
  4. package/dist/agent-memories/claude-code.js +1 -1
  5. package/dist/agent-memories/codex.js +1 -1
  6. package/dist/agent-memories/gemini.js +1 -1
  7. package/dist/agent-memories/legacy.js +1 -1
  8. package/dist/agent-memories/source.js +1 -1
  9. package/dist/agent-memories/sync.js +8 -3
  10. package/dist/ambient-store.d.ts +14 -0
  11. package/dist/ambient-store.js +90 -0
  12. package/dist/ambient.d.ts +23 -0
  13. package/dist/ambient.js +72 -50
  14. package/dist/api/assemble.d.ts +93 -0
  15. package/dist/api/assemble.js +152 -0
  16. package/dist/api/audit.d.ts +17 -0
  17. package/dist/api/audit.js +23 -0
  18. package/dist/api/auth.d.ts +79 -0
  19. package/dist/api/auth.js +178 -0
  20. package/dist/api/context-types.d.ts +105 -0
  21. package/dist/api/context-types.js +3 -0
  22. package/dist/api/context.d.ts +31 -0
  23. package/dist/api/context.js +705 -0
  24. package/dist/api/dormant.d.ts +30 -0
  25. package/dist/api/dormant.js +140 -0
  26. package/dist/api/drill-down.d.ts +84 -0
  27. package/dist/api/drill-down.js +123 -0
  28. package/dist/api/forget.d.ts +57 -0
  29. package/dist/api/forget.js +87 -0
  30. package/dist/api/goals.d.ts +18 -0
  31. package/dist/api/goals.js +33 -0
  32. package/dist/api/learn.d.ts +31 -0
  33. package/dist/api/learn.js +88 -0
  34. package/dist/api/outcome.d.ts +61 -0
  35. package/dist/api/outcome.js +66 -0
  36. package/dist/api/promote.d.ts +54 -0
  37. package/dist/api/promote.js +203 -0
  38. package/dist/api/quarantine.d.ts +24 -0
  39. package/dist/api/quarantine.js +121 -0
  40. package/dist/api/recall-types.d.ts +390 -0
  41. package/dist/api/recall-types.js +3 -0
  42. package/dist/api/recall.d.ts +36 -0
  43. package/dist/api/recall.js +634 -0
  44. package/dist/api/remember.d.ts +35 -0
  45. package/dist/api/remember.js +43 -0
  46. package/dist/api/sleep.d.ts +136 -0
  47. package/dist/api/sleep.js +271 -0
  48. package/dist/api/tokens.d.ts +26 -0
  49. package/dist/api/tokens.js +60 -0
  50. package/dist/api/types.d.ts +56 -0
  51. package/dist/api/types.js +38 -0
  52. package/dist/api.d.ts +20 -1260
  53. package/dist/api.js +25 -2711
  54. package/dist/audit.d.ts +3 -0
  55. package/dist/audit.js +7 -3
  56. package/dist/auth.d.ts +45 -4
  57. package/dist/auth.js +125 -48
  58. package/dist/autolearn.js +7 -4
  59. package/dist/capture/command.d.ts +33 -0
  60. package/dist/capture/command.js +264 -0
  61. package/dist/capture/compact.d.ts +44 -0
  62. package/dist/capture/compact.js +354 -0
  63. package/dist/capture/extract.d.ts +21 -0
  64. package/dist/capture/extract.js +464 -0
  65. package/dist/capture/transcript.d.ts +40 -0
  66. package/dist/capture/transcript.js +193 -0
  67. package/dist/capture-error.js +2 -1
  68. package/dist/churn-git.js +4 -2
  69. package/dist/cli/audit.d.ts +3 -0
  70. package/dist/cli/audit.js +159 -0
  71. package/dist/cli/auth.d.ts +2 -0
  72. package/dist/cli/auth.js +171 -0
  73. package/dist/cli/briefs.d.ts +4 -0
  74. package/dist/cli/briefs.js +435 -0
  75. package/dist/cli/card.d.ts +3 -0
  76. package/dist/cli/card.js +333 -0
  77. package/dist/cli/context.d.ts +15 -0
  78. package/dist/cli/context.js +366 -0
  79. package/dist/cli/continuity.d.ts +6 -0
  80. package/dist/cli/continuity.js +445 -0
  81. package/dist/cli/curate.d.ts +19 -0
  82. package/dist/cli/curate.js +555 -0
  83. package/dist/cli/dag.d.ts +5 -0
  84. package/dist/cli/dag.js +177 -0
  85. package/dist/cli/decisions.d.ts +4 -0
  86. package/dist/cli/decisions.js +528 -0
  87. package/dist/cli/eval.d.ts +5 -0
  88. package/dist/cli/eval.js +213 -0
  89. package/dist/cli/explain.d.ts +4 -0
  90. package/dist/cli/explain.js +150 -0
  91. package/dist/cli/goals.d.ts +2 -0
  92. package/dist/cli/goals.js +196 -0
  93. package/dist/cli/hook-blocks.d.ts +18 -0
  94. package/dist/cli/hook-blocks.js +233 -0
  95. package/dist/cli/init.d.ts +2 -0
  96. package/dist/cli/init.js +305 -0
  97. package/dist/cli/maintenance.d.ts +4 -0
  98. package/dist/cli/maintenance.js +179 -0
  99. package/dist/cli/playbooks.d.ts +4 -0
  100. package/dist/cli/playbooks.js +556 -0
  101. package/dist/cli/projects.js +1 -1
  102. package/dist/cli/recall.d.ts +7 -0
  103. package/dist/cli/recall.js +597 -0
  104. package/dist/cli/remember.d.ts +5 -0
  105. package/dist/cli/remember.js +442 -0
  106. package/dist/cli/serve.d.ts +5 -0
  107. package/dist/cli/serve.js +40 -0
  108. package/dist/cli/session-hooks.d.ts +29 -0
  109. package/dist/cli/session-hooks.js +637 -0
  110. package/dist/cli/setup.d.ts +4 -0
  111. package/dist/cli/setup.js +376 -0
  112. package/dist/cli/shared.d.ts +15 -19
  113. package/dist/cli/shared.js +50 -341
  114. package/dist/cli/slack.d.ts +2 -0
  115. package/dist/cli/slack.js +171 -0
  116. package/dist/cli/status.d.ts +18 -0
  117. package/dist/cli/status.js +400 -0
  118. package/dist/cli/transfer.d.ts +10 -0
  119. package/dist/cli/transfer.js +438 -0
  120. package/dist/cli/usage.d.ts +85 -0
  121. package/dist/cli/usage.js +741 -0
  122. package/dist/cli.d.ts +319 -13
  123. package/dist/cli.js +436 -8580
  124. package/dist/client.js +15 -8
  125. package/dist/compaction-record.js +12 -9
  126. package/dist/config.js +12 -11
  127. package/dist/connectors/github/backfill.js +94 -87
  128. package/dist/connectors/github/cli-impl.js +5 -3
  129. package/dist/connectors/github/dlq.js +67 -54
  130. package/dist/connectors/github/ingest.js +34 -35
  131. package/dist/connectors/github/tenant-routing.js +3 -2
  132. package/dist/connectors/github/webhook.js +135 -216
  133. package/dist/connectors/slack/dlq.js +49 -61
  134. package/dist/connectors/slack/ingest.js +55 -48
  135. package/dist/connectors/slack/tenant-routing.js +4 -3
  136. package/dist/connectors/slack/webhook.js +72 -74
  137. package/dist/consolidate/conflicts.d.ts +10 -0
  138. package/dist/consolidate/conflicts.js +178 -0
  139. package/dist/consolidate/decay.d.ts +12 -0
  140. package/dist/consolidate/decay.js +145 -0
  141. package/dist/consolidate/llm-passes.d.ts +3 -0
  142. package/dist/consolidate/llm-passes.js +141 -0
  143. package/dist/consolidate/merge.d.ts +7 -0
  144. package/dist/consolidate/merge.js +251 -0
  145. package/dist/consolidate/physics-pass.d.ts +3 -0
  146. package/dist/consolidate/physics-pass.js +60 -0
  147. package/dist/consolidate/run.d.ts +69 -0
  148. package/dist/consolidate/run.js +76 -0
  149. package/dist/consolidate/sleep.d.ts +18 -0
  150. package/dist/consolidate/sleep.js +209 -0
  151. package/dist/consolidate/traces.d.ts +4 -0
  152. package/dist/consolidate/traces.js +178 -0
  153. package/dist/context-auto.js +7 -11
  154. package/dist/context-render.d.ts +1 -1
  155. package/dist/context-render.js +1 -1
  156. package/dist/customer-notes.d.ts +3 -0
  157. package/dist/customer-notes.js +6 -4
  158. package/dist/dag.js +13 -12
  159. package/dist/dashboard-actions.d.ts +20 -0
  160. package/dist/dashboard-actions.js +88 -0
  161. package/dist/dashboard-params.d.ts +45 -0
  162. package/dist/dashboard-params.js +127 -0
  163. package/dist/dashboard-queries.d.ts +15 -0
  164. package/dist/dashboard-queries.js +355 -0
  165. package/dist/dashboard-snapshot.d.ts +138 -0
  166. package/dist/dashboard-snapshot.js +308 -0
  167. package/dist/dashboard-types.d.ts +163 -0
  168. package/dist/dashboard-types.js +3 -0
  169. package/dist/dashboard.d.ts +6 -7
  170. package/dist/dashboard.js +231 -203
  171. package/dist/db/busy.d.ts +5 -0
  172. package/dist/db/busy.js +24 -0
  173. package/dist/db/continuity.d.ts +5 -0
  174. package/dist/db/continuity.js +145 -0
  175. package/dist/db/meta.d.ts +8 -0
  176. package/dist/db/meta.js +35 -0
  177. package/dist/db/migrate.d.ts +9 -0
  178. package/dist/db/migrate.js +138 -0
  179. package/dist/db/migrations/index.d.ts +5 -0
  180. package/dist/db/migrations/index.js +109 -0
  181. package/dist/db/migrations/types.d.ts +14 -0
  182. package/dist/db/migrations/types.js +2 -0
  183. package/dist/db/migrations/v01.d.ts +3 -0
  184. package/dist/db/migrations/v01.js +38 -0
  185. package/dist/db/migrations/v02.d.ts +3 -0
  186. package/dist/db/migrations/v02.js +21 -0
  187. package/dist/db/migrations/v03.d.ts +3 -0
  188. package/dist/db/migrations/v03.js +22 -0
  189. package/dist/db/migrations/v04.d.ts +3 -0
  190. package/dist/db/migrations/v04.js +28 -0
  191. package/dist/db/migrations/v05.d.ts +3 -0
  192. package/dist/db/migrations/v05.js +21 -0
  193. package/dist/db/migrations/v06.d.ts +3 -0
  194. package/dist/db/migrations/v06.js +25 -0
  195. package/dist/db/migrations/v07.d.ts +3 -0
  196. package/dist/db/migrations/v07.js +13 -0
  197. package/dist/db/migrations/v08.d.ts +3 -0
  198. package/dist/db/migrations/v08.js +8 -0
  199. package/dist/db/migrations/v09.d.ts +3 -0
  200. package/dist/db/migrations/v09.js +13 -0
  201. package/dist/db/migrations/v10.d.ts +3 -0
  202. package/dist/db/migrations/v10.js +17 -0
  203. package/dist/db/migrations/v11.d.ts +3 -0
  204. package/dist/db/migrations/v11.js +15 -0
  205. package/dist/db/migrations/v12.d.ts +3 -0
  206. package/dist/db/migrations/v12.js +11 -0
  207. package/dist/db/migrations/v13.d.ts +3 -0
  208. package/dist/db/migrations/v13.js +15 -0
  209. package/dist/db/migrations/v14.d.ts +3 -0
  210. package/dist/db/migrations/v14.js +66 -0
  211. package/dist/db/migrations/v15.d.ts +3 -0
  212. package/dist/db/migrations/v15.js +42 -0
  213. package/dist/db/migrations/v16.d.ts +3 -0
  214. package/dist/db/migrations/v16.js +61 -0
  215. package/dist/db/migrations/v17.d.ts +3 -0
  216. package/dist/db/migrations/v17.js +46 -0
  217. package/dist/db/migrations/v18.d.ts +3 -0
  218. package/dist/db/migrations/v18.js +60 -0
  219. package/dist/db/migrations/v19.d.ts +3 -0
  220. package/dist/db/migrations/v19.js +28 -0
  221. package/dist/db/migrations/v20.d.ts +3 -0
  222. package/dist/db/migrations/v20.js +42 -0
  223. package/dist/db/migrations/v21.d.ts +3 -0
  224. package/dist/db/migrations/v21.js +16 -0
  225. package/dist/db/migrations/v22.d.ts +3 -0
  226. package/dist/db/migrations/v22.js +82 -0
  227. package/dist/db/migrations/v23.d.ts +3 -0
  228. package/dist/db/migrations/v23.js +48 -0
  229. package/dist/db/migrations/v24.d.ts +3 -0
  230. package/dist/db/migrations/v24.js +72 -0
  231. package/dist/db/migrations/v25.d.ts +3 -0
  232. package/dist/db/migrations/v25.js +46 -0
  233. package/dist/db/migrations/v26.d.ts +3 -0
  234. package/dist/db/migrations/v26.js +23 -0
  235. package/dist/db/migrations/v27.d.ts +3 -0
  236. package/dist/db/migrations/v27.js +57 -0
  237. package/dist/db/migrations/v28.d.ts +3 -0
  238. package/dist/db/migrations/v28.js +38 -0
  239. package/dist/db/migrations/v29.d.ts +3 -0
  240. package/dist/db/migrations/v29.js +78 -0
  241. package/dist/db/migrations/v30.d.ts +3 -0
  242. package/dist/db/migrations/v30.js +92 -0
  243. package/dist/db/migrations/v31.d.ts +3 -0
  244. package/dist/db/migrations/v31.js +74 -0
  245. package/dist/db/migrations/v32.d.ts +3 -0
  246. package/dist/db/migrations/v32.js +102 -0
  247. package/dist/db/migrations/v33.d.ts +3 -0
  248. package/dist/db/migrations/v33.js +104 -0
  249. package/dist/db/migrations/v34.d.ts +3 -0
  250. package/dist/db/migrations/v34.js +93 -0
  251. package/dist/db/migrations/v35.d.ts +3 -0
  252. package/dist/db/migrations/v35.js +98 -0
  253. package/dist/db/migrations/v36.d.ts +3 -0
  254. package/dist/db/migrations/v36.js +98 -0
  255. package/dist/db/migrations/v37.d.ts +3 -0
  256. package/dist/db/migrations/v37.js +219 -0
  257. package/dist/db/migrations/v38.d.ts +3 -0
  258. package/dist/db/migrations/v38.js +277 -0
  259. package/dist/db/migrations/v39.d.ts +3 -0
  260. package/dist/db/migrations/v39.js +59 -0
  261. package/dist/db/migrations/v40.d.ts +3 -0
  262. package/dist/db/migrations/v40.js +74 -0
  263. package/dist/db/migrations/v41.d.ts +3 -0
  264. package/dist/db/migrations/v41.js +43 -0
  265. package/dist/db/migrations/v42.d.ts +3 -0
  266. package/dist/db/migrations/v42.js +41 -0
  267. package/dist/db/migrations/v43.d.ts +3 -0
  268. package/dist/db/migrations/v43.js +67 -0
  269. package/dist/db/migrations/v44.d.ts +3 -0
  270. package/dist/db/migrations/v44.js +28 -0
  271. package/dist/db/migrations/v45.d.ts +3 -0
  272. package/dist/db/migrations/v45.js +30 -0
  273. package/dist/db/migrations/v46.d.ts +3 -0
  274. package/dist/db/migrations/v46.js +25 -0
  275. package/dist/db/migrations/v47.d.ts +3 -0
  276. package/dist/db/migrations/v47.js +17 -0
  277. package/dist/db/migrations/v48.d.ts +3 -0
  278. package/dist/db/migrations/v48.js +10 -0
  279. package/dist/db/migrations/v49.d.ts +3 -0
  280. package/dist/db/migrations/v49.js +31 -0
  281. package/dist/db/migrations/v50.d.ts +3 -0
  282. package/dist/db/migrations/v50.js +67 -0
  283. package/dist/db/migrations/v51.d.ts +3 -0
  284. package/dist/db/migrations/v51.js +14 -0
  285. package/dist/db/migrations/v52.d.ts +3 -0
  286. package/dist/db/migrations/v52.js +7 -0
  287. package/dist/db/open.d.ts +23 -0
  288. package/dist/db/open.js +146 -0
  289. package/dist/db/sqlite.d.ts +21 -0
  290. package/dist/db/sqlite.js +8 -0
  291. package/dist/db/tables.d.ts +7 -0
  292. package/dist/db/tables.js +38 -0
  293. package/dist/db.d.ts +6 -46
  294. package/dist/db.js +5 -3036
  295. package/dist/decisions.d.ts +4 -1
  296. package/dist/decisions.js +9 -7
  297. package/dist/dedupe.js +3 -2
  298. package/dist/delivery-recorder.js +5 -1
  299. package/dist/doctor.js +4 -3
  300. package/dist/dormant.js +1 -0
  301. package/dist/embedding-provider.d.ts +1 -1
  302. package/dist/embedding-provider.js +7 -5
  303. package/dist/embeddings.d.ts +9 -52
  304. package/dist/embeddings.js +47 -298
  305. package/dist/env.d.ts +75 -0
  306. package/dist/env.js +119 -0
  307. package/dist/eval-suite.js +1 -1
  308. package/dist/eval.js +2 -2
  309. package/dist/extract.js +5 -4
  310. package/dist/gated-write.js +3 -1
  311. package/dist/goals.d.ts +3 -1
  312. package/dist/goals.js +18 -0
  313. package/dist/graph/read.d.ts +73 -0
  314. package/dist/graph/read.js +325 -0
  315. package/dist/graph/rows.d.ts +45 -0
  316. package/dist/graph/rows.js +51 -0
  317. package/dist/graph/types.d.ts +83 -0
  318. package/dist/graph/types.js +11 -0
  319. package/dist/graph/write.d.ts +93 -0
  320. package/dist/{graph.js → graph/write.js} +8 -391
  321. package/dist/graph-extract.js +2 -1
  322. package/dist/graph-recall.d.ts +1 -1
  323. package/dist/graph-recall.js +2 -2
  324. package/dist/graph-stream.js +1 -1
  325. package/dist/graph-view.d.ts +1 -1
  326. package/dist/graph-view.js +1 -1
  327. package/dist/half-life-migration.d.ts +1 -1
  328. package/dist/half-life-migration.js +2 -1
  329. package/dist/handoff.js +3 -0
  330. package/dist/hooks/codex-session.d.ts +8 -0
  331. package/dist/hooks/codex-session.js +76 -0
  332. package/dist/hooks/codex-wrapper.d.ts +55 -0
  333. package/dist/hooks/codex-wrapper.js +288 -0
  334. package/dist/hooks/json-hooks.d.ts +63 -0
  335. package/dist/hooks/json-hooks.js +356 -0
  336. package/dist/hooks/opencode.d.ts +50 -0
  337. package/dist/hooks/opencode.js +202 -0
  338. package/dist/hooks/shared.d.ts +54 -0
  339. package/dist/hooks/shared.js +77 -0
  340. package/dist/http-retry.d.ts +2 -0
  341. package/dist/http-retry.js +4 -3
  342. package/dist/http-util.d.ts +3 -0
  343. package/dist/http-util.js +10 -0
  344. package/dist/{importers.d.ts → importers/core.d.ts} +13 -17
  345. package/dist/importers/core.js +141 -0
  346. package/dist/importers/markdown-parse.d.ts +41 -0
  347. package/dist/importers/markdown-parse.js +132 -0
  348. package/dist/importers/markdown.d.ts +3 -0
  349. package/dist/importers/markdown.js +92 -0
  350. package/dist/importers/sources.d.ts +7 -0
  351. package/dist/importers/sources.js +229 -0
  352. package/dist/importers/vault.d.ts +11 -0
  353. package/dist/importers/vault.js +352 -0
  354. package/dist/incidents.d.ts +3 -0
  355. package/dist/incidents.js +8 -5
  356. package/dist/index.d.ts +25 -6
  357. package/dist/index.js +23 -6
  358. package/dist/invalidation.js +2 -1
  359. package/dist/judgment.js +7 -3
  360. package/dist/keyset.d.ts +13 -0
  361. package/dist/keyset.js +8 -0
  362. package/dist/local-embedding.d.ts +13 -0
  363. package/dist/local-embedding.js +165 -0
  364. package/dist/log.d.ts +7 -0
  365. package/dist/log.js +19 -1
  366. package/dist/mcp/admin-tools.d.ts +8 -0
  367. package/dist/mcp/admin-tools.js +116 -0
  368. package/dist/mcp/format.d.ts +27 -0
  369. package/dist/mcp/format.js +135 -0
  370. package/dist/mcp/memory-tools.d.ts +5 -0
  371. package/dist/mcp/memory-tools.js +83 -0
  372. package/dist/mcp/protocol.d.ts +83 -0
  373. package/dist/mcp/protocol.js +55 -0
  374. package/dist/mcp/recall-tools.d.ts +6 -0
  375. package/dist/mcp/recall-tools.js +320 -0
  376. package/dist/mcp/request.d.ts +10 -0
  377. package/dist/mcp/request.js +163 -0
  378. package/dist/mcp/server.d.ts +4 -70
  379. package/dist/mcp/server.js +8 -1172
  380. package/dist/mcp/session-state.d.ts +11 -0
  381. package/dist/mcp/session-state.js +28 -0
  382. package/dist/mcp/stdio.d.ts +8 -0
  383. package/dist/mcp/stdio.js +79 -0
  384. package/dist/mcp/tools.d.ts +11 -0
  385. package/dist/mcp/tools.js +247 -0
  386. package/dist/memory.d.ts +8 -3
  387. package/dist/memory.js +27 -1
  388. package/dist/multihop.d.ts +1 -1
  389. package/dist/multihop.js +2 -1
  390. package/dist/owner-validation.js +2 -1
  391. package/dist/physics-state.js +10 -7
  392. package/dist/policies.d.ts +3 -0
  393. package/dist/policies.js +8 -6
  394. package/dist/postinstall.js +3 -2
  395. package/dist/predictions/planning-fallacy.d.ts +100 -0
  396. package/dist/predictions/planning-fallacy.js +190 -0
  397. package/dist/{predictions.d.ts → predictions/store.d.ts} +7 -102
  398. package/dist/predictions/store.js +434 -0
  399. package/dist/processes.d.ts +3 -0
  400. package/dist/processes.js +8 -5
  401. package/dist/project-briefs.d.ts +3 -0
  402. package/dist/project-briefs.js +7 -5
  403. package/dist/project-identity.d.ts +1 -1
  404. package/dist/project-identity.js +12 -6
  405. package/dist/project-merge.js +3 -1
  406. package/dist/quarantine.d.ts +2 -1
  407. package/dist/quarantine.js +8 -5
  408. package/dist/raw-archive-mirror-cleanup.js +2 -1
  409. package/dist/raw-archive.js +1 -1
  410. package/dist/recall-history.js +3 -2
  411. package/dist/recall-pipeline.d.ts +2 -2
  412. package/dist/recall-pipeline.js +16 -8
  413. package/dist/recall-scope.js +1 -1
  414. package/dist/recall-trace.d.ts +3 -3
  415. package/dist/recall-trace.js +10 -14
  416. package/dist/refine-llm.js +20 -11
  417. package/dist/reject-flow.js +6 -1
  418. package/dist/rerankers/clef.d.ts +2 -2
  419. package/dist/rerankers/clef.js +72 -30
  420. package/dist/rerankers/cross-encoder.js +6 -4
  421. package/dist/rerankers/jev.d.ts +4 -2
  422. package/dist/rerankers/jev.js +24 -19
  423. package/dist/rerankers/llm.d.ts +4 -2
  424. package/dist/rerankers/llm.js +61 -41
  425. package/dist/rerankers/types.d.ts +1 -1
  426. package/dist/salience.js +1 -1
  427. package/dist/same-text.d.ts +2 -0
  428. package/dist/same-text.js +4 -0
  429. package/dist/scheduler.d.ts +1 -0
  430. package/dist/scheduler.js +26 -3
  431. package/dist/scope.js +4 -3
  432. package/dist/search/as-of.d.ts +10 -0
  433. package/dist/search/as-of.js +22 -0
  434. package/dist/search/bm25-search.d.ts +14 -0
  435. package/dist/search/bm25-search.js +43 -0
  436. package/dist/search/bm25.d.ts +15 -0
  437. package/dist/search/bm25.js +54 -0
  438. package/dist/search/boosts.d.ts +54 -0
  439. package/dist/search/boosts.js +94 -0
  440. package/dist/search/breakdown.d.ts +7 -0
  441. package/dist/search/breakdown.js +20 -0
  442. package/dist/search/explain.d.ts +25 -0
  443. package/dist/search/explain.js +31 -0
  444. package/dist/search/finalize.d.ts +8 -0
  445. package/dist/search/finalize.js +52 -0
  446. package/dist/search/fusion.d.ts +27 -0
  447. package/dist/search/fusion.js +42 -0
  448. package/dist/search/hybrid-score.d.ts +20 -0
  449. package/dist/search/hybrid-score.js +73 -0
  450. package/dist/search/hybrid.d.ts +46 -0
  451. package/dist/search/hybrid.js +64 -0
  452. package/dist/search/physics-search.d.ts +29 -0
  453. package/dist/search/physics-search.js +162 -0
  454. package/dist/search/rerank.d.ts +10 -0
  455. package/dist/search/rerank.js +72 -0
  456. package/dist/search/temporal.d.ts +15 -0
  457. package/dist/search/temporal.js +45 -0
  458. package/dist/search/types.d.ts +91 -0
  459. package/dist/search/types.js +2 -0
  460. package/dist/search/vector.d.ts +30 -0
  461. package/dist/search/vector.js +71 -0
  462. package/dist/secret-detect.d.ts +2 -0
  463. package/dist/secret-detect.js +3 -1
  464. package/dist/server/auth.d.ts +52 -0
  465. package/dist/server/auth.js +221 -0
  466. package/dist/server/client-ip.d.ts +25 -0
  467. package/dist/server/client-ip.js +92 -0
  468. package/dist/server/cursor.d.ts +23 -0
  469. package/dist/server/cursor.js +58 -0
  470. package/dist/server/lifecycle.d.ts +7 -0
  471. package/dist/server/lifecycle.js +29 -0
  472. package/dist/server/mcp-http.d.ts +5 -0
  473. package/dist/server/mcp-http.js +199 -0
  474. package/dist/server/request.d.ts +33 -0
  475. package/dist/server/request.js +103 -0
  476. package/dist/server/routes/admin.d.ts +9 -0
  477. package/dist/server/routes/admin.js +158 -0
  478. package/dist/server/routes/customer-notes.d.ts +7 -0
  479. package/dist/server/routes/customer-notes.js +112 -0
  480. package/dist/server/routes/decisions.d.ts +7 -0
  481. package/dist/server/routes/decisions.js +133 -0
  482. package/dist/server/routes/incidents.d.ts +7 -0
  483. package/dist/server/routes/incidents.js +126 -0
  484. package/dist/server/routes/memories.d.ts +10 -0
  485. package/dist/server/routes/memories.js +179 -0
  486. package/dist/server/routes/policies.d.ts +8 -0
  487. package/dist/server/routes/policies.js +151 -0
  488. package/dist/server/routes/predictions.d.ts +7 -0
  489. package/dist/server/routes/predictions.js +164 -0
  490. package/dist/server/routes/processes.d.ts +7 -0
  491. package/dist/server/routes/processes.js +161 -0
  492. package/dist/server/routes/project-briefs.d.ts +8 -0
  493. package/dist/server/routes/project-briefs.js +136 -0
  494. package/dist/server/routes/recall.d.ts +8 -0
  495. package/dist/server/routes/recall.js +340 -0
  496. package/dist/server/routes/skills.d.ts +8 -0
  497. package/dist/server/routes/skills.js +150 -0
  498. package/dist/server/types.d.ts +56 -0
  499. package/dist/server/types.js +2 -0
  500. package/dist/server/validation.d.ts +14 -0
  501. package/dist/server/validation.js +91 -0
  502. package/dist/server.d.ts +7 -61
  503. package/dist/server.js +92 -2368
  504. package/dist/session-digest.d.ts +1 -1
  505. package/dist/session-digest.js +9 -2
  506. package/dist/shared.d.ts +3 -1
  507. package/dist/shared.js +46 -40
  508. package/dist/skills.d.ts +3 -0
  509. package/dist/skills.js +7 -5
  510. package/dist/stdin.js +3 -2
  511. package/dist/store/audit-event.d.ts +19 -0
  512. package/dist/store/audit-event.js +33 -0
  513. package/dist/store/candidates.d.ts +42 -0
  514. package/dist/store/candidates.js +152 -0
  515. package/dist/store/conflicts.d.ts +44 -0
  516. package/dist/store/conflicts.js +444 -0
  517. package/dist/store/delete-and-batch.d.ts +63 -0
  518. package/dist/store/delete-and-batch.js +310 -0
  519. package/dist/store/entry-reads.d.ts +92 -0
  520. package/dist/store/entry-reads.js +255 -0
  521. package/dist/store/entry-row.d.ts +67 -0
  522. package/dist/store/entry-row.js +208 -0
  523. package/dist/store/entry-writes.d.ts +46 -0
  524. package/dist/store/entry-writes.js +148 -0
  525. package/dist/store/handoffs.d.ts +26 -0
  526. package/dist/store/handoffs.js +184 -0
  527. package/dist/store/index-and-stats.d.ts +52 -0
  528. package/dist/store/index-and-stats.js +214 -0
  529. package/dist/store/markdown.d.ts +10 -0
  530. package/dist/store/markdown.js +108 -0
  531. package/dist/store/mirrors.d.ts +49 -0
  532. package/dist/store/mirrors.js +312 -0
  533. package/dist/store/open.d.ts +15 -0
  534. package/dist/store/open.js +223 -0
  535. package/dist/store/rows.d.ts +178 -0
  536. package/dist/store/rows.js +158 -0
  537. package/dist/store/search-rows.d.ts +86 -0
  538. package/dist/store/search-rows.js +254 -0
  539. package/dist/store/sessions.d.ts +83 -0
  540. package/dist/store/sessions.js +272 -0
  541. package/dist/store/summaries.d.ts +94 -0
  542. package/dist/store/summaries.js +377 -0
  543. package/dist/store/tenant-lookup.d.ts +12 -0
  544. package/dist/store/tenant-lookup.js +16 -0
  545. package/dist/store-cards.js +2 -1
  546. package/dist/summary-dirty.d.ts +4 -0
  547. package/dist/summary-dirty.js +32 -0
  548. package/dist/support-bundle.js +4 -3
  549. package/dist/tenant.js +2 -2
  550. package/dist/token-ledger.js +1 -0
  551. package/dist/tokenize.d.ts +2 -0
  552. package/dist/tokenize.js +16 -0
  553. package/dist/transcript-tail.d.ts +7 -0
  554. package/dist/transcript-tail.js +48 -0
  555. package/dist/vector-store.d.ts +27 -0
  556. package/dist/vector-store.js +210 -0
  557. package/dist/version.d.ts +2 -2
  558. package/dist/version.js +2 -2
  559. package/dist/working-memory.js +1 -1
  560. package/dist/yaml.js +36 -11
  561. package/dist-ui/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  562. package/dist-ui/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  563. package/dist-ui/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  564. package/dist-ui/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  565. package/dist-ui/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
  566. package/dist-ui/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
  567. package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
  568. package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
  569. package/dist-ui/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
  570. package/dist-ui/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
  571. package/dist-ui/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
  572. package/dist-ui/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
  573. package/dist-ui/assets/index-DPN7cP19.js +33 -0
  574. package/dist-ui/assets/index-dFloKRVr.css +1 -0
  575. package/dist-ui/index.html +3 -25
  576. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  577. package/extensions/openclaw-plugin/package.json +1 -1
  578. package/openclaw.plugin.json +1 -1
  579. package/package.json +2 -1
  580. package/dist/capture.d.ts +0 -155
  581. package/dist/capture.js +0 -1293
  582. package/dist/consolidate.d.ts +0 -58
  583. package/dist/consolidate.js +0 -1123
  584. package/dist/graph.d.ts +0 -245
  585. package/dist/hooks.d.ts +0 -208
  586. package/dist/hooks.js +0 -1073
  587. package/dist/importers.js +0 -897
  588. package/dist/predictions.js +0 -620
  589. package/dist/search.d.ts +0 -320
  590. package/dist/search.js +0 -968
  591. package/dist/store.d.ts +0 -744
  592. package/dist/store.js +0 -3372
  593. package/dist-ui/assets/d3-BiWEKnn4.js +0 -1
  594. package/dist-ui/assets/index-BhT8RvO6.js +0 -61
  595. package/dist-ui/assets/index-RoXXJ5dq.css +0 -1
  596. package/dist-ui/assets/three-BDgTxR1l.js +0 -4112
@@ -0,0 +1,390 @@
1
+ import type { TaskSnapshot, SessionEvent } from '../store/rows.js';
2
+ import type { SessionHandoff } from '../handoff.js';
3
+ import type { MemoryEntry } from '../memory.js';
4
+ import type { RerankStep, SearchResult } from '../search/types.js';
5
+ import type { PlanningFallacyHint, PlanningFallacyWatching } from '../predictions/planning-fallacy.js';
6
+ import type { AnchoringHint, RecallHistorySnapshot } from '../recall-history.js';
7
+ import type { AvailabilityHint } from '../availability.js';
8
+ export interface RecallOpts {
9
+ query: string;
10
+ limit?: number;
11
+ /**
12
+ * F3 (v1.7.0): scorer-window opt-in. When set, `loadSearchEntries`
13
+ * loads up to `scorerWindow` candidates. When undefined (default),
14
+ * the existing behaviour is preserved: store-internal 200-row default,
15
+ * which every release before v1.7.0 silently relied on.
16
+ *
17
+ * `scorerWindow` lets callers decouple "how many candidates do I want
18
+ * the scorer to evaluate" from `limit` ("how many do I want returned").
19
+ * Useful when `summarizeOverflow=true` and you want a wider candidate
20
+ * pool to detect more level-2 parent clusters.
21
+ *
22
+ * NOT a hard cap on returned results. Fresh-tail and substituted
23
+ * summaries can extend the result count above `limit`. The CLI's
24
+ * existing slice in `cmdRecall` (cli.ts) is the CLI hard cap; library
25
+ * callers slice themselves if they want one.
26
+ *
27
+ * Validated as a positive finite integer when set. `scorerWindow: 0`
28
+ * or non-finite values throw `RecallContractError` with code
29
+ * `invalid_scorer_window` to prevent the v1.6.x footgun where 0 fell
30
+ * through to an uncapped fallback (codex v1.7.0 diff-pass P1).
31
+ *
32
+ * **Input is library-only at v1.7.0.** HTTP `/v1/memories`, MCP
33
+ * `hippo_recall`, and `client.ts` thin-client do NOT serialize this
34
+ * INPUT field; remote callers cannot send `scorerWindow` and will see
35
+ * the store default applied. The OUTPUT `RecallResult.windowSize` is
36
+ * always serialized over the wire (HTTP `sendJson` ships the whole
37
+ * RecallResult, so remote callers receive `windowSize: 200` in the
38
+ * response). Transport exposure for the input planned for v1.7.1
39
+ * alongside the deferred-queue items that need a wider candidate pool
40
+ * (e.g. mean-of-children summary re-rank).
41
+ */
42
+ scorerWindow?: number;
43
+ /** Candidate order. `recall` always keeps the BM25 order; `retrieve` honours this. */
44
+ mode?: 'bm25' | 'hybrid' | 'physics';
45
+ /**
46
+ * Restrict results to memories whose `scope` equals this value exactly.
47
+ *
48
+ * When `scope` is undefined or empty, recall applies a DEFAULT-DENY rule:
49
+ * any memory whose scope starts with `'slack:private:'` is filtered out so
50
+ * a frontend caller passing `undefined` cannot accidentally surface
51
+ * private-channel content. Memories with scope=null (the common case for
52
+ * non-Slack content) are still returned.
53
+ */
54
+ scope?: string;
55
+ /**
56
+ * v1.5.0 DAG-aware recall. When true (default), entries that overflow the
57
+ * `limit` and share a level-2 parent summary cause that summary to be
58
+ * appended in their place, capped at ceil(limit * 0.3) extra rows. Set to
59
+ * false to disable and get the pre-v1.5 strict-limit behaviour.
60
+ */
61
+ summarizeOverflow?: boolean;
62
+ /**
63
+ * v1.5.2 fresh-tail. When > 0, prepend the last N kind='raw' rows
64
+ * (tenant + scope filtered, dedup against the BM25 hits) so an agent's
65
+ * "what did I just see" recall path always covers the recent window
66
+ * even when the query terms don't match. Capped at 200. Default 0 = off.
67
+ */
68
+ freshTailCount?: number;
69
+ /**
70
+ * v1.6.2 fresh-tail session scope. When set, restricts the fresh-tail
71
+ * window to a specific session. Without it, fresh-tail is tenant-wide,
72
+ * which surfaces newest rows across ALL sessions — useful for "anything
73
+ * new in this tenant", but wrong for "what did I just see in this one
74
+ * conversation". Set to ctx-supplied session id for the correct shape.
75
+ */
76
+ freshTailSessionId?: string;
77
+ /**
78
+ * When true, include a continuity block (active task snapshot, latest matching
79
+ * session handoff, recent session events) on the result. Default false to keep
80
+ * the hot path cheap; agent boot paths should set this to true.
81
+ *
82
+ * All three lookups are tenant-scoped to ctx.tenantId via the v0.40+ store
83
+ * helpers. No risk of cross-tenant leak.
84
+ *
85
+ * Note: when no active snapshot exists, sessionHandoff is null and
86
+ * recentSessionEvents is []. We deliberately do NOT fall back to the latest
87
+ * tenant handoff without a session anchor, to avoid resurrecting stale state
88
+ * after a session ends. The explicit handoff-without-snapshot path remains
89
+ * `hippo session resume`.
90
+ */
91
+ includeContinuity?: boolean;
92
+ /**
93
+ * v1.7.4 -- when set AND `(ctx.tenantId, sessionId)` has active goals AND
94
+ * `goalTag` is unset, `api.recall` applies the dlPFC goal-stack boost lifted
95
+ * from CLI cmdRecall. Pre-v1.7.4 the boost was CLI-only (env-driven via
96
+ * HIPPO_SESSION_ID). Undefined preserves v1.7.3 behaviour (no boost).
97
+ *
98
+ * Why on RecallOpts and not Context: Context is shared by remember/recall/
99
+ * assemble/outcome. Goal-stack boost is recall-scoped only.
100
+ */
101
+ sessionId?: string;
102
+ /**
103
+ * v1.7.4 -- explicit goal-tag override. When set, the goal-stack boost is
104
+ * SUPPRESSED (mirrors the CLI's `goalTag === ''` gate from v0.38). Use to
105
+ * pin recall ranking against one specific goal/tag without the multi-goal
106
+ * stack interfering.
107
+ */
108
+ goalTag?: string;
109
+ /**
110
+ * v0.33 / J1 anchoring detector. Caller-supplied snapshot of the per-
111
+ * (tenant, session) recall ring. When present, api.recall computes
112
+ * `RecallResult.anchoringHint` against this snapshot + the just-computed
113
+ * top-1. When undefined (default), no anchoring detection runs on the
114
+ * api.recall surface — but a calling pipeline (CLI cmdRecall, MCP
115
+ * hippo_recall) MAY compute its own hint via the shared
116
+ * `detectAnchoring()` helper against its own ring + top-1.
117
+ *
118
+ * Pure read: api.recall NEVER mutates the snapshot or any caller-side
119
+ * Map. Caller is responsible for appending to its own ring after the
120
+ * recall (passing the resulting hint's memoryId as `anchoredOn` to feed
121
+ * the cooldown logic on the NEXT recall).
122
+ */
123
+ recallHistory?: RecallHistorySnapshot;
124
+ /**
125
+ * v1.13.x / J2 — when true, api.recall does NOT compute or emit the
126
+ * availabilityHint. Callers that run their OWN per-pipeline availability
127
+ * detection over a different result set (the MCP handler computes it over
128
+ * physics/hybrid results, not api.recall's BM25 band) pass this to avoid a
129
+ * double audit emission and a hint describing a result set the caller never
130
+ * surfaces. Mirrors how J1 only computes anchoring when opts.recallHistory
131
+ * is supplied. HTTP / direct SDK callers leave this unset and receive the hint.
132
+ */
133
+ suppressAvailabilityHint?: boolean;
134
+ /**
135
+ * A7 recall-trace. When true, api.recall captures the lifecycle re-ranking
136
+ * trace (currently the goal-boost step on the primary band) and attaches it
137
+ * to each `RecallResultItem` as `rerankTrace`, plus `rerankPipeline:'api'`.
138
+ * When undefined/false (default), both fields are absent on EVERY band so
139
+ * the response shape is byte-identical to pre-A7. The api pipeline applies
140
+ * only goal-boost; the richer CLI stages (interference/value/utility/
141
+ * reranker/retrieval-count-downweight) are A7.2.
142
+ */
143
+ explain?: boolean;
144
+ /**
145
+ * LC1 (docs/plans/2026-08-02-lc1-recall-trace-persistence.md) / F2 fix.
146
+ * When true, api.recall does NOT write a recall_traces row for this call.
147
+ * Mirrors `suppressAvailabilityHint`'s pattern: callers that run their OWN
148
+ * tracing over a DIFFERENT result set must suppress api.recall's copy so
149
+ * the training corpus doesn't get a trace mislabeled as 'api' pipeline
150
+ * when the caller's actual user-visible results came from elsewhere. Under
151
+ * `showRanked` it also drops the 'mcp' trace of the shown list. HTTP /
152
+ * direct SDK callers leave this unset and get the trace.
153
+ */
154
+ suppressRecallTrace?: boolean;
155
+ /** Set only by the MCP recall tool, which ranks with its own scorer and drops copies from its own final list: this call
156
+ * then keeps a memory that a merged row in the same result holds word for word. Other callers leave it unset. */
157
+ keepHeldCopies?: boolean;
158
+ /** MCP recall only: `retrieve` ranks the whole scoped store and strengthens and traces (pipeline 'mcp') just the ids this returns; `results` stays the window band. */
159
+ showRanked?: (ranking: StoreRanking, result: RecallResult) => readonly string[];
160
+ }
161
+ /** `ranked`: every scored row, best first, goal boost applied, entries as loaded; `pool`: the store after the scope filter. */
162
+ export interface StoreRanking {
163
+ ranked: SearchResult[];
164
+ pool: MemoryEntry[];
165
+ droppedByScope: number;
166
+ }
167
+ export interface ContinuityBlock {
168
+ activeSnapshot: TaskSnapshot | null;
169
+ sessionHandoff: SessionHandoff | null;
170
+ recentSessionEvents: SessionEvent[];
171
+ }
172
+ export interface RecallResultItem {
173
+ id: string;
174
+ content: string;
175
+ score: number;
176
+ layer: string;
177
+ strength: number;
178
+ /**
179
+ * v1.5.0 DAG-aware recall (docs/plans/2026-05-05-dag-recall.md Task 2).
180
+ * True when this row is a level-2 topic summary substituted in for
181
+ * overflowed children that didn't fit the limit.
182
+ */
183
+ isSummary?: boolean;
184
+ /**
185
+ * IDs of the overflow leaves this summary covers. Caller can drill
186
+ * into these via `drillDown` (Task 3) to recover the original detail.
187
+ */
188
+ substitutedFor?: string[];
189
+ /** Cached descendant count from schema v25; non-zero for level-2+ rows. */
190
+ descendantCount?: number;
191
+ /**
192
+ * v1.5.2 fresh-tail (docs/plans/2026-05-05-dag-recall.md Task 4). True
193
+ * for rows surfaced via the most-recent-N kind='raw' window, NOT by the
194
+ * BM25 query match. Caller can render them in a separate "recent" band.
195
+ */
196
+ isFreshTail?: boolean;
197
+ /**
198
+ * A7 recall-trace. Ordered lifecycle re-ranking steps that mutated this
199
+ * row's `score` after candidate generation. On the api pipeline this carries
200
+ * the goal-boost step (the only re-ranking api.recall applies). Populated
201
+ * ONLY when `RecallOpts.explain` is set; absent on the default path
202
+ * (additive optional, back-compat per the `windowSize?` precedent;
203
+ * `client.ts` deserializes `as RecallResult` so the field rides through).
204
+ */
205
+ rerankTrace?: RerankStep[];
206
+ /**
207
+ * A7 recall-trace. Names which pipeline produced `rerankTrace`. `'api'` on
208
+ * every band returned by `api.recall` when `explain` is set; the CLI carries
209
+ * its trace on `SearchResult` instead and does not set this. Absent on the
210
+ * default path. Distinguishes the api pipeline (goal-boost only) from the
211
+ * richer CLI pipeline (A7.2 will unify them).
212
+ */
213
+ rerankPipeline?: 'cli' | 'api';
214
+ }
215
+ export interface RecallResult {
216
+ results: RecallResultItem[];
217
+ total: number;
218
+ tokens: number;
219
+ continuity?: ContinuityBlock;
220
+ /**
221
+ * Tokens consumed by the continuity block: snapshot (task + summary + next_step)
222
+ * + handoff (summary + nextAction + artifacts + constraints + evidence line)
223
+ * + every event's full content across the last 5 events. Each measured by Math.ceil(len/4), matching
224
+ * the existing `tokens` count and src/search.ts estimateTokens().
225
+ * Undefined when continuity not requested. Callers needing a tighter budget
226
+ * should truncate event.content themselves before display.
227
+ */
228
+ continuityTokens?: number;
229
+ /**
230
+ * F3 (v1.7.0): scorer window actually used for this recall. Equals
231
+ * `opts.scorerWindow` when set, otherwise the store-internal default
232
+ * (200) used by `loadSearchEntries(undefined, ...)`. Reported so
233
+ * callers can introspect "did the scorer see enough candidates?"
234
+ * without re-deriving the value.
235
+ *
236
+ * Optional in the type to keep `RecallResult` literal-construction
237
+ * back-compatible with pre-v1.7 test fakes / mocks (senior review P1-2).
238
+ * Always present on values returned by `api.recall` itself; consumers
239
+ * reading from `api.recall` can treat it as defined.
240
+ */
241
+ windowSize?: number;
242
+ /**
243
+ * v1.12.13 / C5 — WYSIATI cutoff transparency. When present, gives the
244
+ * calling agent a per-pipeline breakdown of what was excluded from
245
+ * `results[]` and why. Always populated by `api.recall`, `cmdRecall`, and
246
+ * the MCP `hippo_recall` handler. Optional in the type for back-compat
247
+ * with test fakes / mocks (same pattern as `windowSize?`).
248
+ *
249
+ * Counters reflect actual filter activity in the pipeline that produced
250
+ * THIS specific RecallResult. api.recall counts its own filter sites;
251
+ * cmdRecall counts its (richer) filter sites; MCP counts the physics/
252
+ * hybrid pipeline's filter sites. Shape is identical across surfaces;
253
+ * numbers are honest per-path reports, NOT normalised cross-pipeline
254
+ * counts.
255
+ */
256
+ suppressionSummary?: RecallSuppressionSummary;
257
+ /**
258
+ * v0.32 / J3.2 — auto-injected planning-fallacy hint. When the recall
259
+ * query carries a forward-prediction phrase ("will take ~3 days", "ship
260
+ * by Friday", "ETA in 2 weeks") AND the closest matching prediction
261
+ * class has closed historical data, this carries the base-rate stats so
262
+ * the calling agent sees its track record at the moment of forecasting
263
+ * (Lovallo-Kahneman 2003 inside-vs-outside view).
264
+ *
265
+ * Populated by `api.recall` itself via `computePlanningFallacyOutput`.
266
+ * Pipeline-invariant: the value depends only on (queryText, tenantId,
267
+ * predictions table state) — all three are identical regardless of
268
+ * which downstream search pipeline produces the memory list, so MCP
269
+ * and CLI both read this field as the single source of truth (unlike
270
+ * `suppressionSummary` which is per-pipeline).
271
+ *
272
+ * Optional in the type so existing test fakes / mocks of RecallResult
273
+ * remain valid (same pattern as `windowSize?` / `suppressionSummary?`).
274
+ * Disabled by setting `HIPPO_AUTODEBIAS=off`.
275
+ */
276
+ planningFallacyHint?: PlanningFallacyHint;
277
+ /**
278
+ * v1.13.4 / J3.2 follow-up — "watching" variant emitted when the
279
+ * forward-claim regex matched but no baserate could be produced
280
+ * (either because no prediction class scored ≥ 1 on token overlap,
281
+ * or because ≥2 classes tied at the best score). Mutually exclusive
282
+ * with `planningFallacyHint`: at most one of the two is set per
283
+ * recall. Dogfood diary (docs/dogfood/2026-05-27-track-j-warnings.md)
284
+ * Trial 2a confirmed the pre-v1.13.4 silent-no-class-match path was
285
+ * the dominant J3.2 failure mode, because natural-language queries
286
+ * rarely share non-stopword tokens with class tags. The watching
287
+ * variant gives the agent enough signal to either re-tag the
288
+ * prediction or pass the suggestion through to the user.
289
+ *
290
+ * Pipeline-invariant same as `planningFallacyHint`. Honoured by
291
+ * api.recall, cmdRecall, and MCP handler render paths.
292
+ * Disabled by setting `HIPPO_AUTODEBIAS=off`.
293
+ */
294
+ planningFallacyWatching?: PlanningFallacyWatching;
295
+ /**
296
+ * v0.33 / J1 (v1.13.2) — recall-recurrence anchoring hint. Populated
297
+ * when api.recall's `opts.recallHistory` snapshot + the just-computed
298
+ * top-1 satisfy R1 (query_repeat) or R2 (memory_dominance).
299
+ *
300
+ * Per-pipeline detection: each pipeline (api.recall, cmdRecall, MCP)
301
+ * computes its OWN hint against its OWN top-1. This field reflects
302
+ * api.recall's compute ONLY. On CLI-routed call paths cmdRecall does
303
+ * NOT thread its ring snapshot through `opts.recallHistory`, so this
304
+ * field is null on CLI-routed calls even when CLI's own hint fires
305
+ * (the user-visible hint there comes from cmdRecall's parallel
306
+ * compute, surfaced via the CLI render path + cmdSuppressionSummary).
307
+ * Non-null on direct SDK / HTTP-routed invocations where the caller
308
+ * threads its own ring snapshot.
309
+ *
310
+ * Disabled by setting `HIPPO_ANCHORING=off`.
311
+ */
312
+ anchoringHint?: AnchoringHint;
313
+ /**
314
+ * v1.13.x / J2 — availability/recency-bias hint. Per-pipeline (computed
315
+ * against this pipeline's own returned top-K + the matched candidate pool
316
+ * it was drawn from), soft-warning ONLY: never filters, reorders, or
317
+ * suppresses a result. Fires when the returned slice is recency-dominated
318
+ * while substantially older relevant matches in the same pool were passed
319
+ * over. Disabled by setting `HIPPO_AVAILABILITY=off`.
320
+ */
321
+ availabilityHint?: AvailabilityHint;
322
+ }
323
+ /**
324
+ * v1.12.13 / C5 — WYSIATI cutoff transparency (Track C Pineal Gland, C5).
325
+ *
326
+ * Surfaces what the recall pipeline excluded from `results[]` so the calling
327
+ * agent does not treat the cutoff as the full picture (Kahneman's "What You
328
+ * See Is All There Is" failure mode, TFAS ch. 7). Each counter reflects
329
+ * filter activity in the pipeline that produced this RecallResult; counts
330
+ * are honest per-path reports, not normalised cross-pipeline numbers.
331
+ *
332
+ * See `buildSuppressionSummary` for the shared construction helper used by
333
+ * all three pipelines (api.recall, cmdRecall, MCP).
334
+ */
335
+ export interface RecallSuppressionSummary {
336
+ /** Total candidates loaded from the store, before any post-load filter or
337
+ * limit cut. Per-pipeline source:
338
+ * - api.recall: `all.length` immediately after `loadRecallSearchEntries`
339
+ * - cmdRecall: candidate count immediately after the initial load
340
+ * - MCP physics/hybrid: count of entries passed to physicsSearch/hybridSearch
341
+ */
342
+ totalCandidates: number;
343
+ /** Candidates dropped by any non-budget filter site (pre-rank OR post-rank,
344
+ * but NOT the final budget cut). Field name retains the `preRank` label
345
+ * for the original framing; semantically: any filter drop that is not the
346
+ * final limit slice. Per-pipeline source:
347
+ * - api.recall: `all.length - entries.length` (private-scope JS filter + scope-mismatch defense; pre-rank)
348
+ * - cmdRecall: SUM of drops from `--as-of`, default-drop of superseded (when `--include-superseded` not set), `--filter-conflicts` (`.filter` drop only), `--outcome` (post-rank), `--layer` (post-rank). `--salience-threshold` HARD drops would also land here; current implementation is soft-rebalance only (logged in `ScoreBreakdown`, not here).
349
+ * - MCP physics/hybrid: scope-filter drops at the MCP handler before physicsSearch
350
+ */
351
+ droppedPreRank: number;
352
+ /** Candidates loaded but excluded by the final `limit` slice after scoring.
353
+ * Per-pipeline source:
354
+ * - api.recall: `entries.length - baseSlice.length`
355
+ * - cmdRecall: pre-slice candidate count minus final slice count
356
+ * - MCP physics/hybrid: pre-slice minus post-slice at the physics/hybrid limit
357
+ */
358
+ droppedByBudget: number;
359
+ /** Substituted DAG-L2 summaries added back to mitigate overflow.
360
+ * Per-pipeline source:
361
+ * - api.recall: `substituted.length` after the `summarizeOverflow` block
362
+ * - cmdRecall: 0 (CLI does not run summarizeOverflow)
363
+ * - MCP physics/hybrid: count of summary rows appended from apiResult.tailOrSummary
364
+ */
365
+ summarySubstitutionsAdded: number;
366
+ /** Fresh-tail `kind='raw'` rows prepended.
367
+ * Per-pipeline source:
368
+ * - api.recall: `freshRanked.length` when `freshTailCount > 0`; else 0
369
+ * - cmdRecall: 0 (CLI does not currently expose fresh-tail)
370
+ * - MCP physics/hybrid: count of fresh-tail rows appended from apiResult.tailOrSummary
371
+ */
372
+ freshTailAdded: number;
373
+ /** Counter of memories suppressed by detected interference patterns.
374
+ * v0.33 / J1 (v1.13.2): incremented by 1 PER PIPELINE when that
375
+ * pipeline's own R2 memory_dominance verdict fires (via the J1
376
+ * anchoring detector — see `detectAnchoring()` in src/recall-history.ts).
377
+ * Each pipeline (api.recall, cmdRecall, MCP physics/hybrid) bumps its
378
+ * OWN suppressionSummary independently because each runs its own
379
+ * detector against its own top-1 + its own per-(tenant, session) ring
380
+ * buffer. The number reflects this-pipeline interference only; not a
381
+ * cross-pipeline aggregate.
382
+ *
383
+ * Future B4-depth work may add additional sources (e.g. vlPFC inhibition
384
+ * scores). No `interference_suppression` table is built — the v1.12.13
385
+ * doc that referenced one was speculative; J1 uses caller-side in-memory
386
+ * rings instead.
387
+ */
388
+ suppressedByInterference: number;
389
+ }
390
+ //# sourceMappingURL=recall-types.d.ts.map
@@ -0,0 +1,3 @@
1
+ // Option and result shapes for recall and retrieve.
2
+ export {};
3
+ //# sourceMappingURL=recall-types.js.map
@@ -0,0 +1,36 @@
1
+ import type { RecallSuppressionSummary, RecallOpts, RecallResult } from './recall-types.js';
2
+ import { type Context } from './types.js';
3
+ /**
4
+ * Shared construction helper for `RecallSuppressionSummary`. Used by
5
+ * `api.recall`, `cmdRecall`, and the MCP `hippo_recall` handler so all three
6
+ * pipelines produce the same shape without duplicating field-construction
7
+ * logic. Pass-through identity today; kept as a helper so future field
8
+ * additions (B4 interference counter wiring, etc.) land at one site.
9
+ */
10
+ export declare function buildSuppressionSummary(counts: {
11
+ totalCandidates: number;
12
+ droppedPreRank: number;
13
+ droppedByBudget: number;
14
+ summarySubstitutionsAdded: number;
15
+ freshTailAdded: number;
16
+ suppressedByInterference: number;
17
+ }): RecallSuppressionSummary;
18
+ /**
19
+ * Domain-level recall. Loads BM25-ranked candidates from SQLite scoped to
20
+ * `ctx.tenantId` and keeps that order whatever `mode` says; `retrieve` is the
21
+ * mode-aware, strengthening variant the HTTP route uses.
22
+ *
23
+ * **api.recall does NOT mutate `index.last_retrieval_ids`** (v1.11.5 contract
24
+ * lock). The CLI `cmdRecall` (cli.ts) writes `last_retrieval_ids` because the
25
+ * CLI is interactive (user is about to run `hippo outcome --good`). SDK callers
26
+ * are programmatic: they either pass explicit ids to `api.outcome` or call
27
+ * `api.getContext` first for the context-then-outcome workflow (getContext
28
+ * DOES write `last_retrieval_ids`). Adding the side-effect here would change
29
+ * `api.recall` from a pure read into a read+write, breaking SDK callers who
30
+ * batch recall calls in a row. Locked by
31
+ * `tests/api-recall-no-side-effects.test.ts`.
32
+ */
33
+ export declare function recall(ctx: Context, opts: RecallOpts): RecallResult;
34
+ /** Mode-aware recall that strengthens each returned row; never writes last_retrieval_ids (v1.11.5 lock). */
35
+ export declare function retrieve(ctx: Context, opts: RecallOpts): Promise<RecallResult>;
36
+ //# sourceMappingURL=recall.d.ts.map