@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
@@ -16,8 +16,10 @@ import { makeCompactCommand } from "./commands/compact.js";
16
16
  import { makeReindexCommand } from "./commands/reindex.js";
17
17
  import { makeReconcileCommand } from "./commands/reconcile.js";
18
18
  import { makeRebuildCommand } from "./commands/rebuild.js";
19
+ import { makeChunkBackfillCommand } from "./commands/chunk-backfill.js";
19
20
  import { makeBulkIngestCommand } from "./commands/bulk-ingest.js";
20
21
  import { makeCaptureCommand } from "./commands/capture.js";
22
+ import { makeCursorProbeCommand } from "./commands/cursor-probe.js";
21
23
  import { makeReviewCommand } from "./commands/review.js";
22
24
  import { makeBackfillCommand } from "./commands/backfill.js";
23
25
  import { makeTriageCommand } from "./commands/triage.js";
@@ -49,8 +51,10 @@ export function createProgram() {
49
51
  program.addCommand(makeReindexCommand());
50
52
  program.addCommand(makeReconcileCommand());
51
53
  program.addCommand(makeRebuildCommand());
54
+ program.addCommand(makeChunkBackfillCommand());
52
55
  program.addCommand(makeBulkIngestCommand());
53
56
  program.addCommand(makeCaptureCommand());
57
+ program.addCommand(makeCursorProbeCommand());
54
58
  program.addCommand(makeReviewCommand());
55
59
  program.addCommand(makeBackfillCommand());
56
60
  program.addCommand(makeTriageCommand());
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CAAC,yBAAyB,CAAC;SACtC,OAAO,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC;SAC/B,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAC;SACrE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACtE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE7B,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mEAAmE;AACnE,qEAAqE;AACrE,wEAAwE;AACxE,wEAAwE;AACxE,sEAAsE;AACtE,iEAAiE;AACjE,gDAAgD;AAChD,SAAS,iBAAiB;IACxB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO,EAAE,KAAK,OAAO,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,iBAAiB,EAAE,EAAE,CAAC;IACxB,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAC/D,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,21 +1,28 @@
1
- /**
2
- * Best-effort global-install hook for the SwiftBar menu plugin.
3
- *
4
- * Why this exists in addition to `scripts/install.sh` and `rift update`:
5
- * friends already on beta.13 will run the beta.13 `rift update` command.
6
- * That old command can install the beta.14 tarball, but it cannot call the
7
- * new beta.14 menu-refresh code after npm finishes. npm's postinstall hook
8
- * runs from the newly-installed package, so it bridges that first update.
9
- *
10
- * Local developer installs skip this by default; only global npm installs
11
- * run it. Failures are non-fatal because the CLI/daemon install is more
12
- * important than the ambient menu surface.
13
- */
14
1
  import { installMenuBar } from "./commands/menubar.js";
15
2
  type PostinstallMenuBarInstaller = () => ReturnType<typeof installMenuBar>;
16
3
  type PostinstallOutput = {
17
4
  write(chunk: string): unknown;
18
5
  };
6
+ /**
7
+ * The install prefix as npm exposes it during a lifecycle script — the env NAME
8
+ * varies and a temp global install may expose only some of them. Empirically
9
+ * (local lifecycle probe) a temp install set `NPM_CONFIG_PREFIX` (a passed-through
10
+ * env override) and `npm_config_global_prefix` (npm's resolved global prefix) but
11
+ * NOT `npm_config_prefix` — so keying off `npm_config_prefix` alone lets the
12
+ * temp-prefix guard silently fail. Return the first non-empty of the three.
13
+ */
14
+ export declare function resolveInstallPrefix(env: NodeJS.ProcessEnv): string | undefined;
15
+ /**
16
+ * Is this global install going into a TEMP/throwaway prefix (tarball verify,
17
+ * packed-install test, CI sandbox) rather than a real user prefix? Such an
18
+ * install must NOT run the menu hook: `installMenuBar` targets the user's REAL
19
+ * `~/Library/.../SwiftBar/Plugins` regardless of the install prefix, so a
20
+ * throwaway install would reach out and mutate the real menu surface (the leak
21
+ * PR #60 band-aided with RIFT_SKIP_POSTINSTALL_MENUBAR). We key off the resolved
22
+ * install prefix (see `resolveInstallPrefix`) resolving under a known temp root —
23
+ * durable and explicit, so a test no longer has to remember the skip env.
24
+ */
25
+ export declare function isTempInstallPrefix(prefix: string | undefined, tmpDir?: string): boolean;
19
26
  export declare function shouldRunPostinstallMenuBar(env?: NodeJS.ProcessEnv): boolean;
20
27
  export declare function runPostinstallMenuBar(install?: PostinstallMenuBarInstaller, output?: PostinstallOutput): void;
21
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall-menubar.d.ts","sourceRoot":"","sources":["../../../src/cli/postinstall-menubar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,2BAA2B,GAAG,MAAM,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3E,KAAK,iBAAiB,GAAG;IAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAE3D,wBAAgB,2BAA2B,CACzC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAIT;AAED,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,2BAA4C,EACrD,MAAM,GAAE,iBAAkC,GACzC,IAAI,CA4BN"}
1
+ {"version":3,"file":"postinstall-menubar.d.ts","sourceRoot":"","sources":["../../../src/cli/postinstall-menubar.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,2BAA2B,GAAG,MAAM,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3E,KAAK,iBAAiB,GAAG;IAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,GAAE,MAAoB,GAC3B,OAAO,CAeT;AAED,wBAAgB,2BAA2B,CACzC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAWT;AAED,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,2BAA4C,EACrD,MAAM,GAAE,iBAAkC,GACzC,IAAI,CA4BN"}
@@ -11,13 +11,68 @@
11
11
  * run it. Failures are non-fatal because the CLI/daemon install is more
12
12
  * important than the ambient menu surface.
13
13
  */
14
+ import os from "node:os";
15
+ import path from "node:path";
14
16
  import { installMenuBar } from "./commands/menubar.js";
17
+ /**
18
+ * The install prefix as npm exposes it during a lifecycle script — the env NAME
19
+ * varies and a temp global install may expose only some of them. Empirically
20
+ * (local lifecycle probe) a temp install set `NPM_CONFIG_PREFIX` (a passed-through
21
+ * env override) and `npm_config_global_prefix` (npm's resolved global prefix) but
22
+ * NOT `npm_config_prefix` — so keying off `npm_config_prefix` alone lets the
23
+ * temp-prefix guard silently fail. Return the first non-empty of the three.
24
+ */
25
+ export function resolveInstallPrefix(env) {
26
+ for (const key of [
27
+ "npm_config_prefix",
28
+ "NPM_CONFIG_PREFIX",
29
+ "npm_config_global_prefix",
30
+ ]) {
31
+ const value = env[key];
32
+ if (value && value.trim())
33
+ return value;
34
+ }
35
+ return undefined;
36
+ }
37
+ /**
38
+ * Is this global install going into a TEMP/throwaway prefix (tarball verify,
39
+ * packed-install test, CI sandbox) rather than a real user prefix? Such an
40
+ * install must NOT run the menu hook: `installMenuBar` targets the user's REAL
41
+ * `~/Library/.../SwiftBar/Plugins` regardless of the install prefix, so a
42
+ * throwaway install would reach out and mutate the real menu surface (the leak
43
+ * PR #60 band-aided with RIFT_SKIP_POSTINSTALL_MENUBAR). We key off the resolved
44
+ * install prefix (see `resolveInstallPrefix`) resolving under a known temp root —
45
+ * durable and explicit, so a test no longer has to remember the skip env.
46
+ */
47
+ export function isTempInstallPrefix(prefix, tmpDir = os.tmpdir()) {
48
+ if (!prefix)
49
+ return false;
50
+ const resolved = path.resolve(prefix);
51
+ // macOS symlinks /tmp and /var → /private/*; cover both spellings so a
52
+ // `mktemp -d` under either form is recognized.
53
+ const tempRoots = [
54
+ tmpDir,
55
+ "/tmp",
56
+ "/private/tmp",
57
+ "/var/folders",
58
+ "/private/var/folders",
59
+ ].map((root) => path.resolve(root));
60
+ return tempRoots.some((root) => resolved === root || resolved.startsWith(`${root}${path.sep}`));
61
+ }
15
62
  export function shouldRunPostinstallMenuBar(env = process.env) {
16
63
  if (env.RIFT_SKIP_POSTINSTALL_MENUBAR === "1")
17
64
  return false;
18
65
  if (env.RIFT_POSTINSTALL_MENUBAR === "1")
19
66
  return true;
20
- return env.npm_config_global === "true" || env.npm_config_location === "global";
67
+ const global = env.npm_config_global === "true" || env.npm_config_location === "global";
68
+ if (!global)
69
+ return false;
70
+ // A global install into a temp prefix must not touch the real SwiftBar dir.
71
+ // Resolve the prefix across the env names npm actually exposes, not just
72
+ // the lowercase `npm_config_prefix` (which a temp install may not set).
73
+ if (isTempInstallPrefix(resolveInstallPrefix(env)))
74
+ return false;
75
+ return true;
21
76
  }
22
77
  export function runPostinstallMenuBar(install = installMenuBar, output = process.stdout) {
23
78
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall-menubar.js","sourceRoot":"","sources":["../../../src/cli/postinstall-menubar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,MAAM,UAAU,2BAA2B,CACzC,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,GAAG,CAAC,6BAA6B,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,GAAG,CAAC,wBAAwB,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,GAAG,CAAC,iBAAiB,KAAK,MAAM,IAAI,GAAG,CAAC,mBAAmB,KAAK,QAAQ,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,UAAuC,cAAc,EACrD,SAA4B,OAAO,CAAC,MAAM;IAE1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,IAAI,eAAe,IAAI,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3B,wEAAwE;YACxE,wEAAwE;YACxE,yEAAyE;YACzE,2DAA2D;YAC3D,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,gBAAgB;gBACrB,CAAC,CAAC,4DAA4D;gBAC9D,CAAC,CAAC,oEAAoE,CACzE,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACvF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,IAAI,2BAA2B,EAAE,EAAE,CAAC;IAClC,qBAAqB,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"postinstall-menubar.js","sourceRoot":"","sources":["../../../src/cli/postinstall-menubar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAsB;IAEtB,KAAK,MAAM,GAAG,IAAI;QAChB,mBAAmB;QACnB,mBAAmB;QACnB,0BAA0B;KAC3B,EAAE,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA0B,EAC1B,SAAiB,EAAE,CAAC,MAAM,EAAE;IAE5B,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,uEAAuE;IACvE,+CAA+C;IAC/C,MAAM,SAAS,GAAG;QAChB,MAAM;QACN,MAAM;QACN,cAAc;QACd,cAAc;QACd,sBAAsB;KACvB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,OAAO,SAAS,CAAC,IAAI,CACnB,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,GAAG,CAAC,6BAA6B,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,GAAG,CAAC,wBAAwB,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,MAAM,GACV,GAAG,CAAC,iBAAiB,KAAK,MAAM,IAAI,GAAG,CAAC,mBAAmB,KAAK,QAAQ,CAAC;IAC3E,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,4EAA4E;IAC5E,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,mBAAmB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,UAAuC,cAAc,EACrD,SAA4B,OAAO,CAAC,MAAM;IAE1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,IAAI,eAAe,IAAI,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3B,wEAAwE;YACxE,wEAAwE;YACxE,yEAAyE;YACzE,2DAA2D;YAC3D,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,gBAAgB;gBACrB,CAAC,CAAC,4DAA4D;gBAC9D,CAAC,CAAC,oEAAoE,CACzE,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACvF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,IAAI,2BAA2B,EAAE,EAAE,CAAC;IAClC,qBAAqB,EAAE,CAAC;AAC1B,CAAC"}
@@ -25,12 +25,25 @@ export interface RenderHeaderInput {
25
25
  /** MCP-client install presence, in display order. */
26
26
  mcpClients: McpClientStatus[];
27
27
  /**
28
- * SwiftBar presence — null when the question does not apply (non-macOS) or
29
- * was not probed. Only the `installed: false` case renders a line, so a
30
- * healthy/unprobed install stays quiet, matching `rift doctor`.
28
+ * SwiftBar presence + menu-plugin health — null when the question does not
29
+ * apply (non-macOS) or was not probed. Renders a line when SwiftBar is absent
30
+ * OR when it is present but the plugin is dangling; a healthy/unprobed install
31
+ * stays quiet, matching `rift doctor`. `pluginDangling` is optional so older
32
+ * callers that only know presence still type-check.
31
33
  */
32
34
  swiftBar?: {
33
35
  installed: boolean;
36
+ pluginDangling?: boolean;
37
+ } | null;
38
+ /**
39
+ * Local AI desktop apps detected on the friend's Mac (CLI-side, like
40
+ * `mcpClients`/`swiftBar`). Drives an honest "those app chats aren't
41
+ * auto-captured" line. Optional/absent → no line (older callers, non-macOS, or
42
+ * none installed), so users without these apps get no extra noise.
43
+ */
44
+ localAiApps?: {
45
+ claudeDesktop: boolean;
46
+ chatgptApp: boolean;
34
47
  } | null;
35
48
  /** Clock injection for tests; defaults to Date.now(). */
36
49
  now?: () => number;
@@ -1 +1 @@
1
- {"version":3,"file":"friend-header.d.ts","sourceRoot":"","sources":["../../../../src/cli/status/friend-header.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;AAG9C,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,yEAAyE;IACzE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qDAAqD;IACrD,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACzC,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAyFrE;AAgXD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,sBAAsB,GAAG,SAAS,EAC9C,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,CAef;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUtD"}
1
+ {"version":3,"file":"friend-header.d.ts","sourceRoot":"","sources":["../../../../src/cli/status/friend-header.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;AAG9C,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,yEAAyE;IACzE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qDAAqD;IACrD,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE;;;;;OAKG;IACH,WAAW,CAAC,EAAE;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACrE,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAsGrE;AAyhBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,sBAAsB,GAAG,SAAS,EAC9C,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,CAef;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUtD"}
@@ -28,6 +28,9 @@ export function renderFriendHeader(input) {
28
28
  // having processed an inbox file. This line is the user-visible
29
29
  // confirmation that the inbox path itself is wired up and current.
30
30
  lines.push(renderInboxLine(status.inbox, now));
31
+ const memoryLine = renderMemoryLine(status);
32
+ if (memoryLine)
33
+ lines.push(memoryLine);
31
34
  // 5. codex
32
35
  lines.push(renderCodexLine(status.codex, now));
33
36
  // 6. capture — when the daemon's own scheduled loop is failing but a
@@ -40,6 +43,17 @@ export function renderFriendHeader(input) {
40
43
  const automaticCaptureLine = renderAutomaticCaptureLine(status.capture, now, daemonCaptureStale);
41
44
  if (automaticCaptureLine)
42
45
  lines.push(automaticCaptureLine);
46
+ const cursorLine = renderCursorLine(status.capture);
47
+ if (cursorLine)
48
+ lines.push(cursorLine);
49
+ // 6b. local AI apps — honest source-coverage boundary. Rift auto-captures the
50
+ // CLI agents (Claude Code, Codex CLI); the desktop/web chat apps keep
51
+ // their history server-side, so those chats need export → rift import.
52
+ // Shown ONLY when such an app is actually installed, so the line targets
53
+ // the users who would otherwise assume "auto-capture" covers everything.
54
+ const localAiAppsLine = renderLocalAiAppsLine(input.localAiApps);
55
+ if (localAiAppsLine)
56
+ lines.push(localAiAppsLine);
43
57
  // 7. MCP
44
58
  lines.push(renderMcpLine(input.mcpClients));
45
59
  // 7b. menu bar — only when probed (macOS) AND SwiftBar is absent. The plugin
@@ -183,7 +197,55 @@ function renderInboxLine(inbox, now) {
183
197
  : "";
184
198
  return `Inbox: ${head}${errorSuffix}`;
185
199
  }
200
+ function renderMemoryLine(status) {
201
+ const memory = status.memory;
202
+ if (!memory?.counts)
203
+ return null;
204
+ const counts = memory.counts;
205
+ const digestPart = `digests ${counts.digests}${counts.digests === 0 ? ` (${digestReason(memory.digests.status)})` : ""}`;
206
+ const docsPart = `docs ${counts.structured_docs}${counts.structured_docs === 0 ? ` (${documentReason(memory.documents.status)})` : ""}`;
207
+ return `Memory: ${counts.conversations.toLocaleString("en-US")} conversations · ${digestPart} · ${docsPart}`;
208
+ }
209
+ function digestReason(status) {
210
+ switch (status) {
211
+ case "unavailable_basic":
212
+ return "AI enrichment off";
213
+ case "unavailable_claude":
214
+ return "Claude digests not shipped";
215
+ case "unavailable_worker":
216
+ return "digest worker unavailable";
217
+ case "available_not_run":
218
+ return "none yet";
219
+ case "unknown":
220
+ return "unknown";
221
+ case "indexed":
222
+ return "indexed";
223
+ }
224
+ }
225
+ function documentReason(status) {
226
+ switch (status) {
227
+ case "not_configured":
228
+ return "no sources";
229
+ case "source_missing":
230
+ return "source missing";
231
+ case "source_empty":
232
+ return "source empty";
233
+ case "embedding_unavailable":
234
+ return "Voyage key missing";
235
+ case "backfill_needed":
236
+ return "backfill needed";
237
+ case "unknown":
238
+ return "unknown";
239
+ case "indexed":
240
+ return "indexed";
241
+ }
242
+ }
186
243
  function renderCodexLine(codex, now) {
244
+ // Claude-Code triage worker: a wholly separate label + remedy set. The Codex
245
+ // copy below is left byte-for-byte unchanged.
246
+ if (codex.last_preflight_worker === "claude") {
247
+ return renderClaudeLine(codex, now);
248
+ }
187
249
  if (codex.last_preflight_at === null) {
188
250
  return "Codex CLI: not checked yet — auto-capture has not run";
189
251
  }
@@ -198,6 +260,34 @@ function renderCodexLine(codex, now) {
198
260
  const summary = codex.last_preflight_error_summary ?? "Codex preflight failed.";
199
261
  return `Codex CLI: probe failing ✗ (${checked}) — ${summary}`;
200
262
  }
263
+ /**
264
+ * Claude-Code triage worker status line — the `claude_code` analogue of the
265
+ * Codex line. Remedies are Claude-shaped (sign into `claude`, upgrade an old
266
+ * CLI, point past a wrapper), never "codex login".
267
+ */
268
+ function renderClaudeLine(codex, now) {
269
+ if (codex.last_preflight_at === null) {
270
+ return "Claude Code: not checked yet — auto-capture has not run";
271
+ }
272
+ if (codex.last_preflight_ok === true) {
273
+ return `Claude Code: ready ✓ (last checked: ${formatAge(codex.last_preflight_at, now)})`;
274
+ }
275
+ const checked = `last checked: ${formatAge(codex.last_preflight_at, now)}`;
276
+ switch (codex.last_preflight_error_class) {
277
+ case "auth":
278
+ return `Claude Code: signed out ✗ (${checked}) — run: claude (sign in)`;
279
+ case "missing":
280
+ return `Claude Code: not found ✗ (${checked}) — install claude or set RIFT_CLAUDE_CLI_PATH`;
281
+ case "incompatible":
282
+ return `Claude Code: too old ✗ (${checked}) — upgrade claude (needs --safe-mode)`;
283
+ case "wrapper":
284
+ return `Claude Code: wrapper blocking ✗ (${checked}) — set RIFT_CLAUDE_CLI_PATH to the real claude`;
285
+ default: {
286
+ const summary = codex.last_preflight_error_summary ?? "Claude preflight failed.";
287
+ return `Claude Code: probe failing ✗ (${checked}) — ${summary}`;
288
+ }
289
+ }
290
+ }
201
291
  /**
202
292
  * True when the daemon's own scheduled loop last failed (during this
203
293
  * uptime) but the newest run is a healthy ad-hoc run (a manual `rift
@@ -264,6 +354,62 @@ function renderCaptureLine(capture, now, daemonStale) {
264
354
  const nextPart = nextSuffix ? ` · ${nextSuffix}` : "";
265
355
  return `Capture: ${runLabel} ${age} — ${capture.last_saved} saved · ${capture.last_review} review · ${capture.last_errors} failed${parkedSuffix}${nextPart}`;
266
356
  }
357
+ /**
358
+ * Native-Cursor capture line. Honest states for an explicit opt-in:
359
+ * - not installed AND not scheduled → omit (return null); never advertise a
360
+ * tool the user doesn't have.
361
+ * - scheduled but the store is missing/unreadable (file probe) → WARN.
362
+ * - scheduled, store readable, but the last discovery RUN failed to read it
363
+ * (e.g. `sqlite3` missing / corrupt query — invisible to the file probe)
364
+ * → WARN. The opt-in (cursor_composer in capture.sources) must never read
365
+ * as "capture on" while capture physically can't run; that would silently
366
+ * swallow the one thing the user asked for.
367
+ * - installed but not scheduled → offer the opt-in.
368
+ * - scheduled, readable, and no observed discovery failure → on.
369
+ * Returns null for a pre-this-slice payload that omits the `cursor` block.
370
+ */
371
+ function renderCursorLine(capture) {
372
+ const cursor = capture.cursor;
373
+ if (!cursor)
374
+ return null;
375
+ if (cursor.scheduled) {
376
+ if (!cursor.available) {
377
+ return "Cursor: scheduled but no readable Cursor store found — capture can't run (is Cursor installed?)";
378
+ }
379
+ // File is readable, but the last run that actually read the store failed —
380
+ // the store is present yet Rift can't parse it (commonly: no `sqlite3` on
381
+ // PATH). Warn instead of claiming the schedule is working.
382
+ if (cursor.last_discovery_ok === false) {
383
+ return "Cursor: scheduled but Rift couldn't read your Cursor sessions last run — capture isn't working (try: rift doctor)";
384
+ }
385
+ return "Cursor: capture on — native Cursor sessions are captured on the schedule";
386
+ }
387
+ // Not scheduled: only advertise the opt-in when Cursor is actually present.
388
+ if (!cursor.available)
389
+ return null;
390
+ return "Cursor: available — add cursor_composer to capture.sources to capture your Cursor sessions";
391
+ }
392
+ /**
393
+ * Honest source-coverage line. Rift auto-captures the CLI agents (Claude Code,
394
+ * Codex CLI); the Claude/ChatGPT DESKTOP and web apps keep their chat history
395
+ * server-side, so those conversations are NOT auto-captured — they need an
396
+ * export → `rift import`. Rendered only when such an app is actually installed,
397
+ * so it sets the right expectation for exactly the users who would assume
398
+ * "auto-capture" already covers them, and stays silent for everyone else.
399
+ */
400
+ function renderLocalAiAppsLine(apps) {
401
+ if (!apps)
402
+ return null;
403
+ const names = [];
404
+ if (apps.claudeDesktop)
405
+ names.push("Claude Desktop");
406
+ if (apps.chatgptApp)
407
+ names.push("ChatGPT");
408
+ if (names.length === 0)
409
+ return null;
410
+ const possessive = names.length === 1 ? "its" : "their";
411
+ return `App chats: ${names.join(" + ")} installed — ${possessive} chats aren't auto-captured; export → rift import`;
412
+ }
267
413
  /**
268
414
  * The "Automatic:" advisory line — shown only when `isDaemonCaptureStale`
269
415
  * holds (the scheduled loop's last run failed while a manual run is
@@ -298,16 +444,24 @@ function renderMcpLine(clients) {
298
444
  return `MCP: ${parts.join(" · ")}`;
299
445
  }
300
446
  /**
301
- * Render the menu-bar advisory line, or null to omit it. Only the probed-and-
302
- * absent case prints `null` (non-macOS / unprobed, e.g. the daemon notifier)
303
- * and `installed: true` both stay silent.
447
+ * Render the menu-bar advisory line, or null to omit it. Two cases print:
448
+ * SwiftBar absent (install the app), and SwiftBar present but the plugin is a
449
+ * dangling shortcut (reinstall it) — so the everyday `rift status` can't look
450
+ * clean while the icon is broken. A healthy install and `null` (non-macOS /
451
+ * unprobed, e.g. the daemon notifier) stay silent, matching `rift doctor`.
304
452
  */
305
453
  function renderSwiftBarLine(swiftBar) {
306
- if (!swiftBar || swiftBar.installed)
454
+ if (!swiftBar)
307
455
  return null;
308
- // Lead with the real first step (install the app); `rift menubar install`
309
- // alone would only re-print that same recovery, so name it directly.
310
- return "Menu bar: SwiftBar not installed (icon can't show install SwiftBar from swiftbar.app, then run: rift menubar install)";
456
+ if (!swiftBar.installed) {
457
+ // Lead with the real first step (install the app); `rift menubar install`
458
+ // alone would only re-print that same recovery, so name it directly.
459
+ return "Menu bar: SwiftBar not installed ✗ (icon can't show → install SwiftBar from swiftbar.app, then run: rift menubar install)";
460
+ }
461
+ if (swiftBar.pluginDangling) {
462
+ return "Menu bar: plugin broken ✗ (icon can't update → reinstall: rift menubar install)";
463
+ }
464
+ return null;
311
465
  }
312
466
  function decideNextLine(input) {
313
467
  const { status, mcpClients, daemonStartMs } = input;
@@ -318,16 +472,38 @@ function decideNextLine(input) {
318
472
  return "Auto-capture is on but has no Voyage key to embed with → run: rift onboard --reconfigure-voyage";
319
473
  }
320
474
  if (status.codex.last_preflight_ok === false) {
475
+ if (status.codex.last_preflight_worker === "claude") {
476
+ switch (status.codex.last_preflight_error_class) {
477
+ case "auth":
478
+ return "Claude Code signed out → run: claude (sign in); Rift retries automatically";
479
+ case "missing":
480
+ return "Claude Code CLI not found → install claude or set RIFT_CLAUDE_CLI_PATH; Rift retries automatically";
481
+ case "incompatible":
482
+ return "Claude Code CLI too old → upgrade claude (needs --safe-mode); Rift retries automatically";
483
+ case "wrapper":
484
+ return "A wrapper is intercepting claude → set RIFT_CLAUDE_CLI_PATH to the real binary; Rift retries automatically";
485
+ case "rate_limit":
486
+ return "Claude hit a rate/usage limit → wait for it to reset; Rift retries automatically";
487
+ default:
488
+ return "Claude capture probe failing → Rift retries automatically";
489
+ }
490
+ }
321
491
  if (status.codex.last_preflight_error_class === "auth") {
322
492
  return "Codex auth expired → run: codex login";
323
493
  }
324
494
  if (status.codex.last_preflight_error_class === "model") {
325
- return "Codex rejected the model → set codex_cli.model, then: rift capture";
495
+ return "Codex rejected the model → set codex_cli.model; Rift retries automatically";
496
+ }
497
+ if (status.codex.last_preflight_error_class === "cli_incompatible") {
498
+ return "Codex CLI too old → upgrade Codex; Rift retries automatically";
326
499
  }
327
500
  if (status.codex.last_preflight_error_class === "binary") {
328
- return "Codex CLI missing or moved → reinstall/upgrade codex, then: rift capture";
501
+ return "Codex CLI missing or moved → reinstall/upgrade codex; Rift retries automatically";
502
+ }
503
+ if (status.codex.last_preflight_error_class === "rate_limit") {
504
+ return "Codex out of credits or rate-limited → top up your OpenAI balance or wait; Rift retries automatically";
329
505
  }
330
- return "Codex capture probe failing → re-run: rift capture";
506
+ return "Codex capture probe failing → Rift retries automatically";
331
507
  }
332
508
  // Recency gating: only errors stamped *after* the current daemon
333
509
  // start can drive the Next: action. A 20h-old schema_mismatch from a
@@ -1 +1 @@
1
- {"version":3,"file":"friend-header.js","sourceRoot":"","sources":["../../../../src/cli/status/friend-header.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"friend-header.js","sourceRoot":"","sources":["../../../../src/cli/status/friend-header.ts"],"names":[],"mappings":"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"}
@@ -6,19 +6,48 @@ export interface LocalSignals {
6
6
  installed: boolean;
7
7
  }>;
8
8
  /**
9
- * SwiftBar presence — null when the question does not apply (non-macOS),
10
- * otherwise whether SwiftBar.app (the app that draws Rift's menu bar icon)
11
- * is installed. Lets `rift doctor`/`rift status` surface a "menu can't show"
12
- * state instead of leaving a silently-missing icon undiagnosed.
9
+ * SwiftBar presence + menu-plugin health — null when the question does not
10
+ * apply (non-macOS). `installed`: whether SwiftBar.app (the app that draws
11
+ * Rift's menu bar icon) is present. `pluginDangling`: whether the `rift.10s.sh`
12
+ * in the folder SwiftBar actually watches (its configured `PluginDirectory`,
13
+ * else the default — matching where install writes) is a symlink whose target
14
+ * no longer exists — the legacy hazard from symlinking into a package root that
15
+ * npm/Homebrew later moved or deleted. Lets `rift doctor`/`rift status` surface
16
+ * a "menu can't show" / "menu plugin is broken — reinstall" state instead of
17
+ * leaving a silently-broken icon undiagnosed.
13
18
  */
14
19
  swiftBar: {
15
20
  installed: boolean;
21
+ pluginDangling: boolean;
22
+ } | null;
23
+ /**
24
+ * Presence of local AI desktop apps whose chats Rift does NOT auto-capture
25
+ * (their history is server-side, not a readable local file — see the capture
26
+ * source registry). null on non-macOS. Lets `rift status` set an honest
27
+ * expectation — those app chats need export → `rift import` — so a user with
28
+ * the Claude/ChatGPT desktop app installed doesn't assume "auto-capture"
29
+ * already covers them.
30
+ */
31
+ localAiApps: {
32
+ claudeDesktop: boolean;
33
+ chatgptApp: boolean;
16
34
  } | null;
17
35
  }
18
36
  export declare function readLocalSignals(opts?: {
19
37
  homeDir?: string;
20
38
  platform?: NodeJS.Platform;
21
39
  }): LocalSignals;
40
+ /**
41
+ * Which local AI desktop apps are installed whose chats Rift does NOT
42
+ * auto-capture (Claude Desktop, ChatGPT). Cheap existence check of the two
43
+ * standard Applications folders — no Spotlight/mdfind, since this only feeds an
44
+ * honest expectation-setting line, not a hard diagnosis. `appDirs` is injectable
45
+ * for deterministic tests (the default scans the real Applications folders).
46
+ */
47
+ export declare function detectLocalAiApps(homeDir: string, appDirs?: string[]): {
48
+ claudeDesktop: boolean;
49
+ chatgptApp: boolean;
50
+ };
22
51
  /**
23
52
  * Whether SwiftBar.app is installed. Checks the two standard Applications
24
53
  * folders first, then falls back to a Spotlight/LaunchServices lookup by bundle
@@ -27,6 +56,15 @@ export declare function readLocalSignals(opts?: {
27
56
  * Best-effort: a missing/unindexed `mdfind` just leaves the answer false.
28
57
  */
29
58
  export declare function detectSwiftBarApp(homeDir: string): boolean;
59
+ /**
60
+ * Whether the `rift.10s.sh` in SwiftBar's DEFAULT plugin dir is a DANGLING
61
+ * symlink — a symlink whose target no longer exists. This is the legacy
62
+ * breakage: older installs symlinked the plugin into the package root, which
63
+ * npm/Homebrew can move or delete on update, leaving SwiftBar to run (and fail)
64
+ * a broken link. A regular copied file (the current default) or no file at all
65
+ * is NOT dangling. Pure `lstat` — never shells out, never throws.
66
+ */
67
+ export declare function detectDanglingMenuPlugin(homeDir: string, resolvePluginDir?: () => string): boolean;
30
68
  export declare function readVoyageLast4(envPath: string): string | null;
31
69
  export declare function detectRiftServerEntry(client: ClientId, homeDir: string): boolean;
32
70
  //# sourceMappingURL=local-signals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-signals.d.ts","sourceRoot":"","sources":["../../../../src/cli/status/local-signals.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,gCAAgC,CAAC;AAGxC,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5D;;;;;OAKG;IACH,QAAQ,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACzC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;CAAO,GAAG,YAAY,CAc1G;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAiB1D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY9D;AAYD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAkBT"}
1
+ {"version":3,"file":"local-signals.d.ts","sourceRoot":"","sources":["../../../../src/cli/status/local-signals.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,gCAAgC,CAAC;AAQxC,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,QAAQ,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE;;;;;;;OAOG;IACH,WAAW,EAAE;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACrE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;CAAO,GAAG,YAAY,CAkB1G;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAWjD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAiB1D;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EAKf,gBAAgB,GAAE,MAAM,MAEW,GAClC,OAAO,CAWT;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY9D;AAYD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAkBT"}