onadit 0.0.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1085) hide show
  1. package/README.dev.md +124 -0
  2. package/README.md +194 -2
  3. package/dist/src/auth/keychain.d.ts +42 -0
  4. package/dist/src/auth/keychain.d.ts.map +1 -0
  5. package/dist/src/auth/keychain.js +177 -0
  6. package/dist/src/auth/keychain.js.map +1 -0
  7. package/dist/src/auth/middleware.d.ts +21 -0
  8. package/dist/src/auth/middleware.d.ts.map +1 -0
  9. package/dist/src/auth/middleware.js +93 -0
  10. package/dist/src/auth/middleware.js.map +1 -0
  11. package/dist/src/auth/rate-limit.d.ts +16 -0
  12. package/dist/src/auth/rate-limit.d.ts.map +1 -0
  13. package/dist/src/auth/rate-limit.js +38 -0
  14. package/dist/src/auth/rate-limit.js.map +1 -0
  15. package/dist/src/auth/rotation.d.ts +67 -0
  16. package/dist/src/auth/rotation.d.ts.map +1 -0
  17. package/dist/src/auth/rotation.js +190 -0
  18. package/dist/src/auth/rotation.js.map +1 -0
  19. package/dist/src/backfill/project-context-batch-constructor.d.ts +127 -0
  20. package/dist/src/backfill/project-context-batch-constructor.d.ts.map +1 -0
  21. package/dist/src/backfill/project-context-batch-constructor.js +210 -0
  22. package/dist/src/backfill/project-context-batch-constructor.js.map +1 -0
  23. package/dist/src/capture/assistant-text-lookup.d.ts +31 -0
  24. package/dist/src/capture/assistant-text-lookup.d.ts.map +1 -0
  25. package/dist/src/capture/assistant-text-lookup.js +222 -0
  26. package/dist/src/capture/assistant-text-lookup.js.map +1 -0
  27. package/dist/src/capture/auto-capture.d.ts +322 -0
  28. package/dist/src/capture/auto-capture.d.ts.map +1 -0
  29. package/dist/src/capture/auto-capture.js +1167 -0
  30. package/dist/src/capture/auto-capture.js.map +1 -0
  31. package/dist/src/capture/auto-repair.d.ts +125 -0
  32. package/dist/src/capture/auto-repair.d.ts.map +1 -0
  33. package/dist/src/capture/auto-repair.js +280 -0
  34. package/dist/src/capture/auto-repair.js.map +1 -0
  35. package/dist/src/capture/batch-budget.d.ts +90 -0
  36. package/dist/src/capture/batch-budget.d.ts.map +1 -0
  37. package/dist/src/capture/batch-budget.js +148 -0
  38. package/dist/src/capture/batch-budget.js.map +1 -0
  39. package/dist/src/capture/claude-cli-triage-provider.d.ts +28 -0
  40. package/dist/src/capture/claude-cli-triage-provider.d.ts.map +1 -0
  41. package/dist/src/capture/claude-cli-triage-provider.js +101 -0
  42. package/dist/src/capture/claude-cli-triage-provider.js.map +1 -0
  43. package/dist/src/capture/codex-cli-triage-provider.d.ts +17 -0
  44. package/dist/src/capture/codex-cli-triage-provider.d.ts.map +1 -0
  45. package/dist/src/capture/codex-cli-triage-provider.js +91 -0
  46. package/dist/src/capture/codex-cli-triage-provider.js.map +1 -0
  47. package/dist/src/capture/cursor-capture.d.ts +89 -0
  48. package/dist/src/capture/cursor-capture.d.ts.map +1 -0
  49. package/dist/src/capture/cursor-capture.js +121 -0
  50. package/dist/src/capture/cursor-capture.js.map +1 -0
  51. package/dist/src/capture/observability.d.ts +131 -0
  52. package/dist/src/capture/observability.d.ts.map +1 -0
  53. package/dist/src/capture/observability.js +181 -0
  54. package/dist/src/capture/observability.js.map +1 -0
  55. package/dist/src/capture/openai-triage-provider.d.ts +92 -0
  56. package/dist/src/capture/openai-triage-provider.d.ts.map +1 -0
  57. package/dist/src/capture/openai-triage-provider.js +267 -0
  58. package/dist/src/capture/openai-triage-provider.js.map +1 -0
  59. package/dist/src/capture/recover-quarantine.d.ts +273 -0
  60. package/dist/src/capture/recover-quarantine.d.ts.map +1 -0
  61. package/dist/src/capture/recover-quarantine.js +581 -0
  62. package/dist/src/capture/recover-quarantine.js.map +1 -0
  63. package/dist/src/capture/review-queue-index.d.ts +51 -0
  64. package/dist/src/capture/review-queue-index.d.ts.map +1 -0
  65. package/dist/src/capture/review-queue-index.js +204 -0
  66. package/dist/src/capture/review-queue-index.js.map +1 -0
  67. package/dist/src/capture/review-queue.d.ts +47 -0
  68. package/dist/src/capture/review-queue.d.ts.map +1 -0
  69. package/dist/src/capture/review-queue.js +116 -0
  70. package/dist/src/capture/review-queue.js.map +1 -0
  71. package/dist/src/capture/sources.d.ts +53 -0
  72. package/dist/src/capture/sources.d.ts.map +1 -0
  73. package/dist/src/capture/sources.js +55 -0
  74. package/dist/src/capture/sources.js.map +1 -0
  75. package/dist/src/capture/stored-statements.d.ts +9 -0
  76. package/dist/src/capture/stored-statements.d.ts.map +1 -0
  77. package/dist/src/capture/stored-statements.js +63 -0
  78. package/dist/src/capture/stored-statements.js.map +1 -0
  79. package/dist/src/capture/triage-classification.d.ts +92 -0
  80. package/dist/src/capture/triage-classification.d.ts.map +1 -0
  81. package/dist/src/capture/triage-classification.js +94 -0
  82. package/dist/src/capture/triage-classification.js.map +1 -0
  83. package/dist/src/capture/triage-lane.d.ts +39 -0
  84. package/dist/src/capture/triage-lane.d.ts.map +1 -0
  85. package/dist/src/capture/triage-lane.js +217 -0
  86. package/dist/src/capture/triage-lane.js.map +1 -0
  87. package/dist/src/capture/triage-provider-factory.d.ts +36 -0
  88. package/dist/src/capture/triage-provider-factory.d.ts.map +1 -0
  89. package/dist/src/capture/triage-provider-factory.js +55 -0
  90. package/dist/src/capture/triage-provider-factory.js.map +1 -0
  91. package/dist/src/capture/triage-provider.d.ts +82 -0
  92. package/dist/src/capture/triage-provider.d.ts.map +1 -0
  93. package/dist/src/capture/triage-provider.js +126 -0
  94. package/dist/src/capture/triage-provider.js.map +1 -0
  95. package/dist/src/capture/triage.d.ts +30 -0
  96. package/dist/src/capture/triage.d.ts.map +1 -0
  97. package/dist/src/capture/triage.js +50 -0
  98. package/dist/src/capture/triage.js.map +1 -0
  99. package/dist/src/capture/user-statements-recheck.d.ts +22 -0
  100. package/dist/src/capture/user-statements-recheck.d.ts.map +1 -0
  101. package/dist/src/capture/user-statements-recheck.js +181 -0
  102. package/dist/src/capture/user-statements-recheck.js.map +1 -0
  103. package/dist/src/capture/user-statements.d.ts +84 -0
  104. package/dist/src/capture/user-statements.d.ts.map +1 -0
  105. package/dist/src/capture/user-statements.js +617 -0
  106. package/dist/src/capture/user-statements.js.map +1 -0
  107. package/dist/src/cli/agent-homes.d.ts +15 -0
  108. package/dist/src/cli/agent-homes.d.ts.map +1 -0
  109. package/dist/src/cli/agent-homes.js +45 -0
  110. package/dist/src/cli/agent-homes.js.map +1 -0
  111. package/dist/src/cli/commands/backfill.d.ts +3 -0
  112. package/dist/src/cli/commands/backfill.d.ts.map +1 -0
  113. package/dist/src/cli/commands/backfill.js +1379 -0
  114. package/dist/src/cli/commands/backfill.js.map +1 -0
  115. package/dist/src/cli/commands/brief.d.ts +12 -0
  116. package/dist/src/cli/commands/brief.d.ts.map +1 -0
  117. package/dist/src/cli/commands/brief.js +131 -0
  118. package/dist/src/cli/commands/brief.js.map +1 -0
  119. package/dist/src/cli/commands/bulk-ingest.d.ts +3 -0
  120. package/dist/src/cli/commands/bulk-ingest.d.ts.map +1 -0
  121. package/dist/src/cli/commands/bulk-ingest.js +126 -0
  122. package/dist/src/cli/commands/bulk-ingest.js.map +1 -0
  123. package/dist/src/cli/commands/capture-recover.d.ts +40 -0
  124. package/dist/src/cli/commands/capture-recover.d.ts.map +1 -0
  125. package/dist/src/cli/commands/capture-recover.js +194 -0
  126. package/dist/src/cli/commands/capture-recover.js.map +1 -0
  127. package/dist/src/cli/commands/capture.d.ts +12 -0
  128. package/dist/src/cli/commands/capture.d.ts.map +1 -0
  129. package/dist/src/cli/commands/capture.js +304 -0
  130. package/dist/src/cli/commands/capture.js.map +1 -0
  131. package/dist/src/cli/commands/chunk-backfill.d.ts +13 -0
  132. package/dist/src/cli/commands/chunk-backfill.d.ts.map +1 -0
  133. package/dist/src/cli/commands/chunk-backfill.js +157 -0
  134. package/dist/src/cli/commands/chunk-backfill.js.map +1 -0
  135. package/dist/src/cli/commands/compact.d.ts +3 -0
  136. package/dist/src/cli/commands/compact.d.ts.map +1 -0
  137. package/dist/src/cli/commands/compact.js +70 -0
  138. package/dist/src/cli/commands/compact.js.map +1 -0
  139. package/dist/src/cli/commands/cursor-probe.d.ts +20 -0
  140. package/dist/src/cli/commands/cursor-probe.d.ts.map +1 -0
  141. package/dist/src/cli/commands/cursor-probe.js +162 -0
  142. package/dist/src/cli/commands/cursor-probe.js.map +1 -0
  143. package/dist/src/cli/commands/doctor.d.ts +6 -0
  144. package/dist/src/cli/commands/doctor.d.ts.map +1 -0
  145. package/dist/src/cli/commands/doctor.js +259 -0
  146. package/dist/src/cli/commands/doctor.js.map +1 -0
  147. package/dist/src/cli/commands/feedback.d.ts +34 -0
  148. package/dist/src/cli/commands/feedback.d.ts.map +1 -0
  149. package/dist/src/cli/commands/feedback.js +214 -0
  150. package/dist/src/cli/commands/feedback.js.map +1 -0
  151. package/dist/src/cli/commands/hooks-install.d.ts +66 -0
  152. package/dist/src/cli/commands/hooks-install.d.ts.map +1 -0
  153. package/dist/src/cli/commands/hooks-install.js +228 -0
  154. package/dist/src/cli/commands/hooks-install.js.map +1 -0
  155. package/dist/src/cli/commands/import.d.ts +19 -0
  156. package/dist/src/cli/commands/import.d.ts.map +1 -0
  157. package/dist/src/cli/commands/import.js +258 -0
  158. package/dist/src/cli/commands/import.js.map +1 -0
  159. package/dist/src/cli/commands/ingest.d.ts +3 -0
  160. package/dist/src/cli/commands/ingest.d.ts.map +1 -0
  161. package/dist/src/cli/commands/ingest.js +80 -0
  162. package/dist/src/cli/commands/ingest.js.map +1 -0
  163. package/dist/src/cli/commands/mcp-install.d.ts +65 -0
  164. package/dist/src/cli/commands/mcp-install.d.ts.map +1 -0
  165. package/dist/src/cli/commands/mcp-install.js +306 -0
  166. package/dist/src/cli/commands/mcp-install.js.map +1 -0
  167. package/dist/src/cli/commands/menubar.d.ts +127 -0
  168. package/dist/src/cli/commands/menubar.d.ts.map +1 -0
  169. package/dist/src/cli/commands/menubar.js +585 -0
  170. package/dist/src/cli/commands/menubar.js.map +1 -0
  171. package/dist/src/cli/commands/onboard-first-run.d.ts +5 -0
  172. package/dist/src/cli/commands/onboard-first-run.d.ts.map +1 -0
  173. package/dist/src/cli/commands/onboard-first-run.js +156 -0
  174. package/dist/src/cli/commands/onboard-first-run.js.map +1 -0
  175. package/dist/src/cli/commands/onboard.d.ts +336 -0
  176. package/dist/src/cli/commands/onboard.d.ts.map +1 -0
  177. package/dist/src/cli/commands/onboard.js +1873 -0
  178. package/dist/src/cli/commands/onboard.js.map +1 -0
  179. package/dist/src/cli/commands/rebuild.d.ts +12 -0
  180. package/dist/src/cli/commands/rebuild.d.ts.map +1 -0
  181. package/dist/src/cli/commands/rebuild.js +167 -0
  182. package/dist/src/cli/commands/rebuild.js.map +1 -0
  183. package/dist/src/cli/commands/reconcile.d.ts +3 -0
  184. package/dist/src/cli/commands/reconcile.d.ts.map +1 -0
  185. package/dist/src/cli/commands/reconcile.js +68 -0
  186. package/dist/src/cli/commands/reconcile.js.map +1 -0
  187. package/dist/src/cli/commands/reindex.d.ts +3 -0
  188. package/dist/src/cli/commands/reindex.d.ts.map +1 -0
  189. package/dist/src/cli/commands/reindex.js +66 -0
  190. package/dist/src/cli/commands/reindex.js.map +1 -0
  191. package/dist/src/cli/commands/review.d.ts +13 -0
  192. package/dist/src/cli/commands/review.d.ts.map +1 -0
  193. package/dist/src/cli/commands/review.js +401 -0
  194. package/dist/src/cli/commands/review.js.map +1 -0
  195. package/dist/src/cli/commands/save.d.ts +3 -0
  196. package/dist/src/cli/commands/save.d.ts.map +1 -0
  197. package/dist/src/cli/commands/save.js +111 -0
  198. package/dist/src/cli/commands/save.js.map +1 -0
  199. package/dist/src/cli/commands/search.d.ts +37 -0
  200. package/dist/src/cli/commands/search.d.ts.map +1 -0
  201. package/dist/src/cli/commands/search.js +118 -0
  202. package/dist/src/cli/commands/search.js.map +1 -0
  203. package/dist/src/cli/commands/setup.d.ts +30 -0
  204. package/dist/src/cli/commands/setup.d.ts.map +1 -0
  205. package/dist/src/cli/commands/setup.js +122 -0
  206. package/dist/src/cli/commands/setup.js.map +1 -0
  207. package/dist/src/cli/commands/stats.d.ts +3 -0
  208. package/dist/src/cli/commands/stats.d.ts.map +1 -0
  209. package/dist/src/cli/commands/stats.js +42 -0
  210. package/dist/src/cli/commands/stats.js.map +1 -0
  211. package/dist/src/cli/commands/status.d.ts +17 -0
  212. package/dist/src/cli/commands/status.d.ts.map +1 -0
  213. package/dist/src/cli/commands/status.js +206 -0
  214. package/dist/src/cli/commands/status.js.map +1 -0
  215. package/dist/src/cli/commands/token-issue.d.ts +3 -0
  216. package/dist/src/cli/commands/token-issue.d.ts.map +1 -0
  217. package/dist/src/cli/commands/token-issue.js +33 -0
  218. package/dist/src/cli/commands/token-issue.js.map +1 -0
  219. package/dist/src/cli/commands/triage.d.ts +3 -0
  220. package/dist/src/cli/commands/triage.d.ts.map +1 -0
  221. package/dist/src/cli/commands/triage.js +127 -0
  222. package/dist/src/cli/commands/triage.js.map +1 -0
  223. package/dist/src/cli/commands/uninstall.d.ts +85 -0
  224. package/dist/src/cli/commands/uninstall.d.ts.map +1 -0
  225. package/dist/src/cli/commands/uninstall.js +512 -0
  226. package/dist/src/cli/commands/uninstall.js.map +1 -0
  227. package/dist/src/cli/commands/update.d.ts +105 -0
  228. package/dist/src/cli/commands/update.d.ts.map +1 -0
  229. package/dist/src/cli/commands/update.js +559 -0
  230. package/dist/src/cli/commands/update.js.map +1 -0
  231. package/dist/src/cli/default-config-path.d.ts +15 -0
  232. package/dist/src/cli/default-config-path.d.ts.map +1 -0
  233. package/dist/src/cli/default-config-path.js +28 -0
  234. package/dist/src/cli/default-config-path.js.map +1 -0
  235. package/dist/src/cli/feedback/feedback-config.d.ts +67 -0
  236. package/dist/src/cli/feedback/feedback-config.d.ts.map +1 -0
  237. package/dist/src/cli/feedback/feedback-config.js +169 -0
  238. package/dist/src/cli/feedback/feedback-config.js.map +1 -0
  239. package/dist/src/cli/feedback/feedback-history.d.ts +11 -0
  240. package/dist/src/cli/feedback/feedback-history.d.ts.map +1 -0
  241. package/dist/src/cli/feedback/feedback-history.js +145 -0
  242. package/dist/src/cli/feedback/feedback-history.js.map +1 -0
  243. package/dist/src/cli/feedback/feedback-payload.d.ts +74 -0
  244. package/dist/src/cli/feedback/feedback-payload.d.ts.map +1 -0
  245. package/dist/src/cli/feedback/feedback-payload.js +10 -0
  246. package/dist/src/cli/feedback/feedback-payload.js.map +1 -0
  247. package/dist/src/cli/feedback/feedback-relay.d.ts +15 -0
  248. package/dist/src/cli/feedback/feedback-relay.d.ts.map +1 -0
  249. package/dist/src/cli/feedback/feedback-relay.js +47 -0
  250. package/dist/src/cli/feedback/feedback-relay.js.map +1 -0
  251. package/dist/src/cli/feedback/feedback-status.d.ts +11 -0
  252. package/dist/src/cli/feedback/feedback-status.d.ts.map +1 -0
  253. package/dist/src/cli/feedback/feedback-status.js +122 -0
  254. package/dist/src/cli/feedback/feedback-status.js.map +1 -0
  255. package/dist/src/cli/feedback/invite.d.ts +17 -0
  256. package/dist/src/cli/feedback/invite.d.ts.map +1 -0
  257. package/dist/src/cli/feedback/invite.js +73 -0
  258. package/dist/src/cli/feedback/invite.js.map +1 -0
  259. package/dist/src/cli/feedback/relay-secret-store.d.ts +32 -0
  260. package/dist/src/cli/feedback/relay-secret-store.d.ts.map +1 -0
  261. package/dist/src/cli/feedback/relay-secret-store.js +137 -0
  262. package/dist/src/cli/feedback/relay-secret-store.js.map +1 -0
  263. package/dist/src/cli/hooks-writers/claude-code-policy-script.d.ts +35 -0
  264. package/dist/src/cli/hooks-writers/claude-code-policy-script.d.ts.map +1 -0
  265. package/dist/src/cli/hooks-writers/claude-code-policy-script.js +122 -0
  266. package/dist/src/cli/hooks-writers/claude-code-policy-script.js.map +1 -0
  267. package/dist/src/cli/hooks-writers/claude-code.d.ts +63 -0
  268. package/dist/src/cli/hooks-writers/claude-code.d.ts.map +1 -0
  269. package/dist/src/cli/hooks-writers/claude-code.js +289 -0
  270. package/dist/src/cli/hooks-writers/claude-code.js.map +1 -0
  271. package/dist/src/cli/hooks-writers/codex.d.ts +16 -0
  272. package/dist/src/cli/hooks-writers/codex.d.ts.map +1 -0
  273. package/dist/src/cli/hooks-writers/codex.js +17 -0
  274. package/dist/src/cli/hooks-writers/codex.js.map +1 -0
  275. package/dist/src/cli/hooks-writers/errors.d.ts +16 -0
  276. package/dist/src/cli/hooks-writers/errors.d.ts.map +1 -0
  277. package/dist/src/cli/hooks-writers/errors.js +24 -0
  278. package/dist/src/cli/hooks-writers/errors.js.map +1 -0
  279. package/dist/src/cli/hooks-writers/index.d.ts +23 -0
  280. package/dist/src/cli/hooks-writers/index.d.ts.map +1 -0
  281. package/dist/src/cli/hooks-writers/index.js +34 -0
  282. package/dist/src/cli/hooks-writers/index.js.map +1 -0
  283. package/dist/src/cli/hooks-writers/state.d.ts +43 -0
  284. package/dist/src/cli/hooks-writers/state.d.ts.map +1 -0
  285. package/dist/src/cli/hooks-writers/state.js +225 -0
  286. package/dist/src/cli/hooks-writers/state.js.map +1 -0
  287. package/dist/src/cli/hooks-writers/types.d.ts +28 -0
  288. package/dist/src/cli/hooks-writers/types.d.ts.map +1 -0
  289. package/dist/src/cli/hooks-writers/types.js +8 -0
  290. package/dist/src/cli/hooks-writers/types.js.map +1 -0
  291. package/dist/src/cli/http-client.d.ts +128 -0
  292. package/dist/src/cli/http-client.d.ts.map +1 -0
  293. package/dist/src/cli/http-client.js +401 -0
  294. package/dist/src/cli/http-client.js.map +1 -0
  295. package/dist/src/cli/index.d.ts +4 -0
  296. package/dist/src/cli/index.d.ts.map +1 -0
  297. package/dist/src/cli/index.js +99 -0
  298. package/dist/src/cli/index.js.map +1 -0
  299. package/dist/src/cli/job-poller.d.ts +13 -0
  300. package/dist/src/cli/job-poller.d.ts.map +1 -0
  301. package/dist/src/cli/job-poller.js +29 -0
  302. package/dist/src/cli/job-poller.js.map +1 -0
  303. package/dist/src/cli/mcp-config-writers/codex-toml.d.ts +20 -0
  304. package/dist/src/cli/mcp-config-writers/codex-toml.d.ts.map +1 -0
  305. package/dist/src/cli/mcp-config-writers/codex-toml.js +918 -0
  306. package/dist/src/cli/mcp-config-writers/codex-toml.js.map +1 -0
  307. package/dist/src/cli/mcp-config-writers/earlier-name-restrictions.d.ts +11 -0
  308. package/dist/src/cli/mcp-config-writers/earlier-name-restrictions.d.ts.map +1 -0
  309. package/dist/src/cli/mcp-config-writers/earlier-name-restrictions.js +152 -0
  310. package/dist/src/cli/mcp-config-writers/earlier-name-restrictions.js.map +1 -0
  311. package/dist/src/cli/mcp-config-writers/errors.d.ts +17 -0
  312. package/dist/src/cli/mcp-config-writers/errors.d.ts.map +1 -0
  313. package/dist/src/cli/mcp-config-writers/errors.js +13 -0
  314. package/dist/src/cli/mcp-config-writers/errors.js.map +1 -0
  315. package/dist/src/cli/mcp-config-writers/index.d.ts +28 -0
  316. package/dist/src/cli/mcp-config-writers/index.d.ts.map +1 -0
  317. package/dist/src/cli/mcp-config-writers/index.js +70 -0
  318. package/dist/src/cli/mcp-config-writers/index.js.map +1 -0
  319. package/dist/src/cli/mcp-config-writers/json-config.d.ts +20 -0
  320. package/dist/src/cli/mcp-config-writers/json-config.d.ts.map +1 -0
  321. package/dist/src/cli/mcp-config-writers/json-config.js +301 -0
  322. package/dist/src/cli/mcp-config-writers/json-config.js.map +1 -0
  323. package/dist/src/cli/mcp-config-writers/left-in-folder.d.ts +18 -0
  324. package/dist/src/cli/mcp-config-writers/left-in-folder.d.ts.map +1 -0
  325. package/dist/src/cli/mcp-config-writers/left-in-folder.js +140 -0
  326. package/dist/src/cli/mcp-config-writers/left-in-folder.js.map +1 -0
  327. package/dist/src/cli/mcp-config-writers/redact.d.ts +28 -0
  328. package/dist/src/cli/mcp-config-writers/redact.d.ts.map +1 -0
  329. package/dist/src/cli/mcp-config-writers/redact.js +48 -0
  330. package/dist/src/cli/mcp-config-writers/redact.js.map +1 -0
  331. package/dist/src/cli/mcp-config-writers/types.d.ts +46 -0
  332. package/dist/src/cli/mcp-config-writers/types.d.ts.map +1 -0
  333. package/dist/src/cli/mcp-config-writers/types.js +5 -0
  334. package/dist/src/cli/mcp-config-writers/types.js.map +1 -0
  335. package/dist/src/cli/output.d.ts +8 -0
  336. package/dist/src/cli/output.d.ts.map +1 -0
  337. package/dist/src/cli/output.js +34 -0
  338. package/dist/src/cli/output.js.map +1 -0
  339. package/dist/src/cli/postinstall-menubar.d.ts +38 -0
  340. package/dist/src/cli/postinstall-menubar.d.ts.map +1 -0
  341. package/dist/src/cli/postinstall-menubar.js +139 -0
  342. package/dist/src/cli/postinstall-menubar.js.map +1 -0
  343. package/dist/src/cli/status/friend-header.d.ts +61 -0
  344. package/dist/src/cli/status/friend-header.d.ts.map +1 -0
  345. package/dist/src/cli/status/friend-header.js +727 -0
  346. package/dist/src/cli/status/friend-header.js.map +1 -0
  347. package/dist/src/cli/status/local-signals.d.ts +89 -0
  348. package/dist/src/cli/status/local-signals.d.ts.map +1 -0
  349. package/dist/src/cli/status/local-signals.js +194 -0
  350. package/dist/src/cli/status/local-signals.js.map +1 -0
  351. package/dist/src/cli/token.d.ts +37 -0
  352. package/dist/src/cli/token.d.ts.map +1 -0
  353. package/dist/src/cli/token.js +105 -0
  354. package/dist/src/cli/token.js.map +1 -0
  355. package/dist/src/cli/ui.d.ts +47 -0
  356. package/dist/src/cli/ui.d.ts.map +1 -0
  357. package/dist/src/cli/ui.js +166 -0
  358. package/dist/src/cli/ui.js.map +1 -0
  359. package/dist/src/cli/uninstall/mcp-uninstall.d.ts +33 -0
  360. package/dist/src/cli/uninstall/mcp-uninstall.d.ts.map +1 -0
  361. package/dist/src/cli/uninstall/mcp-uninstall.js +116 -0
  362. package/dist/src/cli/uninstall/mcp-uninstall.js.map +1 -0
  363. package/dist/src/config/loader.d.ts +9 -0
  364. package/dist/src/config/loader.d.ts.map +1 -0
  365. package/dist/src/config/loader.js +73 -0
  366. package/dist/src/config/loader.js.map +1 -0
  367. package/dist/src/config/schema.d.ts +956 -0
  368. package/dist/src/config/schema.d.ts.map +1 -0
  369. package/dist/src/config/schema.js +339 -0
  370. package/dist/src/config/schema.js.map +1 -0
  371. package/dist/src/diagnostics/claude-preflight.d.ts +35 -0
  372. package/dist/src/diagnostics/claude-preflight.d.ts.map +1 -0
  373. package/dist/src/diagnostics/claude-preflight.js +90 -0
  374. package/dist/src/diagnostics/claude-preflight.js.map +1 -0
  375. package/dist/src/diagnostics/codex-preflight.d.ts +43 -0
  376. package/dist/src/diagnostics/codex-preflight.d.ts.map +1 -0
  377. package/dist/src/diagnostics/codex-preflight.js +128 -0
  378. package/dist/src/diagnostics/codex-preflight.js.map +1 -0
  379. package/dist/src/diagnostics/doctor.d.ts +125 -0
  380. package/dist/src/diagnostics/doctor.d.ts.map +1 -0
  381. package/dist/src/diagnostics/doctor.js +450 -0
  382. package/dist/src/diagnostics/doctor.js.map +1 -0
  383. package/dist/src/diagnostics/install-layout.d.ts +40 -0
  384. package/dist/src/diagnostics/install-layout.d.ts.map +1 -0
  385. package/dist/src/diagnostics/install-layout.js +55 -0
  386. package/dist/src/diagnostics/install-layout.js.map +1 -0
  387. package/dist/src/diagnostics/memory-coverage.d.ts +54 -0
  388. package/dist/src/diagnostics/memory-coverage.d.ts.map +1 -0
  389. package/dist/src/diagnostics/memory-coverage.js +272 -0
  390. package/dist/src/diagnostics/memory-coverage.js.map +1 -0
  391. package/dist/src/diagnostics/notify.d.ts +107 -0
  392. package/dist/src/diagnostics/notify.d.ts.map +1 -0
  393. package/dist/src/diagnostics/notify.js +217 -0
  394. package/dist/src/diagnostics/notify.js.map +1 -0
  395. package/dist/src/diagnostics/repair-prompt.d.ts +49 -0
  396. package/dist/src/diagnostics/repair-prompt.d.ts.map +1 -0
  397. package/dist/src/diagnostics/repair-prompt.js +223 -0
  398. package/dist/src/diagnostics/repair-prompt.js.map +1 -0
  399. package/dist/src/ingestion/bulk-ingest.d.ts +11 -0
  400. package/dist/src/ingestion/bulk-ingest.d.ts.map +1 -0
  401. package/dist/src/ingestion/bulk-ingest.js +11 -0
  402. package/dist/src/ingestion/bulk-ingest.js.map +1 -0
  403. package/dist/src/ingestion/chunk-meta.d.ts +85 -0
  404. package/dist/src/ingestion/chunk-meta.d.ts.map +1 -0
  405. package/dist/src/ingestion/chunk-meta.js +167 -0
  406. package/dist/src/ingestion/chunk-meta.js.map +1 -0
  407. package/dist/src/ingestion/chunk-text.d.ts +39 -0
  408. package/dist/src/ingestion/chunk-text.d.ts.map +1 -0
  409. package/dist/src/ingestion/chunk-text.js +114 -0
  410. package/dist/src/ingestion/chunk-text.js.map +1 -0
  411. package/dist/src/ingestion/cursor/cursor-store.d.ts +177 -0
  412. package/dist/src/ingestion/cursor/cursor-store.d.ts.map +1 -0
  413. package/dist/src/ingestion/cursor/cursor-store.js +242 -0
  414. package/dist/src/ingestion/cursor/cursor-store.js.map +1 -0
  415. package/dist/src/ingestion/cursor/enrich-roots.d.ts +16 -0
  416. package/dist/src/ingestion/cursor/enrich-roots.d.ts.map +1 -0
  417. package/dist/src/ingestion/cursor/enrich-roots.js +22 -0
  418. package/dist/src/ingestion/cursor/enrich-roots.js.map +1 -0
  419. package/dist/src/ingestion/cursor/vscdb-reader.d.ts +32 -0
  420. package/dist/src/ingestion/cursor/vscdb-reader.d.ts.map +1 -0
  421. package/dist/src/ingestion/cursor/vscdb-reader.js +113 -0
  422. package/dist/src/ingestion/cursor/vscdb-reader.js.map +1 -0
  423. package/dist/src/ingestion/cursor/workspace-root.d.ts +96 -0
  424. package/dist/src/ingestion/cursor/workspace-root.d.ts.map +1 -0
  425. package/dist/src/ingestion/cursor/workspace-root.js +187 -0
  426. package/dist/src/ingestion/cursor/workspace-root.js.map +1 -0
  427. package/dist/src/ingestion/extractor.d.ts +16 -0
  428. package/dist/src/ingestion/extractor.d.ts.map +1 -0
  429. package/dist/src/ingestion/extractor.js +85 -0
  430. package/dist/src/ingestion/extractor.js.map +1 -0
  431. package/dist/src/ingestion/extractors/docx.d.ts +3 -0
  432. package/dist/src/ingestion/extractors/docx.d.ts.map +1 -0
  433. package/dist/src/ingestion/extractors/docx.js +20 -0
  434. package/dist/src/ingestion/extractors/docx.js.map +1 -0
  435. package/dist/src/ingestion/extractors/pdf.d.ts +3 -0
  436. package/dist/src/ingestion/extractors/pdf.d.ts.map +1 -0
  437. package/dist/src/ingestion/extractors/pdf.js +32 -0
  438. package/dist/src/ingestion/extractors/pdf.js.map +1 -0
  439. package/dist/src/ingestion/historical-campaign.d.ts +340 -0
  440. package/dist/src/ingestion/historical-campaign.d.ts.map +1 -0
  441. package/dist/src/ingestion/historical-campaign.js +1010 -0
  442. package/dist/src/ingestion/historical-campaign.js.map +1 -0
  443. package/dist/src/ingestion/ignored-paths.d.ts +20 -0
  444. package/dist/src/ingestion/ignored-paths.d.ts.map +1 -0
  445. package/dist/src/ingestion/ignored-paths.js +45 -0
  446. package/dist/src/ingestion/ignored-paths.js.map +1 -0
  447. package/dist/src/ingestion/inbox-core/conversation-fingerprint.d.ts +2 -0
  448. package/dist/src/ingestion/inbox-core/conversation-fingerprint.d.ts.map +1 -0
  449. package/dist/src/ingestion/inbox-core/conversation-fingerprint.js +27 -0
  450. package/dist/src/ingestion/inbox-core/conversation-fingerprint.js.map +1 -0
  451. package/dist/src/ingestion/inbox-core/conversation-key.d.ts +2 -0
  452. package/dist/src/ingestion/inbox-core/conversation-key.d.ts.map +1 -0
  453. package/dist/src/ingestion/inbox-core/conversation-key.js +31 -0
  454. package/dist/src/ingestion/inbox-core/conversation-key.js.map +1 -0
  455. package/dist/src/ingestion/inbox-core/extensions.d.ts +3 -0
  456. package/dist/src/ingestion/inbox-core/extensions.d.ts.map +1 -0
  457. package/dist/src/ingestion/inbox-core/extensions.js +16 -0
  458. package/dist/src/ingestion/inbox-core/extensions.js.map +1 -0
  459. package/dist/src/ingestion/inbox-core/idempotency.d.ts +2 -0
  460. package/dist/src/ingestion/inbox-core/idempotency.d.ts.map +1 -0
  461. package/dist/src/ingestion/inbox-core/idempotency.js +22 -0
  462. package/dist/src/ingestion/inbox-core/idempotency.js.map +1 -0
  463. package/dist/src/ingestion/inbox-core/index.d.ts +20 -0
  464. package/dist/src/ingestion/inbox-core/index.d.ts.map +1 -0
  465. package/dist/src/ingestion/inbox-core/index.js +20 -0
  466. package/dist/src/ingestion/inbox-core/index.js.map +1 -0
  467. package/dist/src/ingestion/inbox-core/source-detection.d.ts +2 -0
  468. package/dist/src/ingestion/inbox-core/source-detection.d.ts.map +1 -0
  469. package/dist/src/ingestion/inbox-core/source-detection.js +23 -0
  470. package/dist/src/ingestion/inbox-core/source-detection.js.map +1 -0
  471. package/dist/src/ingestion/inbox-core/source-sniffer.d.ts +11 -0
  472. package/dist/src/ingestion/inbox-core/source-sniffer.d.ts.map +1 -0
  473. package/dist/src/ingestion/inbox-core/source-sniffer.js +69 -0
  474. package/dist/src/ingestion/inbox-core/source-sniffer.js.map +1 -0
  475. package/dist/src/ingestion/inbox-core/zip-sniffer.d.ts +70 -0
  476. package/dist/src/ingestion/inbox-core/zip-sniffer.d.ts.map +1 -0
  477. package/dist/src/ingestion/inbox-core/zip-sniffer.js +161 -0
  478. package/dist/src/ingestion/inbox-core/zip-sniffer.js.map +1 -0
  479. package/dist/src/ingestion/inbox-watcher.d.ts +12 -0
  480. package/dist/src/ingestion/inbox-watcher.d.ts.map +1 -0
  481. package/dist/src/ingestion/inbox-watcher.js +83 -0
  482. package/dist/src/ingestion/inbox-watcher.js.map +1 -0
  483. package/dist/src/ingestion/indexer.d.ts +39 -0
  484. package/dist/src/ingestion/indexer.d.ts.map +1 -0
  485. package/dist/src/ingestion/indexer.js +111 -0
  486. package/dist/src/ingestion/indexer.js.map +1 -0
  487. package/dist/src/ingestion/metadata-extraction.d.ts +56 -0
  488. package/dist/src/ingestion/metadata-extraction.d.ts.map +1 -0
  489. package/dist/src/ingestion/metadata-extraction.js +151 -0
  490. package/dist/src/ingestion/metadata-extraction.js.map +1 -0
  491. package/dist/src/ingestion/parsers/chatgpt-web.d.ts +29 -0
  492. package/dist/src/ingestion/parsers/chatgpt-web.d.ts.map +1 -0
  493. package/dist/src/ingestion/parsers/chatgpt-web.js +100 -0
  494. package/dist/src/ingestion/parsers/chatgpt-web.js.map +1 -0
  495. package/dist/src/ingestion/parsers/claude-code-jsonl.d.ts +26 -0
  496. package/dist/src/ingestion/parsers/claude-code-jsonl.d.ts.map +1 -0
  497. package/dist/src/ingestion/parsers/claude-code-jsonl.js +125 -0
  498. package/dist/src/ingestion/parsers/claude-code-jsonl.js.map +1 -0
  499. package/dist/src/ingestion/parsers/claude-desktop-sessions.d.ts +17 -0
  500. package/dist/src/ingestion/parsers/claude-desktop-sessions.d.ts.map +1 -0
  501. package/dist/src/ingestion/parsers/claude-desktop-sessions.js +112 -0
  502. package/dist/src/ingestion/parsers/claude-desktop-sessions.js.map +1 -0
  503. package/dist/src/ingestion/parsers/claude-web.d.ts +24 -0
  504. package/dist/src/ingestion/parsers/claude-web.d.ts.map +1 -0
  505. package/dist/src/ingestion/parsers/claude-web.js +75 -0
  506. package/dist/src/ingestion/parsers/claude-web.js.map +1 -0
  507. package/dist/src/ingestion/parsers/codex-jsonl.d.ts +18 -0
  508. package/dist/src/ingestion/parsers/codex-jsonl.d.ts.map +1 -0
  509. package/dist/src/ingestion/parsers/codex-jsonl.js +150 -0
  510. package/dist/src/ingestion/parsers/codex-jsonl.js.map +1 -0
  511. package/dist/src/ingestion/parsers/gemini-web.d.ts +16 -0
  512. package/dist/src/ingestion/parsers/gemini-web.d.ts.map +1 -0
  513. package/dist/src/ingestion/parsers/gemini-web.js +170 -0
  514. package/dist/src/ingestion/parsers/gemini-web.js.map +1 -0
  515. package/dist/src/ingestion/parsers/grok-cli.d.ts +19 -0
  516. package/dist/src/ingestion/parsers/grok-cli.d.ts.map +1 -0
  517. package/dist/src/ingestion/parsers/grok-cli.js +126 -0
  518. package/dist/src/ingestion/parsers/grok-cli.js.map +1 -0
  519. package/dist/src/ingestion/parsers/grok-web.d.ts +40 -0
  520. package/dist/src/ingestion/parsers/grok-web.d.ts.map +1 -0
  521. package/dist/src/ingestion/parsers/grok-web.js +67 -0
  522. package/dist/src/ingestion/parsers/grok-web.js.map +1 -0
  523. package/dist/src/ingestion/parsers/turns.d.ts +36 -0
  524. package/dist/src/ingestion/parsers/turns.d.ts.map +1 -0
  525. package/dist/src/ingestion/parsers/turns.js +25 -0
  526. package/dist/src/ingestion/parsers/turns.js.map +1 -0
  527. package/dist/src/ingestion/parsers/types.d.ts +47 -0
  528. package/dist/src/ingestion/parsers/types.d.ts.map +1 -0
  529. package/dist/src/ingestion/parsers/types.js +26 -0
  530. package/dist/src/ingestion/parsers/types.js.map +1 -0
  531. package/dist/src/ingestion/report-cards.d.ts +75 -0
  532. package/dist/src/ingestion/report-cards.d.ts.map +1 -0
  533. package/dist/src/ingestion/report-cards.js +224 -0
  534. package/dist/src/ingestion/report-cards.js.map +1 -0
  535. package/dist/src/ingestion/scanner.d.ts +48 -0
  536. package/dist/src/ingestion/scanner.d.ts.map +1 -0
  537. package/dist/src/ingestion/scanner.js +131 -0
  538. package/dist/src/ingestion/scanner.js.map +1 -0
  539. package/dist/src/ingestion/skip-quarantine.d.ts +10 -0
  540. package/dist/src/ingestion/skip-quarantine.d.ts.map +1 -0
  541. package/dist/src/ingestion/skip-quarantine.js +35 -0
  542. package/dist/src/ingestion/skip-quarantine.js.map +1 -0
  543. package/dist/src/ingestion/staging.d.ts +109 -0
  544. package/dist/src/ingestion/staging.d.ts.map +1 -0
  545. package/dist/src/ingestion/staging.js +411 -0
  546. package/dist/src/ingestion/staging.js.map +1 -0
  547. package/dist/src/ingestion/watcher.d.ts +65 -0
  548. package/dist/src/ingestion/watcher.d.ts.map +1 -0
  549. package/dist/src/ingestion/watcher.js +182 -0
  550. package/dist/src/ingestion/watcher.js.map +1 -0
  551. package/dist/src/jobs/codex-override-handler.d.ts +3 -0
  552. package/dist/src/jobs/codex-override-handler.d.ts.map +1 -0
  553. package/dist/src/jobs/codex-override-handler.js +16 -0
  554. package/dist/src/jobs/codex-override-handler.js.map +1 -0
  555. package/dist/src/jobs/handlers/compact.d.ts +30 -0
  556. package/dist/src/jobs/handlers/compact.d.ts.map +1 -0
  557. package/dist/src/jobs/handlers/compact.js +360 -0
  558. package/dist/src/jobs/handlers/compact.js.map +1 -0
  559. package/dist/src/jobs/handlers/dedupe-conversations.d.ts +134 -0
  560. package/dist/src/jobs/handlers/dedupe-conversations.d.ts.map +1 -0
  561. package/dist/src/jobs/handlers/dedupe-conversations.js +371 -0
  562. package/dist/src/jobs/handlers/dedupe-conversations.js.map +1 -0
  563. package/dist/src/jobs/handlers/ingest.d.ts +13 -0
  564. package/dist/src/jobs/handlers/ingest.d.ts.map +1 -0
  565. package/dist/src/jobs/handlers/ingest.js +557 -0
  566. package/dist/src/jobs/handlers/ingest.js.map +1 -0
  567. package/dist/src/jobs/handlers/optimize.d.ts +11 -0
  568. package/dist/src/jobs/handlers/optimize.d.ts.map +1 -0
  569. package/dist/src/jobs/handlers/optimize.js +12 -0
  570. package/dist/src/jobs/handlers/optimize.js.map +1 -0
  571. package/dist/src/jobs/handlers/reconcile.d.ts +57 -0
  572. package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -0
  573. package/dist/src/jobs/handlers/reconcile.js +685 -0
  574. package/dist/src/jobs/handlers/reconcile.js.map +1 -0
  575. package/dist/src/jobs/handlers/reindex.d.ts +38 -0
  576. package/dist/src/jobs/handlers/reindex.d.ts.map +1 -0
  577. package/dist/src/jobs/handlers/reindex.js +63 -0
  578. package/dist/src/jobs/handlers/reindex.js.map +1 -0
  579. package/dist/src/jobs/handlers/save.d.ts +10 -0
  580. package/dist/src/jobs/handlers/save.d.ts.map +1 -0
  581. package/dist/src/jobs/handlers/save.js +316 -0
  582. package/dist/src/jobs/handlers/save.js.map +1 -0
  583. package/dist/src/jobs/handlers/triage.d.ts +47 -0
  584. package/dist/src/jobs/handlers/triage.d.ts.map +1 -0
  585. package/dist/src/jobs/handlers/triage.js +95 -0
  586. package/dist/src/jobs/handlers/triage.js.map +1 -0
  587. package/dist/src/jobs/maintenance-scheduler.d.ts +30 -0
  588. package/dist/src/jobs/maintenance-scheduler.d.ts.map +1 -0
  589. package/dist/src/jobs/maintenance-scheduler.js +41 -0
  590. package/dist/src/jobs/maintenance-scheduler.js.map +1 -0
  591. package/dist/src/jobs/queue.d.ts +157 -0
  592. package/dist/src/jobs/queue.d.ts.map +1 -0
  593. package/dist/src/jobs/queue.js +759 -0
  594. package/dist/src/jobs/queue.js.map +1 -0
  595. package/dist/src/jobs/types.d.ts +53 -0
  596. package/dist/src/jobs/types.d.ts.map +1 -0
  597. package/dist/src/jobs/types.js +33 -0
  598. package/dist/src/jobs/types.js.map +1 -0
  599. package/dist/src/jobs/worker-entry.d.ts +10 -0
  600. package/dist/src/jobs/worker-entry.d.ts.map +1 -0
  601. package/dist/src/jobs/worker-entry.js +252 -0
  602. package/dist/src/jobs/worker-entry.js.map +1 -0
  603. package/dist/src/jobs/worker-process.d.ts +67 -0
  604. package/dist/src/jobs/worker-process.d.ts.map +1 -0
  605. package/dist/src/jobs/worker-process.js +227 -0
  606. package/dist/src/jobs/worker-process.js.map +1 -0
  607. package/dist/src/jobs/worker.d.ts +11 -0
  608. package/dist/src/jobs/worker.d.ts.map +1 -0
  609. package/dist/src/jobs/worker.js +14 -0
  610. package/dist/src/jobs/worker.js.map +1 -0
  611. package/dist/src/main.d.ts +2 -0
  612. package/dist/src/main.d.ts.map +1 -0
  613. package/dist/src/main.js +683 -0
  614. package/dist/src/main.js.map +1 -0
  615. package/dist/src/mcp/capture-diagnostics.d.ts +51 -0
  616. package/dist/src/mcp/capture-diagnostics.d.ts.map +1 -0
  617. package/dist/src/mcp/capture-diagnostics.js +127 -0
  618. package/dist/src/mcp/capture-diagnostics.js.map +1 -0
  619. package/dist/src/mcp/errors.d.ts +8 -0
  620. package/dist/src/mcp/errors.d.ts.map +1 -0
  621. package/dist/src/mcp/errors.js +69 -0
  622. package/dist/src/mcp/errors.js.map +1 -0
  623. package/dist/src/mcp/memory-diagnostics.d.ts +6 -0
  624. package/dist/src/mcp/memory-diagnostics.d.ts.map +1 -0
  625. package/dist/src/mcp/memory-diagnostics.js +51 -0
  626. package/dist/src/mcp/memory-diagnostics.js.map +1 -0
  627. package/dist/src/mcp/names.d.ts +48 -0
  628. package/dist/src/mcp/names.d.ts.map +1 -0
  629. package/dist/src/mcp/names.js +77 -0
  630. package/dist/src/mcp/names.js.map +1 -0
  631. package/dist/src/mcp/server.d.ts +19 -0
  632. package/dist/src/mcp/server.d.ts.map +1 -0
  633. package/dist/src/mcp/server.js +184 -0
  634. package/dist/src/mcp/server.js.map +1 -0
  635. package/dist/src/mcp/stdio.d.ts +2 -0
  636. package/dist/src/mcp/stdio.d.ts.map +1 -0
  637. package/dist/src/mcp/stdio.js +8 -0
  638. package/dist/src/mcp/stdio.js.map +1 -0
  639. package/dist/src/mcp/tools/context-pack.d.ts +35 -0
  640. package/dist/src/mcp/tools/context-pack.d.ts.map +1 -0
  641. package/dist/src/mcp/tools/context-pack.js +279 -0
  642. package/dist/src/mcp/tools/context-pack.js.map +1 -0
  643. package/dist/src/mcp/tools/conversations-search.d.ts +38 -0
  644. package/dist/src/mcp/tools/conversations-search.d.ts.map +1 -0
  645. package/dist/src/mcp/tools/conversations-search.js +79 -0
  646. package/dist/src/mcp/tools/conversations-search.js.map +1 -0
  647. package/dist/src/mcp/tools/evidence-feedback.d.ts +60 -0
  648. package/dist/src/mcp/tools/evidence-feedback.d.ts.map +1 -0
  649. package/dist/src/mcp/tools/evidence-feedback.js +62 -0
  650. package/dist/src/mcp/tools/evidence-feedback.js.map +1 -0
  651. package/dist/src/mcp/tools/log-outcome.d.ts +72 -0
  652. package/dist/src/mcp/tools/log-outcome.d.ts.map +1 -0
  653. package/dist/src/mcp/tools/log-outcome.js +59 -0
  654. package/dist/src/mcp/tools/log-outcome.js.map +1 -0
  655. package/dist/src/mcp/tools/open-evidence.d.ts +37 -0
  656. package/dist/src/mcp/tools/open-evidence.d.ts.map +1 -0
  657. package/dist/src/mcp/tools/open-evidence.js +72 -0
  658. package/dist/src/mcp/tools/open-evidence.js.map +1 -0
  659. package/dist/src/mcp/tools/save.d.ts +37 -0
  660. package/dist/src/mcp/tools/save.d.ts.map +1 -0
  661. package/dist/src/mcp/tools/save.js +65 -0
  662. package/dist/src/mcp/tools/save.js.map +1 -0
  663. package/dist/src/mcp/tools/search.d.ts +37 -0
  664. package/dist/src/mcp/tools/search.d.ts.map +1 -0
  665. package/dist/src/mcp/tools/search.js +95 -0
  666. package/dist/src/mcp/tools/search.js.map +1 -0
  667. package/dist/src/mcp/tools/status.d.ts +31 -0
  668. package/dist/src/mcp/tools/status.d.ts.map +1 -0
  669. package/dist/src/mcp/tools/status.js +63 -0
  670. package/dist/src/mcp/tools/status.js.map +1 -0
  671. package/dist/src/observability/coverage.d.ts +100 -0
  672. package/dist/src/observability/coverage.d.ts.map +1 -0
  673. package/dist/src/observability/coverage.js +178 -0
  674. package/dist/src/observability/coverage.js.map +1 -0
  675. package/dist/src/observability/embedding-events.d.ts +52 -0
  676. package/dist/src/observability/embedding-events.d.ts.map +1 -0
  677. package/dist/src/observability/embedding-events.js +149 -0
  678. package/dist/src/observability/embedding-events.js.map +1 -0
  679. package/dist/src/observability/index-events.d.ts +70 -0
  680. package/dist/src/observability/index-events.d.ts.map +1 -0
  681. package/dist/src/observability/index-events.js +148 -0
  682. package/dist/src/observability/index-events.js.map +1 -0
  683. package/dist/src/observability/onboarding-metric.d.ts +131 -0
  684. package/dist/src/observability/onboarding-metric.d.ts.map +1 -0
  685. package/dist/src/observability/onboarding-metric.js +352 -0
  686. package/dist/src/observability/onboarding-metric.js.map +1 -0
  687. package/dist/src/observability/retrieval-feedback.d.ts +82 -0
  688. package/dist/src/observability/retrieval-feedback.d.ts.map +1 -0
  689. package/dist/src/observability/retrieval-feedback.js +231 -0
  690. package/dist/src/observability/retrieval-feedback.js.map +1 -0
  691. package/dist/src/observability/rift-context.d.ts +53 -0
  692. package/dist/src/observability/rift-context.d.ts.map +1 -0
  693. package/dist/src/observability/rift-context.js +141 -0
  694. package/dist/src/observability/rift-context.js.map +1 -0
  695. package/dist/src/observability/staleness.d.ts +43 -0
  696. package/dist/src/observability/staleness.d.ts.map +1 -0
  697. package/dist/src/observability/staleness.js +74 -0
  698. package/dist/src/observability/staleness.js.map +1 -0
  699. package/dist/src/observability/tool-usage-stats.d.ts +139 -0
  700. package/dist/src/observability/tool-usage-stats.d.ts.map +1 -0
  701. package/dist/src/observability/tool-usage-stats.js +245 -0
  702. package/dist/src/observability/tool-usage-stats.js.map +1 -0
  703. package/dist/src/observability/tool-usage.d.ts +231 -0
  704. package/dist/src/observability/tool-usage.d.ts.map +1 -0
  705. package/dist/src/observability/tool-usage.js +489 -0
  706. package/dist/src/observability/tool-usage.js.map +1 -0
  707. package/dist/src/observability/version-check.d.ts +75 -0
  708. package/dist/src/observability/version-check.d.ts.map +1 -0
  709. package/dist/src/observability/version-check.js +198 -0
  710. package/dist/src/observability/version-check.js.map +1 -0
  711. package/dist/src/onboarding/capture-switch.d.ts +20 -0
  712. package/dist/src/onboarding/capture-switch.d.ts.map +1 -0
  713. package/dist/src/onboarding/capture-switch.js +52 -0
  714. package/dist/src/onboarding/capture-switch.js.map +1 -0
  715. package/dist/src/onboarding/daemon-control.d.ts +33 -0
  716. package/dist/src/onboarding/daemon-control.d.ts.map +1 -0
  717. package/dist/src/onboarding/daemon-control.js +92 -0
  718. package/dist/src/onboarding/daemon-control.js.map +1 -0
  719. package/dist/src/onboarding/env-file.d.ts +18 -0
  720. package/dist/src/onboarding/env-file.d.ts.map +1 -0
  721. package/dist/src/onboarding/env-file.js +89 -0
  722. package/dist/src/onboarding/env-file.js.map +1 -0
  723. package/dist/src/onboarding/search-by-meaning.d.ts +35 -0
  724. package/dist/src/onboarding/search-by-meaning.d.ts.map +1 -0
  725. package/dist/src/onboarding/search-by-meaning.js +163 -0
  726. package/dist/src/onboarding/search-by-meaning.js.map +1 -0
  727. package/dist/src/onboarding/setup-page.d.ts +7 -0
  728. package/dist/src/onboarding/setup-page.d.ts.map +1 -0
  729. package/dist/src/onboarding/setup-page.js +823 -0
  730. package/dist/src/onboarding/setup-page.js.map +1 -0
  731. package/dist/src/onboarding/setup-session.d.ts +22 -0
  732. package/dist/src/onboarding/setup-session.d.ts.map +1 -0
  733. package/dist/src/onboarding/setup-session.js +80 -0
  734. package/dist/src/onboarding/setup-session.js.map +1 -0
  735. package/dist/src/onboarding/setup-state.d.ts +117 -0
  736. package/dist/src/onboarding/setup-state.d.ts.map +1 -0
  737. package/dist/src/onboarding/setup-state.js +267 -0
  738. package/dist/src/onboarding/setup-state.js.map +1 -0
  739. package/dist/src/onboarding/voyage-validate.d.ts +22 -0
  740. package/dist/src/onboarding/voyage-validate.d.ts.map +1 -0
  741. package/dist/src/onboarding/voyage-validate.js +96 -0
  742. package/dist/src/onboarding/voyage-validate.js.map +1 -0
  743. package/dist/src/providers/anthropic-digest.d.ts +23 -0
  744. package/dist/src/providers/anthropic-digest.d.ts.map +1 -0
  745. package/dist/src/providers/anthropic-digest.js +91 -0
  746. package/dist/src/providers/anthropic-digest.js.map +1 -0
  747. package/dist/src/providers/basic-metadata-extraction.d.ts +60 -0
  748. package/dist/src/providers/basic-metadata-extraction.d.ts.map +1 -0
  749. package/dist/src/providers/basic-metadata-extraction.js +114 -0
  750. package/dist/src/providers/basic-metadata-extraction.js.map +1 -0
  751. package/dist/src/providers/claude-cli-metadata-extraction.d.ts +47 -0
  752. package/dist/src/providers/claude-cli-metadata-extraction.d.ts.map +1 -0
  753. package/dist/src/providers/claude-cli-metadata-extraction.js +130 -0
  754. package/dist/src/providers/claude-cli-metadata-extraction.js.map +1 -0
  755. package/dist/src/providers/claude-cli-runner.d.ts +92 -0
  756. package/dist/src/providers/claude-cli-runner.d.ts.map +1 -0
  757. package/dist/src/providers/claude-cli-runner.js +598 -0
  758. package/dist/src/providers/claude-cli-runner.js.map +1 -0
  759. package/dist/src/providers/claude-input-limit.d.ts +32 -0
  760. package/dist/src/providers/claude-input-limit.d.ts.map +1 -0
  761. package/dist/src/providers/claude-input-limit.js +32 -0
  762. package/dist/src/providers/claude-input-limit.js.map +1 -0
  763. package/dist/src/providers/codex-cli-digest.d.ts +12 -0
  764. package/dist/src/providers/codex-cli-digest.d.ts.map +1 -0
  765. package/dist/src/providers/codex-cli-digest.js +70 -0
  766. package/dist/src/providers/codex-cli-digest.js.map +1 -0
  767. package/dist/src/providers/codex-cli-metadata-extraction.d.ts +15 -0
  768. package/dist/src/providers/codex-cli-metadata-extraction.d.ts.map +1 -0
  769. package/dist/src/providers/codex-cli-metadata-extraction.js +78 -0
  770. package/dist/src/providers/codex-cli-metadata-extraction.js.map +1 -0
  771. package/dist/src/providers/codex-cli-model.d.ts +110 -0
  772. package/dist/src/providers/codex-cli-model.d.ts.map +1 -0
  773. package/dist/src/providers/codex-cli-model.js +338 -0
  774. package/dist/src/providers/codex-cli-model.js.map +1 -0
  775. package/dist/src/providers/codex-cli-runner.d.ts +70 -0
  776. package/dist/src/providers/codex-cli-runner.d.ts.map +1 -0
  777. package/dist/src/providers/codex-cli-runner.js +745 -0
  778. package/dist/src/providers/codex-cli-runner.js.map +1 -0
  779. package/dist/src/providers/codex-input-limit.d.ts +43 -0
  780. package/dist/src/providers/codex-input-limit.d.ts.map +1 -0
  781. package/dist/src/providers/codex-input-limit.js +70 -0
  782. package/dist/src/providers/codex-input-limit.js.map +1 -0
  783. package/dist/src/providers/conversation-generation.d.ts +21 -0
  784. package/dist/src/providers/conversation-generation.d.ts.map +1 -0
  785. package/dist/src/providers/conversation-generation.js +132 -0
  786. package/dist/src/providers/conversation-generation.js.map +1 -0
  787. package/dist/src/providers/ollama-embed.d.ts +23 -0
  788. package/dist/src/providers/ollama-embed.d.ts.map +1 -0
  789. package/dist/src/providers/ollama-embed.js +137 -0
  790. package/dist/src/providers/ollama-embed.js.map +1 -0
  791. package/dist/src/providers/ollama.d.ts +42 -0
  792. package/dist/src/providers/ollama.d.ts.map +1 -0
  793. package/dist/src/providers/ollama.js +169 -0
  794. package/dist/src/providers/ollama.js.map +1 -0
  795. package/dist/src/providers/openai-metadata-extraction.d.ts +120 -0
  796. package/dist/src/providers/openai-metadata-extraction.d.ts.map +1 -0
  797. package/dist/src/providers/openai-metadata-extraction.js +225 -0
  798. package/dist/src/providers/openai-metadata-extraction.js.map +1 -0
  799. package/dist/src/providers/operator-overrides.d.ts +24 -0
  800. package/dist/src/providers/operator-overrides.d.ts.map +1 -0
  801. package/dist/src/providers/operator-overrides.js +84 -0
  802. package/dist/src/providers/operator-overrides.js.map +1 -0
  803. package/dist/src/providers/placeholder-embed.d.ts +56 -0
  804. package/dist/src/providers/placeholder-embed.d.ts.map +1 -0
  805. package/dist/src/providers/placeholder-embed.js +64 -0
  806. package/dist/src/providers/placeholder-embed.js.map +1 -0
  807. package/dist/src/providers/shared-request.d.ts +22 -0
  808. package/dist/src/providers/shared-request.d.ts.map +1 -0
  809. package/dist/src/providers/shared-request.js +63 -0
  810. package/dist/src/providers/shared-request.js.map +1 -0
  811. package/dist/src/providers/stub.d.ts +19 -0
  812. package/dist/src/providers/stub.d.ts.map +1 -0
  813. package/dist/src/providers/stub.js +74 -0
  814. package/dist/src/providers/stub.js.map +1 -0
  815. package/dist/src/providers/types.d.ts +100 -0
  816. package/dist/src/providers/types.d.ts.map +1 -0
  817. package/dist/src/providers/types.js +63 -0
  818. package/dist/src/providers/types.js.map +1 -0
  819. package/dist/src/providers/voyage.d.ts +55 -0
  820. package/dist/src/providers/voyage.d.ts.map +1 -0
  821. package/dist/src/providers/voyage.js +179 -0
  822. package/dist/src/providers/voyage.js.map +1 -0
  823. package/dist/src/retrieval/brief.d.ts +26 -0
  824. package/dist/src/retrieval/brief.d.ts.map +1 -0
  825. package/dist/src/retrieval/brief.js +268 -0
  826. package/dist/src/retrieval/brief.js.map +1 -0
  827. package/dist/src/retrieval/canonical-files.d.ts +79 -0
  828. package/dist/src/retrieval/canonical-files.d.ts.map +1 -0
  829. package/dist/src/retrieval/canonical-files.js +432 -0
  830. package/dist/src/retrieval/canonical-files.js.map +1 -0
  831. package/dist/src/retrieval/compact.d.ts +306 -0
  832. package/dist/src/retrieval/compact.d.ts.map +1 -0
  833. package/dist/src/retrieval/compact.js +810 -0
  834. package/dist/src/retrieval/compact.js.map +1 -0
  835. package/dist/src/retrieval/context-pack.d.ts +344 -0
  836. package/dist/src/retrieval/context-pack.d.ts.map +1 -0
  837. package/dist/src/retrieval/context-pack.js +1483 -0
  838. package/dist/src/retrieval/context-pack.js.map +1 -0
  839. package/dist/src/retrieval/conversation-dedup.d.ts +54 -0
  840. package/dist/src/retrieval/conversation-dedup.d.ts.map +1 -0
  841. package/dist/src/retrieval/conversation-dedup.js +162 -0
  842. package/dist/src/retrieval/conversation-dedup.js.map +1 -0
  843. package/dist/src/retrieval/current-truth.d.ts +360 -0
  844. package/dist/src/retrieval/current-truth.d.ts.map +1 -0
  845. package/dist/src/retrieval/current-truth.js +766 -0
  846. package/dist/src/retrieval/current-truth.js.map +1 -0
  847. package/dist/src/retrieval/cwd.d.ts +25 -0
  848. package/dist/src/retrieval/cwd.d.ts.map +1 -0
  849. package/dist/src/retrieval/cwd.js +48 -0
  850. package/dist/src/retrieval/cwd.js.map +1 -0
  851. package/dist/src/retrieval/degraded.d.ts +20 -0
  852. package/dist/src/retrieval/degraded.d.ts.map +1 -0
  853. package/dist/src/retrieval/degraded.js +43 -0
  854. package/dist/src/retrieval/degraded.js.map +1 -0
  855. package/dist/src/retrieval/evidence-key.d.ts +48 -0
  856. package/dist/src/retrieval/evidence-key.d.ts.map +1 -0
  857. package/dist/src/retrieval/evidence-key.js +131 -0
  858. package/dist/src/retrieval/evidence-key.js.map +1 -0
  859. package/dist/src/retrieval/feedback-ranking.d.ts +49 -0
  860. package/dist/src/retrieval/feedback-ranking.d.ts.map +1 -0
  861. package/dist/src/retrieval/feedback-ranking.js +138 -0
  862. package/dist/src/retrieval/feedback-ranking.js.map +1 -0
  863. package/dist/src/retrieval/git-state.d.ts +62 -0
  864. package/dist/src/retrieval/git-state.d.ts.map +1 -0
  865. package/dist/src/retrieval/git-state.js +192 -0
  866. package/dist/src/retrieval/git-state.js.map +1 -0
  867. package/dist/src/retrieval/group-by-parent.d.ts +38 -0
  868. package/dist/src/retrieval/group-by-parent.d.ts.map +1 -0
  869. package/dist/src/retrieval/group-by-parent.js +40 -0
  870. package/dist/src/retrieval/group-by-parent.js.map +1 -0
  871. package/dist/src/retrieval/hybrid.d.ts +75 -0
  872. package/dist/src/retrieval/hybrid.d.ts.map +1 -0
  873. package/dist/src/retrieval/hybrid.js +151 -0
  874. package/dist/src/retrieval/hybrid.js.map +1 -0
  875. package/dist/src/retrieval/lexical.d.ts +33 -0
  876. package/dist/src/retrieval/lexical.d.ts.map +1 -0
  877. package/dist/src/retrieval/lexical.js +379 -0
  878. package/dist/src/retrieval/lexical.js.map +1 -0
  879. package/dist/src/retrieval/locator-boost.d.ts +37 -0
  880. package/dist/src/retrieval/locator-boost.d.ts.map +1 -0
  881. package/dist/src/retrieval/locator-boost.js +129 -0
  882. package/dist/src/retrieval/locator-boost.js.map +1 -0
  883. package/dist/src/retrieval/passages.d.ts +24 -0
  884. package/dist/src/retrieval/passages.d.ts.map +1 -0
  885. package/dist/src/retrieval/passages.js +160 -0
  886. package/dist/src/retrieval/passages.js.map +1 -0
  887. package/dist/src/retrieval/post-filter.d.ts +32 -0
  888. package/dist/src/retrieval/post-filter.d.ts.map +1 -0
  889. package/dist/src/retrieval/post-filter.js +57 -0
  890. package/dist/src/retrieval/post-filter.js.map +1 -0
  891. package/dist/src/retrieval/project-index.d.ts +71 -0
  892. package/dist/src/retrieval/project-index.d.ts.map +1 -0
  893. package/dist/src/retrieval/project-index.js +348 -0
  894. package/dist/src/retrieval/project-index.js.map +1 -0
  895. package/dist/src/retrieval/recall-hint.d.ts +22 -0
  896. package/dist/src/retrieval/recall-hint.d.ts.map +1 -0
  897. package/dist/src/retrieval/recall-hint.js +33 -0
  898. package/dist/src/retrieval/recall-hint.js.map +1 -0
  899. package/dist/src/retrieval/receipt.d.ts +57 -0
  900. package/dist/src/retrieval/receipt.d.ts.map +1 -0
  901. package/dist/src/retrieval/receipt.js +122 -0
  902. package/dist/src/retrieval/receipt.js.map +1 -0
  903. package/dist/src/retrieval/report-demotion.d.ts +46 -0
  904. package/dist/src/retrieval/report-demotion.d.ts.map +1 -0
  905. package/dist/src/retrieval/report-demotion.js +169 -0
  906. package/dist/src/retrieval/report-demotion.js.map +1 -0
  907. package/dist/src/retrieval/reranker.d.ts +119 -0
  908. package/dist/src/retrieval/reranker.d.ts.map +1 -0
  909. package/dist/src/retrieval/reranker.js +220 -0
  910. package/dist/src/retrieval/reranker.js.map +1 -0
  911. package/dist/src/retrieval/stitch-chunks.d.ts +76 -0
  912. package/dist/src/retrieval/stitch-chunks.d.ts.map +1 -0
  913. package/dist/src/retrieval/stitch-chunks.js +113 -0
  914. package/dist/src/retrieval/stitch-chunks.js.map +1 -0
  915. package/dist/src/retrieval/vector.d.ts +71 -0
  916. package/dist/src/retrieval/vector.d.ts.map +1 -0
  917. package/dist/src/retrieval/vector.js +147 -0
  918. package/dist/src/retrieval/vector.js.map +1 -0
  919. package/dist/src/runtime/legacy-migration.d.ts +27 -0
  920. package/dist/src/runtime/legacy-migration.d.ts.map +1 -0
  921. package/dist/src/runtime/legacy-migration.js +140 -0
  922. package/dist/src/runtime/legacy-migration.js.map +1 -0
  923. package/dist/src/runtime/legacy-name-guard.d.ts +35 -0
  924. package/dist/src/runtime/legacy-name-guard.d.ts.map +1 -0
  925. package/dist/src/runtime/legacy-name-guard.js +58 -0
  926. package/dist/src/runtime/legacy-name-guard.js.map +1 -0
  927. package/dist/src/runtime/rift-env.d.ts +14 -0
  928. package/dist/src/runtime/rift-env.d.ts.map +1 -0
  929. package/dist/src/runtime/rift-env.js +79 -0
  930. package/dist/src/runtime/rift-env.js.map +1 -0
  931. package/dist/src/runtime/voyage-key-source.d.ts +46 -0
  932. package/dist/src/runtime/voyage-key-source.d.ts.map +1 -0
  933. package/dist/src/runtime/voyage-key-source.js +97 -0
  934. package/dist/src/runtime/voyage-key-source.js.map +1 -0
  935. package/dist/src/runtime/watcher-startup.d.ts +2 -0
  936. package/dist/src/runtime/watcher-startup.d.ts.map +1 -0
  937. package/dist/src/runtime/watcher-startup.js +4 -0
  938. package/dist/src/runtime/watcher-startup.js.map +1 -0
  939. package/dist/src/security/archive.d.ts +23 -0
  940. package/dist/src/security/archive.d.ts.map +1 -0
  941. package/dist/src/security/archive.js +163 -0
  942. package/dist/src/security/archive.js.map +1 -0
  943. package/dist/src/security/paths.d.ts +21 -0
  944. package/dist/src/security/paths.d.ts.map +1 -0
  945. package/dist/src/security/paths.js +67 -0
  946. package/dist/src/security/paths.js.map +1 -0
  947. package/dist/src/server/app.d.ts +29 -0
  948. package/dist/src/server/app.d.ts.map +1 -0
  949. package/dist/src/server/app.js +356 -0
  950. package/dist/src/server/app.js.map +1 -0
  951. package/dist/src/server/build-info.d.ts +8 -0
  952. package/dist/src/server/build-info.d.ts.map +1 -0
  953. package/dist/src/server/build-info.js +61 -0
  954. package/dist/src/server/build-info.js.map +1 -0
  955. package/dist/src/server/lifecycle.d.ts +30 -0
  956. package/dist/src/server/lifecycle.d.ts.map +1 -0
  957. package/dist/src/server/lifecycle.js +59 -0
  958. package/dist/src/server/lifecycle.js.map +1 -0
  959. package/dist/src/server/middleware/multipart.d.ts +51 -0
  960. package/dist/src/server/middleware/multipart.d.ts.map +1 -0
  961. package/dist/src/server/middleware/multipart.js +86 -0
  962. package/dist/src/server/middleware/multipart.js.map +1 -0
  963. package/dist/src/server/routes/compact.d.ts +37 -0
  964. package/dist/src/server/routes/compact.d.ts.map +1 -0
  965. package/dist/src/server/routes/compact.js +80 -0
  966. package/dist/src/server/routes/compact.js.map +1 -0
  967. package/dist/src/server/routes/context.d.ts +12 -0
  968. package/dist/src/server/routes/context.d.ts.map +1 -0
  969. package/dist/src/server/routes/context.js +73 -0
  970. package/dist/src/server/routes/context.js.map +1 -0
  971. package/dist/src/server/routes/conversations-search.d.ts +4 -0
  972. package/dist/src/server/routes/conversations-search.d.ts.map +1 -0
  973. package/dist/src/server/routes/conversations-search.js +287 -0
  974. package/dist/src/server/routes/conversations-search.js.map +1 -0
  975. package/dist/src/server/routes/enqueue.d.ts +11 -0
  976. package/dist/src/server/routes/enqueue.d.ts.map +1 -0
  977. package/dist/src/server/routes/enqueue.js +17 -0
  978. package/dist/src/server/routes/enqueue.js.map +1 -0
  979. package/dist/src/server/routes/friend-status.d.ts +481 -0
  980. package/dist/src/server/routes/friend-status.d.ts.map +1 -0
  981. package/dist/src/server/routes/friend-status.js +675 -0
  982. package/dist/src/server/routes/friend-status.js.map +1 -0
  983. package/dist/src/server/routes/ingest.d.ts +15 -0
  984. package/dist/src/server/routes/ingest.d.ts.map +1 -0
  985. package/dist/src/server/routes/ingest.js +142 -0
  986. package/dist/src/server/routes/ingest.js.map +1 -0
  987. package/dist/src/server/routes/jobs.d.ts +10 -0
  988. package/dist/src/server/routes/jobs.d.ts.map +1 -0
  989. package/dist/src/server/routes/jobs.js +29 -0
  990. package/dist/src/server/routes/jobs.js.map +1 -0
  991. package/dist/src/server/routes/mcp-usage.d.ts +17 -0
  992. package/dist/src/server/routes/mcp-usage.d.ts.map +1 -0
  993. package/dist/src/server/routes/mcp-usage.js +17 -0
  994. package/dist/src/server/routes/mcp-usage.js.map +1 -0
  995. package/dist/src/server/routes/reconcile.d.ts +4 -0
  996. package/dist/src/server/routes/reconcile.d.ts.map +1 -0
  997. package/dist/src/server/routes/reconcile.js +62 -0
  998. package/dist/src/server/routes/reconcile.js.map +1 -0
  999. package/dist/src/server/routes/reindex.d.ts +4 -0
  1000. package/dist/src/server/routes/reindex.d.ts.map +1 -0
  1001. package/dist/src/server/routes/reindex.js +77 -0
  1002. package/dist/src/server/routes/reindex.js.map +1 -0
  1003. package/dist/src/server/routes/retrieval-feedback.d.ts +3 -0
  1004. package/dist/src/server/routes/retrieval-feedback.d.ts.map +1 -0
  1005. package/dist/src/server/routes/retrieval-feedback.js +290 -0
  1006. package/dist/src/server/routes/retrieval-feedback.js.map +1 -0
  1007. package/dist/src/server/routes/save.d.ts +52 -0
  1008. package/dist/src/server/routes/save.d.ts.map +1 -0
  1009. package/dist/src/server/routes/save.js +127 -0
  1010. package/dist/src/server/routes/save.js.map +1 -0
  1011. package/dist/src/server/routes/search.d.ts +5 -0
  1012. package/dist/src/server/routes/search.d.ts.map +1 -0
  1013. package/dist/src/server/routes/search.js +689 -0
  1014. package/dist/src/server/routes/search.js.map +1 -0
  1015. package/dist/src/server/routes/setup.d.ts +46 -0
  1016. package/dist/src/server/routes/setup.d.ts.map +1 -0
  1017. package/dist/src/server/routes/setup.js +322 -0
  1018. package/dist/src/server/routes/setup.js.map +1 -0
  1019. package/dist/src/server/routes/stats.d.ts +10 -0
  1020. package/dist/src/server/routes/stats.d.ts.map +1 -0
  1021. package/dist/src/server/routes/stats.js +15 -0
  1022. package/dist/src/server/routes/stats.js.map +1 -0
  1023. package/dist/src/server/routes/status.d.ts +20 -0
  1024. package/dist/src/server/routes/status.d.ts.map +1 -0
  1025. package/dist/src/server/routes/status.js +31 -0
  1026. package/dist/src/server/routes/status.js.map +1 -0
  1027. package/dist/src/server/routes/triage.d.ts +4 -0
  1028. package/dist/src/server/routes/triage.d.ts.map +1 -0
  1029. package/dist/src/server/routes/triage.js +97 -0
  1030. package/dist/src/server/routes/triage.js.map +1 -0
  1031. package/dist/src/server/save-quality.d.ts +21 -0
  1032. package/dist/src/server/save-quality.d.ts.map +1 -0
  1033. package/dist/src/server/save-quality.js +51 -0
  1034. package/dist/src/server/save-quality.js.map +1 -0
  1035. package/dist/src/server/serving-marker.d.ts +85 -0
  1036. package/dist/src/server/serving-marker.d.ts.map +1 -0
  1037. package/dist/src/server/serving-marker.js +226 -0
  1038. package/dist/src/server/serving-marker.js.map +1 -0
  1039. package/dist/src/storage/atomic.d.ts +8 -0
  1040. package/dist/src/storage/atomic.d.ts.map +1 -0
  1041. package/dist/src/storage/atomic.js +22 -0
  1042. package/dist/src/storage/atomic.js.map +1 -0
  1043. package/dist/src/storage/chunk-backfill.d.ts +39 -0
  1044. package/dist/src/storage/chunk-backfill.d.ts.map +1 -0
  1045. package/dist/src/storage/chunk-backfill.js +295 -0
  1046. package/dist/src/storage/chunk-backfill.js.map +1 -0
  1047. package/dist/src/storage/db.d.ts +15 -0
  1048. package/dist/src/storage/db.d.ts.map +1 -0
  1049. package/dist/src/storage/db.js +47 -0
  1050. package/dist/src/storage/db.js.map +1 -0
  1051. package/dist/src/storage/filter.d.ts +42 -0
  1052. package/dist/src/storage/filter.d.ts.map +1 -0
  1053. package/dist/src/storage/filter.js +70 -0
  1054. package/dist/src/storage/filter.js.map +1 -0
  1055. package/dist/src/storage/fts.d.ts +47 -0
  1056. package/dist/src/storage/fts.d.ts.map +1 -0
  1057. package/dist/src/storage/fts.js +86 -0
  1058. package/dist/src/storage/fts.js.map +1 -0
  1059. package/dist/src/storage/integrity.d.ts +11 -0
  1060. package/dist/src/storage/integrity.d.ts.map +1 -0
  1061. package/dist/src/storage/integrity.js +66 -0
  1062. package/dist/src/storage/integrity.js.map +1 -0
  1063. package/dist/src/storage/maintenance.d.ts +27 -0
  1064. package/dist/src/storage/maintenance.d.ts.map +1 -0
  1065. package/dist/src/storage/maintenance.js +66 -0
  1066. package/dist/src/storage/maintenance.js.map +1 -0
  1067. package/dist/src/storage/rebuild.d.ts +71 -0
  1068. package/dist/src/storage/rebuild.d.ts.map +1 -0
  1069. package/dist/src/storage/rebuild.js +605 -0
  1070. package/dist/src/storage/rebuild.js.map +1 -0
  1071. package/dist/src/storage/report-card-backfill.d.ts +20 -0
  1072. package/dist/src/storage/report-card-backfill.d.ts.map +1 -0
  1073. package/dist/src/storage/report-card-backfill.js +114 -0
  1074. package/dist/src/storage/report-card-backfill.js.map +1 -0
  1075. package/dist/src/storage/shadow-swap.d.ts +20 -0
  1076. package/dist/src/storage/shadow-swap.d.ts.map +1 -0
  1077. package/dist/src/storage/shadow-swap.js +163 -0
  1078. package/dist/src/storage/shadow-swap.js.map +1 -0
  1079. package/dist/src/storage/tables.d.ts +147 -0
  1080. package/dist/src/storage/tables.d.ts.map +1 -0
  1081. package/dist/src/storage/tables.js +290 -0
  1082. package/dist/src/storage/tables.js.map +1 -0
  1083. package/operator/swiftbar/render-menu.py +475 -0
  1084. package/operator/swiftbar/rift.10s.sh +201 -0
  1085. package/package.json +57 -3
@@ -0,0 +1,727 @@
1
+ import { formatOnboardingDuration } from "../../observability/onboarding-metric.js";
2
+ import { REINSTALL_COMMAND, RIFT_DOWNLOAD_URL } from "../../diagnostics/install-layout.js";
3
+ import { renamePreviousToolNames } from "../../mcp/names.js";
4
+ export function renderFriendHeader(input) {
5
+ const { status } = input;
6
+ const now = input.now ? input.now() : Date.now();
7
+ const lines = [];
8
+ if (!status) {
9
+ lines.push("Onadit · daemon: unreachable");
10
+ lines.push("Next: run: launchctl kickstart -k gui/$UID/com.getrift.daemon");
11
+ return lines;
12
+ }
13
+ // Derive when the current daemon process started so we can tell
14
+ // "happened during this uptime" from "historical error from a prior
15
+ // run." Without this, a 20h-old schema_mismatch keeps advertising
16
+ // "broken" in the Next: line for a full 24h after a perfectly
17
+ // healthy respawn.
18
+ const daemonStartMs = now - status.daemon.uptime_seconds * 1000;
19
+ // 1. version + daemon
20
+ lines.push(`Onadit v${status.build.version} · daemon: running (uptime ${formatDuration(status.daemon.uptime_seconds)}) · port ${status.daemon.port}${status.daemon.voyage_key_present ? " ✓" : status.daemon.capture_enabled ? " ✗" : ""}`);
21
+ // 2. voyage
22
+ lines.push(renderVoyageLine(input, now));
23
+ // 3. index — distinct from voyage: an embed can succeed but the
24
+ // downstream LanceDB write can still fail (schema, lock, IO).
25
+ // Without this line the user has no signal that "embedded" does not
26
+ // imply "searchable yet".
27
+ lines.push(renderIndexLine(status.index, now));
28
+ // 4. inbox — surfaces drop-folder freshness. Distinct from index:
29
+ // a watcher-fed write can succeed at the index lane without ever
30
+ // having processed an inbox file. This line is the user-visible
31
+ // confirmation that the inbox path itself is wired up and current.
32
+ lines.push(renderInboxLine(status.inbox, now));
33
+ const memoryLine = renderMemoryLine(status);
34
+ if (memoryLine)
35
+ lines.push(memoryLine);
36
+ // 5. codex
37
+ lines.push(renderCodexLine(status.codex, now));
38
+ const modelSwitchLine = renderCodexModelSwitchLine(status.codex, now);
39
+ if (modelSwitchLine)
40
+ lines.push(modelSwitchLine);
41
+ // 6. capture — when the daemon's own scheduled loop is failing but a
42
+ // manual run is working, split into "what works now" (the manual run)
43
+ // plus an honest "Automatic:" advisory, so a manual success never
44
+ // paints the scheduled loop green. Collapses back to one line once the
45
+ // daemon records a healthy run.
46
+ const daemonCaptureStale = isDaemonCaptureStale(status.capture, daemonStartMs);
47
+ lines.push(renderCaptureLine(status, now, daemonCaptureStale));
48
+ const automaticCaptureLine = renderAutomaticCaptureLine(status.capture, now, daemonCaptureStale);
49
+ if (automaticCaptureLine)
50
+ lines.push(automaticCaptureLine);
51
+ const cursorLine = renderCursorLine(status.capture);
52
+ if (cursorLine)
53
+ lines.push(cursorLine);
54
+ const coworkLine = renderCoworkLine(status.capture);
55
+ if (coworkLine)
56
+ lines.push(coworkLine);
57
+ if (status.capture.grok_cli) {
58
+ lines.push(status.capture.grok_cli.scheduled
59
+ ? "Grok CLI: opt-in capture on — existing and new local CLI sessions are eligible"
60
+ : "Grok CLI: opt-in — run onadit onboard --enable-grok-capture (existing and new local CLI sessions)");
61
+ }
62
+ // 6b. local AI apps — honest source-coverage boundary. Onadit auto-captures the
63
+ // CLI agents (Claude Code, Codex CLI); the desktop/web chat apps keep
64
+ // their history server-side, so those chats need export → onadit import.
65
+ // Shown ONLY when such an app is actually installed, so the line targets
66
+ // the users who would otherwise assume "auto-capture" covers everything.
67
+ const localAiAppsLine = renderLocalAiAppsLine(input.localAiApps);
68
+ if (localAiAppsLine)
69
+ lines.push(localAiAppsLine);
70
+ // 7. MCP
71
+ lines.push(renderMcpLine(input.mcpClients));
72
+ // 7b. menu bar — only when probed (macOS) AND SwiftBar is absent. The plugin
73
+ // is installed but the app that draws the icon is missing, so `status`
74
+ // surfaces the same "menu can't show" warning `doctor` does instead of
75
+ // leaving a silently-missing icon undiagnosed. Installed/unprobed stays
76
+ // quiet so a healthy install never grows a noise line.
77
+ const swiftBarLine = renderSwiftBarLine(input.swiftBar);
78
+ if (swiftBarLine)
79
+ lines.push(swiftBarLine);
80
+ // 8. feedback
81
+ lines.push(`Feedback: ${renderFeedbackLine(status.feedback)}`);
82
+ // 9. update — surfaced only when the daemon's last probe found a
83
+ // newer beta. Probe failures and up-to-date installs print nothing
84
+ // so npm reachability cannot make Onadit look broken.
85
+ const updateLine = renderUpdateLine(status.update);
86
+ if (updateLine)
87
+ lines.push(updateLine);
88
+ // 10. onboarding — `time_to_first_useful_recall`. Hidden state prints
89
+ // nothing so a fresh post-onboard install never shows a stale
90
+ // placeholder. Pending shows the in-flight wait; completed shows
91
+ // the captured duration + the MCP tool that closed it.
92
+ const onboardingLine = renderOnboardingLine(status.onboarding, now);
93
+ if (onboardingLine)
94
+ lines.push(onboardingLine);
95
+ lines.push("");
96
+ lines.push(`Next: ${decideNextLine({ status, mcpClients: input.mcpClients, daemonStartMs })}`);
97
+ return lines;
98
+ }
99
+ /**
100
+ * True only when `iso` parses to a timestamp after the daemon's current
101
+ * start. Historical errors that predate the running process are not
102
+ * current and must not drive the Next: nudge — a friend with a healthy
103
+ * respawned daemon would otherwise see "broken, file feedback" for the
104
+ * full 24h window every error class keeps.
105
+ */
106
+ function isCurrentUptime(iso, daemonStartMs) {
107
+ if (!iso)
108
+ return false;
109
+ const ts = Date.parse(iso);
110
+ if (Number.isNaN(ts))
111
+ return false;
112
+ return ts >= daemonStartMs;
113
+ }
114
+ /**
115
+ * Translate internal error class names into copy a friend can act on.
116
+ * Falls back to the raw class so new/unknown values still surface
117
+ * (better an unfamiliar word than a missing one).
118
+ */
119
+ function humanizeErrorClass(reason) {
120
+ if (!reason)
121
+ return "unknown";
122
+ switch (reason) {
123
+ case "schema_mismatch":
124
+ return "index format changed by update";
125
+ case "lock_conflict":
126
+ return "index busy (concurrent write)";
127
+ case "provider_400":
128
+ return "embedding rejected by Voyage";
129
+ case "network":
130
+ return "network error";
131
+ default:
132
+ return reason;
133
+ }
134
+ }
135
+ function renderFeedbackLine(feedback) {
136
+ if (feedback.relay_enabled) {
137
+ return "relay on (local JSONL + Clem-side relay)";
138
+ }
139
+ if (feedback.contact_opted_in) {
140
+ // Opted in for updates, but no relay endpoint is wired yet — be honest
141
+ // that nothing is transmitting, without telling them to "opt in" again.
142
+ return "opted in — stays local until the feedback relay is live";
143
+ }
144
+ return "relay off (local JSONL only) — opt in via onadit onboard";
145
+ }
146
+ function renderUpdateLine(update) {
147
+ if (!update.available)
148
+ return null;
149
+ if (!update.latest_beta)
150
+ return null;
151
+ return `Update: available ${update.installed} → ${update.latest_beta} — ${updateAction(update)}`;
152
+ }
153
+ /**
154
+ * The action to upgrade, chosen by install layout. A packaged (.pkg) install
155
+ * can't self-update (`onadit update` refuses it), so it gets the .pkg download;
156
+ * only an explicit `false` flips it, so an older daemon that predates the flag
157
+ * (`undefined`) keeps the historical `onadit update` advice. Shared by the
158
+ * Update line and the "what to do next" summary so they never disagree.
159
+ */
160
+ function updateAction(update) {
161
+ if (update.reinstall_needed)
162
+ return `run the installer again: ${REINSTALL_COMMAND}`;
163
+ return update.self_update_supported === false
164
+ ? `download the latest .pkg: ${RIFT_DOWNLOAD_URL}`
165
+ : "run: onadit update";
166
+ }
167
+ function renderVoyageLine(input, now) {
168
+ const { status, voyageLast4 } = input;
169
+ if (!status)
170
+ return "Voyage: unknown";
171
+ if (!status.daemon.voyage_key_present) {
172
+ // No key is an intentional local mode, not a fault: keyword (lexical)
173
+ // search is fully on; only semantic search is off. We only nudge toward a
174
+ // Voyage key when a feature that actually needs one (auto-capture) is
175
+ // enabled — otherwise the line must read as "working as configured."
176
+ return status.daemon.capture_enabled
177
+ ? "Search: keyword on, semantic off — auto-capture needs a Voyage key: onadit onboard --reconfigure-voyage"
178
+ : "Search: keyword on · semantic off (no Voyage key — local mode)";
179
+ }
180
+ const last4 = voyageLast4 ? `last 4 …${voyageLast4}` : "key valid";
181
+ const labelSuffix = status.voyage.project_label
182
+ ? ` · label ${status.voyage.project_label}`
183
+ : "";
184
+ const embedSuffix = status.voyage.last_embed_at
185
+ ? `, last embed ${formatAge(status.voyage.last_embed_at, now)}`
186
+ : "";
187
+ const errorSuffix = status.voyage.last_error_at
188
+ ? ` · last error ${formatAge(status.voyage.last_error_at, now)} (${status.voyage.last_error_reason ?? "unknown"})`
189
+ : "";
190
+ return `Voyage: key valid (${last4}${embedSuffix})${labelSuffix}${errorSuffix}`;
191
+ }
192
+ function renderIndexLine(index, now) {
193
+ if (index.last_update_at === null && index.last_error_at === null) {
194
+ return "Index: no writes yet";
195
+ }
196
+ const updateSuffix = index.last_update_at
197
+ ? `last update ${formatAge(index.last_update_at, now)}`
198
+ : "no writes yet";
199
+ const errorSuffix = index.last_error_at
200
+ ? ` · last error ${formatAge(index.last_error_at, now)} (${index.last_error_reason ?? "unknown"})`
201
+ : "";
202
+ return `Index: ${updateSuffix}${errorSuffix}`;
203
+ }
204
+ function renderInboxLine(inbox, now) {
205
+ // Older daemons (pre-this-slice) don't ship an `inbox` block. Treat
206
+ // the missing block exactly as "idle" — the line stays present and
207
+ // the CLI never crashes on a cross-version mismatch.
208
+ if (!inbox ||
209
+ (inbox.last_import_at === null &&
210
+ inbox.last_error_at === null &&
211
+ inbox.pending === 0)) {
212
+ // A command, not a folder: a relative path means nothing to a reader who
213
+ // does not know where Onadit keeps its data.
214
+ return "Inbox: empty — to add a chat export: onadit import <file> --source <name>";
215
+ }
216
+ const parts = [];
217
+ if (inbox.last_import_at) {
218
+ parts.push(`last import ${formatAge(inbox.last_import_at, now)}`);
219
+ }
220
+ if (inbox.pending > 0) {
221
+ parts.push(`${inbox.pending} pending`);
222
+ }
223
+ const head = parts.length > 0 ? parts.join(" · ") : "idle";
224
+ const errorSuffix = inbox.last_error_at
225
+ ? ` · last error ${formatAge(inbox.last_error_at, now)} (${inbox.last_error_reason ?? "unknown"})`
226
+ : "";
227
+ return `Inbox: ${head}${errorSuffix}`;
228
+ }
229
+ function renderMemoryLine(status) {
230
+ const memory = status.memory;
231
+ if (!memory?.counts)
232
+ return null;
233
+ const counts = memory.counts;
234
+ const docsPart = `docs ${counts.structured_docs}${counts.structured_docs === 0 ? ` (${documentReason(memory.documents.status)})` : ""}`;
235
+ // Digests are an optional extra on top of the stored conversations.
236
+ // "digests 0 (AI enrichment off)" was relayed as "Onadit is not writing
237
+ // summaries", so a lane that is simply not in use is not listed.
238
+ const digestsInUse = counts.digests > 0 ||
239
+ (memory.digests.status !== "unavailable_basic" && memory.digests.status !== "unavailable_claude");
240
+ const parts = [`${counts.conversations.toLocaleString("en-US")} conversations`];
241
+ if (digestsInUse) {
242
+ parts.push(`digests ${counts.digests}${counts.digests === 0 ? ` (${digestReason(memory.digests.status)})` : ""}`);
243
+ }
244
+ parts.push(docsPart);
245
+ return `Memory: ${parts.join(" · ")}`;
246
+ }
247
+ function digestReason(status) {
248
+ switch (status) {
249
+ case "unavailable_basic":
250
+ return "AI enrichment off";
251
+ case "unavailable_claude":
252
+ return "Claude digests not shipped";
253
+ case "unavailable_worker":
254
+ return "digest worker unavailable";
255
+ case "available_not_run":
256
+ return "none yet";
257
+ case "unknown":
258
+ return "unknown";
259
+ case "indexed":
260
+ return "indexed";
261
+ }
262
+ }
263
+ function documentReason(status) {
264
+ switch (status) {
265
+ case "not_configured":
266
+ return "no sources";
267
+ case "source_missing":
268
+ return "source missing";
269
+ case "source_empty":
270
+ return "source empty";
271
+ case "embedding_unavailable":
272
+ return "Voyage key missing";
273
+ case "backfill_needed":
274
+ return "backfill needed";
275
+ case "unknown":
276
+ return "unknown";
277
+ case "indexed":
278
+ return "indexed";
279
+ }
280
+ }
281
+ function renderCodexLine(codex, now) {
282
+ // Claude-Code triage worker: a wholly separate label + remedy set. The Codex
283
+ // copy below is left byte-for-byte unchanged.
284
+ if (codex.last_preflight_worker === "claude") {
285
+ return renderClaudeLine(codex, now);
286
+ }
287
+ if (codex.last_preflight_at === null) {
288
+ return "Codex CLI: not checked yet — auto-capture has not run";
289
+ }
290
+ if (codex.last_preflight_ok === true) {
291
+ return `Codex CLI: authed ✓ (last checked: ${formatAge(codex.last_preflight_at, now)})`;
292
+ }
293
+ const checked = `last checked: ${formatAge(codex.last_preflight_at, now)}`;
294
+ if (codex.last_preflight_error_class === "auth") {
295
+ return `Codex CLI: auth expired ✗ (${checked}) — run: codex login`;
296
+ }
297
+ // Not auth — say what actually failed and don't nag about login.
298
+ const summary = codex.last_preflight_error_summary ?? "Codex preflight failed.";
299
+ return `Codex CLI: probe failing ✗ (${checked}) — ${summary}`;
300
+ }
301
+ /**
302
+ * Says so when Onadit moved capture to another Codex model because Codex
303
+ * refused the old one (shown for a week). When the refused model is the one
304
+ * in `codex_cli.model`, that setting is now ignored, so point at it.
305
+ */
306
+ function renderCodexModelSwitchLine(codex, now) {
307
+ const modelSwitch = codex.model_switch;
308
+ if (!modelSwitch || codex.last_preflight_worker === "claude") {
309
+ return null;
310
+ }
311
+ const line = `Codex model: switched to ${modelSwitch.to} ${formatAge(modelSwitch.at, now)}` +
312
+ ` — Codex no longer accepts ${modelSwitch.from}`;
313
+ return modelSwitch.from_config
314
+ ? `${line} · update codex_cli.model in config.json`
315
+ : line;
316
+ }
317
+ /**
318
+ * Claude-Code triage worker status line — the `claude_code` analogue of the
319
+ * Codex line. Remedies are Claude-shaped (sign into `claude`, upgrade an old
320
+ * CLI, point past a wrapper), never "codex login".
321
+ */
322
+ function renderClaudeLine(codex, now) {
323
+ if (codex.last_preflight_at === null) {
324
+ return "Claude Code: not checked yet — auto-capture has not run";
325
+ }
326
+ if (codex.last_preflight_ok === true) {
327
+ return `Claude Code: ready ✓ (last checked: ${formatAge(codex.last_preflight_at, now)})`;
328
+ }
329
+ const checked = `last checked: ${formatAge(codex.last_preflight_at, now)}`;
330
+ switch (codex.last_preflight_error_class) {
331
+ case "auth":
332
+ return `Claude Code: signed out ✗ (${checked}) — run: claude (sign in)`;
333
+ case "missing":
334
+ return `Claude Code: not found ✗ (${checked}) — install claude or set RIFT_CLAUDE_CLI_PATH`;
335
+ case "incompatible":
336
+ return `Claude Code: too old ✗ (${checked}) — upgrade claude (needs --safe-mode)`;
337
+ case "wrapper":
338
+ return `Claude Code: wrapper blocking ✗ (${checked}) — set RIFT_CLAUDE_CLI_PATH to the real claude`;
339
+ default: {
340
+ const summary = codex.last_preflight_error_summary ?? "Claude preflight failed.";
341
+ return `Claude Code: probe failing ✗ (${checked}) — ${summary}`;
342
+ }
343
+ }
344
+ }
345
+ /**
346
+ * True when the daemon's own scheduled loop last failed (during this
347
+ * uptime) but the newest run is a healthy ad-hoc run (a manual `rift
348
+ * capture` or the onboard first-capture pass). This is the "capture works
349
+ * now, but automation is still failing" split — kept in sync with the
350
+ * `capture_daemon_stale` check in diagnostics/doctor.ts.
351
+ *
352
+ * `last_daemon_failed` carries the full failure verdict (a `run_ok`-only
353
+ * check would miss the common expired-Codex case, which completes with
354
+ * `run_ok: true, preflight_ok: false`). The newest run must be a non-daemon
355
+ * trigger — legacy untagged rows report as `daemon`, so `!== "daemon"`
356
+ * cleanly means manual or onboard.
357
+ */
358
+ function isDaemonCaptureStale(capture, daemonStartMs) {
359
+ return (capture.last_daemon_failed === true &&
360
+ isCurrentUptime(capture.last_daemon_run_at ?? null, daemonStartMs) &&
361
+ capture.last_run_trigger != null &&
362
+ capture.last_run_trigger !== "daemon" &&
363
+ capture.last_run_ok === true &&
364
+ capture.last_errors === 0);
365
+ }
366
+ /**
367
+ * Split the parked-oversized count into "still self-repairing" vs. "exhausted
368
+ * retries, needs a manual save". The daemon ships explicit `oversized_repairing`
369
+ * / `oversized_repair_failed`; an older daemon omits them, so we fall back to
370
+ * treating every parked session as still-repairing (`parked - failed`, with
371
+ * failed defaulting to 0) — the calm, accurate read for a daemon that simply
372
+ * hasn't reported a budget yet.
373
+ */
374
+ function deriveParkedState(capture) {
375
+ const parked = capture.oversized_parked ?? 0;
376
+ const failed = capture.oversized_repair_failed ?? 0;
377
+ const repairing = capture.oversized_repairing ?? Math.max(parked - failed, 0);
378
+ return { parked, repairing, failed };
379
+ }
380
+ function renderCaptureLine(status, now, daemonStale) {
381
+ const { capture, daemon, codex } = status;
382
+ // When the split "Automatic:" line is shown it carries the daemon's next
383
+ // tick, so keep it off this line — otherwise a manual run would look
384
+ // scheduled. With no split, this line keeps the next-tick hint.
385
+ const next = daemonStale ? null : formatNextRunSuffix(capture.next_run_at, now);
386
+ const nextPart = next ? ` · ${next}` : "";
387
+ const retryPart = next ? ` · ${retryWording(next)}` : "";
388
+ const lastRun = capture.last_run_at
389
+ ? `${capture.last_run_trigger === "manual" ? "last manual run" : "last run"} ${formatAge(capture.last_run_at, now)}`
390
+ : null;
391
+ // The line opens with one of: off, on (no run yet), working, failed. A
392
+ // reader, or an agent relaying this, must be able to tell a quiet hour from
393
+ // a fault, and capture being off from capture finding nothing.
394
+ //
395
+ // Off. Only an explicit `false`: a daemon from before the flag does not say.
396
+ if (daemon.capture_enabled === false) {
397
+ return `Capture: off — new sessions from your AI tools are not saved${lastRun ? ` (${lastRun})` : ""}. Turn it on: onadit onboard --enable-capture`;
398
+ }
399
+ // On, but nothing it saves could be embedded.
400
+ if (daemon.capture_enabled === true && !daemon.voyage_key_present) {
401
+ return "Capture: failed — capture is on but Onadit has no search key, so nothing can be saved. Fix: onadit onboard --reconfigure-voyage";
402
+ }
403
+ if (lastRun === null) {
404
+ if (daemon.capture_enabled === true)
405
+ return `Capture: on — no run yet${nextPart}`;
406
+ return next ? `Capture: no runs yet · ${next}` : "Capture: no runs yet";
407
+ }
408
+ // Failed: the AI worker that reads sessions was not ready, the run stopped,
409
+ // or sessions could not be saved (the same bar as `autoCaptureRunFailed`).
410
+ if (codex.last_preflight_ok === false) {
411
+ const worker = codex.last_preflight_worker === "claude" ? "Claude Code" : "Codex CLI";
412
+ return `Capture: failed — ${lastRun} saved nothing: ${worker} is not ready (see the ${worker} line)${retryPart}`;
413
+ }
414
+ if (capture.last_run_ok === false) {
415
+ return `Capture: failed — ${lastRun} stopped with an error (details: onadit doctor)${retryPart}`;
416
+ }
417
+ if (capture.last_errors > 0) {
418
+ const n = capture.last_errors;
419
+ return `Capture: failed for ${n} session${n === 1 ? "" : "s"} — ${lastRun}: ${capture.last_saved} saved, ${n} not saved (details: onadit doctor)${retryPart}`;
420
+ }
421
+ // Driven by the parked-session count (state of the world), NOT
422
+ // `last_quarantined` (the last run's count) — otherwise this visible line
423
+ // flickers between showing and hiding as a stable oversized file dedups on
424
+ // one run and re-quarantines on the next. Large sessions now self-repair in
425
+ // the background, so the suffix reports honest state: "saving …" while Onadit
426
+ // is still recovering them, "need a manual save" only once retries are
427
+ // exhausted — never a bare "run the repair command" on a self-healing path.
428
+ const { repairing, failed } = deriveParkedState(capture);
429
+ const parkedSuffix = failed > 0
430
+ ? ` · ${failed} large session${failed === 1 ? "" : "s"} need a manual save`
431
+ : repairing > 0
432
+ ? ` · saving ${repairing} large session${repairing === 1 ? "" : "s"} to memory`
433
+ : "";
434
+ // Working. "Nothing new" is said in words: three zeros look like a fault.
435
+ const found = capture.last_saved === 0 && capture.last_review === 0
436
+ ? "nothing new"
437
+ : `${capture.last_saved} saved${capture.last_review > 0 ? `, ${capture.last_review} to review` : ""}`;
438
+ return `Capture: working — ${lastRun}: ${found}${parkedSuffix}${nextPart}`;
439
+ }
440
+ /** "next in 59m" as a failure reads it: when the next attempt comes. */
441
+ function retryWording(next) {
442
+ return next === "next tick due" ? "next try due" : next.replace(/^next in /, "next try in ");
443
+ }
444
+ /**
445
+ * Native-Cursor capture line. Honest states for an explicit opt-in:
446
+ * - not installed AND not scheduled → omit (return null); never advertise a
447
+ * tool the user doesn't have.
448
+ * - scheduled but the store is missing/unreadable (file probe) → WARN.
449
+ * - scheduled, store readable, but the last discovery RUN failed to read it
450
+ * (e.g. `sqlite3` missing / corrupt query — invisible to the file probe)
451
+ * → WARN. The opt-in (cursor_composer in capture.sources) must never read
452
+ * as "capture on" while capture physically can't run; that would silently
453
+ * swallow the one thing the user asked for.
454
+ * - installed but not scheduled → offer the opt-in.
455
+ * - scheduled, readable, and no observed discovery failure → on.
456
+ * Returns null for a pre-this-slice payload that omits the `cursor` block.
457
+ */
458
+ function renderCursorLine(capture) {
459
+ const cursor = capture.cursor;
460
+ if (!cursor)
461
+ return null;
462
+ if (cursor.scheduled) {
463
+ if (!cursor.available) {
464
+ return "Cursor: scheduled but no readable Cursor store found — capture can't run (is Cursor installed?)";
465
+ }
466
+ // File is readable, but the last run that actually read the store failed —
467
+ // the store is present yet Onadit can't parse it (commonly: no `sqlite3` on
468
+ // PATH). Warn instead of claiming the schedule is working.
469
+ if (cursor.last_discovery_ok === false) {
470
+ return "Cursor: scheduled but Onadit couldn't read your Cursor sessions last run — capture isn't working (try: onadit doctor)";
471
+ }
472
+ return "Cursor: capture on — native Cursor sessions are captured on the schedule";
473
+ }
474
+ // Not scheduled: only advertise the opt-in when Cursor is actually present.
475
+ if (!cursor.available)
476
+ return null;
477
+ return 'Cursor: not captured — to capture Cursor sessions, add "cursor_composer" to capture.sources in Onadit\'s config.json, then restart Onadit';
478
+ }
479
+ /**
480
+ * Claude Desktop agent/Cowork capture line. Cowork is an explicit opt-in like
481
+ * Cursor, not part of the default auto-capture set. Existing sessions are
482
+ * baselined on first opt-in, so the line deliberately says "new" sessions.
483
+ */
484
+ function renderCoworkLine(capture) {
485
+ const cowork = capture.claude_desktop;
486
+ if (!cowork)
487
+ return null;
488
+ if (cowork.scheduled) {
489
+ if (!cowork.available) {
490
+ return "Cowork: scheduled but no readable Claude Desktop Cowork store found — capture can't run (open a Cowork session, then run onadit status)";
491
+ }
492
+ if (cowork.last_discovery_ok === false) {
493
+ return "Cowork: scheduled but Onadit couldn't read your Cowork sessions last run — capture isn't working (try: onadit doctor)";
494
+ }
495
+ return "Cowork: capture on — new Claude Desktop Cowork sessions are captured on the schedule";
496
+ }
497
+ if (!cowork.available)
498
+ return null;
499
+ return "Cowork: available — run onadit onboard --enable-cowork-capture to capture new Cowork sessions";
500
+ }
501
+ /**
502
+ * Honest source-coverage line. Onadit auto-captures the CLI agents (Claude Code,
503
+ * Codex CLI), and can opt into Claude Desktop Cowork agent sessions. Normal
504
+ * Claude/ChatGPT desktop and web chats still need export → `onadit import`.
505
+ * Rendered only when such an app is actually installed, so it sets the right
506
+ * expectation for exactly the users who would assume "auto-capture" already
507
+ * covers them, and stays silent for everyone else.
508
+ */
509
+ function renderLocalAiAppsLine(apps) {
510
+ if (!apps)
511
+ return null;
512
+ const names = [];
513
+ if (apps.claudeDesktop)
514
+ names.push("Claude Desktop");
515
+ if (apps.chatgptApp)
516
+ names.push("ChatGPT");
517
+ if (names.length === 0)
518
+ return null;
519
+ const possessive = names.length === 1 ? "its" : "their";
520
+ return `App chats: ${names.join(" + ")} installed — ${possessive} normal chats aren't auto-captured; export → onadit import`;
521
+ }
522
+ /**
523
+ * The "Automatic:" advisory line — shown only when `isDaemonCaptureStale`
524
+ * holds (the scheduled loop's last run failed while a manual run is
525
+ * working). Returns null otherwise; a healthy or not-yet-run daemon needs
526
+ * no second capture line.
527
+ */
528
+ function renderAutomaticCaptureLine(capture, now, daemonStale) {
529
+ if (!daemonStale || !capture.last_daemon_run_at)
530
+ return null;
531
+ const age = formatAge(capture.last_daemon_run_at, now);
532
+ const nextSuffix = formatNextRunSuffix(capture.next_run_at, now);
533
+ return `Automatic: failed — last scheduled run ${age}${nextSuffix ? ` · ${retryWording(nextSuffix)}` : ""}`;
534
+ }
535
+ function formatNextRunSuffix(iso, now) {
536
+ if (!iso)
537
+ return null;
538
+ const then = Date.parse(iso);
539
+ if (Number.isNaN(then))
540
+ return null;
541
+ const deltaSeconds = Math.round((then - now) / 1000);
542
+ if (deltaSeconds <= 0)
543
+ return "next tick due";
544
+ return `next in ${formatDuration(deltaSeconds)}`;
545
+ }
546
+ function renderMcpLine(clients) {
547
+ if (clients.length === 0)
548
+ return "MCP: (no clients detected)";
549
+ const parts = clients.map((c) => c.installed
550
+ ? `${c.client} ✓`
551
+ : `${c.client} ✗ (run: onadit mcp install --client=${c.client})`);
552
+ return `MCP: ${parts.join(" · ")}`;
553
+ }
554
+ /**
555
+ * Render the menu-bar advisory line, or null to omit it. Two cases print:
556
+ * SwiftBar absent (install the app), and SwiftBar present but the plugin is a
557
+ * dangling shortcut (reinstall it) — so the everyday `onadit status` can't look
558
+ * clean while the icon is broken. A healthy install and `null` (non-macOS /
559
+ * unprobed, e.g. the daemon notifier) stay silent, matching `onadit doctor`.
560
+ */
561
+ function renderSwiftBarLine(swiftBar) {
562
+ if (!swiftBar)
563
+ return null;
564
+ if (!swiftBar.installed) {
565
+ // Lead with the real first step (install the app); `onadit menubar install`
566
+ // alone would only re-print that same recovery, so name it directly.
567
+ return "Menu bar: SwiftBar not installed ✗ (icon can't show → install SwiftBar from swiftbar.app, then run: onadit menubar install)";
568
+ }
569
+ if (swiftBar.pluginDangling) {
570
+ return "Menu bar: plugin broken ✗ (icon can't update → reinstall: onadit menubar install)";
571
+ }
572
+ return null;
573
+ }
574
+ function decideNextLine(input) {
575
+ const { status, mcpClients, daemonStartMs } = input;
576
+ // A missing key is only an action item when something needs it. With
577
+ // auto-capture off, no-key is the intended local mode, so it must not claim
578
+ // the Next: line — that would read as "broken" on a healthy local install.
579
+ if (!status.daemon.voyage_key_present && status.daemon.capture_enabled) {
580
+ return "Auto-capture is on but has no Voyage key to embed with → run: onadit onboard --reconfigure-voyage";
581
+ }
582
+ if (status.codex.last_preflight_ok === false) {
583
+ if (status.codex.last_preflight_worker === "claude") {
584
+ switch (status.codex.last_preflight_error_class) {
585
+ case "auth":
586
+ return "Claude Code signed out → run: claude (sign in); Onadit retries automatically";
587
+ case "missing":
588
+ return "Claude Code CLI not found → install claude or set RIFT_CLAUDE_CLI_PATH; Onadit retries automatically";
589
+ case "incompatible":
590
+ return "Claude Code CLI too old → upgrade claude (needs --safe-mode); Onadit retries automatically";
591
+ case "wrapper":
592
+ return "A wrapper is intercepting claude → set RIFT_CLAUDE_CLI_PATH to the real binary; Onadit retries automatically";
593
+ case "rate_limit":
594
+ return "Claude hit a rate/usage limit → wait for it to reset; Onadit retries automatically";
595
+ default:
596
+ return "Claude capture probe failing → Onadit retries automatically";
597
+ }
598
+ }
599
+ if (status.codex.last_preflight_error_class === "auth") {
600
+ return "Codex auth expired → run: codex login";
601
+ }
602
+ if (status.codex.last_preflight_error_class === "model") {
603
+ return "Codex rejected the model → set codex_cli.model; Onadit retries automatically";
604
+ }
605
+ if (status.codex.last_preflight_error_class === "cli_incompatible") {
606
+ return "Codex CLI too old → upgrade Codex; Onadit retries automatically";
607
+ }
608
+ if (status.codex.last_preflight_error_class === "binary") {
609
+ return "Codex CLI missing or moved → reinstall/upgrade codex; Onadit retries automatically";
610
+ }
611
+ if (status.codex.last_preflight_error_class === "rate_limit") {
612
+ return "Codex out of credits or rate-limited → top up your OpenAI balance or wait; Onadit retries automatically";
613
+ }
614
+ return "Codex capture probe failing → Onadit retries automatically";
615
+ }
616
+ // Recency gating: only errors stamped *after* the current daemon
617
+ // start can drive the Next: action. A 20h-old schema_mismatch from a
618
+ // prior process should not advertise "broken, file feedback" on a
619
+ // healthy respawn.
620
+ if (isCurrentUptime(status.voyage.last_error_at, daemonStartMs)) {
621
+ return `Voyage embedding errors since daemon start (${humanizeErrorClass(status.voyage.last_error_reason)}) → run: onadit feedback --kind=broke --with-status`;
622
+ }
623
+ if (isCurrentUptime(status.index.last_error_at, daemonStartMs)) {
624
+ return `Index write errors since daemon start (${humanizeErrorClass(status.index.last_error_reason)}) → run: onadit feedback --kind=broke --with-status`;
625
+ }
626
+ // Inbox import failures are usually the user's own drop being rejected
627
+ // (malformed export, corrupted ZIP, unsupported source). The fix is on
628
+ // their side — re-drop a fresh export — not in the feedback flow.
629
+ // We deliberately do NOT name `data/quarantine/`: pre-parse failures
630
+ // (e.g. corrupted ZIPs that throw inside extractArchive) never write
631
+ // a quarantine record, so the path would point at an empty folder.
632
+ // Only the parser-level per-conversation failures land there, and
633
+ // the user doesn't need to disambiguate before re-dropping.
634
+ if (status.inbox && isCurrentUptime(status.inbox.last_error_at, daemonStartMs)) {
635
+ return `Inbox import errors since daemon start (${humanizeErrorClass(status.inbox.last_error_reason)}) → import a fresh export: onadit import <file> --source <name>`;
636
+ }
637
+ // Capture errors only count when the failing run happened during the
638
+ // current daemon uptime — a prior process's failure shouldn't keep
639
+ // nudging the friend post-respawn.
640
+ if ((status.capture.last_errors > 0 || status.capture.last_run_ok === false) &&
641
+ isCurrentUptime(status.capture.last_run_at, daemonStartMs)) {
642
+ return "Capture errors detected → run: onadit feedback --kind=broke --with-status";
643
+ }
644
+ // Scheduled loop failing while the newest run is a healthy manual one:
645
+ // capture works now, so surface the honest "will re-check" advisory
646
+ // rather than a broken-capture action or "nothing broken."
647
+ if (isDaemonCaptureStale(status.capture, daemonStartMs)) {
648
+ return "capture works now; automatic capture will re-check on the next scheduled run";
649
+ }
650
+ const missing = mcpClients.filter((c) => !c.installed).map((c) => c.client);
651
+ if (missing.length > 0) {
652
+ return `MCP not installed for ${missing.join(", ")} → run: onadit mcp install --client=${missing[0]}`;
653
+ }
654
+ // Oversized Codex sessions parked in quarantine are a graceful skip, not an
655
+ // error — and they now SELF-REPAIR in the background. So the default copy is
656
+ // the honest in-progress state ("Onadit is saving N … to memory"), with NO
657
+ // command for the friend to run. The manual `onadit doctor repair
658
+ // capture-large-sessions` is surfaced only once a session has exhausted its
659
+ // bounded retry budget — the genuine "Onadit couldn't, you take over" case.
660
+ const { repairing, failed } = deriveParkedState(status.capture);
661
+ if (failed > 0) {
662
+ return `${failed} large Codex session${failed === 1 ? "" : "s"} could not be saved automatically → run: onadit doctor repair capture-large-sessions`;
663
+ }
664
+ if (repairing > 0) {
665
+ return `Onadit is saving ${repairing} large Codex session${repairing === 1 ? "" : "s"} to memory — no action needed`;
666
+ }
667
+ // Update available wins over "nothing broken" — a friend who runs
668
+ // status precisely to find out what to do next should see the update
669
+ // hint surfaced as the action, not buried under "all green." It is
670
+ // still strictly below every real error branch above, so a broken
671
+ // daemon never prefers an update suggestion over a Voyage/Index fix.
672
+ if (status.update.available && status.update.latest_beta) {
673
+ return `Update available (${status.update.installed} → ${status.update.latest_beta}) → ${updateAction(status.update)}`;
674
+ }
675
+ return 'nothing broken. Try onadit search "<topic>".';
676
+ }
677
+ export function formatAge(iso, now) {
678
+ const then = Date.parse(iso);
679
+ if (Number.isNaN(then))
680
+ return "unknown";
681
+ return formatDuration(Math.max(0, Math.round((now - then) / 1000))) + " ago";
682
+ }
683
+ /**
684
+ * Render the `time_to_first_useful_recall` line. Returns null when the
685
+ * state is `hidden` so the caller can drop the line entirely — a fresh
686
+ * post-onboard install should not advertise a metric it has not yet
687
+ * earned the right to display.
688
+ */
689
+ export function renderOnboardingLine(onboarding, now) {
690
+ if (!onboarding)
691
+ return null;
692
+ if (onboarding.state === "hidden")
693
+ return null;
694
+ if (onboarding.state === "pending") {
695
+ const since = onboarding.useful_state_reached_at
696
+ ? ` (waiting ${formatAge(onboarding.useful_state_reached_at, now)})`
697
+ : "";
698
+ // The record is the first answer that came back complete and with
699
+ // results. A tool may well have asked already and got nothing or a partial
700
+ // answer, so this must not say that no tool has asked.
701
+ return `First recall: not yet — no AI tool has got a complete answer with results from Onadit so far; an empty or partial answer is not counted${since}`;
702
+ }
703
+ const duration = onboarding.duration_seconds !== null
704
+ ? formatOnboardingDuration(onboarding.duration_seconds)
705
+ : "?";
706
+ // The metric stores the label the tool had when it was recorded.
707
+ const tool = renamePreviousToolNames(onboarding.first_useful_recall_tool ?? "?");
708
+ // Said as what happened: "0s after first useful state" is our metric's name,
709
+ // not something a reader can act on or relay. The event is the first answer
710
+ // that was complete and had results, not the first time a tool asked.
711
+ return `First recall: done — an AI tool first got a complete answer with results from Onadit ${duration} after Onadit was ready (${tool})`;
712
+ }
713
+ export function formatDuration(seconds) {
714
+ if (seconds < 60)
715
+ return `${seconds}s`;
716
+ const minutes = Math.floor(seconds / 60);
717
+ if (minutes < 60)
718
+ return `${minutes}m`;
719
+ const hours = Math.floor(minutes / 60);
720
+ const remMin = minutes % 60;
721
+ if (hours < 24)
722
+ return remMin > 0 ? `${hours}h ${remMin}m` : `${hours}h`;
723
+ const days = Math.floor(hours / 24);
724
+ const remHours = hours % 24;
725
+ return remHours > 0 ? `${days}d ${remHours}h` : `${days}d`;
726
+ }
727
+ //# sourceMappingURL=friend-header.js.map