@getrift/rift 0.1.0-beta.21 → 0.1.0-beta.23

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 (320) hide show
  1. package/README.md +7 -3
  2. package/dist/src/capture/auto-capture.d.ts +105 -4
  3. package/dist/src/capture/auto-capture.d.ts.map +1 -1
  4. package/dist/src/capture/auto-capture.js +313 -34
  5. package/dist/src/capture/auto-capture.js.map +1 -1
  6. package/dist/src/capture/claude-cli-triage-provider.d.ts +28 -0
  7. package/dist/src/capture/claude-cli-triage-provider.d.ts.map +1 -0
  8. package/dist/src/capture/claude-cli-triage-provider.js +88 -0
  9. package/dist/src/capture/claude-cli-triage-provider.js.map +1 -0
  10. package/dist/src/capture/codex-cli-triage-provider.d.ts.map +1 -1
  11. package/dist/src/capture/codex-cli-triage-provider.js +1 -33
  12. package/dist/src/capture/codex-cli-triage-provider.js.map +1 -1
  13. package/dist/src/capture/cursor-capture.d.ts +89 -0
  14. package/dist/src/capture/cursor-capture.d.ts.map +1 -0
  15. package/dist/src/capture/cursor-capture.js +121 -0
  16. package/dist/src/capture/cursor-capture.js.map +1 -0
  17. package/dist/src/capture/observability.d.ts +30 -0
  18. package/dist/src/capture/observability.d.ts.map +1 -1
  19. package/dist/src/capture/observability.js +29 -0
  20. package/dist/src/capture/observability.js.map +1 -1
  21. package/dist/src/capture/recover-quarantine.d.ts +4 -4
  22. package/dist/src/capture/sources.d.ts +41 -3
  23. package/dist/src/capture/sources.d.ts.map +1 -1
  24. package/dist/src/capture/sources.js +43 -1
  25. package/dist/src/capture/sources.js.map +1 -1
  26. package/dist/src/capture/triage-classification.d.ts +69 -0
  27. package/dist/src/capture/triage-classification.d.ts.map +1 -0
  28. package/dist/src/capture/triage-classification.js +62 -0
  29. package/dist/src/capture/triage-classification.js.map +1 -0
  30. package/dist/src/capture/triage-provider-factory.d.ts +36 -0
  31. package/dist/src/capture/triage-provider-factory.d.ts.map +1 -0
  32. package/dist/src/capture/triage-provider-factory.js +55 -0
  33. package/dist/src/capture/triage-provider-factory.js.map +1 -0
  34. package/dist/src/capture/triage.d.ts +1 -1
  35. package/dist/src/capture/triage.d.ts.map +1 -1
  36. package/dist/src/capture/triage.js +8 -6
  37. package/dist/src/capture/triage.js.map +1 -1
  38. package/dist/src/cli/commands/capture.d.ts.map +1 -1
  39. package/dist/src/cli/commands/capture.js +79 -17
  40. package/dist/src/cli/commands/capture.js.map +1 -1
  41. package/dist/src/cli/commands/chunk-backfill.d.ts +13 -0
  42. package/dist/src/cli/commands/chunk-backfill.d.ts.map +1 -0
  43. package/dist/src/cli/commands/chunk-backfill.js +157 -0
  44. package/dist/src/cli/commands/chunk-backfill.js.map +1 -0
  45. package/dist/src/cli/commands/cursor-probe.d.ts +20 -0
  46. package/dist/src/cli/commands/cursor-probe.d.ts.map +1 -0
  47. package/dist/src/cli/commands/cursor-probe.js +162 -0
  48. package/dist/src/cli/commands/cursor-probe.js.map +1 -0
  49. package/dist/src/cli/commands/menubar.d.ts +3 -1
  50. package/dist/src/cli/commands/menubar.d.ts.map +1 -1
  51. package/dist/src/cli/commands/menubar.js +36 -12
  52. package/dist/src/cli/commands/menubar.js.map +1 -1
  53. package/dist/src/cli/commands/onboard.d.ts +22 -2
  54. package/dist/src/cli/commands/onboard.d.ts.map +1 -1
  55. package/dist/src/cli/commands/onboard.js +160 -32
  56. package/dist/src/cli/commands/onboard.js.map +1 -1
  57. package/dist/src/cli/commands/status.d.ts.map +1 -1
  58. package/dist/src/cli/commands/status.js +12 -0
  59. package/dist/src/cli/commands/status.js.map +1 -1
  60. package/dist/src/cli/commands/update.d.ts +34 -1
  61. package/dist/src/cli/commands/update.d.ts.map +1 -1
  62. package/dist/src/cli/commands/update.js +166 -1
  63. package/dist/src/cli/commands/update.js.map +1 -1
  64. package/dist/src/cli/index.d.ts.map +1 -1
  65. package/dist/src/cli/index.js +4 -0
  66. package/dist/src/cli/index.js.map +1 -1
  67. package/dist/src/cli/postinstall-menubar.d.ts +20 -13
  68. package/dist/src/cli/postinstall-menubar.d.ts.map +1 -1
  69. package/dist/src/cli/postinstall-menubar.js +56 -1
  70. package/dist/src/cli/postinstall-menubar.js.map +1 -1
  71. package/dist/src/cli/status/friend-header.d.ts +16 -3
  72. package/dist/src/cli/status/friend-header.d.ts.map +1 -1
  73. package/dist/src/cli/status/friend-header.js +186 -10
  74. package/dist/src/cli/status/friend-header.js.map +1 -1
  75. package/dist/src/cli/status/local-signals.d.ts +42 -4
  76. package/dist/src/cli/status/local-signals.d.ts.map +1 -1
  77. package/dist/src/cli/status/local-signals.js +52 -1
  78. package/dist/src/cli/status/local-signals.js.map +1 -1
  79. package/dist/src/config/schema.d.ts +220 -14
  80. package/dist/src/config/schema.d.ts.map +1 -1
  81. package/dist/src/config/schema.js +82 -7
  82. package/dist/src/config/schema.js.map +1 -1
  83. package/dist/src/diagnostics/claude-preflight.d.ts +35 -0
  84. package/dist/src/diagnostics/claude-preflight.d.ts.map +1 -0
  85. package/dist/src/diagnostics/claude-preflight.js +90 -0
  86. package/dist/src/diagnostics/claude-preflight.js.map +1 -0
  87. package/dist/src/diagnostics/codex-preflight.d.ts +1 -1
  88. package/dist/src/diagnostics/codex-preflight.d.ts.map +1 -1
  89. package/dist/src/diagnostics/codex-preflight.js +24 -0
  90. package/dist/src/diagnostics/codex-preflight.js.map +1 -1
  91. package/dist/src/diagnostics/doctor.d.ts +7 -4
  92. package/dist/src/diagnostics/doctor.d.ts.map +1 -1
  93. package/dist/src/diagnostics/doctor.js +70 -11
  94. package/dist/src/diagnostics/doctor.js.map +1 -1
  95. package/dist/src/diagnostics/memory-coverage.d.ts +54 -0
  96. package/dist/src/diagnostics/memory-coverage.d.ts.map +1 -0
  97. package/dist/src/diagnostics/memory-coverage.js +272 -0
  98. package/dist/src/diagnostics/memory-coverage.js.map +1 -0
  99. package/dist/src/diagnostics/notify.d.ts +20 -3
  100. package/dist/src/diagnostics/notify.d.ts.map +1 -1
  101. package/dist/src/diagnostics/notify.js +54 -14
  102. package/dist/src/diagnostics/notify.js.map +1 -1
  103. package/dist/src/ingestion/chunk-meta.d.ts +85 -0
  104. package/dist/src/ingestion/chunk-meta.d.ts.map +1 -0
  105. package/dist/src/ingestion/chunk-meta.js +167 -0
  106. package/dist/src/ingestion/chunk-meta.js.map +1 -0
  107. package/dist/src/ingestion/chunk-text.d.ts +39 -0
  108. package/dist/src/ingestion/chunk-text.d.ts.map +1 -0
  109. package/dist/src/ingestion/chunk-text.js +114 -0
  110. package/dist/src/ingestion/chunk-text.js.map +1 -0
  111. package/dist/src/ingestion/cursor/cursor-store.d.ts +177 -0
  112. package/dist/src/ingestion/cursor/cursor-store.d.ts.map +1 -0
  113. package/dist/src/ingestion/cursor/cursor-store.js +243 -0
  114. package/dist/src/ingestion/cursor/cursor-store.js.map +1 -0
  115. package/dist/src/ingestion/cursor/enrich-roots.d.ts +16 -0
  116. package/dist/src/ingestion/cursor/enrich-roots.d.ts.map +1 -0
  117. package/dist/src/ingestion/cursor/enrich-roots.js +22 -0
  118. package/dist/src/ingestion/cursor/enrich-roots.js.map +1 -0
  119. package/dist/src/ingestion/cursor/vscdb-reader.d.ts +32 -0
  120. package/dist/src/ingestion/cursor/vscdb-reader.d.ts.map +1 -0
  121. package/dist/src/ingestion/cursor/vscdb-reader.js +113 -0
  122. package/dist/src/ingestion/cursor/vscdb-reader.js.map +1 -0
  123. package/dist/src/ingestion/cursor/workspace-root.d.ts +96 -0
  124. package/dist/src/ingestion/cursor/workspace-root.d.ts.map +1 -0
  125. package/dist/src/ingestion/cursor/workspace-root.js +187 -0
  126. package/dist/src/ingestion/cursor/workspace-root.js.map +1 -0
  127. package/dist/src/ingestion/indexer.d.ts.map +1 -1
  128. package/dist/src/ingestion/indexer.js +41 -32
  129. package/dist/src/ingestion/indexer.js.map +1 -1
  130. package/dist/src/jobs/handlers/compact.d.ts.map +1 -1
  131. package/dist/src/jobs/handlers/compact.js +9 -4
  132. package/dist/src/jobs/handlers/compact.js.map +1 -1
  133. package/dist/src/jobs/handlers/ingest.d.ts.map +1 -1
  134. package/dist/src/jobs/handlers/ingest.js +60 -30
  135. package/dist/src/jobs/handlers/ingest.js.map +1 -1
  136. package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -1
  137. package/dist/src/jobs/handlers/reconcile.js +128 -45
  138. package/dist/src/jobs/handlers/reconcile.js.map +1 -1
  139. package/dist/src/jobs/handlers/save.d.ts.map +1 -1
  140. package/dist/src/jobs/handlers/save.js +122 -72
  141. package/dist/src/jobs/handlers/save.js.map +1 -1
  142. package/dist/src/jobs/types.d.ts +1 -1
  143. package/dist/src/main.js +27 -16
  144. package/dist/src/main.js.map +1 -1
  145. package/dist/src/mcp/capture-diagnostics.d.ts +51 -0
  146. package/dist/src/mcp/capture-diagnostics.d.ts.map +1 -0
  147. package/dist/src/mcp/capture-diagnostics.js +127 -0
  148. package/dist/src/mcp/capture-diagnostics.js.map +1 -0
  149. package/dist/src/mcp/memory-diagnostics.d.ts +6 -0
  150. package/dist/src/mcp/memory-diagnostics.d.ts.map +1 -0
  151. package/dist/src/mcp/memory-diagnostics.js +51 -0
  152. package/dist/src/mcp/memory-diagnostics.js.map +1 -0
  153. package/dist/src/mcp/server.d.ts.map +1 -1
  154. package/dist/src/mcp/server.js +10 -3
  155. package/dist/src/mcp/server.js.map +1 -1
  156. package/dist/src/mcp/tools/context-pack.d.ts.map +1 -1
  157. package/dist/src/mcp/tools/context-pack.js +7 -1
  158. package/dist/src/mcp/tools/context-pack.js.map +1 -1
  159. package/dist/src/mcp/tools/conversations-search.d.ts +1 -1
  160. package/dist/src/mcp/tools/conversations-search.d.ts.map +1 -1
  161. package/dist/src/mcp/tools/conversations-search.js +7 -1
  162. package/dist/src/mcp/tools/conversations-search.js.map +1 -1
  163. package/dist/src/mcp/tools/evidence-feedback.d.ts +60 -0
  164. package/dist/src/mcp/tools/evidence-feedback.d.ts.map +1 -0
  165. package/dist/src/mcp/tools/evidence-feedback.js +62 -0
  166. package/dist/src/mcp/tools/evidence-feedback.js.map +1 -0
  167. package/dist/src/mcp/tools/log-outcome.d.ts +72 -0
  168. package/dist/src/mcp/tools/log-outcome.d.ts.map +1 -0
  169. package/dist/src/mcp/tools/log-outcome.js +59 -0
  170. package/dist/src/mcp/tools/log-outcome.js.map +1 -0
  171. package/dist/src/mcp/tools/open-evidence.d.ts +37 -0
  172. package/dist/src/mcp/tools/open-evidence.d.ts.map +1 -0
  173. package/dist/src/mcp/tools/open-evidence.js +72 -0
  174. package/dist/src/mcp/tools/open-evidence.js.map +1 -0
  175. package/dist/src/mcp/tools/save.d.ts +7 -2
  176. package/dist/src/mcp/tools/save.d.ts.map +1 -1
  177. package/dist/src/mcp/tools/save.js +7 -2
  178. package/dist/src/mcp/tools/save.js.map +1 -1
  179. package/dist/src/mcp/tools/search.d.ts.map +1 -1
  180. package/dist/src/mcp/tools/search.js +7 -1
  181. package/dist/src/mcp/tools/search.js.map +1 -1
  182. package/dist/src/mcp/tools/status.d.ts +15 -1
  183. package/dist/src/mcp/tools/status.d.ts.map +1 -1
  184. package/dist/src/mcp/tools/status.js +53 -2
  185. package/dist/src/mcp/tools/status.js.map +1 -1
  186. package/dist/src/observability/retrieval-feedback.d.ts +82 -0
  187. package/dist/src/observability/retrieval-feedback.d.ts.map +1 -0
  188. package/dist/src/observability/retrieval-feedback.js +231 -0
  189. package/dist/src/observability/retrieval-feedback.js.map +1 -0
  190. package/dist/src/observability/rift-context.d.ts.map +1 -1
  191. package/dist/src/observability/rift-context.js +3 -0
  192. package/dist/src/observability/rift-context.js.map +1 -1
  193. package/dist/src/observability/tool-usage-stats.d.ts +13 -0
  194. package/dist/src/observability/tool-usage-stats.d.ts.map +1 -1
  195. package/dist/src/observability/tool-usage-stats.js +15 -0
  196. package/dist/src/observability/tool-usage-stats.js.map +1 -1
  197. package/dist/src/observability/tool-usage.d.ts +56 -0
  198. package/dist/src/observability/tool-usage.d.ts.map +1 -1
  199. package/dist/src/observability/tool-usage.js +86 -0
  200. package/dist/src/observability/tool-usage.js.map +1 -1
  201. package/dist/src/providers/claude-cli-metadata-extraction.d.ts +47 -0
  202. package/dist/src/providers/claude-cli-metadata-extraction.d.ts.map +1 -0
  203. package/dist/src/providers/claude-cli-metadata-extraction.js +120 -0
  204. package/dist/src/providers/claude-cli-metadata-extraction.js.map +1 -0
  205. package/dist/src/providers/claude-cli-runner.d.ts +92 -0
  206. package/dist/src/providers/claude-cli-runner.d.ts.map +1 -0
  207. package/dist/src/providers/claude-cli-runner.js +598 -0
  208. package/dist/src/providers/claude-cli-runner.js.map +1 -0
  209. package/dist/src/providers/codex-cli-metadata-extraction.d.ts.map +1 -1
  210. package/dist/src/providers/codex-cli-metadata-extraction.js +1 -40
  211. package/dist/src/providers/codex-cli-metadata-extraction.js.map +1 -1
  212. package/dist/src/providers/codex-cli-runner.d.ts +7 -0
  213. package/dist/src/providers/codex-cli-runner.d.ts.map +1 -1
  214. package/dist/src/providers/codex-cli-runner.js +131 -5
  215. package/dist/src/providers/codex-cli-runner.js.map +1 -1
  216. package/dist/src/providers/conversation-generation.d.ts +10 -0
  217. package/dist/src/providers/conversation-generation.d.ts.map +1 -1
  218. package/dist/src/providers/conversation-generation.js +54 -13
  219. package/dist/src/providers/conversation-generation.js.map +1 -1
  220. package/dist/src/providers/openai-metadata-extraction.d.ts +48 -1
  221. package/dist/src/providers/openai-metadata-extraction.d.ts.map +1 -1
  222. package/dist/src/providers/openai-metadata-extraction.js +51 -2
  223. package/dist/src/providers/openai-metadata-extraction.js.map +1 -1
  224. package/dist/src/providers/types.d.ts +1 -1
  225. package/dist/src/providers/types.d.ts.map +1 -1
  226. package/dist/src/providers/types.js +4 -0
  227. package/dist/src/providers/types.js.map +1 -1
  228. package/dist/src/retrieval/canonical-files.d.ts +48 -0
  229. package/dist/src/retrieval/canonical-files.d.ts.map +1 -0
  230. package/dist/src/retrieval/canonical-files.js +210 -0
  231. package/dist/src/retrieval/canonical-files.js.map +1 -0
  232. package/dist/src/retrieval/compact.d.ts +95 -0
  233. package/dist/src/retrieval/compact.d.ts.map +1 -1
  234. package/dist/src/retrieval/compact.js +254 -8
  235. package/dist/src/retrieval/compact.js.map +1 -1
  236. package/dist/src/retrieval/context-pack.d.ts.map +1 -1
  237. package/dist/src/retrieval/context-pack.js +65 -15
  238. package/dist/src/retrieval/context-pack.js.map +1 -1
  239. package/dist/src/retrieval/conversation-dedup.d.ts +40 -0
  240. package/dist/src/retrieval/conversation-dedup.d.ts.map +1 -0
  241. package/dist/src/retrieval/conversation-dedup.js +141 -0
  242. package/dist/src/retrieval/conversation-dedup.js.map +1 -0
  243. package/dist/src/retrieval/evidence-key.d.ts +48 -0
  244. package/dist/src/retrieval/evidence-key.d.ts.map +1 -0
  245. package/dist/src/retrieval/evidence-key.js +131 -0
  246. package/dist/src/retrieval/evidence-key.js.map +1 -0
  247. package/dist/src/retrieval/feedback-ranking.d.ts +49 -0
  248. package/dist/src/retrieval/feedback-ranking.d.ts.map +1 -0
  249. package/dist/src/retrieval/feedback-ranking.js +138 -0
  250. package/dist/src/retrieval/feedback-ranking.js.map +1 -0
  251. package/dist/src/retrieval/git-state.d.ts +9 -0
  252. package/dist/src/retrieval/git-state.d.ts.map +1 -1
  253. package/dist/src/retrieval/git-state.js +18 -0
  254. package/dist/src/retrieval/git-state.js.map +1 -1
  255. package/dist/src/retrieval/group-by-parent.d.ts +38 -0
  256. package/dist/src/retrieval/group-by-parent.d.ts.map +1 -0
  257. package/dist/src/retrieval/group-by-parent.js +40 -0
  258. package/dist/src/retrieval/group-by-parent.js.map +1 -0
  259. package/dist/src/retrieval/lexical.d.ts.map +1 -1
  260. package/dist/src/retrieval/lexical.js +1 -3
  261. package/dist/src/retrieval/lexical.js.map +1 -1
  262. package/dist/src/retrieval/receipt.d.ts +57 -0
  263. package/dist/src/retrieval/receipt.d.ts.map +1 -0
  264. package/dist/src/retrieval/receipt.js +119 -0
  265. package/dist/src/retrieval/receipt.js.map +1 -0
  266. package/dist/src/retrieval/reranker.d.ts +49 -2
  267. package/dist/src/retrieval/reranker.d.ts.map +1 -1
  268. package/dist/src/retrieval/reranker.js +64 -4
  269. package/dist/src/retrieval/reranker.js.map +1 -1
  270. package/dist/src/retrieval/stitch-chunks.d.ts +73 -0
  271. package/dist/src/retrieval/stitch-chunks.d.ts.map +1 -0
  272. package/dist/src/retrieval/stitch-chunks.js +106 -0
  273. package/dist/src/retrieval/stitch-chunks.js.map +1 -0
  274. package/dist/src/server/app.d.ts +1 -1
  275. package/dist/src/server/app.d.ts.map +1 -1
  276. package/dist/src/server/app.js +20 -3
  277. package/dist/src/server/app.js.map +1 -1
  278. package/dist/src/server/routes/conversations-search.d.ts.map +1 -1
  279. package/dist/src/server/routes/conversations-search.js +22 -3
  280. package/dist/src/server/routes/conversations-search.js.map +1 -1
  281. package/dist/src/server/routes/friend-status.d.ts +64 -6
  282. package/dist/src/server/routes/friend-status.d.ts.map +1 -1
  283. package/dist/src/server/routes/friend-status.js +114 -18
  284. package/dist/src/server/routes/friend-status.js.map +1 -1
  285. package/dist/src/server/routes/mcp-usage.d.ts +9 -6
  286. package/dist/src/server/routes/mcp-usage.d.ts.map +1 -1
  287. package/dist/src/server/routes/mcp-usage.js.map +1 -1
  288. package/dist/src/server/routes/retrieval-feedback.d.ts +3 -0
  289. package/dist/src/server/routes/retrieval-feedback.d.ts.map +1 -0
  290. package/dist/src/server/routes/retrieval-feedback.js +290 -0
  291. package/dist/src/server/routes/retrieval-feedback.js.map +1 -0
  292. package/dist/src/server/routes/save.d.ts +3 -3
  293. package/dist/src/server/routes/save.d.ts.map +1 -1
  294. package/dist/src/server/routes/save.js +6 -2
  295. package/dist/src/server/routes/save.js.map +1 -1
  296. package/dist/src/server/routes/search.d.ts +1 -1
  297. package/dist/src/server/routes/search.d.ts.map +1 -1
  298. package/dist/src/server/routes/search.js +55 -8
  299. package/dist/src/server/routes/search.js.map +1 -1
  300. package/dist/src/server/serving-marker.d.ts +85 -0
  301. package/dist/src/server/serving-marker.d.ts.map +1 -0
  302. package/dist/src/server/serving-marker.js +226 -0
  303. package/dist/src/server/serving-marker.js.map +1 -0
  304. package/dist/src/storage/chunk-backfill.d.ts +39 -0
  305. package/dist/src/storage/chunk-backfill.d.ts.map +1 -0
  306. package/dist/src/storage/chunk-backfill.js +295 -0
  307. package/dist/src/storage/chunk-backfill.js.map +1 -0
  308. package/dist/src/storage/filter.d.ts +42 -0
  309. package/dist/src/storage/filter.d.ts.map +1 -0
  310. package/dist/src/storage/filter.js +70 -0
  311. package/dist/src/storage/filter.js.map +1 -0
  312. package/dist/src/storage/rebuild.d.ts.map +1 -1
  313. package/dist/src/storage/rebuild.js +44 -27
  314. package/dist/src/storage/rebuild.js.map +1 -1
  315. package/dist/src/storage/tables.d.ts +41 -0
  316. package/dist/src/storage/tables.d.ts.map +1 -1
  317. package/dist/src/storage/tables.js +64 -1
  318. package/dist/src/storage/tables.js.map +1 -1
  319. package/operator/swiftbar/render-menu.py +60 -18
  320. package/package.json +6 -4
@@ -1 +1 @@
1
- {"version":3,"file":"openai-metadata-extraction.js","sourceRoot":"","sources":["../../../src/providers/openai-metadata-extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-metadata-extraction.js","sourceRoot":"","sources":["../../../src/providers/openai-metadata-extraction.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export interface RetryConfig {
17
17
  maxDelayMs: number;
18
18
  }
19
19
  export declare const DEFAULT_RETRY_CONFIG: RetryConfig;
20
- export declare const CONVERSATION_SOURCES: readonly ["claude_code", "gemini_cli", "codex_cli", "chatgpt_web", "claude_web", "grok_web", "gemini_web"];
20
+ export declare const CONVERSATION_SOURCES: readonly ["claude_code", "gemini_cli", "codex_cli", "cursor_composer", "chatgpt_web", "claude_web", "grok_web", "gemini_web"];
21
21
  export type ConversationSource = (typeof CONVERSATION_SOURCES)[number];
22
22
  export declare const DOMAINS: readonly ["business", "tech", "personal", "travel", "health", "finance", "creative"];
23
23
  export type Domain = (typeof DOMAINS)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ export const CONVERSATION_SOURCES = [
18
18
  "claude_code",
19
19
  "gemini_cli",
20
20
  "codex_cli",
21
+ // Native Cursor composer/agent/chat sessions (Cursor's own vscdb store).
22
+ // Claude-Code- and Codex-in-Cursor are NOT this source — those write to
23
+ // ~/.claude / ~/.codex and are already captured as claude_code / codex_cli.
24
+ "cursor_composer",
21
25
  "chatgpt_web",
22
26
  "claude_web",
23
27
  "grok_web",
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,gCAAgC;AAEhC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,aAAa;IACb,YAAY;IACZ,WAAW;IACX,aAAa;IACb,YAAY;IACZ,UAAU;IACV,YAAY;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU;IACV,MAAM;IACN,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;CACF,CAAC;AAGX,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,OAAO;IACP,OAAO;IACP,cAAc;CACN,CAAC;AAGX,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAGjE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,oBAAoB;IACpB,2BAA2B;CACnB,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAGxE,oBAAoB;AAEpB,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC,CAAC,gBAAgB;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC,CAAC,oCAAoC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,gCAAgC;AAEhC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,aAAa;IACb,YAAY;IACZ,WAAW;IACX,yEAAyE;IACzE,wEAAwE;IACxE,4EAA4E;IAC5E,iBAAiB;IACjB,aAAa;IACb,YAAY;IACZ,UAAU;IACV,YAAY;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU;IACV,MAAM;IACN,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;CACF,CAAC;AAGX,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,OAAO;IACP,OAAO;IACP,cAAc;CACN,CAAC;AAGX,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAGjE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,oBAAoB;IACpB,2BAA2B;CACnB,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAGxE,oBAAoB;AAEpB,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC,CAAC,gBAAgB;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC,CAAC,oCAAoC"}
@@ -0,0 +1,48 @@
1
+ import type { EvidenceInput } from "./current-truth.js";
2
+ /** Whether the read-only canonical-file lane is enabled. Default OFF. */
3
+ export declare function canonicalFilesEnabled(env?: NodeJS.ProcessEnv): boolean;
4
+ /**
5
+ * Tracker-tier canonical files (slice 1). Relative names, resolved against the
6
+ * project root. Deliberately small — this is NOT "index every tracker"; it is a
7
+ * curated allow-list of files whose live contents are authoritative current
8
+ * state. Both match `TRACKER_FILE_PATTERNS` in current-truth.ts → `tracker` tier.
9
+ */
10
+ export declare const CANONICAL_FILES: readonly string[];
11
+ export interface CanonicalSection {
12
+ /** First non-empty line (heading or list item), for display/title. */
13
+ heading: string;
14
+ /** Full section text (heading + body up to the next boundary). */
15
+ text: string;
16
+ }
17
+ /**
18
+ * Split markdown into sections at heading lines (`#`..`######`) and TOP-LEVEL
19
+ * list items (`- ` / `* `, no leading indent). Each decision bullet, TODO item,
20
+ * or heading block becomes one section; nested/indented bullets stay with their
21
+ * parent. Content before the first boundary (e.g. the `Last touched:` preamble)
22
+ * forms the leading section.
23
+ */
24
+ export declare function splitIntoSections(content: string): CanonicalSection[];
25
+ export interface CanonicalFileEvidenceOptions {
26
+ /** Absolute project root; canonical files are resolved relative to it. */
27
+ projectRoot: string;
28
+ /** The user's task/query. */
29
+ query: string;
30
+ /** Max sections returned across all files (default 3). */
31
+ maxSections?: number;
32
+ /** Minimum distinct discriminating-term matches to surface (default 1). */
33
+ minScore?: number;
34
+ /** Allow-list override (tests). Defaults to {@link CANONICAL_FILES}. */
35
+ files?: readonly string[];
36
+ /** Injectable reader; returns undefined when missing. Defaults to fs. */
37
+ readFile?: (absPath: string) => string | undefined;
38
+ /** Injectable clock — live reads are current as of `now`. Defaults to new Date(). */
39
+ now?: Date;
40
+ }
41
+ /**
42
+ * Read the canonical files and return query-matching sections as synthetic
43
+ * tracker-tier {@link EvidenceInput}s, highest-scoring first. Empty when the
44
+ * query has no discriminating terms, no file matches, or nothing clears
45
+ * `minScore` — so the caller can prepend unconditionally.
46
+ */
47
+ export declare function buildCanonicalFileEvidence(opts: CanonicalFileEvidenceOptions): EvidenceInput[];
48
+ //# sourceMappingURL=canonical-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-files.d.ts","sourceRoot":"","sources":["../../../src/retrieval/canonical-files.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,yEAAyE;AACzE,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAoC,CAAC;AAsBlF,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAoBrE;AAED,MAAM,WAAW,4BAA4B;IAC3C,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACnD,qFAAqF;IACrF,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAQD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,4BAA4B,GACjC,aAAa,EAAE,CA6CjB"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Read-only canonical-file lane (current-decision source coverage).
3
+ *
4
+ * Trackers like PROJECT_STATE.md / TODO.md are deliberately NOT indexed into
5
+ * LanceDB (2026-05-20 decision), so a current-truth query such as "what did we
6
+ * decide about pricing" misses entirely — the canonical answer is never even a
7
+ * retrieval candidate (surfaced 2026-06-14 by a Slice-16 dogfood miss). This
8
+ * lane closes that gap WITHOUT indexing: it reads a SMALL allow-list of
9
+ * canonical TRACKED files live from disk at request time, lexically matches the
10
+ * query against their sections, and emits the top matches as synthetic
11
+ * {@link EvidenceInput}s. The UNCHANGED pure partitioner (`partitionEvidence`)
12
+ * then routes them by their tracker tier (path-based, via `assignTrustTier`) —
13
+ * leading `current_truth` for current_truth/blended intent, kept as
14
+ * `current_truth` background under reasoning_archive (note: "what did we
15
+ * decide …" classifies as reasoning_archive, so the lane runs regardless of
16
+ * intent). Reading live means the evidence is
17
+ * current by construction — the opposite of the stale-doc-over-current-state
18
+ * failure Current Truth Mode fights, and why we read instead of index.
19
+ *
20
+ * Flag-gated (`RIFT_CANONICAL_FILES=1`, default OFF). Provable no-op when off,
21
+ * when no project root is known, or when no section clears the relevance floor.
22
+ * Deliberately context-pack-only for slice 1; `/search` is a separate lane.
23
+ */
24
+ import fs from "node:fs";
25
+ import path from "node:path";
26
+ import { tokenize } from "./lexical.js";
27
+ /** Whether the read-only canonical-file lane is enabled. Default OFF. */
28
+ export function canonicalFilesEnabled(env = process.env) {
29
+ return env["RIFT_CANONICAL_FILES"] === "1";
30
+ }
31
+ /**
32
+ * Tracker-tier canonical files (slice 1). Relative names, resolved against the
33
+ * project root. Deliberately small — this is NOT "index every tracker"; it is a
34
+ * curated allow-list of files whose live contents are authoritative current
35
+ * state. Both match `TRACKER_FILE_PATTERNS` in current-truth.ts → `tracker` tier.
36
+ */
37
+ export const CANONICAL_FILES = ["PROJECT_STATE.md", "TODO.md"];
38
+ const DEFAULT_MAX_SECTIONS = 3;
39
+ const DEFAULT_MIN_SCORE = 1;
40
+ const MIN_TERM_LEN = 3;
41
+ const SECTION_CONTENT_MAX = 1200;
42
+ /**
43
+ * A query term present in more than this fraction of all candidate sections is
44
+ * treated as non-discriminating (e.g. "rift" across Rift's own trackers) and
45
+ * contributes 0 to a section's score. A cheap document-frequency downweight so
46
+ * the lane keys on the rare, query-specific terms, not the ubiquitous ones.
47
+ */
48
+ const COMMON_TERM_DF_RATIO = 0.6;
49
+ const STOPWORDS = new Set([
50
+ "the", "and", "for", "with", "of", "to", "in", "on", "at", "is", "are", "was",
51
+ "were", "be", "been", "do", "does", "what", "how", "why", "when", "where",
52
+ "which", "who", "that", "this", "these", "those", "we", "you", "our", "your",
53
+ "its", "it", "about", "from", "have", "has", "had", "into", "out", "as", "by",
54
+ "a", "an", "or", "not", "but", "can", "will", "did",
55
+ ]);
56
+ /**
57
+ * Split markdown into sections at heading lines (`#`..`######`) and TOP-LEVEL
58
+ * list items (`- ` / `* `, no leading indent). Each decision bullet, TODO item,
59
+ * or heading block becomes one section; nested/indented bullets stay with their
60
+ * parent. Content before the first boundary (e.g. the `Last touched:` preamble)
61
+ * forms the leading section.
62
+ */
63
+ export function splitIntoSections(content) {
64
+ const lines = content.split(/\r?\n/);
65
+ const isBoundary = (l) => /^#{1,6}\s/.test(l) || /^[-*]\s/.test(l);
66
+ const sections = [];
67
+ let cur = [];
68
+ const flush = () => {
69
+ const text = cur.join("\n").trim();
70
+ if (text) {
71
+ const heading = (cur.find((l) => l.trim()) ?? "").trim();
72
+ sections.push({ heading, text });
73
+ }
74
+ cur = [];
75
+ };
76
+ for (const line of lines) {
77
+ if (isBoundary(line))
78
+ flush();
79
+ cur.push(line);
80
+ }
81
+ flush();
82
+ return sections;
83
+ }
84
+ /**
85
+ * Read the canonical files and return query-matching sections as synthetic
86
+ * tracker-tier {@link EvidenceInput}s, highest-scoring first. Empty when the
87
+ * query has no discriminating terms, no file matches, or nothing clears
88
+ * `minScore` — so the caller can prepend unconditionally.
89
+ */
90
+ export function buildCanonicalFileEvidence(opts) {
91
+ const files = opts.files ?? CANONICAL_FILES;
92
+ const read = opts.readFile ?? defaultRead;
93
+ const maxSections = opts.maxSections ?? DEFAULT_MAX_SECTIONS;
94
+ const minScore = opts.minScore ?? DEFAULT_MIN_SCORE;
95
+ const now = opts.now ?? new Date();
96
+ const queryTerms = discriminatingQueryTerms(opts.query);
97
+ if (queryTerms.length === 0)
98
+ return [];
99
+ const all = [];
100
+ for (const fileName of files) {
101
+ const content = read(path.join(opts.projectRoot, fileName));
102
+ if (!content)
103
+ continue;
104
+ for (const section of splitIntoSections(content)) {
105
+ all.push({ fileName, section, terms: sectionTermSet(section.text) });
106
+ }
107
+ }
108
+ if (all.length === 0)
109
+ return [];
110
+ // Document-frequency downweight: a query term in > COMMON_TERM_DF_RATIO of
111
+ // sections is non-discriminating and scores 0.
112
+ const dfCap = Math.ceil(COMMON_TERM_DF_RATIO * all.length);
113
+ const effectiveTerms = queryTerms.filter((term) => {
114
+ let df = 0;
115
+ for (const s of all)
116
+ if (s.terms.has(term))
117
+ df++;
118
+ return df <= dfCap;
119
+ });
120
+ if (effectiveTerms.length === 0)
121
+ return [];
122
+ const scored = [];
123
+ for (const s of all) {
124
+ let score = 0;
125
+ for (const term of effectiveTerms)
126
+ if (s.terms.has(term))
127
+ score++;
128
+ if (score >= minScore) {
129
+ scored.push({ fileName: s.fileName, section: s.section, score });
130
+ }
131
+ }
132
+ // Highest score first; stable for equal scores (keeps file/section order).
133
+ scored.sort((a, b) => b.score - a.score);
134
+ const indexedAt = now.toISOString();
135
+ return scored
136
+ .slice(0, maxSections)
137
+ .map((m, ordinal) => toEvidenceInput(m, ordinal, indexedAt));
138
+ }
139
+ function defaultRead(absPath) {
140
+ try {
141
+ return fs.readFileSync(absPath, "utf-8");
142
+ }
143
+ catch {
144
+ return undefined;
145
+ }
146
+ }
147
+ function discriminatingQueryTerms(query) {
148
+ const out = new Set();
149
+ for (const t of tokenize(query)) {
150
+ const lower = t.toLowerCase();
151
+ if (lower.length < MIN_TERM_LEN)
152
+ continue;
153
+ if (STOPWORDS.has(lower))
154
+ continue;
155
+ out.add(lower);
156
+ }
157
+ return [...out];
158
+ }
159
+ function sectionTermSet(text) {
160
+ const out = new Set();
161
+ for (const t of tokenize(text))
162
+ out.add(t.toLowerCase());
163
+ return out;
164
+ }
165
+ function toEvidenceInput(m, ordinal, indexedAt) {
166
+ const content = m.section.text.slice(0, SECTION_CONTENT_MAX);
167
+ const title = `${m.fileName} — ${cleanHeading(m.section.heading)}`;
168
+ const ranked = {
169
+ id: `canonical:${m.fileName}#${ordinal}`,
170
+ content,
171
+ score: m.score,
172
+ retrieval_method: "lexical",
173
+ source_table: "structured_docs",
174
+ factors: NEUTRAL_FACTORS,
175
+ bm25_normalized: 0,
176
+ };
177
+ return {
178
+ ranked,
179
+ row: {
180
+ content,
181
+ source_path: m.fileName,
182
+ source: "canonical_file",
183
+ indexed_at: indexedAt,
184
+ metadata: JSON.stringify({ title }),
185
+ },
186
+ kind: "document",
187
+ // gitState omitted: assignTrustTier keys off the tracker path → `tracker`
188
+ // tier without asserting a git state we didn't probe. Canonical files are
189
+ // tracked by definition; an undefined state is recommendable, not discounted.
190
+ };
191
+ }
192
+ const NEUTRAL_FACTORS = {
193
+ S_sim: 0,
194
+ S_rec: 0,
195
+ S_qual: 0,
196
+ B_tier: 0,
197
+ B_feed: 1,
198
+ B_hyb: 0,
199
+ B_fresh: 0,
200
+ };
201
+ function cleanHeading(h) {
202
+ const clean = h
203
+ .replace(/^#{1,6}\s*/, "")
204
+ .replace(/^[-*]\s+(\[[ xX]\]\s*)?/, "")
205
+ .trim();
206
+ if (!clean)
207
+ return "section";
208
+ return clean.length > 80 ? `${clean.slice(0, 79)}…` : clean;
209
+ }
210
+ //# sourceMappingURL=canonical-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-files.js","sourceRoot":"","sources":["../../../src/retrieval/canonical-files.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,14 @@ export declare const LARGE_HIT_TOKEN_THRESHOLD = 10000;
28
28
  export declare const MIDDLE_HEAD_CHARS = 8000;
29
29
  export declare const MIDDLE_TAIL_CHARS = 4000;
30
30
  export declare const MIDDLE_INLINE_THRESHOLD_CHARS = 12000;
31
+ /**
32
+ * Neighbor chunks to include on each side of the matched chunk for a
33
+ * `detail="middle"` expand of a chunked source. The window is `[i-K, i+K]`
34
+ * clamped to the set, so K=1 yields up to 3 contiguous chunks (~5k chars /
35
+ * ~1.4k tokens at the default 1800-char target) — enough surrounding context to
36
+ * read the matched section in place without re-dumping the whole conversation.
37
+ */
38
+ export declare const MIDDLE_CHUNK_NEIGHBORS = 1;
31
39
  export type Tier = "hot" | "cold" | "digest" | "document" | "structured_doc";
32
40
  export interface CompactExpand {
33
41
  route: string;
@@ -70,6 +78,42 @@ export interface CompactHit {
70
78
  * before treating `content` as authoritative.
71
79
  */
72
80
  content_truncated?: boolean;
81
+ /**
82
+ * When this hit represents a chunked source (long doc/conversation), the
83
+ * total number of chunk rows that matched and were collapsed into this one
84
+ * representative. Present (> 1) only for grouped chunk hits; absent for
85
+ * ordinary single-row hits. Lets the UI say "+N more sections".
86
+ */
87
+ matched_sections?: number;
88
+ /**
89
+ * Number of near-duplicate CONVERSATION captures collapsed into this one
90
+ * representative (same task captured across sessions lands as distinct rows;
91
+ * see `collapseConversationDuplicates`). Present (> 1) only when conversation
92
+ * dedup (RIFT_CONV_DEDUP) folded copies into this hit; absent otherwise.
93
+ * Distinct from `matched_sections`, which counts chunk siblings of ONE source.
94
+ * Lets the UI say "+N duplicate captures".
95
+ */
96
+ duplicate_count?: number;
97
+ /**
98
+ * Total chunks in the parent set, when this hit's `content` was reassembled
99
+ * from a chunked source via the expand path. Present only for stitched chunk
100
+ * expansions; absent for single-row hits.
101
+ */
102
+ chunk_count?: number;
103
+ /**
104
+ * Number of chunk siblings stitched together into `content` on this expand.
105
+ * For `detail="full"` this is the whole parent set (== `chunk_count` when all
106
+ * siblings were present); for `detail="middle"` it is the matched chunk plus
107
+ * its bounded neighbor window. Lets a reader tell a stitched body from a
108
+ * single-chunk one. For a stitched hit, the TOP-LEVEL `content_bytes` /
109
+ * `content_tokens_estimate` describe the body actually returned (the bounded
110
+ * `middle` window or the full parent), while the SAME fields inside
111
+ * `expand.params` advertise the full parent body that re-issuing the
112
+ * `detail="full"` pointer would return — so a `middle` hit never under-states
113
+ * the cost of escalating to `full`. `stitched_chunks < chunk_count` signals
114
+ * that more sections are available via `detail="full"`.
115
+ */
116
+ stitched_chunks?: number;
73
117
  }
74
118
  /**
75
119
  * Pre-call size advert for an expansion: every compact hit carries this on
@@ -101,8 +145,26 @@ type RawRow = Record<string, unknown>;
101
145
  /**
102
146
  * Batch-fetch the raw source rows for reranked results.
103
147
  * Groups ids by source table and issues one `id IN (...)` query per table.
148
+ *
149
+ * Keyed by {@link rankedKey} — `(source_table, id)`, NOT bare id — so a row id
150
+ * shared across two tables (cloud vs local docs, hot vs cold) can never have one
151
+ * table's row overwrite the other's and produce a dishonest snippet/title/source
152
+ * for the surviving hit. Callers must look up via `get(rankedKey(r))`.
104
153
  */
105
154
  export declare function fetchRawRowsForRanked(ranked: RankedResult[]): Promise<Map<string, RawRow>>;
155
+ /**
156
+ * Compute the parent grouping key for every reranked result using a
157
+ * projection-only query (no `content`, no embedding vector) per source table.
158
+ *
159
+ * Returns `rankedKey(r) → parentKey | null`, keyed by `(source_table, id)` so a
160
+ * row id shared across two tables (cloud vs local docs, hot vs cold) can never
161
+ * collide into one entry. `null` for any row with no explicit chunk marker (the
162
+ * flag-off / legacy case — never grouped) and for any id with no backing row.
163
+ * Digests never chunk, so their ids map to `null` without a query. Pair with
164
+ * {@link groupByParent} (which looks up via {@link rankedKey}), then call
165
+ * {@link fetchRawRowsForRanked} on the post-group top-k representatives only.
166
+ */
167
+ export declare function fetchParentKeysForRanked(ranked: RankedResult[]): Promise<Map<string, string | null>>;
106
168
  /** Derive the compact `tier` label from source_table (+ source_scope for docs). */
107
169
  export declare function deriveTier(sourceTable: TableName, row?: RawRow): Tier;
108
170
  /**
@@ -167,6 +229,29 @@ export declare function buildCompactHitFromRow(row: RawRow, sourceTable: TableNa
167
229
  */
168
230
  detail?: DetailLevel;
169
231
  }): CompactHit;
232
+ /**
233
+ * Build a CompactHit for the exact-ID expand path, reassembling chunk siblings
234
+ * when the matched row belongs to a chunk set.
235
+ *
236
+ * - Unchunked rows, and any `detail="summary"` request, are returned verbatim by
237
+ * {@link buildCompactHitFromRow} — so with `RIFT_CHUNKING` off (no marked rows)
238
+ * this is provably the pre-stitching behavior.
239
+ * - For a chunked row, `detail="full"` reassembles the whole parent in
240
+ * `chunk_index` order; `detail="middle"` reassembles the matched chunk plus a
241
+ * bounded neighbor window (`MIDDLE_CHUNK_NEIGHBORS` each side). Both ranges are
242
+ * contiguous, and seams are de-overlapped so duplicated text appears once.
243
+ *
244
+ * The representative identity (id, title, source, timestamp, snippet, score)
245
+ * comes from the matched row. `content` and the TOP-LEVEL size fields are
246
+ * replaced with the stitched body actually returned, while the `expand.params`
247
+ * size fields advertise the FULL parent (what the `detail="full"` escalation
248
+ * pointer would return), plus `chunk_count` / `stitched_chunks` for observability.
249
+ */
250
+ export declare function buildExpandedHit(row: RawRow, sourceTable: TableName, opts: {
251
+ query?: string;
252
+ expandRoute?: string;
253
+ detail?: DetailLevel;
254
+ }): Promise<CompactHit>;
170
255
  /** Derive a stable `source` string (what produced this row). */
171
256
  export declare function deriveSource(sourceTable: TableName, row?: RawRow): string;
172
257
  /** Derive a compact title. Prefers stored metadata, then first non-empty line. */
@@ -185,6 +270,16 @@ export interface BuildCompactHitOptions {
185
270
  detail: DetailLevel;
186
271
  /** Route to advertise in `expand.route`. Defaults to "/search". */
187
272
  expandRoute?: string;
273
+ /**
274
+ * Total chunk rows collapsed into this representative (from group-by-parent).
275
+ * Recorded as `matched_sections` when > 1.
276
+ */
277
+ siblingCount?: number | undefined;
278
+ /**
279
+ * Near-duplicate conversation captures folded into this representative (from
280
+ * `collapseConversationDuplicates`). Recorded as `duplicate_count` when > 1.
281
+ */
282
+ duplicateCount?: number | undefined;
188
283
  }
189
284
  export declare function buildCompactHit(ranked: RankedResult, row: RawRow | undefined, opts: BuildCompactHitOptions): CompactHit;
190
285
  /** Compact markdown rendering of a set of hits — no raw JSON. */
@@ -1 +1 @@
1
- {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/retrieval/compact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/retrieval/compact.ts"],"names":[],"mappings":"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"}