@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
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Classification of a recorded Claude Code `preflight_error` (the capture-triage
3
+ * probe failure) into a coarse class that drives honest, CLAUDE-SPECIFIC
4
+ * doctor/status copy — the Claude analogue of `codex-preflight.ts`.
5
+ *
6
+ * The string we classify is the runner's OWN leak-free error (see
7
+ * `claude-cli-runner.ts`): a canned `classifyClaudeStderr` phrase, the
8
+ * "No compatible Claude Code CLI found …" aggregate, the "was not found …"
9
+ * message, or a timeout. Those are structural phrases the runner emits — never
10
+ * raw stderr, prompt, or model output (the runner already stripped those). So we
11
+ * only ever pattern-match Rift's own wording here; nothing user-content-bearing
12
+ * reaches this module.
13
+ *
14
+ * Why a separate worker: when capture triage runs through `claude` instead of
15
+ * `codex`, "run codex login" is wrong advice. A Claude user needs Claude-shaped
16
+ * remedies — sign into `claude`, upgrade an old CLI that lacks `--safe-mode`, or
17
+ * point `RIFT_CLAUDE_CLI_PATH` past a wrapper. These classes encode exactly the
18
+ * failure buckets the runner can produce.
19
+ */
20
+ export type ClaudePreflightErrorClass = "missing" | "incompatible" | "wrapper" | "auth" | "rate_limit" | "network" | "timeout" | "unknown";
21
+ export declare function classifyClaudePreflightError(error: string | null | undefined): ClaudePreflightErrorClass;
22
+ /**
23
+ * A short, leak-free, human summary for a class. Deliberately canned (no raw
24
+ * stderr, no file paths, no prompt/session content) so SwiftBar/doctor can
25
+ * surface it without parsing or redacting raw `claude` output.
26
+ */
27
+ export declare function summarizeClaudePreflightClass(cls: ClaudePreflightErrorClass): string;
28
+ /**
29
+ * The single concrete remedy for a class — shown as the doctor `nextAction` and
30
+ * the status `Next:` line. Claude-shaped (never "codex login"). Capture is
31
+ * automatic, so each remedy ends with "Rift retries automatically" rather than
32
+ * telling the user to run `rift capture` by hand.
33
+ */
34
+ export declare function claudePreflightNextAction(cls: ClaudePreflightErrorClass): string;
35
+ //# sourceMappingURL=claude-preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-preflight.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/claude-preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,yBAAyB,GACjC,SAAS,GACT,cAAc,GACd,SAAS,GACT,MAAM,GACN,YAAY,GACZ,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,yBAAyB,CA2D3B;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,yBAAyB,GAC7B,MAAM,CAmBR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,yBAAyB,GAC7B,MAAM,CAkBR"}
@@ -0,0 +1,90 @@
1
+ export function classifyClaudePreflightError(error) {
2
+ if (!error || error.trim().length === 0) {
3
+ return "unknown";
4
+ }
5
+ const text = error.toLowerCase();
6
+ // Structural install problems first — they are the most actionable and their
7
+ // wording is distinctive. Note the "No compatible … found" aggregate is NOT
8
+ // "missing" (a `claude` exists, it just failed the probe); it carries the
9
+ // specific per-candidate reasons matched below (e.g. `--safe-mode`, wrapper).
10
+ if (/was not found on path|was not found in|claude.*was not found/.test(text)) {
11
+ return "missing";
12
+ }
13
+ if (/--safe-mode|too old\/incompatible|too old for headless|\bincompatible\b|flag\/contract error|unknown option|unknown argument|invalid option|unrecognized option/.test(text)) {
14
+ return "incompatible";
15
+ }
16
+ // Auth BEFORE wrapper: a recorded reason can carry both signals — e.g. a legacy
17
+ // row (or any future caller) whose text says "authentication failed … likely a
18
+ // wrapper/PTY shim". Auth is the more specific, more actionable cause, so it
19
+ // wins the tie; a genuine wrapper failure carries no auth wording and still
20
+ // falls through to `wrapper` below. (The runner now also emits a precise,
21
+ // non-conflated reason — see claude-cli-runner.ts — so new rows rarely carry
22
+ // both; this ordering hardens the legacy/ambiguous path.)
23
+ if (/authentication failed|not (logged|signed) in|\bunauthorized\b|\b401\b|please (run|sign|log).{0,12}(login|in)|login (has )?expired|credentials? (expired|invalid)|sign in/.test(text)) {
24
+ return "auth";
25
+ }
26
+ if (/could not run headless|wrapper\/pty shim|pty shim|input must be provided|when using --print|not a tty|raw mode is not supported/.test(text)) {
27
+ return "wrapper";
28
+ }
29
+ if (/rate limit|\b429\b|too many requests|usage limit|\bquota\b|out of credits|insufficient (credit|quota|balance)/.test(text)) {
30
+ return "rate_limit";
31
+ }
32
+ if (/network error|econnreset|econnrefused|enotfound|etimedout|getaddrinfo|connection (refused|reset)|failed to (connect|reach)|\bnetwork\b|http 5\d\d|socket hang up/.test(text)) {
33
+ return "network";
34
+ }
35
+ if (/timed out|\btimeout\b/.test(text)) {
36
+ return "timeout";
37
+ }
38
+ return "unknown";
39
+ }
40
+ /**
41
+ * A short, leak-free, human summary for a class. Deliberately canned (no raw
42
+ * stderr, no file paths, no prompt/session content) so SwiftBar/doctor can
43
+ * surface it without parsing or redacting raw `claude` output.
44
+ */
45
+ export function summarizeClaudePreflightClass(cls) {
46
+ switch (cls) {
47
+ case "missing":
48
+ return "Claude Code CLI (`claude`) was not found.";
49
+ case "incompatible":
50
+ return "Claude Code CLI is too old for headless triage (it needs `--safe-mode`).";
51
+ case "wrapper":
52
+ return "A PATH wrapper is intercepting `claude` and cannot run it headlessly.";
53
+ case "auth":
54
+ return "Claude Code login appears to have expired.";
55
+ case "rate_limit":
56
+ return "Claude hit a rate or usage limit — usually transient.";
57
+ case "network":
58
+ return "Claude could not reach its backend (network/transport).";
59
+ case "timeout":
60
+ return "Claude probe timed out — often a transient hiccup.";
61
+ case "unknown":
62
+ return "Claude preflight failed for an unrecognized reason.";
63
+ }
64
+ }
65
+ /**
66
+ * The single concrete remedy for a class — shown as the doctor `nextAction` and
67
+ * the status `Next:` line. Claude-shaped (never "codex login"). Capture is
68
+ * automatic, so each remedy ends with "Rift retries automatically" rather than
69
+ * telling the user to run `rift capture` by hand.
70
+ */
71
+ export function claudePreflightNextAction(cls) {
72
+ switch (cls) {
73
+ case "missing":
74
+ return "Install Claude Code, or set RIFT_CLAUDE_CLI_PATH to your `claude`; Rift retries automatically on its next pass.";
75
+ case "incompatible":
76
+ return "Upgrade Claude Code so it supports --safe-mode (or set RIFT_CLAUDE_CLI_PATH to a newer claude); Rift retries automatically on its next pass.";
77
+ case "wrapper":
78
+ return "Set RIFT_CLAUDE_CLI_PATH to the real claude binary (a wrapper is intercepting it); Rift retries automatically on its next pass.";
79
+ case "auth":
80
+ return "Sign back in: run claude and log in; Rift retries automatically on its next pass.";
81
+ case "rate_limit":
82
+ return "Wait for the limit to reset; Rift retries automatically on its next pass.";
83
+ case "network":
84
+ return "Check your network connection; Rift retries automatically on its next pass.";
85
+ case "timeout":
86
+ case "unknown":
87
+ return "Rift retries automatically on its next pass; check rift status if it persists.";
88
+ }
89
+ }
90
+ //# sourceMappingURL=claude-preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-preflight.js","sourceRoot":"","sources":["../../../src/diagnostics/claude-preflight.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,4BAA4B,CAC1C,KAAgC;IAEhC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEjC,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,IAAI,8DAA8D,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IACE,iKAAiK,CAAC,IAAI,CACpK,IAAI,CACL,EACD,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,gFAAgF;IAChF,+EAA+E;IAC/E,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,0DAA0D;IAC1D,IACE,0KAA0K,CAAC,IAAI,CAC7K,IAAI,CACL,EACD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IACE,iIAAiI,CAAC,IAAI,CACpI,IAAI,CACL,EACD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IACE,+GAA+G,CAAC,IAAI,CAClH,IAAI,CACL,EACD,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IACE,kKAAkK,CAAC,IAAI,CACrK,IAAI,CACL,EACD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,GAA8B;IAE9B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,2CAA2C,CAAC;QACrD,KAAK,cAAc;YACjB,OAAO,0EAA0E,CAAC;QACpF,KAAK,SAAS;YACZ,OAAO,uEAAuE,CAAC;QACjF,KAAK,MAAM;YACT,OAAO,4CAA4C,CAAC;QACtD,KAAK,YAAY;YACf,OAAO,uDAAuD,CAAC;QACjE,KAAK,SAAS;YACZ,OAAO,yDAAyD,CAAC;QACnE,KAAK,SAAS;YACZ,OAAO,oDAAoD,CAAC;QAC9D,KAAK,SAAS;YACZ,OAAO,qDAAqD,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAA8B;IAE9B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,iHAAiH,CAAC;QAC3H,KAAK,cAAc;YACjB,OAAO,8IAA8I,CAAC;QACxJ,KAAK,SAAS;YACZ,OAAO,iIAAiI,CAAC;QAC3I,KAAK,MAAM;YACT,OAAO,mFAAmF,CAAC;QAC7F,KAAK,YAAY;YACf,OAAO,2EAA2E,CAAC;QACrF,KAAK,SAAS;YACZ,OAAO,6EAA6E,CAAC;QACvF,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,gFAAgF,CAAC;IAC5F,CAAC;AACH,CAAC"}
@@ -17,7 +17,7 @@
17
17
  * transport lines, and anything ambiguous falls to a non-auth bucket — we
18
18
  * never falsely tell the user their login expired.
19
19
  */
20
- export type CodexPreflightErrorClass = "auth" | "model" | "binary" | "timeout" | "backend" | "unknown";
20
+ export type CodexPreflightErrorClass = "auth" | "model" | "cli_incompatible" | "binary" | "rate_limit" | "timeout" | "backend" | "unknown";
21
21
  export declare function classifyCodexPreflightError(error: string | null | undefined): CodexPreflightErrorClass;
22
22
  /**
23
23
  * Best-effort model name from the codex banner (`model: <name>`), for display
@@ -1 +1 @@
1
- {"version":3,"file":"codex-preflight.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/codex-preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAOd,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,wBAAwB,CAsD1B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,MAAM,GAAG,IAAI,CAMf;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,MAAM,CAiBR"}
1
+ {"version":3,"file":"codex-preflight.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/codex-preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,OAAO,GACP,kBAAkB,GAClB,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAOd,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,wBAAwB,CAoF1B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,MAAM,GAAG,IAAI,CAMf;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,MAAM,CAqBR"}
@@ -16,6 +16,18 @@ export function classifyCodexPreflightError(error) {
16
16
  if (/\bunsupported model\b|\bunknown model\b|\bmodel_not_found\b|no working codex model|model[^\n]*\bnot (found|supported|available)\b|does not support the model|invalid model/.test(codexText)) {
17
17
  return "model";
18
18
  }
19
+ // CLI too old / incompatible: the executable launched fine but rejected an
20
+ // argument we depend on. The canonical signal is a Codex predating
21
+ // `--output-schema` (added after 0.39) — clap exits 2 with
22
+ // "error: unexpected argument '--output-schema' found". Also matches Rift's
23
+ // own pre-send capability-probe message ("too old … missing required
24
+ // option(s): --output-schema"). Distinct from `binary` (the executable runs)
25
+ // and from `auth`/`model`: the fix is to UPGRADE the CLI, not re-login or
26
+ // change the model. Mirrors the Claude runner's flag/contract bucket. Matched
27
+ // before the generic buckets so a too-old CLI never falls through to unknown.
28
+ if (/unexpected argument|unrecognized (subcommand|argument|option)|unknown (option|flag|argument|subcommand)|wasn'?t expected|isn'?t valid in this context|--output-schema|--output-last-message|too old|missing required option/.test(codexText)) {
29
+ return "cli_incompatible";
30
+ }
19
31
  // Binary: the codex executable could not be launched at all — almost always
20
32
  // `spawn … ENOENT`, i.e. the resolved path no longer exists (a `brew
21
33
  // upgrade`/reinstall moved or removed it, or it was never installed). This is
@@ -30,6 +42,14 @@ export function classifyCodexPreflightError(error) {
30
42
  if (/\bunauthorized\b|\b401\b|not (logged|signed) in|please run [`']?codex login|\bcodex login\b|login (has )?expired|authentication failed|missing api key|credentials? (expired|invalid)/.test(codexText)) {
31
43
  return "auth";
32
44
  }
45
+ // Out of credits / over quota / rate-limited: a 429 from codex's backend, the
46
+ // common cause being an exhausted OpenAI balance or a hit plan/usage cap.
47
+ // Mirrors the Claude classifier's rate_limit bucket. Matched before backend
48
+ // (which only catches 5xx, not 429) so it never falls through to unknown and
49
+ // gets mislabelled "preflight failed for an unrecognized reason".
50
+ if (/rate limit|\b429\b|too many requests|usage limit|\bquota\b|out of credits|insufficient (credit|quota|balance)/.test(codexText)) {
51
+ return "rate_limit";
52
+ }
33
53
  if (/timed out|\btimeout\b/.test(codexText)) {
34
54
  return "timeout";
35
55
  }
@@ -62,8 +82,12 @@ export function summarizeCodexPreflightClass(cls, model) {
62
82
  return model
63
83
  ? `Codex rejected the model "${model}".`
64
84
  : "Codex rejected the configured model.";
85
+ case "cli_incompatible":
86
+ return "Codex CLI is too old for capture — it rejected an option Rift needs.";
65
87
  case "binary":
66
88
  return "Codex CLI could not be found or started — it may have moved or been removed.";
89
+ case "rate_limit":
90
+ return "Codex hit a rate/usage limit or is out of credits — check your OpenAI balance.";
67
91
  case "timeout":
68
92
  return "Codex probe timed out — often a transient backend hiccup.";
69
93
  case "backend":
@@ -1 +1 @@
1
- {"version":3,"file":"codex-preflight.js","sourceRoot":"","sources":["../../../src/diagnostics/codex-preflight.ts"],"names":[],"mappings":"AA2BA,0EAA0E;AAC1E,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,uDAAuD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAgC;IAEhC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,KAAK;SACpB,KAAK,CAAC,OAAO,CAAC;SACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SACvC,IAAI,CAAC,IAAI,CAAC;SACV,WAAW,EAAE,CAAC;IAEjB,yEAAyE;IACzE,2EAA2E;IAC3E,IACE,4KAA4K,CAAC,IAAI,CAC/K,SAAS,CACV,EACD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,qEAAqE;IACrE,8EAA8E;IAC9E,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,wCAAwC;IACxC,IAAI,wDAAwD,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8EAA8E;IAC9E,IACE,uLAAuL,CAAC,IAAI,CAC1L,SAAS,CACV,EACD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IACE,oIAAoI,CAAC,IAAI,CACvI,SAAS,CACV,EACD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAgC;IAEhC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,GAA6B,EAC7B,KAAoB;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,sCAAsC,CAAC;QAChD,KAAK,OAAO;YACV,OAAO,KAAK;gBACV,CAAC,CAAC,6BAA6B,KAAK,IAAI;gBACxC,CAAC,CAAC,sCAAsC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,8EAA8E,CAAC;QACxF,KAAK,SAAS;YACZ,OAAO,2DAA2D,CAAC;QACrE,KAAK,SAAS;YACZ,OAAO,wDAAwD,CAAC;QAClE,KAAK,SAAS;YACZ,OAAO,oDAAoD,CAAC;IAChE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"codex-preflight.js","sourceRoot":"","sources":["../../../src/diagnostics/codex-preflight.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@
25
25
  */
26
26
  import type { FriendStatusPayload } from "../server/routes/friend-status.js";
27
27
  /** Stable identifiers for each diagnosable condition. */
28
- export type DoctorIssueKind = "daemon_unreachable" | "daemon_auth_failed" | "config_missing" | "voyage_key_missing" | "codex_auth_expired" | "codex_preflight_failed" | "voyage_embed_errors" | "index_write_errors" | "inbox_import_errors" | "capture_failed" | "capture_daemon_stale" | "mcp_not_installed" | "menu_bar_unavailable" | "capture_quarantined" | "capture_repairing" | "update_available";
28
+ export type DoctorIssueKind = "daemon_unreachable" | "daemon_auth_failed" | "config_missing" | "voyage_key_missing" | "codex_auth_expired" | "codex_preflight_failed" | "claude_auth_expired" | "claude_preflight_failed" | "voyage_embed_errors" | "index_write_errors" | "inbox_import_errors" | "capture_failed" | "capture_daemon_stale" | "mcp_not_installed" | "menu_bar_unavailable" | "menu_bar_broken" | "capture_quarantined" | "capture_repairing" | "update_available";
29
29
  /**
30
30
  * `broken` blocks Rift from doing its job (no capture, no search, no
31
31
  * memory). `warning` is degraded-but-working or user-side (a rejected
@@ -65,12 +65,15 @@ export interface DoctorLocalSignals {
65
65
  installed: boolean;
66
66
  }>;
67
67
  /**
68
- * SwiftBar presence — null when not applicable (non-macOS, or a caller that
69
- * does not probe it, e.g. the daemon notifier). Only `{ installed: false }`
70
- * raises the menu-bar advisory.
68
+ * SwiftBar presence + plugin health — null when not applicable (non-macOS, or
69
+ * a caller that does not probe it, e.g. the daemon notifier). `installed:
70
+ * false` raises the menu-bar advisory; `pluginDangling: true` raises the
71
+ * "plugin is broken — reinstall" advisory. `pluginDangling` is optional so a
72
+ * caller that only knows app presence still type-checks (undefined → silent).
71
73
  */
72
74
  swiftBar?: {
73
75
  installed: boolean;
76
+ pluginDangling?: boolean;
74
77
  } | null;
75
78
  }
76
79
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAG7E,yDAAyD;AACzD,MAAM,MAAM,eAAe,GACvB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,oBAAoB,GACpB,oBAAoB,GACpB,wBAAwB,GACxB,qBAAqB,GACrB,oBAAoB,GACpB,qBAAqB,GACrB,gBAAgB,GAChB,sBAAsB,GACtB,mBAAmB,GACnB,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1D;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,oBAAoB,GACpB,aAAa,GACb,mBAAmB,GACnB,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,YAAY,EAAE,kBAAkB,CAAC;IACjC,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,mDAAmD;IACnD,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AA+GD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CA4RzD"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAO7E,yDAAyD;AACzD,MAAM,MAAM,eAAe,GACvB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,oBAAoB,GACpB,oBAAoB,GACpB,wBAAwB,GACxB,qBAAqB,GACrB,yBAAyB,GACzB,qBAAqB,GACrB,oBAAoB,GACpB,qBAAqB,GACrB,gBAAgB,GAChB,sBAAsB,GACtB,mBAAmB,GACnB,sBAAsB,GACtB,iBAAiB,GACjB,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1D;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACpE;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,oBAAoB,GACpB,aAAa,GACb,mBAAmB,GACnB,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,YAAY,EAAE,kBAAkB,CAAC;IACjC,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,mDAAmD;IACnD,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAmHD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CA0VzD"}
@@ -1,3 +1,4 @@
1
+ import { claudePreflightNextAction, } from "./claude-preflight.js";
1
2
  /**
2
3
  * True only when `iso` parses to a timestamp at/after the daemon's
3
4
  * current start. Historical errors that predate the running process are
@@ -21,14 +22,18 @@ function isCurrentUptime(iso, daemonStartMs) {
21
22
  function codexPreflightNextAction(cls) {
22
23
  switch (cls) {
23
24
  case "model":
24
- return "Set codex_cli.model in your Rift config to a model your Codex plan supports, then: rift capture";
25
+ return "Set codex_cli.model in your Rift config to a model your Codex plan supports; Rift retries automatically on its next pass.";
26
+ case "cli_incompatible":
27
+ return "Codex CLI is too old. Upgrade Codex (e.g. brew upgrade codex, or reinstall); Rift retries automatically on its next pass.";
25
28
  case "binary":
26
- return "Codex CLI could not be launched — check it is installed and on PATH (e.g. brew upgrade codex, or reinstall), then: rift capture";
29
+ return "Codex CLI could not be launched — check it is installed and on PATH (e.g. brew upgrade codex, or reinstall); Rift retries automatically on its next pass.";
30
+ case "rate_limit":
31
+ return "Codex is rate-limited or out of credits — top up your OpenAI balance or wait for the limit to reset; Rift retries automatically on its next pass.";
27
32
  case "timeout":
28
33
  case "backend":
29
- return "Usually transient — re-run: rift capture (the daemon also retries on its next pass)";
34
+ return "Usually transient — Rift retries automatically on its next pass.";
30
35
  default:
31
- return "Re-run and watch the output: rift capture";
36
+ return "Rift retries automatically on its next pass; check rift status if it persists.";
32
37
  }
33
38
  }
34
39
  function humanizeErrorClass(reason) {
@@ -137,15 +142,46 @@ export function diagnose(input) {
137
142
  // login". Everything else (a rejected model, a backend timeout, MCP
138
143
  // noise) gets a neutral, honest message — never a false login nag.
139
144
  if (status.codex.last_preflight_ok === false) {
140
- if (status.codex.last_preflight_error_class === "auth") {
145
+ if (status.codex.last_preflight_worker === "claude") {
146
+ // Triage runs through the `claude` CLI on this install — every remedy is
147
+ // Claude-shaped (sign into claude / upgrade / point past a wrapper), never
148
+ // "codex login". The summary is already the leak-free Claude phrasing.
149
+ const claudeClass = status.codex.last_preflight_error_class ?? "unknown";
150
+ if (claudeClass === "auth") {
151
+ issues.push({
152
+ kind: "claude_auth_expired",
153
+ severity: "broken",
154
+ title: "Claude Code couldn't authenticate",
155
+ detail: "Rift triages your new Claude Code / Codex sessions through the " +
156
+ "`claude` CLI on this install, and couldn't authenticate to it, so " +
157
+ "automatic capture is paused. Rift keeps retrying on its own.",
158
+ nextAction: "Often clears on its own. If it persists, sign in: run claude and log in",
159
+ daemonObservable: true,
160
+ });
161
+ }
162
+ else {
163
+ issues.push({
164
+ kind: "claude_preflight_failed",
165
+ severity: "broken",
166
+ fingerprint: `claude_preflight_failed:${claudeClass}`,
167
+ title: "Claude Code capture probe is failing",
168
+ detail: `${status.codex.last_preflight_error_summary ?? "Claude preflight failed."} ` +
169
+ "Automatic capture is paused until a probe succeeds; recent " +
170
+ "conversations are safe on disk and will be captured once it clears.",
171
+ nextAction: claudePreflightNextAction(claudeClass),
172
+ daemonObservable: true,
173
+ });
174
+ }
175
+ }
176
+ else if (status.codex.last_preflight_error_class === "auth") {
141
177
  issues.push({
142
178
  kind: "codex_auth_expired",
143
179
  severity: "broken",
144
- title: "Codex login has expired",
180
+ title: "Codex couldn't authenticate",
145
181
  detail: "Rift reads your new Claude Code / Codex sessions through the codex " +
146
- "CLI. Its login has expired, so automatic capture cannot run and new " +
147
- "conversations are not being saved.",
148
- nextAction: "Sign back in: codex login (then run: rift capture)",
182
+ "CLI, and couldn't authenticate to it, so automatic capture is " +
183
+ "paused. Rift keeps retrying on its own.",
184
+ nextAction: "Often clears on its own. If it persists, sign in: codex login",
149
185
  daemonObservable: true,
150
186
  });
151
187
  }
@@ -159,7 +195,10 @@ export function diagnose(input) {
159
195
  "Your codex login looks fine — this is not an auth problem. " +
160
196
  "Automatic capture is paused until a probe succeeds; recent " +
161
197
  "conversations are safe on disk and will be captured once it clears.",
162
- nextAction: codexPreflightNextAction(status.codex.last_preflight_error_class ?? null),
198
+ nextAction: codexPreflightNextAction(
199
+ // This branch only runs for the Codex worker, so the class is a
200
+ // Codex class; narrow the worker-union field back for the helper.
201
+ status.codex.last_preflight_error_class ?? null),
163
202
  daemonObservable: true,
164
203
  });
165
204
  }
@@ -209,7 +248,7 @@ export function diagnose(input) {
209
248
  title: "The last capture run reported errors",
210
249
  detail: "Rift's automatic capture ran but hit errors while saving sessions, " +
211
250
  "so some recent conversations may not have been stored.",
212
- nextAction: "Re-run it and watch the output: rift capture",
251
+ nextAction: "Rift retries the failed sessions automatically on its next pass; check rift status if it persists.",
213
252
  daemonObservable: true,
214
253
  });
215
254
  }
@@ -296,6 +335,26 @@ export function diagnose(input) {
296
335
  daemonObservable: false,
297
336
  });
298
337
  }
338
+ // 7c. Menu plugin is a DANGLING symlink — a legacy install symlinked
339
+ // `rift.10s.sh` into the package root, which npm/Homebrew later moved or
340
+ // deleted, so SwiftBar now runs a broken link and the icon misbehaves.
341
+ // Reinstalling lays down a self-contained copy. Degraded surface, not a
342
+ // broken engine → warning. ONLY when SwiftBar is installed: with the app
343
+ // absent, 7b already says "install SwiftBar" and "reinstall the plugin"
344
+ // would be the wrong next step (the plugin can't show regardless).
345
+ if (localSignals.swiftBar?.installed && localSignals.swiftBar.pluginDangling) {
346
+ issues.push({
347
+ kind: "menu_bar_broken",
348
+ severity: "warning",
349
+ title: "Rift's menu bar plugin is broken — it points at a file that's gone",
350
+ detail: "Rift's menu plugin is a stale shortcut into an old install location " +
351
+ "that has since moved, so SwiftBar can't run it and the icon won't " +
352
+ "update. Reinstalling replaces it with a self-contained copy. Rift " +
353
+ "still captures and searches in the background.",
354
+ nextAction: "Reinstall the menu plugin: rift menubar install",
355
+ daemonObservable: false,
356
+ });
357
+ }
299
358
  // 8. Oversized sessions parked in quarantine — not in memory yet, but a
300
359
  // graceful skip rather than an error, and one that now SELF-REPAIRS in
301
360
  // the background. So the copy follows the repair state, not a bare count:
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/diagnostics/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/diagnostics/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { Config } from "../config/schema.js";
2
+ import type { CapabilityCounts } from "../observability/rift-context.js";
3
+ import type { SelectedMetadataProvider } from "../providers/conversation-generation.js";
4
+ export type DocumentCoverageStatus = "indexed" | "not_configured" | "source_missing" | "source_empty" | "embedding_unavailable" | "backfill_needed" | "unknown";
5
+ export type DigestCoverageStatus = "indexed" | "unavailable_basic" | "unavailable_claude" | "unavailable_worker" | "available_not_run" | "unknown";
6
+ export interface MemoryCoverageCounts {
7
+ conversations: number;
8
+ digests: number;
9
+ structured_docs: number;
10
+ }
11
+ export interface DocumentCoverageDiagnostics {
12
+ status: DocumentCoverageStatus;
13
+ /**
14
+ * True only when the filesystem source probe actually ran (i.e. docs == 0 and
15
+ * we owed the user a reason). When false — the healthy `indexed` steady state
16
+ * or a counts-unavailable `unknown` — the source/file fields below are
17
+ * placeholders, not measurements, and renderers must not present them as such.
18
+ */
19
+ probed: boolean;
20
+ configured_sources: number;
21
+ existing_sources: number;
22
+ cloud_sources: number;
23
+ local_sources: number;
24
+ sources_with_supported_files: number;
25
+ supported_files_seen: number;
26
+ cloud_supported_files_seen: number;
27
+ local_supported_files_seen: number;
28
+ scan_limit: number;
29
+ scan_limited: boolean;
30
+ cloud_embedding_ready: boolean;
31
+ summary: string;
32
+ next_action: string | null;
33
+ }
34
+ export interface DigestCoverageDiagnostics {
35
+ status: DigestCoverageStatus;
36
+ metadata_provider: SelectedMetadataProvider;
37
+ compact_available: boolean;
38
+ summary: string;
39
+ next_action: string | null;
40
+ }
41
+ export interface MemoryCoverageDiagnostics {
42
+ counts: MemoryCoverageCounts | null;
43
+ digests: DigestCoverageDiagnostics;
44
+ documents: DocumentCoverageDiagnostics;
45
+ }
46
+ export interface BuildMemoryCoverageInput {
47
+ config: Config;
48
+ counts: CapabilityCounts | null;
49
+ voyageKeyPresent: boolean;
50
+ compactAvailable: boolean;
51
+ supportedFileScanLimit?: number;
52
+ }
53
+ export declare function buildMemoryCoverageDiagnostics(input: BuildMemoryCoverageInput): MemoryCoverageDiagnostics;
54
+ //# sourceMappingURL=memory-coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-coverage.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/memory-coverage.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAKxF,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,uBAAuB,GACvB,iBAAiB,GACjB,SAAS,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,sBAAsB,CAAC;IAC/B;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B,EAAE,MAAM,CAAC;IACrC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0BAA0B,EAAE,MAAM,CAAC;IACnC,0BAA0B,EAAE,MAAM,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,EAAE,2BAA2B,CAAC;CACxC;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAQD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,wBAAwB,GAC9B,yBAAyB,CAyB3B"}