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

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 (273) 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/sources.d.ts +41 -3
  22. package/dist/src/capture/sources.d.ts.map +1 -1
  23. package/dist/src/capture/sources.js +43 -1
  24. package/dist/src/capture/sources.js.map +1 -1
  25. package/dist/src/capture/triage-classification.d.ts +69 -0
  26. package/dist/src/capture/triage-classification.d.ts.map +1 -0
  27. package/dist/src/capture/triage-classification.js +62 -0
  28. package/dist/src/capture/triage-classification.js.map +1 -0
  29. package/dist/src/capture/triage-provider-factory.d.ts +36 -0
  30. package/dist/src/capture/triage-provider-factory.d.ts.map +1 -0
  31. package/dist/src/capture/triage-provider-factory.js +55 -0
  32. package/dist/src/capture/triage-provider-factory.js.map +1 -0
  33. package/dist/src/capture/triage.d.ts +1 -1
  34. package/dist/src/capture/triage.d.ts.map +1 -1
  35. package/dist/src/capture/triage.js +8 -6
  36. package/dist/src/capture/triage.js.map +1 -1
  37. package/dist/src/cli/commands/capture.d.ts.map +1 -1
  38. package/dist/src/cli/commands/capture.js +72 -17
  39. package/dist/src/cli/commands/capture.js.map +1 -1
  40. package/dist/src/cli/commands/chunk-backfill.d.ts +13 -0
  41. package/dist/src/cli/commands/chunk-backfill.d.ts.map +1 -0
  42. package/dist/src/cli/commands/chunk-backfill.js +157 -0
  43. package/dist/src/cli/commands/chunk-backfill.js.map +1 -0
  44. package/dist/src/cli/commands/cursor-probe.d.ts +20 -0
  45. package/dist/src/cli/commands/cursor-probe.d.ts.map +1 -0
  46. package/dist/src/cli/commands/cursor-probe.js +162 -0
  47. package/dist/src/cli/commands/cursor-probe.js.map +1 -0
  48. package/dist/src/cli/commands/onboard.d.ts +22 -2
  49. package/dist/src/cli/commands/onboard.d.ts.map +1 -1
  50. package/dist/src/cli/commands/onboard.js +160 -32
  51. package/dist/src/cli/commands/onboard.js.map +1 -1
  52. package/dist/src/cli/commands/status.d.ts.map +1 -1
  53. package/dist/src/cli/commands/status.js +12 -0
  54. package/dist/src/cli/commands/status.js.map +1 -1
  55. package/dist/src/cli/commands/update.d.ts +34 -1
  56. package/dist/src/cli/commands/update.d.ts.map +1 -1
  57. package/dist/src/cli/commands/update.js +166 -1
  58. package/dist/src/cli/commands/update.js.map +1 -1
  59. package/dist/src/cli/index.d.ts.map +1 -1
  60. package/dist/src/cli/index.js +4 -0
  61. package/dist/src/cli/index.js.map +1 -1
  62. package/dist/src/cli/status/friend-header.d.ts +10 -0
  63. package/dist/src/cli/status/friend-header.d.ts.map +1 -1
  64. package/dist/src/cli/status/friend-header.js +117 -0
  65. package/dist/src/cli/status/friend-header.js.map +1 -1
  66. package/dist/src/cli/status/local-signals.d.ts +23 -0
  67. package/dist/src/cli/status/local-signals.d.ts.map +1 -1
  68. package/dist/src/cli/status/local-signals.js +19 -0
  69. package/dist/src/cli/status/local-signals.js.map +1 -1
  70. package/dist/src/config/schema.d.ts +220 -14
  71. package/dist/src/config/schema.d.ts.map +1 -1
  72. package/dist/src/config/schema.js +82 -7
  73. package/dist/src/config/schema.js.map +1 -1
  74. package/dist/src/diagnostics/claude-preflight.d.ts +34 -0
  75. package/dist/src/diagnostics/claude-preflight.d.ts.map +1 -0
  76. package/dist/src/diagnostics/claude-preflight.js +89 -0
  77. package/dist/src/diagnostics/claude-preflight.js.map +1 -0
  78. package/dist/src/diagnostics/codex-preflight.d.ts +1 -1
  79. package/dist/src/diagnostics/codex-preflight.d.ts.map +1 -1
  80. package/dist/src/diagnostics/codex-preflight.js +14 -0
  81. package/dist/src/diagnostics/codex-preflight.js.map +1 -1
  82. package/dist/src/diagnostics/doctor.d.ts +1 -1
  83. package/dist/src/diagnostics/doctor.d.ts.map +1 -1
  84. package/dist/src/diagnostics/doctor.js +39 -2
  85. package/dist/src/diagnostics/doctor.js.map +1 -1
  86. package/dist/src/ingestion/chunk-meta.d.ts +85 -0
  87. package/dist/src/ingestion/chunk-meta.d.ts.map +1 -0
  88. package/dist/src/ingestion/chunk-meta.js +167 -0
  89. package/dist/src/ingestion/chunk-meta.js.map +1 -0
  90. package/dist/src/ingestion/chunk-text.d.ts +39 -0
  91. package/dist/src/ingestion/chunk-text.d.ts.map +1 -0
  92. package/dist/src/ingestion/chunk-text.js +114 -0
  93. package/dist/src/ingestion/chunk-text.js.map +1 -0
  94. package/dist/src/ingestion/cursor/cursor-store.d.ts +177 -0
  95. package/dist/src/ingestion/cursor/cursor-store.d.ts.map +1 -0
  96. package/dist/src/ingestion/cursor/cursor-store.js +243 -0
  97. package/dist/src/ingestion/cursor/cursor-store.js.map +1 -0
  98. package/dist/src/ingestion/cursor/enrich-roots.d.ts +16 -0
  99. package/dist/src/ingestion/cursor/enrich-roots.d.ts.map +1 -0
  100. package/dist/src/ingestion/cursor/enrich-roots.js +22 -0
  101. package/dist/src/ingestion/cursor/enrich-roots.js.map +1 -0
  102. package/dist/src/ingestion/cursor/vscdb-reader.d.ts +32 -0
  103. package/dist/src/ingestion/cursor/vscdb-reader.d.ts.map +1 -0
  104. package/dist/src/ingestion/cursor/vscdb-reader.js +113 -0
  105. package/dist/src/ingestion/cursor/vscdb-reader.js.map +1 -0
  106. package/dist/src/ingestion/cursor/workspace-root.d.ts +96 -0
  107. package/dist/src/ingestion/cursor/workspace-root.d.ts.map +1 -0
  108. package/dist/src/ingestion/cursor/workspace-root.js +187 -0
  109. package/dist/src/ingestion/cursor/workspace-root.js.map +1 -0
  110. package/dist/src/ingestion/indexer.d.ts.map +1 -1
  111. package/dist/src/ingestion/indexer.js +41 -32
  112. package/dist/src/ingestion/indexer.js.map +1 -1
  113. package/dist/src/jobs/handlers/compact.d.ts.map +1 -1
  114. package/dist/src/jobs/handlers/compact.js +9 -4
  115. package/dist/src/jobs/handlers/compact.js.map +1 -1
  116. package/dist/src/jobs/handlers/ingest.d.ts.map +1 -1
  117. package/dist/src/jobs/handlers/ingest.js +60 -30
  118. package/dist/src/jobs/handlers/ingest.js.map +1 -1
  119. package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -1
  120. package/dist/src/jobs/handlers/reconcile.js +128 -45
  121. package/dist/src/jobs/handlers/reconcile.js.map +1 -1
  122. package/dist/src/jobs/handlers/save.d.ts.map +1 -1
  123. package/dist/src/jobs/handlers/save.js +122 -72
  124. package/dist/src/jobs/handlers/save.js.map +1 -1
  125. package/dist/src/jobs/types.d.ts +1 -1
  126. package/dist/src/main.js +26 -15
  127. package/dist/src/main.js.map +1 -1
  128. package/dist/src/mcp/server.d.ts.map +1 -1
  129. package/dist/src/mcp/server.js +10 -3
  130. package/dist/src/mcp/server.js.map +1 -1
  131. package/dist/src/mcp/tools/context-pack.d.ts.map +1 -1
  132. package/dist/src/mcp/tools/context-pack.js +7 -1
  133. package/dist/src/mcp/tools/context-pack.js.map +1 -1
  134. package/dist/src/mcp/tools/conversations-search.d.ts +1 -1
  135. package/dist/src/mcp/tools/conversations-search.d.ts.map +1 -1
  136. package/dist/src/mcp/tools/conversations-search.js +7 -1
  137. package/dist/src/mcp/tools/conversations-search.js.map +1 -1
  138. package/dist/src/mcp/tools/evidence-feedback.d.ts +60 -0
  139. package/dist/src/mcp/tools/evidence-feedback.d.ts.map +1 -0
  140. package/dist/src/mcp/tools/evidence-feedback.js +62 -0
  141. package/dist/src/mcp/tools/evidence-feedback.js.map +1 -0
  142. package/dist/src/mcp/tools/log-outcome.d.ts +72 -0
  143. package/dist/src/mcp/tools/log-outcome.d.ts.map +1 -0
  144. package/dist/src/mcp/tools/log-outcome.js +59 -0
  145. package/dist/src/mcp/tools/log-outcome.js.map +1 -0
  146. package/dist/src/mcp/tools/open-evidence.d.ts +37 -0
  147. package/dist/src/mcp/tools/open-evidence.d.ts.map +1 -0
  148. package/dist/src/mcp/tools/open-evidence.js +72 -0
  149. package/dist/src/mcp/tools/open-evidence.js.map +1 -0
  150. package/dist/src/mcp/tools/save.d.ts +7 -2
  151. package/dist/src/mcp/tools/save.d.ts.map +1 -1
  152. package/dist/src/mcp/tools/save.js +7 -2
  153. package/dist/src/mcp/tools/save.js.map +1 -1
  154. package/dist/src/mcp/tools/search.d.ts.map +1 -1
  155. package/dist/src/mcp/tools/search.js +7 -1
  156. package/dist/src/mcp/tools/search.js.map +1 -1
  157. package/dist/src/observability/retrieval-feedback.d.ts +82 -0
  158. package/dist/src/observability/retrieval-feedback.d.ts.map +1 -0
  159. package/dist/src/observability/retrieval-feedback.js +231 -0
  160. package/dist/src/observability/retrieval-feedback.js.map +1 -0
  161. package/dist/src/observability/rift-context.d.ts.map +1 -1
  162. package/dist/src/observability/rift-context.js +3 -0
  163. package/dist/src/observability/rift-context.js.map +1 -1
  164. package/dist/src/observability/tool-usage-stats.d.ts +13 -0
  165. package/dist/src/observability/tool-usage-stats.d.ts.map +1 -1
  166. package/dist/src/observability/tool-usage-stats.js +15 -0
  167. package/dist/src/observability/tool-usage-stats.js.map +1 -1
  168. package/dist/src/observability/tool-usage.d.ts +56 -0
  169. package/dist/src/observability/tool-usage.d.ts.map +1 -1
  170. package/dist/src/observability/tool-usage.js +86 -0
  171. package/dist/src/observability/tool-usage.js.map +1 -1
  172. package/dist/src/providers/claude-cli-metadata-extraction.d.ts +47 -0
  173. package/dist/src/providers/claude-cli-metadata-extraction.d.ts.map +1 -0
  174. package/dist/src/providers/claude-cli-metadata-extraction.js +120 -0
  175. package/dist/src/providers/claude-cli-metadata-extraction.js.map +1 -0
  176. package/dist/src/providers/claude-cli-runner.d.ts +92 -0
  177. package/dist/src/providers/claude-cli-runner.d.ts.map +1 -0
  178. package/dist/src/providers/claude-cli-runner.js +598 -0
  179. package/dist/src/providers/claude-cli-runner.js.map +1 -0
  180. package/dist/src/providers/codex-cli-metadata-extraction.d.ts.map +1 -1
  181. package/dist/src/providers/codex-cli-metadata-extraction.js +1 -40
  182. package/dist/src/providers/codex-cli-metadata-extraction.js.map +1 -1
  183. package/dist/src/providers/codex-cli-runner.d.ts +7 -0
  184. package/dist/src/providers/codex-cli-runner.d.ts.map +1 -1
  185. package/dist/src/providers/codex-cli-runner.js +131 -5
  186. package/dist/src/providers/codex-cli-runner.js.map +1 -1
  187. package/dist/src/providers/conversation-generation.d.ts +10 -0
  188. package/dist/src/providers/conversation-generation.d.ts.map +1 -1
  189. package/dist/src/providers/conversation-generation.js +54 -13
  190. package/dist/src/providers/conversation-generation.js.map +1 -1
  191. package/dist/src/providers/openai-metadata-extraction.d.ts +48 -1
  192. package/dist/src/providers/openai-metadata-extraction.d.ts.map +1 -1
  193. package/dist/src/providers/openai-metadata-extraction.js +51 -2
  194. package/dist/src/providers/openai-metadata-extraction.js.map +1 -1
  195. package/dist/src/providers/types.d.ts +1 -1
  196. package/dist/src/providers/types.d.ts.map +1 -1
  197. package/dist/src/providers/types.js +4 -0
  198. package/dist/src/providers/types.js.map +1 -1
  199. package/dist/src/retrieval/compact.d.ts +81 -0
  200. package/dist/src/retrieval/compact.d.ts.map +1 -1
  201. package/dist/src/retrieval/compact.js +248 -8
  202. package/dist/src/retrieval/compact.js.map +1 -1
  203. package/dist/src/retrieval/context-pack.d.ts.map +1 -1
  204. package/dist/src/retrieval/context-pack.js +28 -14
  205. package/dist/src/retrieval/context-pack.js.map +1 -1
  206. package/dist/src/retrieval/evidence-key.d.ts +48 -0
  207. package/dist/src/retrieval/evidence-key.d.ts.map +1 -0
  208. package/dist/src/retrieval/evidence-key.js +131 -0
  209. package/dist/src/retrieval/evidence-key.js.map +1 -0
  210. package/dist/src/retrieval/group-by-parent.d.ts +38 -0
  211. package/dist/src/retrieval/group-by-parent.d.ts.map +1 -0
  212. package/dist/src/retrieval/group-by-parent.js +40 -0
  213. package/dist/src/retrieval/group-by-parent.js.map +1 -0
  214. package/dist/src/retrieval/lexical.d.ts.map +1 -1
  215. package/dist/src/retrieval/lexical.js +1 -3
  216. package/dist/src/retrieval/lexical.js.map +1 -1
  217. package/dist/src/retrieval/receipt.d.ts +57 -0
  218. package/dist/src/retrieval/receipt.d.ts.map +1 -0
  219. package/dist/src/retrieval/receipt.js +119 -0
  220. package/dist/src/retrieval/receipt.js.map +1 -0
  221. package/dist/src/retrieval/reranker.d.ts +12 -2
  222. package/dist/src/retrieval/reranker.d.ts.map +1 -1
  223. package/dist/src/retrieval/reranker.js +11 -4
  224. package/dist/src/retrieval/reranker.js.map +1 -1
  225. package/dist/src/retrieval/stitch-chunks.d.ts +73 -0
  226. package/dist/src/retrieval/stitch-chunks.d.ts.map +1 -0
  227. package/dist/src/retrieval/stitch-chunks.js +106 -0
  228. package/dist/src/retrieval/stitch-chunks.js.map +1 -0
  229. package/dist/src/server/app.d.ts.map +1 -1
  230. package/dist/src/server/app.js +17 -1
  231. package/dist/src/server/app.js.map +1 -1
  232. package/dist/src/server/routes/conversations-search.d.ts.map +1 -1
  233. package/dist/src/server/routes/conversations-search.js +12 -3
  234. package/dist/src/server/routes/conversations-search.js.map +1 -1
  235. package/dist/src/server/routes/friend-status.d.ts +44 -5
  236. package/dist/src/server/routes/friend-status.d.ts.map +1 -1
  237. package/dist/src/server/routes/friend-status.js +74 -6
  238. package/dist/src/server/routes/friend-status.js.map +1 -1
  239. package/dist/src/server/routes/mcp-usage.d.ts +9 -6
  240. package/dist/src/server/routes/mcp-usage.d.ts.map +1 -1
  241. package/dist/src/server/routes/mcp-usage.js.map +1 -1
  242. package/dist/src/server/routes/retrieval-feedback.d.ts +3 -0
  243. package/dist/src/server/routes/retrieval-feedback.d.ts.map +1 -0
  244. package/dist/src/server/routes/retrieval-feedback.js +290 -0
  245. package/dist/src/server/routes/retrieval-feedback.js.map +1 -0
  246. package/dist/src/server/routes/save.d.ts +3 -3
  247. package/dist/src/server/routes/save.d.ts.map +1 -1
  248. package/dist/src/server/routes/save.js +6 -2
  249. package/dist/src/server/routes/save.js.map +1 -1
  250. package/dist/src/server/routes/search.d.ts.map +1 -1
  251. package/dist/src/server/routes/search.js +19 -7
  252. package/dist/src/server/routes/search.js.map +1 -1
  253. package/dist/src/server/serving-marker.d.ts +85 -0
  254. package/dist/src/server/serving-marker.d.ts.map +1 -0
  255. package/dist/src/server/serving-marker.js +226 -0
  256. package/dist/src/server/serving-marker.js.map +1 -0
  257. package/dist/src/storage/chunk-backfill.d.ts +39 -0
  258. package/dist/src/storage/chunk-backfill.d.ts.map +1 -0
  259. package/dist/src/storage/chunk-backfill.js +295 -0
  260. package/dist/src/storage/chunk-backfill.js.map +1 -0
  261. package/dist/src/storage/filter.d.ts +42 -0
  262. package/dist/src/storage/filter.d.ts.map +1 -0
  263. package/dist/src/storage/filter.js +70 -0
  264. package/dist/src/storage/filter.js.map +1 -0
  265. package/dist/src/storage/rebuild.d.ts.map +1 -1
  266. package/dist/src/storage/rebuild.js +44 -27
  267. package/dist/src/storage/rebuild.js.map +1 -1
  268. package/dist/src/storage/tables.d.ts +41 -0
  269. package/dist/src/storage/tables.d.ts.map +1 -1
  270. package/dist/src/storage/tables.js +64 -1
  271. package/dist/src/storage/tables.js.map +1 -1
  272. package/operator/swiftbar/render-menu.py +57 -15
  273. package/package.json +5 -3
@@ -25,6 +25,9 @@ import path from "node:path";
25
25
  import { RIFT_NONE_EMBEDDING_PROVIDER, isPlaceholderEmbeddingProvider, } from "../../providers/placeholder-embed.js";
26
26
  import { getTable } from "../../storage/tables.js";
27
27
  import { atomicWrite } from "../../storage/atomic.js";
28
+ import { eqFilter } from "../../storage/filter.js";
29
+ import { chunkConversation, chunkingEnabled } from "../../ingestion/chunk-text.js";
30
+ import { conversationChunkColumns, convChunkId, chunkSetComplete, } from "../../ingestion/chunk-meta.js";
28
31
  import { conversationContentFingerprint } from "../../ingestion/inbox-core/conversation-fingerprint.js";
29
32
  import { recordEmbed } from "../../observability/embedding-events.js";
30
33
  import { recordIndexWrite } from "../../observability/index-events.js";
@@ -61,22 +64,23 @@ function findRawFile(rawDir, rowId) {
61
64
  return match ? path.join(rawDir, match) : undefined;
62
65
  }
63
66
  /**
64
- * True if a row with this non-empty idempotency_key is already indexed in
65
- * either conversations_hot OR conversations_cold. Compaction migrates older
66
- * memories hot → cold while preserving the key, so a hot-only check would
67
- * miss an aged conversation and let it be duplicated after queue pruning.
67
+ * True if this non-empty idempotency_key is already COMPLETELY indexed in
68
+ * conversations_hot OR conversations_cold. Compaction migrates older memories
69
+ * hot → cold while preserving the key, so a hot-only check would miss an aged
70
+ * conversation and let it be duplicated after queue pruning.
71
+ *
72
+ * Completeness-aware: a chunked conversation is N rows sharing the key. A
73
+ * PARTIAL set (e.g. a crash mid-append left k < N chunks) is NOT "already
74
+ * indexed" — returning true there would freeze a broken set. The caller repairs
75
+ * an incomplete/absent set by (re)writing the full chunk set from the payload.
68
76
  */
69
- async function isAlreadyIndexed(idempotencyKey) {
70
- const escaped = idempotencyKey.replace(/'/g, "''");
77
+ async function isCompletelyIndexed(idempotencyKey) {
78
+ const filter = eqFilter("idempotency_key", idempotencyKey);
79
+ const rows = [];
71
80
  for (const tableName of ["conversations_hot", "conversations_cold"]) {
72
- const rows = await getTable(tableName)
73
- .query()
74
- .where(`idempotency_key = '${escaped}'`)
75
- .toArray();
76
- if (rows.length > 0)
77
- return true;
81
+ rows.push(...(await getTable(tableName).query().where(filter).toArray()));
78
82
  }
79
- return false;
83
+ return chunkSetComplete(rows);
80
84
  }
81
85
  export function createSaveHandler(deps) {
82
86
  return async (job) => {
@@ -94,7 +98,7 @@ export function createSaveHandler(deps) {
94
98
  // into a duplicate row. (A replace-save carries a *different* key + sets
95
99
  // replace_idempotency_key, so it won't false-match here.)
96
100
  const dedupeKey = jobPayload.idempotency_key;
97
- if (dedupeKey && (await isAlreadyIndexed(dedupeKey))) {
101
+ if (dedupeKey && (await isCompletelyIndexed(dedupeKey))) {
98
102
  return;
99
103
  }
100
104
  // Resolve the chain root to get a stable ID and the original
@@ -126,79 +130,125 @@ export function createSaveHandler(deps) {
126
130
  newRawPath = path.join(rawDir, rawFileName);
127
131
  await atomicWrite(newRawPath, JSON.stringify(payload, null, 2));
128
132
  }
129
- // --- 2. Generate embedding + 3. Insert into conversations_hot ---
133
+ // --- 2. Generate embedding(s) + 3. Insert into conversations_hot ---
130
134
  // Both steps are wrapped so ANY failure after raw write is quarantined.
131
135
  try {
132
136
  const table = getTable("conversations_hot");
133
- // Replay guard: if the row already exists from a prior successful
134
- // run, return early. No delete, so no risk of data loss.
135
- const existing = await table
136
- .query()
137
- .where(`id = '${rowId}'`)
138
- .toArray();
137
+ const coldTable = getTable("conversations_cold");
138
+ // Replay / repair guard. A chunked conversation is N rows sharing
139
+ // parent_id = rowId; an unchunked one is a single row id = rowId. Gather
140
+ // the existing set for this parent across both tiers.
141
+ const parentFilter = eqFilter("parent_id", rowId, { validateAsRowId: true });
142
+ const selfFilter = eqFilter("id", rowId, { validateAsRowId: true });
143
+ const existing = [];
144
+ for (const t of [table, coldTable]) {
145
+ existing.push(...(await t.query().where(parentFilter).toArray()));
146
+ existing.push(...(await t.query().where(selfFilter).toArray()));
147
+ }
148
+ // A non-empty but INCOMPLETE set is a partial write from an interrupted
149
+ // run: it must be replaced from the authoritative payload (the raw
150
+ // artifact is already on disk). Data-safety invariant: do NOT delete it
151
+ // here — defer the destructive delete until the full replacement set is
152
+ // embedded and built in memory (below), so a failed embed can never
153
+ // destroy the old version. New and old chunks share `parent_id`, so we
154
+ // cannot insert-before-delete; the delete→add window is identical to the
155
+ // legacy single-row path and is recoverable from the raw artifact.
156
+ let repairPartialSet = false;
139
157
  if (existing.length > 0) {
140
- return; // Already indexed — nothing to do.
158
+ if (chunkSetComplete(existing)) {
159
+ return; // Already fully indexed — nothing to do.
160
+ }
161
+ repairPartialSet = true;
141
162
  }
142
- // (idempotency_key dedup runs earlier, before the raw write.)
143
- // Generate embedding FIRST — before any deletions so the old row
144
- // is preserved if embedding fails (data-safety invariant).
145
- const textForEmbedding = payload.content ?? payload.summary;
146
- const embedding = await recordEmbed(deps.dataDir, deps.embeddingProvider, { pipeline: "capture", operation: "save_embedding", input_count: 1 }, () => deps.embeddingProvider.embed(textForEmbedding));
163
+ // (idempotency_key completeness dedup runs earlier, before the raw write.)
147
164
  const rowContent = payload.content ?? payload.summary;
148
- const row = {
149
- id: rowId,
150
- content: rowContent,
151
- summary: payload.summary,
152
- embedding,
153
- source: payload.source,
154
- domain: payload.domain ?? "tech",
155
- intent: "build", // Default — no LLM extraction in this slice
156
- quality: "medium", // Default — no LLM extraction in this slice
157
- topics: JSON.stringify(payload.topics ?? []),
158
- decisions: JSON.stringify(payload.decisions ?? []),
159
- key_outputs: JSON.stringify(payload.key_outputs ?? []),
160
- indexed_at: new Date().toISOString(),
161
- idempotency_key: payload.idempotency_key ?? "",
162
- conversation_fingerprint: rowContent
163
- ? conversationContentFingerprint(rowContent)
164
- : "",
165
- // /save metadata comes from triage (or the caller), not
166
- // BasicMetadataExtractor, so it is never a "rift-basic" backfill
167
- // target ("" = non-basic). The embedding marker reflects the provider
168
- // that actually ran: "" for a real embedding, "rift-none" when a
169
- // no-key save fell back to the placeholder provider (below).
170
- metadata_provider: "",
171
- embedding_provider: isPlaceholderEmbeddingProvider(deps.embeddingProvider)
172
- ? RIFT_NONE_EMBEDDING_PROVIDER
173
- : "",
174
- };
175
- // Insert the new row FIRST. Old-version cleanup happens after the
176
- // insert succeeds, so a failed insert never destroys the old version.
165
+ const fingerprint = rowContent
166
+ ? conversationContentFingerprint(rowContent)
167
+ : "";
168
+ // /save metadata comes from triage (or the caller), not
169
+ // BasicMetadataExtractor, so it is never a "rift-basic" backfill target
170
+ // ("" = non-basic). The embedding marker reflects the provider that
171
+ // actually ran: "" for a real embedding, "rift-none" for the no-key
172
+ // placeholder provider.
173
+ const embeddingProviderMarker = isPlaceholderEmbeddingProvider(deps.embeddingProvider)
174
+ ? RIFT_NONE_EMBEDDING_PROVIDER
175
+ : "";
176
+ const indexedAt = new Date().toISOString();
177
+ // Chunk (flag-gated). chunkConversation short-circuits small conversations
178
+ // (and the flag-off case) to a single unmarked row, byte-identical to the
179
+ // prior behavior. Every chunk carries the SAME conversation-level
180
+ // summary/topics/decisions/key_outputs/idempotency_key/fingerprint — only
181
+ // content/embedding/chunk_index differ.
182
+ const chunks = chunkingEnabled()
183
+ ? chunkConversation(rowContent)
184
+ : [rowContent];
185
+ const count = chunks.length;
186
+ // Data-safety: embed the FULL new set BEFORE any destructive delete, so a
187
+ // failed embed never destroys the old version.
188
+ const rows = [];
189
+ for (let i = 0; i < count; i++) {
190
+ const chunk = chunks[i];
191
+ const embedding = await recordEmbed(deps.dataDir, deps.embeddingProvider, { pipeline: "capture", operation: "save_embedding", input_count: 1 }, () => deps.embeddingProvider.embed(chunk));
192
+ rows.push({
193
+ id: count > 1 ? convChunkId(rowId, i) : rowId,
194
+ content: chunk,
195
+ summary: payload.summary,
196
+ embedding,
197
+ source: payload.source,
198
+ domain: payload.domain ?? "tech",
199
+ intent: "build", // Default — no LLM extraction in this slice
200
+ quality: "medium", // Default — no LLM extraction in this slice
201
+ topics: JSON.stringify(payload.topics ?? []),
202
+ decisions: JSON.stringify(payload.decisions ?? []),
203
+ key_outputs: JSON.stringify(payload.key_outputs ?? []),
204
+ indexed_at: indexedAt,
205
+ idempotency_key: payload.idempotency_key ?? "",
206
+ conversation_fingerprint: fingerprint,
207
+ metadata_provider: "",
208
+ embedding_provider: embeddingProviderMarker,
209
+ ...conversationChunkColumns(rowId, i, count),
210
+ });
211
+ }
212
+ // Now that the full replacement set is embedded and built, drop any
213
+ // partial set left by an interrupted prior write (deferred from the
214
+ // replay guard above to honor the embed-before-delete invariant).
215
+ if (repairPartialSet) {
216
+ await table.delete(parentFilter);
217
+ await table.delete(selfFilter);
218
+ await coldTable.delete(parentFilter);
219
+ await coldTable.delete(selfFilter);
220
+ }
221
+ // Insert the new set FIRST (single atomic append). Old-version cleanup
222
+ // happens after, so a failed insert never destroys the old version.
177
223
  await recordIndexWrite(deps.dataDir, {
178
224
  table: "conversations_hot",
179
225
  pipeline: "capture",
180
226
  operation: "conversation_upsert",
181
- row_count: 1,
182
- }, () => table.add([row]));
183
- // Clean up old version — best-effort AFTER new row is safely stored.
184
- // Failure here means a temporary duplicate (old + new coexist),
185
- // which is recoverable; the alternative (deleting old before insert
186
- // succeeds) risks losing both versions on insert failure.
227
+ row_count: rows.length,
228
+ }, () => table.add(rows));
229
+ // Clean up old version — best-effort AFTER the new set is safely stored.
230
+ // The replaced conversation carries a DIFFERENT key; all its chunks share
231
+ // that key, so a key-scoped delete removes the whole old set at once.
187
232
  if (payload.replace_idempotency_key) {
188
233
  try {
189
- const coldTable = getTable("conversations_cold");
190
- const hotOldRows = await table
234
+ const oldKeyFilter = eqFilter("idempotency_key", payload.replace_idempotency_key);
235
+ const hotOldRows = (await table
191
236
  .query()
192
- .where(`idempotency_key = '${payload.replace_idempotency_key}'`)
193
- .toArray();
194
- const coldOldRows = await coldTable
237
+ .where(oldKeyFilter)
238
+ .toArray());
239
+ const coldOldRows = (await coldTable
195
240
  .query()
196
- .where(`idempotency_key = '${payload.replace_idempotency_key}'`)
197
- .toArray();
241
+ .where(oldKeyFilter)
242
+ .toArray());
198
243
  const oldRow = hotOldRows[0] ?? coldOldRows[0];
199
244
  if (oldRow) {
245
+ // The raw artifact is keyed by the parent id (chunked) or the row
246
+ // id (unchunked) — never a chunk id.
247
+ const oldRawId = typeof oldRow.parent_id === "string" && oldRow.parent_id
248
+ ? oldRow.parent_id
249
+ : oldRow.id;
200
250
  const oldRawDir = path.join(deps.dataDir, "raw", "conversations", oldRow.source);
201
- const oldRawPath = findRawFile(oldRawDir, oldRow.id);
251
+ const oldRawPath = findRawFile(oldRawDir, oldRawId);
202
252
  if (oldRawPath) {
203
253
  try {
204
254
  fs.unlinkSync(oldRawPath);
@@ -207,10 +257,10 @@ export function createSaveHandler(deps) {
207
257
  }
208
258
  }
209
259
  if (hotOldRows.length > 0) {
210
- await table.delete(`idempotency_key = '${payload.replace_idempotency_key}'`);
260
+ await table.delete(oldKeyFilter);
211
261
  }
212
262
  if (coldOldRows.length > 0) {
213
- await coldTable.delete(`idempotency_key = '${payload.replace_idempotency_key}'`);
263
+ await coldTable.delete(oldKeyFilter);
214
264
  }
215
265
  }
216
266
  catch (cleanupErr) {
@@ -1 +1 @@
1
- {"version":3,"file":"save.js","sourceRoot":"","sources":["../../../../src/jobs/handlers/save.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"save.js","sourceRoot":"","sources":["../../../../src/jobs/handlers/save.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export type JobType = (typeof JOB_TYPES)[number];
3
3
  export declare const JOB_STATUSES: readonly ["queued", "running", "completed", "failed", "cancelled", "interrupted"];
4
4
  export type JobStatus = (typeof JOB_STATUSES)[number];
5
5
  /** Job types that cannot run concurrently with each other. */
6
- export declare const EXCLUSIVE_JOBS: Set<"save" | "ingest" | "compact" | "reindex" | "reconcile" | "triage">;
6
+ export declare const EXCLUSIVE_JOBS: Set<"triage" | "save" | "ingest" | "compact" | "reindex" | "reconcile">;
7
7
  export interface Job {
8
8
  id: string;
9
9
  type: JobType;
package/dist/src/main.js CHANGED
@@ -11,6 +11,7 @@ import { createCodexOverrideAwareHandler } from "./jobs/codex-override-handler.j
11
11
  import { createIngestHandler } from "./jobs/handlers/ingest.js";
12
12
  import { createTriageHandler } from "./jobs/handlers/triage.js";
13
13
  import { initTables, closeTables } from "./storage/tables.js";
14
+ import { writeServingMarker } from "./server/serving-marker.js";
14
15
  import { checkIntegrity } from "./storage/integrity.js";
15
16
  import { Watcher } from "./ingestion/watcher.js";
16
17
  import { Indexer } from "./ingestion/indexer.js";
@@ -25,7 +26,7 @@ import { OllamaEmbeddingProvider } from "./providers/ollama-embed.js";
25
26
  import { checkOllamaHealth } from "./providers/ollama.js";
26
27
  import { createDaemonConversationGenerationProviders } from "./providers/conversation-generation.js";
27
28
  import { setDefaultTriageProvider } from "./capture/triage.js";
28
- import { CodexCliTriageProvider } from "./capture/codex-cli-triage-provider.js";
29
+ import { resolveTriageProviderName, setConfiguredTriageProviderName, createConfiguredTriageProvider, } from "./capture/triage-provider-factory.js";
29
30
  import { configureCodexModel } from "./providers/codex-cli-model.js";
30
31
  import { generateCapabilityMap, getCapabilityCounts, writeRiftContext, } from "./observability/rift-context.js";
31
32
  import { getBuildInfo } from "./server/build-info.js";
@@ -42,6 +43,10 @@ configureCodexModel({
42
43
  model: config.codex_cli?.model,
43
44
  dataDir: config.data_paths.data_dir,
44
45
  });
46
+ // Record the configured triage worker process-wide (default codex_cli) so the
47
+ // per-session triage default, the lazy fallback, and the auto-capture preflight
48
+ // all probe/route through the same selected CLI.
49
+ setConfiguredTriageProviderName(resolveTriageProviderName(config));
45
50
  // Anchor for failure-notification recency gating. Captured here (rather
46
51
  // than reusing buildApp's internal startTime) so the capture loop can
47
52
  // distinguish "failing during this uptime" from "stale error from a
@@ -105,16 +110,17 @@ if (localSources.length > 0) {
105
110
  const conversationProviders = await createDaemonConversationGenerationProviders(config);
106
111
  const metadataExtractor = conversationProviders.metadataExtractor;
107
112
  const digestSummarizer = conversationProviders.digestSummarizer;
108
- // Log the extractor actually selected. `usingLocalGeneration` marks the
109
- // Ollama path; on the cloud path a `digestSummarizer` is only present when
110
- // Codex enrichment is opted in (createCloudProviders), so its presence
111
- // distinguishes the live Codex path from the AI-free Basic fallback. Logging
112
- // "Codex CLI" unconditionally was misleading once enrichment became opt-in.
113
- process.stderr.write(conversationProviders.usingLocalGeneration
114
- ? "Local generation enabled for conversation metadata extraction and digests\n"
115
- : conversationProviders.digestSummarizer
116
- ? "Cloud generation routed through Codex CLI for metadata extraction and digests\n"
117
- : "AI-free metadata enabled (BasicMetadataExtractor) — Codex enrichment off, no Codex calls\n");
113
+ // Log the extractor actually selected, keyed off the explicit
114
+ // `metadataProvider` discriminator (not `digestSummarizer` presence Claude
115
+ // metadata ships no digest, so inferring from digests would misreport an active
116
+ // Claude config as AI-free Basic).
117
+ const metadataStartupLine = {
118
+ ollama: "Local generation enabled for conversation metadata extraction and digests\n",
119
+ codex_cli: "Cloud generation routed through Codex CLI for metadata extraction and digests\n",
120
+ claude_code: "Cloud generation routed through Claude Code for metadata extraction (digests/compaction off until Claude digest support ships)\n",
121
+ basic: "AI-free metadata enabled (BasicMetadataExtractor) AI enrichment off, no AI-worker calls\n",
122
+ };
123
+ process.stderr.write(metadataStartupLine[conversationProviders.metadataProvider]);
118
124
  // --- Worker pool (heavy jobs run in child processes) ---
119
125
  const workerEntryPoint = resolveWorkerEntryPoint(import.meta.url);
120
126
  const workerPool = new WorkerPool(workerEntryPoint, absoluteConfigPath);
@@ -155,10 +161,10 @@ jobQueue.registerHandler("triage", createCodexOverrideAwareHandler(workerTriageH
155
161
  dataDir: config.data_paths.data_dir,
156
162
  openai: config.openai,
157
163
  })));
158
- // Auto-capture (in-process) calls triageConversation() directly. Use the
159
- // operator's authenticated Codex CLI runtime instead of a separate OpenAI
160
- // Keychain secret.
161
- setDefaultTriageProvider(new CodexCliTriageProvider());
164
+ // Auto-capture (in-process) calls triageConversation() directly. Install the
165
+ // configured triage worker (codex_cli by default, claude_code when selected)
166
+ // the operator's own authenticated CLI runtime, no Rift-held API key.
167
+ setDefaultTriageProvider(createConfiguredTriageProvider());
162
168
  const { server, markReady } = await buildApp(config, tokenManager, jobQueue, embeddingProvider, watchers, scanner, digestSummarizer, metadataExtractor, ollamaEmbedding);
163
169
  registerShutdownHandlers(server, {
164
170
  onShutdown: () => workerPool.shutdown(),
@@ -185,6 +191,11 @@ closeConn();
185
191
  resetConn();
186
192
  // --- Initialize storage and ingestion pipeline ---
187
193
  await initTables(config.data_paths.data_dir);
194
+ // Stamp the serving-build capability marker: records that THIS build (and its
195
+ // chunk capabilities) last served this data dir. Offline tools that run with the
196
+ // daemon stopped read it to gate destructive schema-touching writes. Best-effort
197
+ // — never breaks boot. Written only here, by the serving daemon, never by a CLI.
198
+ writeServingMarker(config.data_paths.data_dir);
188
199
  if (!integrity.healthy) {
189
200
  process.stderr.write(`Startup integrity check: corruption detected in [${integrity.corruptTables.join(", ")}]. Auto-triggering rebuild.\n`);
190
201
  // Use createUrgent to bypass the exclusivity gate and insert at
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":";AAYA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBpE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAmKhF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":";AAYA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqCpE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAmNhF"}
@@ -19,6 +19,9 @@ import { searchSchema, handleRiftSearch } from "./tools/search.js";
19
19
  import { conversationsSearchSchema, handleRiftConversationsSearch, } from "./tools/conversations-search.js";
20
20
  import { contextPackSchema, handleRiftContextPack, } from "./tools/context-pack.js";
21
21
  import { handleRiftStatus } from "./tools/status.js";
22
+ import { openEvidenceSchema, handleRiftOpenEvidence, } from "./tools/open-evidence.js";
23
+ import { logOutcomeSchema, handleRiftLogOutcome, } from "./tools/log-outcome.js";
24
+ import { whyEvidenceSchema, forgetEvidenceFeedbackSchema, handleRiftWhyEvidence, handleRiftForgetEvidenceFeedback, } from "./tools/evidence-feedback.js";
22
25
  import { ToolUsageLogger } from "../observability/tool-usage.js";
23
26
  import { recordMcpRetrievalForOnboarding } from "../observability/onboarding-metric.js";
24
27
  import { getBuildInfo } from "../server/build-info.js";
@@ -81,9 +84,13 @@ export async function createMcpServer(opts) {
81
84
  });
82
85
  // --- Tools ---
83
86
  server.tool("rift_save", 'Save an LLM agent session to Rift. Provide source and summary (required). Optionally include domain, decisions made, key outputs, topics, and an idempotency_key to prevent duplicates. Returns a job_id (processed async).', saveSchema, async (args) => logger.wrap("rift_save", args, () => handleRiftSave(args, client)));
84
- server.tool("rift_search", 'Search across all Rift memory: watched files, project docs, conversations, and digests. Use scope to narrow: "documents" for files, "conversations" for chat history, "clients" for client work, "projects" for project files. Use cwd to scope file results to the current project directory (conversations are not filtered by cwd). If cwd doesn\'t match a configured source directory, search runs across all data. Returns ranked results with relevance scores.', searchSchema, async (args) => withOnboardingRecall("rift_search", () => logger.wrap("rift_search", args, () => handleRiftSearch(args, client))));
85
- server.tool("rift_conversations_search", 'Search conversation history with structured filters. Use detail="summary" for recent conversations (last 30 days + digests), detail="full" for older conversations. Filter by source, domain, intent, quality (enum values). Narrow further by topic or decision (free-text, matches against conversation metadata). More precise than rift_search for conversation-specific queries.', conversationsSearchSchema, async (args) => withOnboardingRecall("rift_conversations_search", () => logger.wrap("rift_conversations_search", args, () => handleRiftConversationsSearch(args, client))));
86
- server.tool("rift_context_pack", 'Build a compact, bucketed context pack for an active task. Returns prior decisions, project constraints (MUST/NEVER-style rules), example conversations, and rule documents — all summarized, never raw transcripts. Response is strictly bounded by max_bytes (default 4096, ceiling 16384). Use cwd to narrow document/rule results to the current project. Prefer this over rift_search when you need durable context to steer an agent, not a ranked hit list. Acting on the result: if a "Recommended live files to check" section is present, read those files before trusting this answer — they are the current source of truth and the pack only points at them. Treat items under "What I\'m discounting" as stale or uncommitted (e.g. untracked-in-git, deleted) — do not cite them as canonical state. When intent is "reasoning_archive", older conversations under "Past reasoning" are valid evidence (rationale and framing), not stale memory to ignore.', contextPackSchema, async (args) => withOnboardingRecall("rift_context_pack", () => logger.wrap("rift_context_pack", args, () => handleRiftContextPack(args, client))));
87
+ server.tool("rift_search", 'Search across all Rift memory: watched files, project docs, conversations, and digests. Use scope to narrow: "documents" for files, "conversations" for chat history, "clients" for client work, "projects" for project files. Use cwd to scope file results to the current project directory (conversations are not filtered by cwd). If cwd doesn\'t match a configured source directory, search runs across all data. Returns ranked results with relevance scores. When the response opens with a "Rift recalled …" line, briefly relay it to the user so they can see what Rift surfaced — it is a ready-made, humble one-liner, not a claim that Rift wrote the answer.', searchSchema, async (args) => withOnboardingRecall("rift_search", () => logger.wrap("rift_search", args, () => handleRiftSearch(args, client))));
88
+ server.tool("rift_conversations_search", 'Search conversation history with structured filters. Use detail="summary" for recent conversations (last 30 days + digests), detail="full" for older conversations. Filter by source, domain, intent, quality (enum values). Narrow further by topic or decision (free-text, matches against conversation metadata). More precise than rift_search for conversation-specific queries. When the response opens with a "Rift recalled …" line, briefly relay it to the user so they can see what Rift surfaced.', conversationsSearchSchema, async (args) => withOnboardingRecall("rift_conversations_search", () => logger.wrap("rift_conversations_search", args, () => handleRiftConversationsSearch(args, client))));
89
+ server.tool("rift_context_pack", 'Build a compact, bucketed context pack for an active task. Returns prior decisions, project constraints (MUST/NEVER-style rules), example conversations, and rule documents — all summarized, never raw transcripts. Response is strictly bounded by max_bytes (default 4096, ceiling 16384). Use cwd to narrow document/rule results to the current project. Prefer this over rift_search when you need durable context to steer an agent, not a ranked hit list. Acting on the result: if a "Recommended live files to check" section is present, read those files before trusting this answer — they are the current source of truth and the pack only points at them. Treat items under "What I\'m discounting" as stale or uncommitted (e.g. untracked-in-git, deleted) — do not cite them as canonical state. When intent is "reasoning_archive", older conversations under "Past reasoning" are valid evidence (rationale and framing), not stale memory to ignore. When the response opens with a "Rift recalled …" line, briefly relay it to the user so they can see which prior decisions/docs Rift surfaced — it is a humble summary, not a claim that Rift wrote the answer.', contextPackSchema, async (args) => withOnboardingRecall("rift_context_pack", () => logger.wrap("rift_context_pack", args, () => handleRiftContextPack(args, client))));
90
+ server.tool("rift_open_evidence", "Open one exact Rift evidence item from a compact hit's expand params and record a positive retrieval-feedback event after the open succeeds. Use this instead of rift_search detail='full' when a prior result looks worth inspecting. Pass session_id and intent, plus rank_at_retrieval for ranked hits or context_pack_bucket + position_in_bucket for ContextPack items, so Rift can dedupe and discount position bias. This is shadow-only in Slice 15; ranking integration is deferred.", openEvidenceSchema, async (args) => withOnboardingRecall("rift_open_evidence", () => logger.wrap("rift_open_evidence", args, () => handleRiftOpenEvidence(args, client))));
91
+ server.tool("rift_log_outcome", "Log the outcome of a substantive agent task and cite only the evidence that actually informed the answer. This is the explicit positive layer of Rift's retrieval-feedback loop; returned-but-unused hits are not credit. Pass session_id and intent. Prefer stable_evidence_key from rift_open_evidence, or pass id + source_table.", logOutcomeSchema, async (args) => logger.wrap("rift_log_outcome", args, () => handleRiftLogOutcome(args, client)));
92
+ server.tool("rift_why_evidence", "Inspect the retrieval-feedback ledger for one evidence item. Shows the shadow B_feed score, event count, and backing open/citation/reset events. Use this before trusting or debugging learned feedback.", whyEvidenceSchema, async (args) => logger.wrap("rift_why_evidence", args, () => handleRiftWhyEvidence(args, client)));
93
+ server.tool("rift_forget_evidence_feedback", "Reset learned retrieval feedback for one evidence item by appending a reset event. Use when Rift learned the wrong lesson; this keeps the local ledger auditable instead of editing JSONL by hand.", forgetEvidenceFeedbackSchema, async (args) => logger.wrap("rift_forget_evidence_feedback", args, () => handleRiftForgetEvidenceFeedback(args, client)));
87
94
  server.tool("rift_status", "Capability map for Rift: lists the memory classes available (conversations, digests, structured documents), names the tools for each job (rift_search, rift_conversations_search, rift_context_pack, rift_status), and states default behavior. Call this before deciding whether to search. Not for content retrieval — use rift_search for that.", {}, async () => logger.wrap("rift_status", {}, () => handleRiftStatus({}, client)));
88
95
  // --- Resource ---
89
96
  server.resource("rift-context.md", "rift://rift-context.md", { description: "Current Rift system status as markdown", mimeType: "text/markdown" }, async (uri) => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-pack.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/context-pack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAU3D,eAAO,MAAM,iBAAiB;;;;;;CAqC7B,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,UAAU;;;;;;;;;;;uBAQwB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;GAKlE"}
1
+ {"version":3,"file":"context-pack.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/context-pack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAW3D,eAAO,MAAM,iBAAiB;;;;;;CAqC7B,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,UAAU;;;;;;;;;;;uBAawB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;GAKlE"}
@@ -14,6 +14,7 @@ import { z } from "zod";
14
14
  import { formatError } from "../errors.js";
15
15
  import { MAX_PER_BUCKET_CEILING, MAX_BYTES_CEILING, TASK_MAX, } from "../../retrieval/context-pack.js";
16
16
  import { formatSizeWarning } from "../../retrieval/compact.js";
17
+ import { buildContextPackReceipt, withReceipt } from "../../retrieval/receipt.js";
17
18
  export const contextPackSchema = {
18
19
  task: z
19
20
  .string()
@@ -50,7 +51,12 @@ export async function handleRiftContextPack(args, client) {
50
51
  const pack = data;
51
52
  const text = renderContextPackMarkdown(pack);
52
53
  return {
53
- content: [{ type: "text", text }],
54
+ content: [
55
+ {
56
+ type: "text",
57
+ text: withReceipt(buildContextPackReceipt(pack), text),
58
+ },
59
+ ],
54
60
  structuredContent: pack,
55
61
  };
56
62
  }