oh-my-codex 0.21.4 → 0.21.6

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 (404) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +6 -2
  4. package/crates/omx-runtime/src/lease_mutex.rs +379 -0
  5. package/crates/omx-runtime/src/main.rs +4 -0
  6. package/crates/omx-runtime/tests/execution.rs +152 -0
  7. package/dist/agents/native-config.d.ts +0 -1
  8. package/dist/agents/native-config.d.ts.map +1 -1
  9. package/dist/agents/native-config.js +0 -1
  10. package/dist/agents/native-config.js.map +1 -1
  11. package/dist/agents/policy.d.ts +0 -1
  12. package/dist/agents/policy.d.ts.map +1 -1
  13. package/dist/agents/policy.js +0 -5
  14. package/dist/agents/policy.js.map +1 -1
  15. package/dist/auth/__tests__/config-sessions.test.js +15 -1
  16. package/dist/auth/__tests__/config-sessions.test.js.map +1 -1
  17. package/dist/auth/__tests__/hotswap.test.js +80 -0
  18. package/dist/auth/__tests__/hotswap.test.js.map +1 -1
  19. package/dist/auth/__tests__/redact.test.js +94 -1
  20. package/dist/auth/__tests__/redact.test.js.map +1 -1
  21. package/dist/auth/__tests__/storage.test.js +168 -2
  22. package/dist/auth/__tests__/storage.test.js.map +1 -1
  23. package/dist/auth/hotswap.d.ts.map +1 -1
  24. package/dist/auth/hotswap.js +4 -3
  25. package/dist/auth/hotswap.js.map +1 -1
  26. package/dist/auth/paths.d.ts.map +1 -1
  27. package/dist/auth/paths.js +22 -0
  28. package/dist/auth/paths.js.map +1 -1
  29. package/dist/auth/redact.d.ts +5 -0
  30. package/dist/auth/redact.d.ts.map +1 -1
  31. package/dist/auth/redact.js +79 -0
  32. package/dist/auth/redact.js.map +1 -1
  33. package/dist/auth/sessions.d.ts.map +1 -1
  34. package/dist/auth/sessions.js +21 -10
  35. package/dist/auth/sessions.js.map +1 -1
  36. package/dist/auth/storage.d.ts.map +1 -1
  37. package/dist/auth/storage.js +75 -35
  38. package/dist/auth/storage.js.map +1 -1
  39. package/dist/autoresearch/runtime.d.ts +0 -1
  40. package/dist/autoresearch/runtime.d.ts.map +1 -1
  41. package/dist/autoresearch/runtime.js +0 -11
  42. package/dist/autoresearch/runtime.js.map +1 -1
  43. package/dist/catalog/reader.d.ts +0 -1
  44. package/dist/catalog/reader.d.ts.map +1 -1
  45. package/dist/catalog/reader.js +0 -4
  46. package/dist/catalog/reader.js.map +1 -1
  47. package/dist/cli/__tests__/doctor-process-identity-readiness.test.js +1 -1
  48. package/dist/cli/__tests__/doctor-process-identity-readiness.test.js.map +1 -1
  49. package/dist/cli/__tests__/doctor-state-root-binding.test.js +36 -0
  50. package/dist/cli/__tests__/doctor-state-root-binding.test.js.map +1 -1
  51. package/dist/cli/__tests__/doctor-warning-copy.test.js +100 -4
  52. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  53. package/dist/cli/__tests__/exec.test.js +10 -5
  54. package/dist/cli/__tests__/exec.test.js.map +1 -1
  55. package/dist/cli/__tests__/index.test.js +130 -7
  56. package/dist/cli/__tests__/index.test.js.map +1 -1
  57. package/dist/cli/__tests__/launch-fallback.test.js +34 -0
  58. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  59. package/dist/cli/__tests__/package-bin-contract.test.js +1 -1
  60. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
  61. package/dist/cli/__tests__/plugin-cache-symlink-provenance-3552.test.js +17 -13
  62. package/dist/cli/__tests__/plugin-cache-symlink-provenance-3552.test.js.map +1 -1
  63. package/dist/cli/__tests__/setup-agents-overwrite.test.js +11 -9
  64. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
  65. package/dist/cli/__tests__/setup-install-mode.test.js +66 -0
  66. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  67. package/dist/cli/__tests__/setup-reasoning-preserve.test.d.ts +2 -0
  68. package/dist/cli/__tests__/setup-reasoning-preserve.test.d.ts.map +1 -0
  69. package/dist/cli/__tests__/setup-reasoning-preserve.test.js +198 -0
  70. package/dist/cli/__tests__/setup-reasoning-preserve.test.js.map +1 -0
  71. package/dist/cli/__tests__/team.test.js +67 -1
  72. package/dist/cli/__tests__/team.test.js.map +1 -1
  73. package/dist/cli/__tests__/update.test.js +47 -0
  74. package/dist/cli/__tests__/update.test.js.map +1 -1
  75. package/dist/cli/auth.d.ts +0 -1
  76. package/dist/cli/auth.d.ts.map +1 -1
  77. package/dist/cli/auth.js +0 -4
  78. package/dist/cli/auth.js.map +1 -1
  79. package/dist/cli/codex-feature-probe.d.ts +2 -1
  80. package/dist/cli/codex-feature-probe.d.ts.map +1 -1
  81. package/dist/cli/codex-feature-probe.js +4 -2
  82. package/dist/cli/codex-feature-probe.js.map +1 -1
  83. package/dist/cli/codex-home.d.ts +14 -0
  84. package/dist/cli/codex-home.d.ts.map +1 -1
  85. package/dist/cli/codex-home.js +21 -0
  86. package/dist/cli/codex-home.js.map +1 -1
  87. package/dist/cli/doctor.d.ts +2 -0
  88. package/dist/cli/doctor.d.ts.map +1 -1
  89. package/dist/cli/doctor.js +122 -9
  90. package/dist/cli/doctor.js.map +1 -1
  91. package/dist/cli/hooks.d.ts +0 -2
  92. package/dist/cli/hooks.d.ts.map +1 -1
  93. package/dist/cli/hooks.js +0 -3
  94. package/dist/cli/hooks.js.map +1 -1
  95. package/dist/cli/index.d.ts +1 -0
  96. package/dist/cli/index.d.ts.map +1 -1
  97. package/dist/cli/index.js +97 -8
  98. package/dist/cli/index.js.map +1 -1
  99. package/dist/cli/launch-credential-provenance.d.ts +49 -0
  100. package/dist/cli/launch-credential-provenance.d.ts.map +1 -0
  101. package/dist/cli/launch-credential-provenance.js +163 -0
  102. package/dist/cli/launch-credential-provenance.js.map +1 -0
  103. package/dist/cli/setup.d.ts.map +1 -1
  104. package/dist/cli/setup.js +11 -3
  105. package/dist/cli/setup.js.map +1 -1
  106. package/dist/cli/team.d.ts.map +1 -1
  107. package/dist/cli/team.js +23 -7
  108. package/dist/cli/team.js.map +1 -1
  109. package/dist/cli/uninstall.js +1 -1
  110. package/dist/cli/uninstall.js.map +1 -1
  111. package/dist/cli/update.d.ts.map +1 -1
  112. package/dist/cli/update.js +7 -0
  113. package/dist/cli/update.js.map +1 -1
  114. package/dist/compat/__tests__/doctor-contract.test.js +5 -1
  115. package/dist/compat/__tests__/doctor-contract.test.js.map +1 -1
  116. package/dist/config/__tests__/codex-feature-flags.test.js +10 -1
  117. package/dist/config/__tests__/codex-feature-flags.test.js.map +1 -1
  118. package/dist/config/__tests__/generator-notify.test.js +9 -0
  119. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  120. package/dist/config/codex-feature-flags.d.ts +4 -0
  121. package/dist/config/codex-feature-flags.d.ts.map +1 -1
  122. package/dist/config/codex-feature-flags.js +17 -1
  123. package/dist/config/codex-feature-flags.js.map +1 -1
  124. package/dist/config/generator.d.ts +8 -1
  125. package/dist/config/generator.d.ts.map +1 -1
  126. package/dist/config/generator.js +24 -84
  127. package/dist/config/generator.js.map +1 -1
  128. package/dist/evals/astra-defaults/__tests__/report.test.d.ts +2 -0
  129. package/dist/evals/astra-defaults/__tests__/report.test.d.ts.map +1 -0
  130. package/dist/evals/astra-defaults/__tests__/report.test.js +127 -0
  131. package/dist/evals/astra-defaults/__tests__/report.test.js.map +1 -0
  132. package/dist/evals/astra-defaults/__tests__/stage-transition.test.d.ts +2 -0
  133. package/dist/evals/astra-defaults/__tests__/stage-transition.test.d.ts.map +1 -0
  134. package/dist/evals/astra-defaults/__tests__/stage-transition.test.js +260 -0
  135. package/dist/evals/astra-defaults/__tests__/stage-transition.test.js.map +1 -0
  136. package/dist/evals/astra-defaults/__tests__/suite.test.d.ts +2 -0
  137. package/dist/evals/astra-defaults/__tests__/suite.test.d.ts.map +1 -0
  138. package/dist/evals/astra-defaults/__tests__/suite.test.js +132 -0
  139. package/dist/evals/astra-defaults/__tests__/suite.test.js.map +1 -0
  140. package/dist/evals/astra-defaults/index.d.ts +4 -0
  141. package/dist/evals/astra-defaults/index.d.ts.map +1 -0
  142. package/dist/evals/astra-defaults/index.js +4 -0
  143. package/dist/evals/astra-defaults/index.js.map +1 -0
  144. package/dist/evals/astra-defaults/report.d.ts +33 -0
  145. package/dist/evals/astra-defaults/report.d.ts.map +1 -0
  146. package/dist/evals/astra-defaults/report.js +224 -0
  147. package/dist/evals/astra-defaults/report.js.map +1 -0
  148. package/dist/evals/astra-defaults/suite.d.ts +13 -0
  149. package/dist/evals/astra-defaults/suite.d.ts.map +1 -0
  150. package/dist/evals/astra-defaults/suite.js +319 -0
  151. package/dist/evals/astra-defaults/suite.js.map +1 -0
  152. package/dist/evals/astra-defaults/types.d.ts +128 -0
  153. package/dist/evals/astra-defaults/types.d.ts.map +1 -0
  154. package/dist/evals/astra-defaults/types.js +9 -0
  155. package/dist/evals/astra-defaults/types.js.map +1 -0
  156. package/dist/evals/astra-defaults/usage.d.ts +16 -0
  157. package/dist/evals/astra-defaults/usage.d.ts.map +1 -0
  158. package/dist/evals/astra-defaults/usage.js +44 -0
  159. package/dist/evals/astra-defaults/usage.js.map +1 -0
  160. package/dist/hooks/__tests__/agents-overlay.test.js +13 -123
  161. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  162. package/dist/hooks/__tests__/anti-slop-workflow.test.js +2 -2
  163. package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +1 -1
  164. package/dist/hooks/__tests__/code-review-skill-contract.test.js +3 -3
  165. package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
  166. package/dist/hooks/__tests__/deep-interview-contract.test.js +6 -7
  167. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  168. package/dist/hooks/__tests__/keyword-detector.test.js +6 -4
  169. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  170. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +16 -33
  171. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
  172. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +9 -29
  173. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
  174. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js +9 -29
  175. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js.map +1 -1
  176. package/dist/hooks/__tests__/ordinary-task-routing.test.d.ts +2 -0
  177. package/dist/hooks/__tests__/ordinary-task-routing.test.d.ts.map +1 -0
  178. package/dist/hooks/__tests__/ordinary-task-routing.test.js +125 -0
  179. package/dist/hooks/__tests__/ordinary-task-routing.test.js.map +1 -0
  180. package/dist/hooks/__tests__/prompt-guidance-contract.test.js +10 -7
  181. package/dist/hooks/__tests__/prompt-guidance-contract.test.js.map +1 -1
  182. package/dist/hooks/__tests__/session.test.js +41 -6
  183. package/dist/hooks/__tests__/session.test.js.map +1 -1
  184. package/dist/hooks/__tests__/sunset-routing-contract.test.js +23 -0
  185. package/dist/hooks/__tests__/sunset-routing-contract.test.js.map +1 -1
  186. package/dist/hooks/__tests__/visual-ralph-skill.test.js +3 -3
  187. package/dist/hooks/__tests__/visual-ralph-skill.test.js.map +1 -1
  188. package/dist/hooks/agents-overlay.d.ts +10 -3
  189. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  190. package/dist/hooks/agents-overlay.js +12 -68
  191. package/dist/hooks/agents-overlay.js.map +1 -1
  192. package/dist/hooks/keyword-detector.js +4 -4
  193. package/dist/hooks/keyword-detector.js.map +1 -1
  194. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  195. package/dist/hooks/keyword-registry.js +0 -2
  196. package/dist/hooks/keyword-registry.js.map +1 -1
  197. package/dist/hooks/session.d.ts +1 -1
  198. package/dist/hooks/session.d.ts.map +1 -1
  199. package/dist/hooks/session.js +85 -29
  200. package/dist/hooks/session.js.map +1 -1
  201. package/dist/hooks/sunset-stub.d.ts +0 -2
  202. package/dist/hooks/sunset-stub.d.ts.map +1 -1
  203. package/dist/hooks/sunset-stub.js +8 -14
  204. package/dist/hooks/sunset-stub.js.map +1 -1
  205. package/dist/hud/__tests__/index.test.js +130 -2
  206. package/dist/hud/__tests__/index.test.js.map +1 -1
  207. package/dist/hud/__tests__/reconcile.test.js +214 -0
  208. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  209. package/dist/hud/__tests__/render.test.js +155 -4
  210. package/dist/hud/__tests__/render.test.js.map +1 -1
  211. package/dist/hud/__tests__/roster-height-realtmux.test.d.ts +2 -0
  212. package/dist/hud/__tests__/roster-height-realtmux.test.d.ts.map +1 -0
  213. package/dist/hud/__tests__/roster-height-realtmux.test.js +70 -0
  214. package/dist/hud/__tests__/roster-height-realtmux.test.js.map +1 -0
  215. package/dist/hud/__tests__/state.test.js +92 -1
  216. package/dist/hud/__tests__/state.test.js.map +1 -1
  217. package/dist/hud/__tests__/tmux.test.js +37 -2
  218. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  219. package/dist/hud/__tests__/watch-owner.test.d.ts +2 -0
  220. package/dist/hud/__tests__/watch-owner.test.d.ts.map +1 -0
  221. package/dist/hud/__tests__/watch-owner.test.js +125 -0
  222. package/dist/hud/__tests__/watch-owner.test.js.map +1 -0
  223. package/dist/hud/__tests__/watch-realtmux.test.js +113 -2
  224. package/dist/hud/__tests__/watch-realtmux.test.js.map +1 -1
  225. package/dist/hud/index.d.ts +5 -0
  226. package/dist/hud/index.d.ts.map +1 -1
  227. package/dist/hud/index.js +61 -41
  228. package/dist/hud/index.js.map +1 -1
  229. package/dist/hud/reconcile.d.ts +2 -1
  230. package/dist/hud/reconcile.d.ts.map +1 -1
  231. package/dist/hud/reconcile.js +28 -3
  232. package/dist/hud/reconcile.js.map +1 -1
  233. package/dist/hud/render.d.ts +1 -1
  234. package/dist/hud/render.d.ts.map +1 -1
  235. package/dist/hud/render.js +81 -7
  236. package/dist/hud/render.js.map +1 -1
  237. package/dist/hud/state.d.ts.map +1 -1
  238. package/dist/hud/state.js +38 -3
  239. package/dist/hud/state.js.map +1 -1
  240. package/dist/hud/tmux.d.ts +4 -0
  241. package/dist/hud/tmux.d.ts.map +1 -1
  242. package/dist/hud/tmux.js +67 -13
  243. package/dist/hud/tmux.js.map +1 -1
  244. package/dist/hud/types.d.ts +9 -0
  245. package/dist/hud/types.d.ts.map +1 -1
  246. package/dist/hud/types.js.map +1 -1
  247. package/dist/hud/watch-owner.d.ts +9 -0
  248. package/dist/hud/watch-owner.d.ts.map +1 -0
  249. package/dist/hud/watch-owner.js +54 -0
  250. package/dist/hud/watch-owner.js.map +1 -0
  251. package/dist/leader/__tests__/contract.test.js +9 -2
  252. package/dist/leader/__tests__/contract.test.js.map +1 -1
  253. package/dist/leader/contract.d.ts +2 -2
  254. package/dist/leader/contract.d.ts.map +1 -1
  255. package/dist/leader/contract.js +2 -2
  256. package/dist/leader/contract.js.map +1 -1
  257. package/dist/notifications/__tests__/formatter.test.js +10 -0
  258. package/dist/notifications/__tests__/formatter.test.js.map +1 -1
  259. package/dist/notifications/__tests__/tmux.test.js +10 -0
  260. package/dist/notifications/__tests__/tmux.test.js.map +1 -1
  261. package/dist/notifications/formatter.js +1 -1
  262. package/dist/notifications/formatter.js.map +1 -1
  263. package/dist/notifications/tmux.js +1 -1
  264. package/dist/notifications/tmux.js.map +1 -1
  265. package/dist/ralplan/__tests__/advisory-activation.test.js +3 -3
  266. package/dist/ralplan/__tests__/advisory-activation.test.js.map +1 -1
  267. package/dist/runtime/__tests__/bridge.test.js +91 -23
  268. package/dist/runtime/__tests__/bridge.test.js.map +1 -1
  269. package/dist/runtime/bridge.d.ts.map +1 -1
  270. package/dist/runtime/bridge.js +7 -1
  271. package/dist/runtime/bridge.js.map +1 -1
  272. package/dist/scripts/__tests__/codex-native-hook.test.js +44 -16
  273. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  274. package/dist/scripts/__tests__/issue-3679-team-dispatch-non-directory.test.d.ts +2 -0
  275. package/dist/scripts/__tests__/issue-3679-team-dispatch-non-directory.test.d.ts.map +1 -0
  276. package/dist/scripts/__tests__/issue-3679-team-dispatch-non-directory.test.js +83 -0
  277. package/dist/scripts/__tests__/issue-3679-team-dispatch-non-directory.test.js.map +1 -0
  278. package/dist/scripts/__tests__/prompt-inventory.test.js +83 -2
  279. package/dist/scripts/__tests__/prompt-inventory.test.js.map +1 -1
  280. package/dist/scripts/__tests__/smoke-packed-install.test.js +75 -23
  281. package/dist/scripts/__tests__/smoke-packed-install.test.js.map +1 -1
  282. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  283. package/dist/scripts/codex-native-hook.js +6 -61
  284. package/dist/scripts/codex-native-hook.js.map +1 -1
  285. package/dist/scripts/eval/eval-astra-defaults.d.ts +2 -0
  286. package/dist/scripts/eval/eval-astra-defaults.d.ts.map +1 -0
  287. package/dist/scripts/eval/eval-astra-defaults.js +52 -0
  288. package/dist/scripts/eval/eval-astra-defaults.js.map +1 -0
  289. package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
  290. package/dist/scripts/notify-hook/team-dispatch.js +20 -1
  291. package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
  292. package/dist/scripts/prompt-inventory.d.ts +17 -0
  293. package/dist/scripts/prompt-inventory.d.ts.map +1 -1
  294. package/dist/scripts/prompt-inventory.js +64 -11
  295. package/dist/scripts/prompt-inventory.js.map +1 -1
  296. package/dist/scripts/run-test-files.js +1 -0
  297. package/dist/scripts/run-test-files.js.map +1 -1
  298. package/dist/scripts/smoke-packed-install.d.ts +1 -1
  299. package/dist/scripts/smoke-packed-install.d.ts.map +1 -1
  300. package/dist/scripts/smoke-packed-install.js +46 -17
  301. package/dist/scripts/smoke-packed-install.js.map +1 -1
  302. package/dist/state/__tests__/mode-binding-lease.test.js +58 -2
  303. package/dist/state/__tests__/mode-binding-lease.test.js.map +1 -1
  304. package/dist/state/mode-binding-lease-helper.js +9 -41
  305. package/dist/state/mode-binding-lease-helper.js.map +1 -1
  306. package/dist/state/mode-binding-lease.d.ts.map +1 -1
  307. package/dist/state/mode-binding-lease.js +32 -10
  308. package/dist/state/mode-binding-lease.js.map +1 -1
  309. package/dist/team/__tests__/runtime.test.js +14 -1
  310. package/dist/team/__tests__/runtime.test.js.map +1 -1
  311. package/dist/team/__tests__/scaling.test.js +5 -1
  312. package/dist/team/__tests__/scaling.test.js.map +1 -1
  313. package/dist/team/__tests__/tmux-session.test.js +124 -0
  314. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  315. package/dist/team/__tests__/tmux-source-authority-realtmux.test.js +2 -2
  316. package/dist/team/__tests__/tmux-source-authority-realtmux.test.js.map +1 -1
  317. package/dist/team/runtime-cli.js +4 -2
  318. package/dist/team/runtime-cli.js.map +1 -1
  319. package/dist/team/runtime.d.ts +11 -0
  320. package/dist/team/runtime.d.ts.map +1 -1
  321. package/dist/team/runtime.js +24 -3
  322. package/dist/team/runtime.js.map +1 -1
  323. package/dist/team/scaling.d.ts.map +1 -1
  324. package/dist/team/scaling.js +11 -5
  325. package/dist/team/scaling.js.map +1 -1
  326. package/dist/team/state.d.ts +1 -1
  327. package/dist/team/state.d.ts.map +1 -1
  328. package/dist/team/state.js +5 -3
  329. package/dist/team/state.js.map +1 -1
  330. package/dist/team/team-identity.d.ts.map +1 -1
  331. package/dist/team/team-identity.js +8 -14
  332. package/dist/team/team-identity.js.map +1 -1
  333. package/dist/team/tmux-session.d.ts.map +1 -1
  334. package/dist/team/tmux-session.js +26 -13
  335. package/dist/team/tmux-session.js.map +1 -1
  336. package/dist/ultragoal/__tests__/artifacts.test.js +43 -0
  337. package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
  338. package/dist/ultragoal/artifacts.d.ts +1 -0
  339. package/dist/ultragoal/artifacts.d.ts.map +1 -1
  340. package/dist/ultragoal/artifacts.js +9 -5
  341. package/dist/ultragoal/artifacts.js.map +1 -1
  342. package/dist/utils/__tests__/file-durability.test.js +20 -1
  343. package/dist/utils/__tests__/file-durability.test.js.map +1 -1
  344. package/dist/utils/__tests__/platform-command.test.js +39 -1
  345. package/dist/utils/__tests__/platform-command.test.js.map +1 -1
  346. package/dist/utils/__tests__/safe-json.test.d.ts +2 -0
  347. package/dist/utils/__tests__/safe-json.test.d.ts.map +1 -0
  348. package/dist/utils/__tests__/safe-json.test.js +19 -0
  349. package/dist/utils/__tests__/safe-json.test.js.map +1 -0
  350. package/dist/utils/__tests__/toml.test.d.ts +2 -0
  351. package/dist/utils/__tests__/toml.test.d.ts.map +1 -0
  352. package/dist/utils/__tests__/toml.test.js +36 -0
  353. package/dist/utils/__tests__/toml.test.js.map +1 -0
  354. package/dist/utils/file-durability.d.ts +8 -0
  355. package/dist/utils/file-durability.d.ts.map +1 -1
  356. package/dist/utils/file-durability.js +19 -1
  357. package/dist/utils/file-durability.js.map +1 -1
  358. package/dist/utils/platform-command.d.ts.map +1 -1
  359. package/dist/utils/platform-command.js +24 -7
  360. package/dist/utils/platform-command.js.map +1 -1
  361. package/dist/utils/safe-json.d.ts +0 -1
  362. package/dist/utils/safe-json.d.ts.map +1 -1
  363. package/dist/utils/safe-json.js +0 -10
  364. package/dist/utils/safe-json.js.map +1 -1
  365. package/dist/utils/toml-source.d.ts +13 -0
  366. package/dist/utils/toml-source.d.ts.map +1 -0
  367. package/dist/utils/toml-source.js +76 -0
  368. package/dist/utils/toml-source.js.map +1 -0
  369. package/dist/utils/toml.d.ts.map +1 -1
  370. package/dist/utils/toml.js +15 -6
  371. package/dist/utils/toml.js.map +1 -1
  372. package/dist/verification/__tests__/ci-rust-gates.test.js +11 -0
  373. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
  374. package/package.json +2 -2
  375. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  376. package/plugins/oh-my-codex/skills/ai-slop-cleaner/SKILL.md +2 -3
  377. package/plugins/oh-my-codex/skills/best-practice-research/SKILL.md +1 -1
  378. package/plugins/oh-my-codex/skills/code-review/SKILL.md +1 -1
  379. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +13 -22
  380. package/plugins/oh-my-codex/skills/design/SKILL.md +1 -1
  381. package/plugins/oh-my-codex/skills/hud/SKILL.md +1 -1
  382. package/plugins/oh-my-codex/skills/plan/SKILL.md +1 -1
  383. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +9 -74
  384. package/plugins/oh-my-codex/skills/visual-ralph/SKILL.md +7 -7
  385. package/skills/ai-slop-cleaner/SKILL.md +2 -3
  386. package/skills/best-practice-research/SKILL.md +1 -1
  387. package/skills/code-review/SKILL.md +1 -1
  388. package/skills/deep-interview/SKILL.md +13 -22
  389. package/skills/design/SKILL.md +1 -1
  390. package/skills/hud/SKILL.md +1 -1
  391. package/skills/plan/SKILL.md +1 -1
  392. package/skills/ralplan/SKILL.md +9 -74
  393. package/skills/visual-ralph/SKILL.md +7 -7
  394. package/src/scripts/__tests__/codex-native-hook.test.ts +43 -16
  395. package/src/scripts/__tests__/issue-3679-team-dispatch-non-directory.test.ts +95 -0
  396. package/src/scripts/__tests__/prompt-inventory.test.ts +84 -1
  397. package/src/scripts/__tests__/smoke-packed-install.test.ts +75 -23
  398. package/src/scripts/codex-native-hook.ts +6 -61
  399. package/src/scripts/eval/eval-astra-defaults.ts +54 -0
  400. package/src/scripts/notify-hook/team-dispatch.ts +19 -1
  401. package/src/scripts/prompt-inventory.ts +71 -12
  402. package/src/scripts/run-test-files.ts +1 -0
  403. package/src/scripts/smoke-packed-install.ts +56 -17
  404. package/templates/AGENTS.md +4 -7
@@ -1 +1 @@
1
- {"version":3,"file":"native-config.js","sourceRoot":"","sources":["../../src/agents/native-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-config.js","sourceRoot":"","sources":["../../src/agents/native-config.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@ export declare function isNativeAgentInstallableStatus(status: CatalogEntryStatu
4
4
  export declare function getCatalogAgentStatusByName(manifest: Pick<CatalogManifest, "agents">): Map<string, CatalogEntryStatus>;
5
5
  export declare function getCatalogAgentByName(manifest: Pick<CatalogManifest, "agents">): Map<string, CatalogAgentEntry>;
6
6
  export declare function getInstallableNativeAgentNames(manifest: Pick<CatalogManifest, "agents">): Set<string>;
7
- export declare function getNonInstallableNativeAgentNames(manifest: Pick<CatalogManifest, "agents">): Set<string>;
8
7
  export declare function isSetupPromptAssetName(promptName: string, manifest: Pick<CatalogManifest, "agents">): boolean;
9
8
  export declare function assertNativeAgentCanonicalTargets(manifest: Pick<CatalogManifest, "agents">): void;
10
9
  //# sourceMappingURL=policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/agents/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,8BAA8B,aAGzC,CAAC;AAEH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAC9C,OAAO,CAET;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAEjC;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEhC;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,GAAG,CAAC,MAAM,CAAC,CAMb;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,GAAG,CAAC,MAAM,CAAC,CAMb;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,OAAO,CAKT;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,IAAI,CAwCN"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/agents/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,8BAA8B,aAGzC,CAAC;AAEH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAC9C,OAAO,CAET;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAEjC;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEhC;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,GAAG,CAAC,MAAM,CAAC,CAMb;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,OAAO,CAKT;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GACxC,IAAI,CAwCN"}
@@ -16,11 +16,6 @@ export function getInstallableNativeAgentNames(manifest) {
16
16
  .filter((agent) => isNativeAgentInstallableStatus(agent.status))
17
17
  .map((agent) => agent.name));
18
18
  }
19
- export function getNonInstallableNativeAgentNames(manifest) {
20
- return new Set(manifest.agents
21
- .filter((agent) => !isNativeAgentInstallableStatus(agent.status))
22
- .map((agent) => agent.name));
23
- }
24
19
  export function isSetupPromptAssetName(promptName, manifest) {
25
20
  return (manifest.agents.some((agent) => agent.name === promptName) ||
26
21
  NON_NATIVE_AGENT_PROMPT_ASSETS.has(promptName));
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/agents/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/agents/policy.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAC;IACpD,iBAAiB;IACjB,mBAAmB;CACpB,CAAC,CAAC;AAEH,MAAM,UAAU,8BAA8B,CAC5C,MAA+C;IAE/C,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,UAAU,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAAyC;IAEzC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAyC;IAEzC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAAyC;IAEzC,OAAO,IAAI,GAAG,CACZ,QAAQ,CAAC,MAAM;SACZ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,UAAkB,EAClB,QAAyC;IAEzC,OAAO,CACL,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;QAC1D,8BAA8B,CAAC,GAAG,CAAC,UAAU,CAAC,CAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,QAAyC;IAEzC,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAE/C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAS;QAEpE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb;gBACE,gCAAgC;gBAChC,SAAS,KAAK,CAAC,IAAI,EAAE;gBACrB,oEAAoE;aACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb;gBACE,gCAAgC;gBAChC,SAAS,KAAK,CAAC,IAAI,EAAE;gBACrB,aAAa,KAAK,CAAC,SAAS,EAAE;gBAC9B,oEAAoE;aACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb;gBACE,gCAAgC;gBAChC,SAAS,KAAK,CAAC,IAAI,EAAE;gBACrB,aAAa,KAAK,CAAC,SAAS,EAAE;gBAC9B,oBAAoB,SAAS,CAAC,MAAM,EAAE;gBACtC,oEAAoE;aACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -4,7 +4,7 @@ import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
4
4
  import { tmpdir } from "node:os";
5
5
  import { join } from "node:path";
6
6
  import { readAuthConfig } from "../config.js";
7
- import { findLatestRolloutSession } from "../sessions.js";
7
+ import { extractRolloutSessionId, findLatestRolloutSession } from "../sessions.js";
8
8
  describe("auth config", () => {
9
9
  it("merges project keys over user keys per absent key fallback", async () => {
10
10
  const home = await mkdtemp(join(tmpdir(), "omx-auth-config-home-"));
@@ -26,6 +26,20 @@ describe("auth config", () => {
26
26
  });
27
27
  });
28
28
  describe("Codex rollout session heuristic", () => {
29
+ it("uses session_meta payload identity instead of the timestamped filename", async () => {
30
+ const home = await mkdtemp(join(tmpdir(), "omx-auth-session-id-"));
31
+ try {
32
+ const id = "019c6e27-e55b-73d1-87d8-4e01f1f75043";
33
+ const file = join(home, `rollout-2026-09-10T10-00-00-${id}.jsonl`);
34
+ await writeFile(file, JSON.stringify({ type: "session_meta", payload: { id } }) + "\n");
35
+ assert.equal(await extractRolloutSessionId(file), id);
36
+ await writeFile(file, "invalid metadata\n");
37
+ assert.equal(await extractRolloutSessionId(file), id);
38
+ }
39
+ finally {
40
+ await rm(home, { recursive: true, force: true });
41
+ }
42
+ });
29
43
  it("returns newest rollout id by mtime", async () => {
30
44
  const home = await mkdtemp(join(tmpdir(), "omx-auth-sessions-"));
31
45
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"config-sessions.test.js","sourceRoot":"","sources":["../../../src/auth/__tests__/config-sessions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-sessions.test.js","sourceRoot":"","sources":["../../../src/auth/__tests__/config-sessions.test.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,86 @@ async function writeAuthSlot(home, slot = "first") {
45
45
  return slotPath;
46
46
  }
47
47
  describe("auth hotswap pointer abort lifecycle", () => {
48
+ it("redacts OAuth fields split across child stderr chunks", { skip: process.platform === "win32" }, async (t) => {
49
+ const home = await mkdtemp(join(tmpdir(), "omx-hotswap-stderr-"));
50
+ let output = "";
51
+ const capture = t.mock.method(process.stderr, "write", (chunk) => {
52
+ output += String(chunk);
53
+ return true;
54
+ });
55
+ try {
56
+ await writeAuthSlot(home);
57
+ const bin = join(home, "bin");
58
+ await mkdir(bin);
59
+ const executable = join(bin, "codex");
60
+ await writeFile(executable, `#!${process.execPath}\nprocess.stderr.write('{"access_'); setTimeout(() => { process.stderr.write('token":"synthetic-secret"}\\n'); process.exitCode = 1; }, 100);\n`);
61
+ await chmod(executable, 0o755);
62
+ const status = await runAuthHotswap({
63
+ cwd: home, home, env: { PATH: bin }, argv: [], lifecycle: lifecycle(),
64
+ });
65
+ assert.equal(status, 1);
66
+ assert.match(output, /REDACTED/);
67
+ assert.doesNotMatch(output, /synthetic-secret/);
68
+ }
69
+ finally {
70
+ capture.mock.restore();
71
+ await rm(home, { recursive: true, force: true });
72
+ }
73
+ });
74
+ it("still detects a quota line that follows an oversized stderr record", { skip: process.platform === "win32" }, async (t) => {
75
+ const cwd = await mkdtemp(join(tmpdir(), "omx-hotswap-oversized-quota-"));
76
+ const home = join(cwd, "home");
77
+ const runtimeHome = join(cwd, "runtime-codex-home");
78
+ const binDir = join(cwd, "bin");
79
+ const codexLog = join(cwd, "codex.log");
80
+ try {
81
+ await writeAuthSlot(home);
82
+ await writeFile(join(home, ".omx", "auth", "second.json"), '{"access_token":"second-secret"}\n');
83
+ await writeFile(join(home, ".omx", "auth", "slots.json"), JSON.stringify({
84
+ version: 1,
85
+ currentSlot: "first",
86
+ slots: [
87
+ { slot: "first", createdAt: "now", updatedAt: "now" },
88
+ { slot: "second", createdAt: "now", updatedAt: "now" },
89
+ ],
90
+ }));
91
+ await mkdir(binDir, { recursive: true });
92
+ // A verbose upstream payload overflows the redaction buffer before the
93
+ // quota marker. Suppressing the rest of stderr would hide the rotation
94
+ // signal and turn a recoverable quota exit into a plain failure.
95
+ await writeFile(join(binDir, "codex"), `#!/bin/sh\nprintf 'spawned\\n' >> ${JSON.stringify(codexLog)}\nawk 'BEGIN { while (i++ < 70000) printf "x" ; printf "\\n" }' >&2\necho 'error: 429 quota exceeded' >&2\nexit 1\n`);
96
+ await chmod(join(binDir, "codex"), 0o755);
97
+ let captured = "";
98
+ const capture = t.mock.method(process.stderr, "write", (chunk) => {
99
+ captured += String(chunk);
100
+ return true;
101
+ });
102
+ try {
103
+ await runAuthHotswap({
104
+ cwd,
105
+ home,
106
+ env: { CODEX_HOME: runtimeHome, PATH: `${binDir}:/usr/bin:/bin` },
107
+ argv: [],
108
+ lifecycle: lifecycle({
109
+ prepareCodexHomeForLaunch: async () => ({ codexHomeOverride: runtimeHome }),
110
+ }),
111
+ });
112
+ }
113
+ finally {
114
+ capture.mock.restore();
115
+ }
116
+ assert.equal(await readFile(codexLog, "utf-8"), "spawned\n");
117
+ // Suppressing the rest of stderr would classify this as a plain failure,
118
+ // leaving the slot unmarked and skipping rotation entirely.
119
+ assert.match(captured, /quota detected/);
120
+ const metadata = JSON.parse(await readFile(join(home, ".omx", "auth", "slots.json"), "utf-8"));
121
+ assert.ok(metadata.slots.find((slot) => slot.slot === "first")?.exhaustedAt);
122
+ assert.doesNotMatch(captured, /xxx/);
123
+ }
124
+ finally {
125
+ await rm(cwd, { recursive: true, force: true });
126
+ }
127
+ });
48
128
  it("skips the initial slot mutation and postLaunch for a typed pointer abort", async () => {
49
129
  const cwd = await mkdtemp(join(tmpdir(), "omx-hotswap-pointer-abort-"));
50
130
  const home = join(cwd, "home");
@@ -1 +1 @@
1
- {"version":3,"file":"hotswap.test.js","sourceRoot":"","sources":["../../../src/auth/__tests__/hotswap.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hotswap.test.js","sourceRoot":"","sources":["../../../src/auth/__tests__/hotswap.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,100 @@
1
1
  import { describe, it } from "node:test";
2
2
  import assert from "node:assert/strict";
3
- import { redactAuthSecrets } from "../redact.js";
3
+ import { createAuthStderrRedactor, redactAuthSecrets } from "../redact.js";
4
4
  describe("auth secret redaction", () => {
5
+ it("does not release a multiline token value after overflowing its field prefix", () => {
6
+ const prefix = '{"access_token":\n' + " ".repeat(65 * 1024);
7
+ const record = prefix + '\n"synthetic-secret"}\n';
8
+ for (const split of [0, 16, 64 * 1024, prefix.length, record.length]) {
9
+ let output = "";
10
+ const redactor = createAuthStderrRedactor((text) => { output += text; });
11
+ redactor.write(Buffer.from(record.slice(0, split)));
12
+ redactor.write(Buffer.from(record.slice(split)));
13
+ redactor.end();
14
+ assert.doesNotMatch(output, /synthetic-secret/);
15
+ }
16
+ });
17
+ it("redacts every byte split of token records, including multiline fields and UTF-8", () => {
18
+ for (const record of [
19
+ '{"access_token":"synthetic-secret"}\n',
20
+ '{"refresh_token":\n "synthetic-secret"}\n',
21
+ '{"id_token"\n :\n "synthetic-secret"}\n',
22
+ "Bearer synthetic-secret\n",
23
+ 'árvíz {"access_token":"synthetic-secret"}',
24
+ ]) {
25
+ const bytes = Buffer.from(record);
26
+ for (let split = 0; split <= bytes.length; split++) {
27
+ let output = "";
28
+ const redactor = createAuthStderrRedactor((text) => { output += text; });
29
+ redactor.write(bytes.subarray(0, split));
30
+ redactor.write(bytes.subarray(split));
31
+ redactor.end();
32
+ assert.equal(output, redactAuthSecrets(record), `split ${split}: ${record}`);
33
+ assert.doesNotMatch(output, /synthetic-secret/);
34
+ }
35
+ }
36
+ });
37
+ it("suppresses an oversized record but resumes at the next safe boundary", () => {
38
+ let output = "";
39
+ const redactor = createAuthStderrRedactor((text) => { output += text; });
40
+ redactor.write(Buffer.from("safe line\n"));
41
+ assert.equal(output, "safe line\n");
42
+ redactor.write(Buffer.from('{"access_token":"' + "x".repeat(65 * 1024)));
43
+ redactor.write(Buffer.from('synthetic-secret"}\nquota exceeded\n'));
44
+ redactor.end();
45
+ assert.doesNotMatch(output, /synthetic-secret|xxx/);
46
+ assert.match(output, /oversized stderr record suppressed\nquota exceeded\n$/);
47
+ });
48
+ it("preserves a quota line when the oversized record and next line share one write", () => {
49
+ let output = "";
50
+ const redactor = createAuthStderrRedactor((text) => { output += text; });
51
+ redactor.write(Buffer.from(`${"x".repeat(70_000)}\nerror: 429 quota exceeded\n`));
52
+ redactor.end();
53
+ assert.equal(output, "[omx auth] oversized stderr record suppressed\nerror: 429 quota exceeded\n");
54
+ });
55
+ it("preserves a quota line when the oversized record terminator arrives separately", () => {
56
+ let output = "";
57
+ const redactor = createAuthStderrRedactor((text) => { output += text; });
58
+ redactor.write(Buffer.from("x".repeat(70_000)));
59
+ redactor.write(Buffer.from("\n"));
60
+ redactor.write(Buffer.from("error: 429 quota exceeded\n"));
61
+ redactor.end();
62
+ assert.equal(output, "[omx auth] oversized stderr record suppressed\nerror: 429 quota exceeded\n");
63
+ });
64
+ it("resumes when an overflowing chunk contains the record terminator and next record start", () => {
65
+ let output = "";
66
+ const redactor = createAuthStderrRedactor((text) => { output += text; });
67
+ redactor.write(Buffer.from(`${"x".repeat(70_000)}\nerror: 429`));
68
+ redactor.write(Buffer.from(" quota exceeded\n"));
69
+ redactor.end();
70
+ assert.equal(output, "[omx auth] oversized stderr record suppressed\nerror: 429 quota exceeded\n");
71
+ });
72
+ it("redacts credentials on a line after an oversized record", () => {
73
+ let output = "";
74
+ const redactor = createAuthStderrRedactor((text) => { output += text; });
75
+ redactor.write(Buffer.from(`${"x".repeat(70_000)}\n{"access_token":"next-secret"}\n`));
76
+ redactor.end();
77
+ assert.equal(output, '[omx auth] oversized stderr record suppressed\n{"access_token":"[REDACTED]"}\n');
78
+ });
79
+ it("redacts multiline token fields that arrive after suppression resumes", () => {
80
+ let output = "";
81
+ const redactor = createAuthStderrRedactor((text) => { output += text; });
82
+ redactor.write(Buffer.from("x".repeat(65 * 1024)));
83
+ redactor.write(Buffer.from('padding\n{"refresh_token":\n'));
84
+ redactor.write(Buffer.from('"synthetic-secret"}\nquota exceeded\n'));
85
+ redactor.end();
86
+ assert.doesNotMatch(output, /synthetic-secret|xxx/);
87
+ assert.match(output, /"refresh_token":\n"\[REDACTED\]"\}\nquota exceeded\n$/);
88
+ });
89
+ it("never resumes on a blank tail long enough to evict the token field prefix", () => {
90
+ let output = "";
91
+ const redactor = createAuthStderrRedactor((text) => { output += text; });
92
+ redactor.write(Buffer.from('{"access_token":' + " ".repeat(65 * 1024)));
93
+ // A blank run far longer than the boundary window must not look safe.
94
+ redactor.write(Buffer.from(`${" ".repeat(8 * 1024)}\n"synthetic-secret"}\n`));
95
+ redactor.end();
96
+ assert.doesNotMatch(output, /synthetic-secret/);
97
+ });
5
98
  it("redacts JSON quoted OAuth token fields while preserving key names", () => {
6
99
  const redacted = redactAuthSecrets('{"access_token":"sentinel-secret","refresh_token":"refresh-secret","id_token":"id-secret","safe":"visible"}');
7
100
  assert.doesNotMatch(redacted, /sentinel-secret|refresh-secret|id-secret/);
@@ -1 +1 @@
1
- {"version":3,"file":"redact.test.js","sourceRoot":"","sources":["../../../src/auth/__tests__/redact.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,QAAQ,GAAG,iBAAiB,CAChC,6GAA6G,CAC9G,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,QAAQ,GAAG,iBAAiB,CAChC,+EAA+E,CAChF,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"redact.test.js","sourceRoot":"","sources":["../../../src/auth/__tests__/redact.test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,177 @@
1
1
  import { describe, it } from "node:test";
2
2
  import assert from "node:assert/strict";
3
3
  import { existsSync } from "node:fs";
4
- import { mkdir, mkdtemp, readFile, rm, stat, symlink, writeFile } from "node:fs/promises";
4
+ import { link, mkdir, mkdtemp, readFile, rm, stat, symlink, writeFile } from "node:fs/promises";
5
5
  import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
- import { atomicWriteFile, addSlotFromAuthFile, listSlots, readAuthMetadata, useSlot } from "../storage.js";
7
+ import { execFile } from "node:child_process";
8
+ import { promisify } from "node:util";
9
+ import { setTimeout as delay } from "node:timers/promises";
10
+ import { atomicWriteFile, addSlotFromAuthFile, listSlots, readAuthMetadata, useSlot, markSlotQuota, clearSlotExhaustion } from "../storage.js";
8
11
  import { resolveAuthMetadataPath, resolveLiveAuthPath, resolveOmxAuthDir, resolveSlotPath, validateSlotName, } from "../paths.js";
9
12
  async function tempHome() {
10
13
  return await mkdtemp(join(tmpdir(), "omx-auth-storage-"));
11
14
  }
12
15
  describe("auth slot storage", () => {
16
+ for (const operation of [addSlotFromAuthFile, useSlot]) {
17
+ it(`rechecks legacy file identity after acquiring the lock in ${operation.name}`, async (t) => {
18
+ const home = await tempHome();
19
+ try {
20
+ const live = join(home, "auth.json");
21
+ await writeFile(live, '{"access_token":"test-only"}\n');
22
+ await addSlotFromAuthFile("work", live, home);
23
+ const metadataPath = resolveAuthMetadataPath(home);
24
+ const legacyPath = join(resolveOmxAuthDir(home), "Slots.json");
25
+ if (existsSync(legacyPath)) {
26
+ t.skip("requires case-distinct filenames");
27
+ return;
28
+ }
29
+ await writeFile(legacyPath, '{"access_token":"legacy"}\n');
30
+ const before = await readFile(metadataPath, "utf-8");
31
+ const lockPath = join(resolveOmxAuthDir(home), ".metadata-lock");
32
+ await mkdir(lockPath);
33
+ const result = operation("Slots", live, home).then(() => null, (error) => error);
34
+ await delay(100);
35
+ await rm(legacyPath);
36
+ await link(metadataPath, legacyPath);
37
+ await rm(lockPath, { recursive: true });
38
+ assert.match(String(await result), /reserved/i);
39
+ assert.equal(await readFile(metadataPath, "utf-8"), before);
40
+ assert.equal(await readFile(live, "utf-8"), '{"access_token":"test-only"}\n');
41
+ }
42
+ finally {
43
+ await rm(home, { recursive: true, force: true });
44
+ }
45
+ });
46
+ }
47
+ it("rejects the reserved metadata basename before changing any auth files", async () => {
48
+ const home = await tempHome();
49
+ try {
50
+ const live = join(home, "auth.json");
51
+ await writeFile(live, '{"access_token":"test-only"}\n');
52
+ await addSlotFromAuthFile("work", live, home);
53
+ const before = await readFile(resolveAuthMetadataPath(home), "utf-8");
54
+ for (const reserved of ["slots", "Slots", "SLOTS"]) {
55
+ await assert.rejects(addSlotFromAuthFile(reserved, live, home), /reserved/i);
56
+ await assert.rejects(useSlot(reserved, live, home), /reserved/i);
57
+ }
58
+ assert.equal(await readFile(resolveAuthMetadataPath(home), "utf-8"), before);
59
+ assert.equal(await readFile(live, "utf-8"), '{"access_token":"test-only"}\n');
60
+ }
61
+ finally {
62
+ await rm(home, { recursive: true, force: true });
63
+ }
64
+ });
65
+ it("preserves concurrent account additions and quota updates", async () => {
66
+ const home = await tempHome();
67
+ try {
68
+ const live = join(home, "auth.json");
69
+ await writeFile(live, '{"access_token":"test-only"}\n');
70
+ const names = Array.from({ length: 8 }, (_, i) => `account-${i}`);
71
+ await Promise.all(names.map(name => addSlotFromAuthFile(name, live, home)));
72
+ assert.deepEqual((await listSlots(home)).map(record => record.slot), names);
73
+ await Promise.all(names.map(name => markSlotQuota(name, home)));
74
+ assert.ok((await readAuthMetadata(home)).slots.every(record => record.exhaustedAt));
75
+ await Promise.all(names.map(name => clearSlotExhaustion(name, home)));
76
+ assert.ok((await readAuthMetadata(home)).slots.every(record => !record.exhaustedAt));
77
+ }
78
+ finally {
79
+ await rm(home, { recursive: true, force: true });
80
+ }
81
+ });
82
+ it("preserves access to an existing distinct Slots account and unrelated accounts", async (t) => {
83
+ const home = await tempHome();
84
+ try {
85
+ const authDir = resolveOmxAuthDir(home);
86
+ await mkdir(authDir, { recursive: true });
87
+ const legacyPath = join(authDir, "Slots.json");
88
+ const metadataPath = resolveAuthMetadataPath(home);
89
+ await writeFile(legacyPath, '{"access_token":"legacy-test-only"}\n');
90
+ await writeFile(join(authDir, "work.json"), '{"access_token":"work-test-only"}\n');
91
+ await writeFile(metadataPath, JSON.stringify({
92
+ version: 1,
93
+ slots: ["Slots", "work"].map(slot => ({ slot, createdAt: "2026-09-01", updatedAt: "2026-09-01" })),
94
+ }));
95
+ const [legacy, metadata] = await Promise.all([stat(legacyPath), stat(metadataPath)]);
96
+ if (legacy.dev === metadata.dev && legacy.ino === metadata.ino) {
97
+ t.skip("filesystem does not support distinct Slots.json and slots.json");
98
+ return;
99
+ }
100
+ assert.deepEqual((await listSlots(home)).map(slot => slot.slot), ["Slots", "work"]);
101
+ const live = join(home, "auth.json");
102
+ await useSlot("work", live, home);
103
+ assert.equal(await readFile(live, "utf-8"), '{"access_token":"work-test-only"}\n');
104
+ await useSlot("Slots", live, home);
105
+ assert.equal(await readFile(live, "utf-8"), '{"access_token":"legacy-test-only"}\n');
106
+ await addSlotFromAuthFile("Slots", live, home);
107
+ assert.deepEqual((await readAuthMetadata(home)).slots.map(slot => slot.slot), ["Slots", "work"]);
108
+ }
109
+ finally {
110
+ await rm(home, { recursive: true, force: true });
111
+ }
112
+ });
113
+ it("rejects a case-variant credential path that aliases the metadata file", async () => {
114
+ const home = await tempHome();
115
+ try {
116
+ const live = join(home, "auth.json");
117
+ await writeFile(live, '{"access_token":"test-only"}\n');
118
+ await addSlotFromAuthFile("work", live, home);
119
+ const metadataPath = resolveAuthMetadataPath(home);
120
+ const aliasPath = join(resolveOmxAuthDir(home), "Slots.json");
121
+ if (!existsSync(aliasPath))
122
+ await link(metadataPath, aliasPath);
123
+ const before = await readFile(metadataPath, "utf-8");
124
+ await assert.rejects(addSlotFromAuthFile("Slots", live, home), /reserved/i);
125
+ await assert.rejects(useSlot("Slots", live, home), /reserved/i);
126
+ assert.equal(await readFile(metadataPath, "utf-8"), before);
127
+ assert.equal(await readFile(live, "utf-8"), '{"access_token":"test-only"}\n');
128
+ }
129
+ finally {
130
+ await rm(home, { recursive: true, force: true });
131
+ }
132
+ });
133
+ it("serializes account additions from separate CLI processes", async () => {
134
+ const home = await tempHome();
135
+ try {
136
+ const live = join(home, "auth.json");
137
+ await writeFile(live, '{"access_token":"test-only"}\n');
138
+ const moduleUrl = new URL("../storage.js", import.meta.url).href;
139
+ const run = promisify(execFile);
140
+ await Promise.all(Array.from({ length: 4 }, (_, worker) => run(process.execPath, [
141
+ "--input-type=module", "-e",
142
+ `import { addSlotFromAuthFile } from ${JSON.stringify(moduleUrl)};
143
+ const [home, live, worker] = process.argv.slice(1);
144
+ await Promise.all(Array.from({ length: 3 }, (_, i) =>
145
+ addSlotFromAuthFile('worker-' + worker + '-' + i, live, home)));`,
146
+ home, live, String(worker),
147
+ ], { timeout: 15_000 })));
148
+ const slots = await listSlots(home);
149
+ assert.equal(slots.length, 12);
150
+ assert.equal(new Set(slots.map(slot => slot.slot)).size, 12);
151
+ }
152
+ finally {
153
+ await rm(home, { recursive: true, force: true });
154
+ }
155
+ });
156
+ it("keeps the live credentials and current slot consistent after concurrent switches", async () => {
157
+ const home = await tempHome();
158
+ try {
159
+ const live = join(home, "auth.json");
160
+ const names = Array.from({ length: 4 }, (_, i) => `account-${i}`);
161
+ for (const name of names) {
162
+ await writeFile(live, JSON.stringify({ access_token: `test-only-${name}` }));
163
+ await addSlotFromAuthFile(name, live, home);
164
+ }
165
+ await Promise.all(names.map(name => useSlot(name, live, home)));
166
+ const metadata = await readAuthMetadata(home);
167
+ assert.ok(metadata.currentSlot);
168
+ assert.equal(await readFile(live, "utf-8"), await readFile(resolveSlotPath(metadata.currentSlot, home), "utf-8"));
169
+ assert.ok(metadata.slots.every(slot => slot.lastUsedAt));
170
+ }
171
+ finally {
172
+ await rm(home, { recursive: true, force: true });
173
+ }
174
+ });
13
175
  it("adds, lists, and uses auth slots without exposing blob contents", async () => {
14
176
  const home = await tempHome();
15
177
  try {
@@ -100,6 +262,10 @@ describe("auth slot storage", () => {
100
262
  await writeFile(resolveAuthMetadataPath(home), "{not-json\n");
101
263
  await assert.rejects(useSlot("work", live, home));
102
264
  assert.equal(await readFile(live, "utf-8"), '{"access_token":"original"}\n');
265
+ assert.equal(existsSync(join(resolveOmxAuthDir(home), ".metadata-lock")), false);
266
+ await writeFile(resolveAuthMetadataPath(home), '{"version":1,"slots":[]}\n');
267
+ await useSlot("work", live, home);
268
+ assert.equal(await readFile(live, "utf-8"), '{"access_token":"replacement"}\n');
103
269
  }
104
270
  finally {
105
271
  await rm(home, { recursive: true, force: true });