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,745 @@
1
+ import crypto from "node:crypto";
2
+ import fs from "node:fs";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import { spawn, spawnSync } from "node:child_process";
6
+ import { findCodexModelRejection } from "../diagnostics/codex-preflight.js";
7
+ import { markCodexModelRefused, resetCodexModelCacheForTests, resolveCodexModel, } from "./codex-cli-model.js";
8
+ const SCHEMA_CACHE = new Map();
9
+ let codexVersionPromise = null;
10
+ let isolatedCodexHomePath = null;
11
+ // mtime (ms) of the SOURCE auth.json at the moment we last copied it into the
12
+ // isolated home. Drives the staleness re-copy in ensureIsolatedCodexHome.
13
+ let isolatedCodexAuthSourceMtimeMs = null;
14
+ let codexLaunchSpec = null;
15
+ let runtimeTempDirPath = null;
16
+ let runtimeCleanupRegistered = false;
17
+ // Cached SUCCESS of the pre-send `codex exec` capability probe. Only success is
18
+ // cached — see ensureCodexExecCompatible.
19
+ let codexExecCompatible = false;
20
+ let codexExecProbeOverride;
21
+ const CODEX_EXECUTABLE_FALLBACK_DIRS = [
22
+ "/opt/homebrew/bin",
23
+ "/usr/local/bin",
24
+ ];
25
+ /** Minimal schema for the model-availability probe. */
26
+ const CODEX_MODEL_PROBE_SCHEMA = {
27
+ type: "object",
28
+ additionalProperties: false,
29
+ required: ["ok"],
30
+ properties: { ok: { type: "boolean" } },
31
+ };
32
+ /**
33
+ * Does this model actually run under our isolated CODEX_HOME? A tiny real
34
+ * `codex exec` — true on a clean structured response, false when Codex refuses
35
+ * the model. Any other failure (auth, network, timeout) throws: it is not about
36
+ * the model, so trying the next one would only hide it. Injected into
37
+ * resolveCodexModel so the pick is verified rather than guessed.
38
+ */
39
+ async function probeCodexModel(model) {
40
+ try {
41
+ await runCodexCliJson({
42
+ prompt: "User: ping.\n\nAssistant: Ready.\nReturn JSON {\"ok\": true} and nothing else.",
43
+ schema: CODEX_MODEL_PROBE_SCHEMA,
44
+ model,
45
+ timeoutMs: 60_000,
46
+ });
47
+ return true;
48
+ }
49
+ catch (error) {
50
+ if (error instanceof CodexModelRejectedError) {
51
+ return false;
52
+ }
53
+ throw error;
54
+ }
55
+ }
56
+ /**
57
+ * The models this account can use, from `codex debug models`. Signed in, Codex
58
+ * refreshes the list from OpenAI (well under a second; no model call, no
59
+ * content), so a retired model is already gone from it. Injected into
60
+ * resolveCodexModel.
61
+ */
62
+ async function listCodexCatalog() {
63
+ const { stdout } = await runCodexCommand(["debug", "models"], {
64
+ cwd: ensureRuntimeTempDir(),
65
+ timeoutMs: 30_000,
66
+ });
67
+ const models = JSON.parse(stdout).models;
68
+ if (!Array.isArray(models)) {
69
+ return [];
70
+ }
71
+ return models.filter((model) => typeof model === "object" &&
72
+ model !== null &&
73
+ typeof model.slug === "string");
74
+ }
75
+ /**
76
+ * `codex exec` options `runCodexCliJson` depends on. A `codex` whose
77
+ * `exec --help` does not advertise EVERY one of these is too old to run our
78
+ * contract — most importantly `--output-schema`, which Codex added after 0.39.
79
+ * We reject such a CLI BEFORE piping any captured conversation to it (mirrors
80
+ * the Claude runner's REQUIRED_CLAUDE_FLAGS pre-send probe).
81
+ */
82
+ const REQUIRED_CODEX_EXEC_FLAGS = [
83
+ "--output-schema",
84
+ "--output-last-message",
85
+ ];
86
+ /**
87
+ * Test seam: replace the spawn-based `exec --help` probe so callers can unit-
88
+ * test the "reject before sending content" behavior without spawning codex.
89
+ * Returns null when compatible, else a leak-free reason. Resets the success
90
+ * cache so the next call re-probes through the override.
91
+ */
92
+ export function setCodexExecProbeForTests(fn) {
93
+ codexExecProbeOverride = fn;
94
+ codexExecCompatible = false;
95
+ }
96
+ /**
97
+ * Throw (with an actionable, leak-free message) when the `codex` CLI cannot run
98
+ * our `exec` contract, BEFORE any captured conversation is sent. Caches only
99
+ * success: a too-old CLI re-probes each call so an in-place upgrade is picked up
100
+ * without a daemon restart, and a transient `--help` hiccup does not freeze the
101
+ * daemon at "incompatible". A spawn/ENOENT from `--help` (binary missing)
102
+ * propagates as-is so it keeps its own `binary` classification.
103
+ */
104
+ async function ensureCodexExecCompatible(cwd) {
105
+ if (codexExecCompatible)
106
+ return;
107
+ const reason = codexExecProbeOverride
108
+ ? await codexExecProbeOverride(cwd)
109
+ : await probeCodexExecCompatibility(cwd);
110
+ if (reason !== null) {
111
+ throw new Error(reason);
112
+ }
113
+ codexExecCompatible = true;
114
+ }
115
+ /**
116
+ * Structural probe: `codex exec --help` must advertise every
117
+ * REQUIRED_CODEX_EXEC_FLAG. No model call, no content, no auth — bounded by a
118
+ * short timeout. Returns null when compatible, else a leak-free reason naming
119
+ * the missing option(s). A failure to even run `--help` (e.g. spawn ENOENT)
120
+ * propagates so a missing binary keeps its `binary` classification rather than
121
+ * being mislabelled "too old".
122
+ */
123
+ async function probeCodexExecCompatibility(cwd) {
124
+ const { stdout: help } = await runCodexCommand(["exec", "--help"], {
125
+ cwd,
126
+ timeoutMs: 15_000,
127
+ });
128
+ const missing = REQUIRED_CODEX_EXEC_FLAGS.filter((flag) => !help.includes(flag));
129
+ if (missing.length === 0) {
130
+ return null;
131
+ }
132
+ // This message is recorded verbatim as the run's `preflight_error`, and
133
+ // status/doctor attribute a failure to a worker partly by scanning that text.
134
+ // So it must name ONLY Codex — mentioning `claude_code` here (even as a
135
+ // helpful "switch worker" hint) would make a too-old-Codex failure look like a
136
+ // Claude failure and send the user to fix the wrong tool. The "switch to the
137
+ // Claude worker" remedy belongs in the doctor/status next-action copy, which
138
+ // is derived from the error CLASS at display time, not parsed back out of this
139
+ // string.
140
+ return ("Codex CLI is too old for Onadit capture — `codex exec` is missing required " +
141
+ `option(s): ${missing.join(", ")}. Upgrade Codex (e.g. brew upgrade codex, ` +
142
+ "or reinstall); Onadit retries automatically on its next pass.");
143
+ }
144
+ /** One bounded retry on timeout/termination — see runCodexCliJson. */
145
+ const CODEX_TIMEOUT_RETRY_LIMIT = 1;
146
+ const CODEX_TIMEOUT_RETRY_BACKOFF_MS = 500;
147
+ /**
148
+ * Thrown ONLY when the runner's own timeout timer fires and kills the Codex
149
+ * CLI process (`code === null`, signal SIGTERM) — i.e. the "took too long"
150
+ * case. A signal termination we did NOT initiate (external SIGKILL, OOM,
151
+ * manual interrupt) is deliberately NOT this error; see `runCodexCommand`.
152
+ * Typed (and carrying `timeoutMs`/`signal`) so callers can apply a bounded
153
+ * retry to it specifically, and so the recorded message is diagnosable
154
+ * instead of the opaque "exit null".
155
+ */
156
+ export class CodexCliTimeoutError extends Error {
157
+ timeoutMs;
158
+ signal;
159
+ constructor(timeoutMs, signal, detail = "") {
160
+ const signalPart = signal ? ` by ${signal}` : "";
161
+ super(`Codex CLI timed out after ${timeoutMs}ms (process terminated${signalPart})${detail}`);
162
+ this.name = "CodexCliTimeoutError";
163
+ this.timeoutMs = timeoutMs;
164
+ this.signal = signal;
165
+ }
166
+ }
167
+ /**
168
+ * Thrown when Codex exits refusing the pinned model — retired, or not on the
169
+ * account's plan ("The 'gpt-5.5' model is not supported when using Codex with
170
+ * a ChatGPT account."). Found in the FULL output before it is shortened, and
171
+ * named first in the message, so the recorded error always says it.
172
+ */
173
+ export class CodexModelRejectedError extends Error {
174
+ model;
175
+ constructor(model, reason, exitCode) {
176
+ super(`Codex CLI failed (exit ${exitCode}) — Codex rejected the model "${model}": ${reason}`);
177
+ this.name = "CodexModelRejectedError";
178
+ this.model = model;
179
+ }
180
+ }
181
+ /** At most this many model switches inside one call — see runCodexCliJson. */
182
+ const CODEX_MODEL_SWITCH_LIMIT = 3;
183
+ function delay(ms) {
184
+ return new Promise((resolve) => setTimeout(resolve, ms));
185
+ }
186
+ export async function runCodexCliJson(options) {
187
+ const cwd = options.cwd ?? process.cwd();
188
+ // Verify the `codex` CLI can actually run our `exec` contract BEFORE piping
189
+ // any captured conversation to it. A CLI predating `--output-schema` (≤0.39)
190
+ // would otherwise receive the full prompt and only then exit 2. The probe
191
+ // uses `codex exec --help` only — no content, no model call, no auth — and is
192
+ // cached process-wide on success. Mirrors the Claude runner's pre-send probe.
193
+ await ensureCodexExecCompatible(cwd);
194
+ const exec = {
195
+ prompt: options.prompt,
196
+ cwd,
197
+ schemaPath: ensureSchemaFile(options.schema),
198
+ timeoutMs: options.timeoutMs ?? 120_000,
199
+ };
200
+ // An explicit model (the probe) is run as asked — never swapped.
201
+ if (options.model !== undefined) {
202
+ return runCodexExec(exec, options.model);
203
+ }
204
+ // Pin an explicit model on every run. Never inherit codex's implicit
205
+ // default — that default changes between releases and silently broke every
206
+ // preflight when 0.125.0 moved it to a ChatGPT-plan-rejected model.
207
+ let model = await resolveCodexModel(probeCodexModel, listCodexCatalog);
208
+ // When Codex refuses the model (OpenAI retired it, or the plan lost it),
209
+ // record the refusal, pick another model and run again, instead of failing
210
+ // every capture until someone edits config.json. Bounded: the configured,
211
+ // source and persisted models are tried unprobed, so each can be refused once
212
+ // before resolution reaches the probed catalog.
213
+ for (let switches = 0;; switches++) {
214
+ try {
215
+ return await runCodexExec(exec, model);
216
+ }
217
+ catch (error) {
218
+ if (!(error instanceof CodexModelRejectedError) ||
219
+ switches >= CODEX_MODEL_SWITCH_LIMIT) {
220
+ throw error;
221
+ }
222
+ markCodexModelRefused(model);
223
+ model = await resolveCodexModel(probeCodexModel, listCodexCatalog);
224
+ }
225
+ }
226
+ }
227
+ async function runCodexExec(exec, model) {
228
+ // One bounded retry, and ONLY for timeout/termination (the old "exit null").
229
+ // Triage/preflight calls that get SIGTERM'd are overwhelmingly transient
230
+ // (cold start, brief contention), so a single retry recovers them inside the
231
+ // same run instead of deferring to the next hourly pass. We deliberately do
232
+ // NOT retry malformed JSON, empty output, spawn/ENOENT, or non-zero exits
233
+ // (auth/runtime/oversized) — those are not transient and retrying would only
234
+ // hide the real failure. (The ONE exception, handled a layer down in
235
+ // runCodexCommand: a spawn/ENOENT from a cached binary path that a `brew
236
+ // upgrade` invalidated mid-daemon gets a single re-resolve+retry. A
237
+ // genuinely-missing binary still ENOENTs on that retry and surfaces here
238
+ // unretried.) Raising the timeout is intentionally avoided: it raises cost
239
+ // and hang risk without addressing the transient-kill cause.
240
+ let lastTimeout = null;
241
+ for (let attempt = 0; attempt <= CODEX_TIMEOUT_RETRY_LIMIT; attempt++) {
242
+ const outputPath = path.join(ensureRuntimeTempDir(), `codex-cli-output-${process.pid}-${crypto.randomUUID()}.json`);
243
+ try {
244
+ const { stdout } = await runCodexCommand([
245
+ "exec",
246
+ "-",
247
+ "--sandbox",
248
+ "read-only",
249
+ "--color",
250
+ "never",
251
+ "--skip-git-repo-check",
252
+ "--model",
253
+ model,
254
+ "--output-schema",
255
+ exec.schemaPath,
256
+ "--output-last-message",
257
+ outputPath,
258
+ ], {
259
+ cwd: exec.cwd,
260
+ timeoutMs: exec.timeoutMs,
261
+ stdinText: exec.prompt,
262
+ });
263
+ const raw = fs.existsSync(outputPath)
264
+ ? fs.readFileSync(outputPath, "utf-8").trim()
265
+ : stdout.trim();
266
+ if (raw.length === 0) {
267
+ throw new Error("Codex CLI returned empty output");
268
+ }
269
+ try {
270
+ return {
271
+ output: JSON.parse(raw),
272
+ cliTag: await resolveCodexCliTag(exec.cwd),
273
+ model,
274
+ };
275
+ }
276
+ catch (error) {
277
+ throw new Error(`Codex CLI returned malformed JSON: ${raw.slice(0, 500)}`, { cause: error });
278
+ }
279
+ }
280
+ catch (error) {
281
+ if (error instanceof CodexCliTimeoutError &&
282
+ attempt < CODEX_TIMEOUT_RETRY_LIMIT) {
283
+ lastTimeout = error;
284
+ await delay(CODEX_TIMEOUT_RETRY_BACKOFF_MS);
285
+ continue;
286
+ }
287
+ throw error;
288
+ }
289
+ finally {
290
+ fs.rmSync(outputPath, { force: true });
291
+ }
292
+ }
293
+ // Unreachable: the loop either returns or throws on the final attempt.
294
+ throw lastTimeout ?? new Error("Codex CLI failed after retries");
295
+ }
296
+ /**
297
+ * Cheap, synchronous "is the Codex CLI installed?" probe — resolves the
298
+ * `codex` executable on PATH (plus the Homebrew/usr-local fallbacks the
299
+ * runner already searches). Used to decide, per import, whether AI metadata
300
+ * extraction is available or whether to fall back to BasicMetadataExtractor.
301
+ * Detects install only, NOT auth — an installed-but-unauthenticated Codex
302
+ * still passes here and fails later at extraction time.
303
+ */
304
+ export function isCodexCliAvailable() {
305
+ return resolveCodexExecutableForTests("codex") !== undefined;
306
+ }
307
+ export function resetCodexCliRunnerCacheForTests() {
308
+ SCHEMA_CACHE.clear();
309
+ codexVersionPromise = null;
310
+ codexLaunchSpec = null;
311
+ codexExecCompatible = false;
312
+ wrapperKeepsCodexHomeCache.clear();
313
+ resetCodexModelCacheForTests();
314
+ cleanupRuntimeTempArtifacts();
315
+ }
316
+ async function resolveCodexCliTag(cwd) {
317
+ if (codexVersionPromise === null) {
318
+ codexVersionPromise = runCodexCommand(["--version"], {
319
+ cwd,
320
+ timeoutMs: 15_000,
321
+ })
322
+ .then(({ stdout }) => stdout.trim() || "codex-cli")
323
+ .catch(() => "codex-cli");
324
+ }
325
+ return codexVersionPromise;
326
+ }
327
+ function ensureSchemaFile(schema) {
328
+ const json = JSON.stringify(schema);
329
+ const digest = crypto.createHash("sha256").update(json).digest("hex");
330
+ const cached = SCHEMA_CACHE.get(digest);
331
+ if (cached && fs.existsSync(cached)) {
332
+ return cached;
333
+ }
334
+ const schemaPath = path.join(ensureRuntimeTempDir(), `codex-cli-schema-${digest}.json`);
335
+ if (!fs.existsSync(schemaPath)) {
336
+ fs.writeFileSync(schemaPath, `${json}\n`, "utf-8");
337
+ }
338
+ SCHEMA_CACHE.set(digest, schemaPath);
339
+ return schemaPath;
340
+ }
341
+ /**
342
+ * A `spawn … ENOENT` means the resolved Codex binary is no longer at the
343
+ * cached path — almost always a `brew upgrade` deleting the version-stamped
344
+ * path a long-running daemon memoized before the upgrade. Clearing the
345
+ * launch-spec cache and re-resolving picks up the new binary (via the stable
346
+ * symlink), so a single retry recovers in-process without a daemon restart.
347
+ */
348
+ function isCodexBinaryMissingError(error) {
349
+ return (error instanceof Error && /failed to start:.*\bENOENT\b/.test(error.message));
350
+ }
351
+ async function runCodexCommand(args, options) {
352
+ try {
353
+ return await runCodexCommandOnce(args, options);
354
+ }
355
+ catch (error) {
356
+ if (!isCodexBinaryMissingError(error)) {
357
+ throw error;
358
+ }
359
+ // Force re-resolution of the binary path, then retry exactly once.
360
+ codexLaunchSpec = null;
361
+ return runCodexCommandOnce(args, options);
362
+ }
363
+ }
364
+ async function runCodexCommandOnce(args, options) {
365
+ return new Promise((resolve, reject) => {
366
+ let stdinError = null;
367
+ let stdout = "";
368
+ let stderr = "";
369
+ // We own the timeout here rather than via spawn's `timeout` option so we
370
+ // can tell a timeout-kill apart from any OTHER signal termination — an
371
+ // external SIGKILL, an OOM kill, or a manual interrupt. Only the timeout
372
+ // path is retryable upstream; misclassifying an external kill as a timeout
373
+ // would retry a non-transient failure and bury its real cause. spawn's own
374
+ // `timeout` would kill the child from libuv WITHOUT flipping this flag, so
375
+ // it is deliberately not used.
376
+ let timedOut = false;
377
+ let child;
378
+ try {
379
+ child = spawnCodexProcess(args, {
380
+ cwd: options.cwd,
381
+ stdio: ["pipe", "pipe", "pipe"],
382
+ env: codexCliEnv(),
383
+ });
384
+ }
385
+ catch (error) {
386
+ reject(error);
387
+ return;
388
+ }
389
+ const timer = setTimeout(() => {
390
+ timedOut = true;
391
+ child.kill("SIGTERM");
392
+ }, options.timeoutMs);
393
+ timer.unref?.();
394
+ child.on("error", (error) => {
395
+ clearTimeout(timer);
396
+ reject(new Error(`Codex CLI failed to start: ${error.message}`));
397
+ });
398
+ child.stdout?.setEncoding("utf-8");
399
+ child.stdout?.on("data", (chunk) => {
400
+ stdout += chunk;
401
+ });
402
+ child.stderr?.setEncoding("utf-8");
403
+ child.stderr?.on("data", (chunk) => {
404
+ stderr += chunk;
405
+ });
406
+ if (child.stdin) {
407
+ child.stdin.on("error", (error) => {
408
+ stdinError = error;
409
+ });
410
+ child.stdin.end(options.stdinText ?? "");
411
+ }
412
+ child.on("close", (code, signal) => {
413
+ clearTimeout(timer);
414
+ const summary = summarizeCodexOutput(stderr, stdout);
415
+ const detail = summary ? ` — ${summary}` : "";
416
+ if (code === null) {
417
+ // exit null = terminated by a signal, not a clean exit. If OUR timeout
418
+ // fired, it's the transient "took too long" case — typed + retryable,
419
+ // recorded as "timed out after Xms by SIGTERM" instead of the opaque
420
+ // "exit null". Any OTHER signal termination (external kill, OOM, manual
421
+ // interrupt) is NOT a timeout: surface it as-is so it is never retried.
422
+ if (timedOut) {
423
+ reject(new CodexCliTimeoutError(options.timeoutMs, signal, detail));
424
+ return;
425
+ }
426
+ reject(new Error(`Codex CLI was terminated by ${signal ?? "an unknown signal"} (not a timeout)${detail}`));
427
+ return;
428
+ }
429
+ if (code !== 0) {
430
+ // Look for a model refusal in the FULL output, before it is shortened:
431
+ // a burst of reconnect errors can push it out of the summary. Only a
432
+ // Codex ERROR line naming the pinned model counts, and not one that is
433
+ // part of the prompt Codex echoes back (a triaged conversation can
434
+ // quote an old refusal).
435
+ const model = pinnedModelArg(args);
436
+ const rejection = model
437
+ ? findCodexModelRejection(`${stderr}\n${stdout}`, model, options.stdinText ?? "")
438
+ : null;
439
+ if (model && rejection) {
440
+ reject(new CodexModelRejectedError(model, rejection, code));
441
+ return;
442
+ }
443
+ reject(new Error(`Codex CLI failed (exit ${code})${summary
444
+ ? ` — ${summary}`
445
+ : stdinError
446
+ ? ` — stdin: ${stdinError.message}`
447
+ : ""}`));
448
+ return;
449
+ }
450
+ if (stdinError && !isIgnorableStdinError(stdinError)) {
451
+ reject(new Error(`Codex CLI stdin failed: ${stdinError.message}`));
452
+ return;
453
+ }
454
+ resolve({ stdout, stderr });
455
+ });
456
+ });
457
+ }
458
+ /** Cap on the diagnostic summary written into preflight_error / thrown errors. */
459
+ const CODEX_OUTPUT_SUMMARY_MAX = 2000;
460
+ /**
461
+ * Summarise codex output for diagnosis. The old first-500-chars slice captured
462
+ * only the startup banner and hid the actual cause, which lands at the END of
463
+ * the stream (the failing model name, the exit reason). Instead keep the
464
+ * salient `ERROR` lines plus the tail. Short outputs are returned whole.
465
+ */
466
+ export function summarizeCodexOutput(stderr, stdout) {
467
+ const raw = (stderr.trim() || stdout.trim()).trim();
468
+ if (raw.length <= CODEX_OUTPUT_SUMMARY_MAX) {
469
+ return raw;
470
+ }
471
+ const errorLines = raw
472
+ .split(/\r?\n/)
473
+ .filter((line) => line.includes("ERROR"))
474
+ .slice(-8)
475
+ .join("\n");
476
+ const tail = raw.slice(-1200);
477
+ const combined = errorLines ? `${errorLines}\n…\n${tail}` : `…${tail}`;
478
+ return combined.length <= CODEX_OUTPUT_SUMMARY_MAX
479
+ ? combined
480
+ : `…${combined.slice(-CODEX_OUTPUT_SUMMARY_MAX)}`;
481
+ }
482
+ /** The value after `--model` in a codex argv, if any. */
483
+ function pinnedModelArg(args) {
484
+ const index = args.indexOf("--model");
485
+ return index >= 0 ? args[index + 1] : undefined;
486
+ }
487
+ function isIgnorableStdinError(error) {
488
+ return ("code" in error &&
489
+ (error.code === "EPIPE" ||
490
+ error.code === "ECONNRESET" ||
491
+ error.code === "ERR_STREAM_DESTROYED"));
492
+ }
493
+ function spawnCodexProcess(args, options) {
494
+ const launchSpec = resolveCodexLaunchSpec();
495
+ const launchArgs = [...launchSpec.prefixArgs, ...args];
496
+ try {
497
+ return spawn(launchSpec.command, launchArgs, {
498
+ cwd: options.cwd,
499
+ stdio: options.stdio,
500
+ env: options.env,
501
+ });
502
+ }
503
+ catch (error) {
504
+ if (!(error instanceof Error) ||
505
+ !error.message.includes("EBADF")) {
506
+ throw new Error(`Codex CLI failed to spawn (${formatLaunch(launchSpec.command, launchArgs)}): ${error instanceof Error ? error.message : String(error)}`);
507
+ }
508
+ const shellCommand = [launchSpec.command, ...launchArgs]
509
+ .map(quotePosixArg)
510
+ .join(" ");
511
+ try {
512
+ return spawn("/bin/sh", ["-lc", shellCommand], {
513
+ cwd: options.cwd,
514
+ stdio: options.stdio,
515
+ env: options.env,
516
+ });
517
+ }
518
+ catch (shellError) {
519
+ throw new Error(`Codex CLI failed to spawn directly and via shell (${formatLaunch(launchSpec.command, launchArgs)}): ${shellError instanceof Error ? shellError.message : String(shellError)}`);
520
+ }
521
+ }
522
+ }
523
+ function formatLaunch(command, args) {
524
+ return [command, ...args].map(quotePosixArg).join(" ");
525
+ }
526
+ function quotePosixArg(value) {
527
+ if (value.length === 0)
528
+ return "''";
529
+ return `'${value.replace(/'/g, `'\"'\"'`)}'`;
530
+ }
531
+ function codexCliEnv() {
532
+ return {
533
+ ...process.env,
534
+ CODEX_HOME: ensureIsolatedCodexHome(),
535
+ };
536
+ }
537
+ function resolveCodexLaunchSpec() {
538
+ if (codexLaunchSpec !== null) {
539
+ return codexLaunchSpec;
540
+ }
541
+ const executable = resolveCodexExecutableForTests("codex");
542
+ const stableLaunchPath = executable ?? "codex";
543
+ // Resolve the symlink target ONLY to *detect* a `.js` shim (an npm-style
544
+ // install whose bin entry points at JS we must run under node). We then
545
+ // launch via the STABLE path we found on PATH — e.g. the Homebrew symlink
546
+ // /opt/homebrew/bin/codex — NOT the realpath, for BOTH the binary and the
547
+ // `.js` case. Following the symlink to a version-stamped path (a Caskroom
548
+ // …/codex/0.125.0/… binary, or a versioned …/cli.js a global JS manager
549
+ // rotates) pins a location that an upgrade deletes out from under a
550
+ // long-running daemon, producing `spawn … ENOENT` on every probe until
551
+ // restart. The stable path survives upgrades because the package manager
552
+ // just repoints the symlink; node happily runs the script the symlink
553
+ // resolves to at spawn time.
554
+ const realExecutable = executable ? fs.realpathSync(executable) : "codex";
555
+ codexLaunchSpec = realExecutable.endsWith(".js")
556
+ ? { command: process.execPath, prefixArgs: [stableLaunchPath] }
557
+ : { command: stableLaunchPath, prefixArgs: [] };
558
+ return codexLaunchSpec;
559
+ }
560
+ export function resolveCodexExecutableForTests(name, pathEnv = process.env["PATH"], fallbackDirs = CODEX_EXECUTABLE_FALLBACK_DIRS, keepsCodexHome = wrapperKeepsCodexHome) {
561
+ const searchDirs = [
562
+ ...(pathEnv ? pathEnv.split(path.delimiter) : []),
563
+ ...fallbackDirs,
564
+ ];
565
+ const candidates = searchDirs
566
+ .filter((dir) => dir.length > 0)
567
+ .map((dir) => path.join(dir, name))
568
+ .filter((candidate) => fs.existsSync(candidate));
569
+ const hasRealBinary = candidates.some((candidate) => !isShellScriptWrapper(candidate));
570
+ for (const candidate of candidates) {
571
+ // A shell-script wrapper (account routing, proxy settings, a version
572
+ // manager) is used as before, unless it replaces the CODEX_HOME we set and
573
+ // a real binary is there to use instead. A wrapper that replaces it makes
574
+ // triage run with the user's MCP servers and hooks (their noise buried
575
+ // the real error on 2026-10-14) and saves every triage call in the user's
576
+ // Codex history, where the next capture picks it up as a conversation.
577
+ if (!isShellScriptWrapper(candidate) ||
578
+ !hasRealBinary ||
579
+ keepsCodexHome(candidate)) {
580
+ return candidate;
581
+ }
582
+ }
583
+ return candidates[0];
584
+ }
585
+ const wrapperKeepsCodexHomeCache = new Map();
586
+ /**
587
+ * Does this wrapper leave our CODEX_HOME alone? Run `login status` with an
588
+ * empty CODEX_HOME: Codex itself, or a wrapper that passes it through, answers
589
+ * "Not logged in"; a wrapper that swaps in the user's own home answers "Logged
590
+ * in using …". Reads a file, no network, a few milliseconds. When the answer is
591
+ * unclear the wrapper is kept, as before this check existed. Cached per path.
592
+ */
593
+ function wrapperKeepsCodexHome(wrapper) {
594
+ const cached = wrapperKeepsCodexHomeCache.get(wrapper);
595
+ if (cached !== undefined)
596
+ return cached;
597
+ let keeps = true;
598
+ let emptyHome;
599
+ try {
600
+ emptyHome = fs.mkdtempSync(path.join(ensureRuntimeTempDir(), "codex-home-check-"));
601
+ const result = spawnSync(wrapper, ["login", "status"], {
602
+ env: { ...process.env, CODEX_HOME: emptyHome },
603
+ encoding: "utf-8",
604
+ timeout: 10_000,
605
+ });
606
+ if (!result.error) {
607
+ keeps = !/logged in using/i.test(`${result.stdout ?? ""}\n${result.stderr ?? ""}`);
608
+ }
609
+ }
610
+ catch {
611
+ // Keep the wrapper.
612
+ }
613
+ finally {
614
+ if (emptyHome)
615
+ fs.rmSync(emptyHome, { recursive: true, force: true });
616
+ }
617
+ wrapperKeepsCodexHomeCache.set(wrapper, keeps);
618
+ return keeps;
619
+ }
620
+ /**
621
+ * A `codex` that is a shell script (`#!/bin/sh`, `#!/usr/bin/env bash`, …) is a
622
+ * wrapper around Codex, not Codex. A node `.js` entry point is not a shell
623
+ * script.
624
+ */
625
+ function isShellScriptWrapper(file) {
626
+ let fd;
627
+ try {
628
+ fd = fs.openSync(file, "r");
629
+ const head = Buffer.alloc(128);
630
+ const bytesRead = fs.readSync(fd, head, 0, head.length, 0);
631
+ const firstLine = head.subarray(0, bytesRead).toString("utf-8").split("\n")[0] ?? "";
632
+ if (!firstLine.startsWith("#!"))
633
+ return false;
634
+ // `#!/bin/sh` → sh; `#!/usr/bin/env -S bash -e` → bash; `#!/usr/bin/env node` → node.
635
+ const [command = "", ...rest] = firstLine.slice(2).trim().split(/\s+/);
636
+ const interpreter = path.basename(command) === "env"
637
+ ? (rest.find((arg) => !arg.startsWith("-")) ?? "")
638
+ : path.basename(command);
639
+ return /^(sh|bash|zsh|dash|ksh)$/.test(path.basename(interpreter));
640
+ }
641
+ catch {
642
+ return false;
643
+ }
644
+ finally {
645
+ if (fd !== undefined)
646
+ fs.closeSync(fd);
647
+ }
648
+ }
649
+ /**
650
+ * Path to a private CODEX_HOME holding ONLY a copy of the operator's
651
+ * `auth.json` — so triage runs with the user's login but none of their
652
+ * config.toml / MCP / project state.
653
+ *
654
+ * The snapshot is REFRESHED when the source `~/.codex/auth.json` changes. The
655
+ * daemon runs capture in-process for its whole lifetime (a setInterval loop),
656
+ * so a one-time copy would pin whatever token was current at boot: a later
657
+ * host-side `codex login` (which rewrites the source with a rotated refresh
658
+ * token) would never reach the snapshot and every triage would 401 until a
659
+ * daemon restart. We compare the SOURCE file's mtime — not the temp copy's,
660
+ * which codex advances in place when it refreshes the access token — so a real
661
+ * re-login is picked up on the next capture while routine in-temp refreshes are
662
+ * ignored. The refreshed token is NEVER copied back to `~/.codex`: that would
663
+ * race a concurrent user `codex login`.
664
+ */
665
+ function ensureIsolatedCodexHome() {
666
+ const sourceHome = resolveSourceCodexHome();
667
+ const authPath = path.join(sourceHome, "auth.json");
668
+ const sourceMtimeMs = statMtimeMsOrNull(authPath);
669
+ const existingHome = isolatedCodexHomePath !== null && fs.existsSync(isolatedCodexHomePath)
670
+ ? isolatedCodexHomePath
671
+ : null;
672
+ if (existingHome !== null && sourceMtimeMs === isolatedCodexAuthSourceMtimeMs) {
673
+ return existingHome;
674
+ }
675
+ const isolatedHome = existingHome ??
676
+ fs.mkdtempSync(path.join(ensureRuntimeTempDir(), "codex-cli-backfill-home-"));
677
+ if (fs.existsSync(authPath)) {
678
+ fs.copyFileSync(authPath, path.join(isolatedHome, "auth.json"));
679
+ isolatedCodexAuthSourceMtimeMs = sourceMtimeMs;
680
+ }
681
+ else {
682
+ // No source auth to copy. We deliberately KEEP any existing snapshot rather
683
+ // than delete it: a host `codex login` rewrites auth.json via atomic temp +
684
+ // rename, so a stat that lands mid-rename can momentarily see no file —
685
+ // deleting on that transient absence would nuke a perfectly good token and
686
+ // 401 the next run, the exact failure this whole mechanism exists to avoid.
687
+ // Known, accepted trade-off: a DELIBERATE `codex logout` (a lasting absence,
688
+ // not a transient one) won't propagate — Onadit keeps using the copied token
689
+ // until the server rejects it (handled by the auth preflight class) or the
690
+ // daemon restarts. Record null so a later reappearance re-copies.
691
+ isolatedCodexAuthSourceMtimeMs = null;
692
+ }
693
+ isolatedCodexHomePath = isolatedHome;
694
+ return isolatedHome;
695
+ }
696
+ function statMtimeMsOrNull(filePath) {
697
+ try {
698
+ return fs.statSync(filePath).mtimeMs;
699
+ }
700
+ catch {
701
+ return null;
702
+ }
703
+ }
704
+ function resolveSourceCodexHome() {
705
+ if (typeof process.env["CODEX_HOME"] === "string") {
706
+ return process.env["CODEX_HOME"];
707
+ }
708
+ return path.join(os.homedir(), ".codex");
709
+ }
710
+ function ensureRuntimeTempDir() {
711
+ if (runtimeTempDirPath && fs.existsSync(runtimeTempDirPath)) {
712
+ return runtimeTempDirPath;
713
+ }
714
+ const runtimeTempDir = fs.mkdtempSync(path.join(resolveWritableTempRoot(), "codex-cli-runner-"));
715
+ runtimeTempDirPath = runtimeTempDir;
716
+ if (!runtimeCleanupRegistered) {
717
+ runtimeCleanupRegistered = true;
718
+ process.once("exit", cleanupRuntimeTempArtifacts);
719
+ }
720
+ return runtimeTempDir;
721
+ }
722
+ function resolveWritableTempRoot() {
723
+ for (const candidate of [os.tmpdir(), "/tmp"]) {
724
+ if (!candidate || !fs.existsSync(candidate)) {
725
+ continue;
726
+ }
727
+ try {
728
+ fs.accessSync(candidate, fs.constants.R_OK | fs.constants.W_OK);
729
+ return candidate;
730
+ }
731
+ catch {
732
+ continue;
733
+ }
734
+ }
735
+ throw new Error(`No writable temp directory available for Codex CLI runtime (TMPDIR=${process.env["TMPDIR"] ?? "<unset>"})`);
736
+ }
737
+ function cleanupRuntimeTempArtifacts() {
738
+ if (runtimeTempDirPath) {
739
+ fs.rmSync(runtimeTempDirPath, { recursive: true, force: true });
740
+ runtimeTempDirPath = null;
741
+ }
742
+ isolatedCodexHomePath = null;
743
+ isolatedCodexAuthSourceMtimeMs = null;
744
+ }
745
+ //# sourceMappingURL=codex-cli-runner.js.map