oh-my-codex 0.12.5 → 0.12.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 (386) hide show
  1. package/Cargo.lock +5 -5
  2. package/Cargo.toml +1 -1
  3. package/README.md +17 -0
  4. package/dist/cli/__tests__/ask.test.js +26 -0
  5. package/dist/cli/__tests__/ask.test.js.map +1 -1
  6. package/dist/cli/__tests__/explore.test.js +95 -8
  7. package/dist/cli/__tests__/explore.test.js.map +1 -1
  8. package/dist/cli/__tests__/index.test.js +58 -0
  9. package/dist/cli/__tests__/index.test.js.map +1 -1
  10. package/dist/cli/__tests__/launch-fallback.test.js +169 -0
  11. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  12. package/dist/cli/__tests__/mcp-parity.test.js +31 -0
  13. package/dist/cli/__tests__/mcp-parity.test.js.map +1 -1
  14. package/dist/cli/__tests__/setup-agents-overwrite.test.js +66 -2
  15. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
  16. package/dist/cli/__tests__/setup-refresh.test.js +11 -1
  17. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  18. package/dist/cli/__tests__/team.test.js +92 -0
  19. package/dist/cli/__tests__/team.test.js.map +1 -1
  20. package/dist/cli/__tests__/uninstall.test.js +14 -1
  21. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  22. package/dist/cli/cleanup.js +1 -1
  23. package/dist/cli/cleanup.js.map +1 -1
  24. package/dist/cli/constants.d.ts +1 -0
  25. package/dist/cli/constants.d.ts.map +1 -1
  26. package/dist/cli/constants.js +1 -0
  27. package/dist/cli/constants.js.map +1 -1
  28. package/dist/cli/explore.d.ts +1 -0
  29. package/dist/cli/explore.d.ts.map +1 -1
  30. package/dist/cli/explore.js +45 -1
  31. package/dist/cli/explore.js.map +1 -1
  32. package/dist/cli/index.d.ts +1 -1
  33. package/dist/cli/index.d.ts.map +1 -1
  34. package/dist/cli/index.js +103 -10
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/cli/mcp-parity.d.ts +1 -1
  37. package/dist/cli/mcp-parity.d.ts.map +1 -1
  38. package/dist/cli/mcp-parity.js +24 -0
  39. package/dist/cli/mcp-parity.js.map +1 -1
  40. package/dist/cli/setup.d.ts.map +1 -1
  41. package/dist/cli/setup.js +2 -2
  42. package/dist/cli/setup.js.map +1 -1
  43. package/dist/cli/team.d.ts.map +1 -1
  44. package/dist/cli/team.js +54 -14
  45. package/dist/cli/team.js.map +1 -1
  46. package/dist/cli/uninstall.d.ts.map +1 -1
  47. package/dist/cli/uninstall.js +1 -0
  48. package/dist/cli/uninstall.js.map +1 -1
  49. package/dist/config/__tests__/generator-idempotent.test.js +1 -0
  50. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  51. package/dist/config/__tests__/mcp-registry.test.js +61 -0
  52. package/dist/config/__tests__/mcp-registry.test.js.map +1 -1
  53. package/dist/config/__tests__/wiki-config-contract.test.d.ts +2 -0
  54. package/dist/config/__tests__/wiki-config-contract.test.d.ts.map +1 -0
  55. package/dist/config/__tests__/wiki-config-contract.test.js +19 -0
  56. package/dist/config/__tests__/wiki-config-contract.test.js.map +1 -0
  57. package/dist/config/generator.d.ts.map +1 -1
  58. package/dist/config/generator.js +8 -0
  59. package/dist/config/generator.js.map +1 -1
  60. package/dist/config/mcp-registry.d.ts +2 -0
  61. package/dist/config/mcp-registry.d.ts.map +1 -1
  62. package/dist/config/mcp-registry.js +12 -0
  63. package/dist/config/mcp-registry.js.map +1 -1
  64. package/dist/hooks/__tests__/agents-overlay.test.js +18 -0
  65. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  66. package/dist/hooks/__tests__/keyword-detector.test.js +75 -0
  67. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  68. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +140 -1
  69. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  70. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +35 -0
  71. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
  72. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js +86 -2
  73. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +1 -1
  74. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +176 -1
  75. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  76. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +193 -0
  77. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  78. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +90 -2
  79. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
  80. package/dist/hooks/__tests__/session.test.js +41 -1
  81. package/dist/hooks/__tests__/session.test.js.map +1 -1
  82. package/dist/hooks/__tests__/wiki-docs-contract.test.d.ts +2 -0
  83. package/dist/hooks/__tests__/wiki-docs-contract.test.d.ts.map +1 -0
  84. package/dist/hooks/__tests__/wiki-docs-contract.test.js +34 -0
  85. package/dist/hooks/__tests__/wiki-docs-contract.test.js.map +1 -0
  86. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  87. package/dist/hooks/agents-overlay.js +0 -1
  88. package/dist/hooks/agents-overlay.js.map +1 -1
  89. package/dist/hooks/extensibility/__tests__/dispatcher.test.js +32 -0
  90. package/dist/hooks/extensibility/__tests__/dispatcher.test.js.map +1 -1
  91. package/dist/hooks/extensibility/__tests__/sdk.test.js +33 -3
  92. package/dist/hooks/extensibility/__tests__/sdk.test.js.map +1 -1
  93. package/dist/hooks/extensibility/dispatcher.d.ts.map +1 -1
  94. package/dist/hooks/extensibility/dispatcher.js +41 -0
  95. package/dist/hooks/extensibility/dispatcher.js.map +1 -1
  96. package/dist/hooks/extensibility/sdk/runtime-state.d.ts.map +1 -1
  97. package/dist/hooks/extensibility/sdk/runtime-state.js +7 -1
  98. package/dist/hooks/extensibility/sdk/runtime-state.js.map +1 -1
  99. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  100. package/dist/hooks/keyword-detector.js +42 -5
  101. package/dist/hooks/keyword-detector.js.map +1 -1
  102. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  103. package/dist/hooks/keyword-registry.js +3 -0
  104. package/dist/hooks/keyword-registry.js.map +1 -1
  105. package/dist/hooks/session.d.ts.map +1 -1
  106. package/dist/hooks/session.js +26 -4
  107. package/dist/hooks/session.js.map +1 -1
  108. package/dist/hud/__tests__/state.test.js +27 -0
  109. package/dist/hud/__tests__/state.test.js.map +1 -1
  110. package/dist/hud/state.d.ts.map +1 -1
  111. package/dist/hud/state.js +3 -1
  112. package/dist/hud/state.js.map +1 -1
  113. package/dist/mcp/__tests__/bootstrap.test.js +65 -1
  114. package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
  115. package/dist/mcp/__tests__/state-server.test.js +31 -0
  116. package/dist/mcp/__tests__/state-server.test.js.map +1 -1
  117. package/dist/mcp/__tests__/wiki-server.test.d.ts +2 -0
  118. package/dist/mcp/__tests__/wiki-server.test.d.ts.map +1 -0
  119. package/dist/mcp/__tests__/wiki-server.test.js +30 -0
  120. package/dist/mcp/__tests__/wiki-server.test.js.map +1 -0
  121. package/dist/mcp/bootstrap.d.ts +18 -1
  122. package/dist/mcp/bootstrap.d.ts.map +1 -1
  123. package/dist/mcp/bootstrap.js +158 -0
  124. package/dist/mcp/bootstrap.js.map +1 -1
  125. package/dist/mcp/state-server.d.ts +4 -4
  126. package/dist/mcp/state-server.d.ts.map +1 -1
  127. package/dist/mcp/state-server.js +27 -22
  128. package/dist/mcp/state-server.js.map +1 -1
  129. package/dist/mcp/wiki-server.d.ts +181 -0
  130. package/dist/mcp/wiki-server.d.ts.map +1 -0
  131. package/dist/mcp/wiki-server.js +235 -0
  132. package/dist/mcp/wiki-server.js.map +1 -0
  133. package/dist/modes/__tests__/base-autoresearch-contract.test.js +22 -1
  134. package/dist/modes/__tests__/base-autoresearch-contract.test.js.map +1 -1
  135. package/dist/modes/base.d.ts.map +1 -1
  136. package/dist/modes/base.js +10 -0
  137. package/dist/modes/base.js.map +1 -1
  138. package/dist/notifications/__tests__/formatter.test.js +11 -0
  139. package/dist/notifications/__tests__/formatter.test.js.map +1 -1
  140. package/dist/notifications/__tests__/idle-cooldown.test.js +32 -1
  141. package/dist/notifications/__tests__/idle-cooldown.test.js.map +1 -1
  142. package/dist/notifications/__tests__/index.test.d.ts +2 -0
  143. package/dist/notifications/__tests__/index.test.d.ts.map +1 -0
  144. package/dist/notifications/__tests__/index.test.js +113 -0
  145. package/dist/notifications/__tests__/index.test.js.map +1 -0
  146. package/dist/notifications/__tests__/lifecycle-dedupe.test.d.ts +2 -0
  147. package/dist/notifications/__tests__/lifecycle-dedupe.test.d.ts.map +1 -0
  148. package/dist/notifications/__tests__/lifecycle-dedupe.test.js +86 -0
  149. package/dist/notifications/__tests__/lifecycle-dedupe.test.js.map +1 -0
  150. package/dist/notifications/__tests__/reply-listener.test.js +155 -0
  151. package/dist/notifications/__tests__/reply-listener.test.js.map +1 -1
  152. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.d.ts +2 -0
  153. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.d.ts.map +1 -0
  154. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.js +93 -0
  155. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.js.map +1 -0
  156. package/dist/notifications/__tests__/session-registry.test.js +48 -1
  157. package/dist/notifications/__tests__/session-registry.test.js.map +1 -1
  158. package/dist/notifications/__tests__/session-status.test.d.ts +2 -0
  159. package/dist/notifications/__tests__/session-status.test.d.ts.map +1 -0
  160. package/dist/notifications/__tests__/session-status.test.js +159 -0
  161. package/dist/notifications/__tests__/session-status.test.js.map +1 -0
  162. package/dist/notifications/__tests__/tmux.test.js +58 -1
  163. package/dist/notifications/__tests__/tmux.test.js.map +1 -1
  164. package/dist/notifications/idle-cooldown.d.ts +11 -0
  165. package/dist/notifications/idle-cooldown.d.ts.map +1 -1
  166. package/dist/notifications/idle-cooldown.js +42 -8
  167. package/dist/notifications/idle-cooldown.js.map +1 -1
  168. package/dist/notifications/index.d.ts +1 -1
  169. package/dist/notifications/index.d.ts.map +1 -1
  170. package/dist/notifications/index.js +41 -8
  171. package/dist/notifications/index.js.map +1 -1
  172. package/dist/notifications/lifecycle-dedupe.d.ts +8 -0
  173. package/dist/notifications/lifecycle-dedupe.d.ts.map +1 -0
  174. package/dist/notifications/lifecycle-dedupe.js +112 -0
  175. package/dist/notifications/lifecycle-dedupe.js.map +1 -0
  176. package/dist/notifications/reply-listener.d.ts +2 -0
  177. package/dist/notifications/reply-listener.d.ts.map +1 -1
  178. package/dist/notifications/reply-listener.js +42 -6
  179. package/dist/notifications/reply-listener.js.map +1 -1
  180. package/dist/notifications/session-registry.d.ts.map +1 -1
  181. package/dist/notifications/session-registry.js +7 -1
  182. package/dist/notifications/session-registry.js.map +1 -1
  183. package/dist/notifications/session-status.d.ts +23 -0
  184. package/dist/notifications/session-status.d.ts.map +1 -0
  185. package/dist/notifications/session-status.js +187 -0
  186. package/dist/notifications/session-status.js.map +1 -0
  187. package/dist/notifications/tmux.d.ts +10 -0
  188. package/dist/notifications/tmux.d.ts.map +1 -1
  189. package/dist/notifications/tmux.js +59 -5
  190. package/dist/notifications/tmux.js.map +1 -1
  191. package/dist/notifications/types.d.ts +2 -0
  192. package/dist/notifications/types.d.ts.map +1 -1
  193. package/dist/openclaw/__tests__/index.test.js +84 -0
  194. package/dist/openclaw/__tests__/index.test.js.map +1 -1
  195. package/dist/openclaw/index.d.ts.map +1 -1
  196. package/dist/openclaw/index.js +7 -14
  197. package/dist/openclaw/index.js.map +1 -1
  198. package/dist/openclaw/types.d.ts +2 -2
  199. package/dist/openclaw/types.d.ts.map +1 -1
  200. package/dist/scripts/__tests__/codex-native-hook.test.js +270 -1
  201. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  202. package/dist/scripts/__tests__/hook-derived-watcher.test.d.ts +2 -0
  203. package/dist/scripts/__tests__/hook-derived-watcher.test.d.ts.map +1 -0
  204. package/dist/scripts/__tests__/hook-derived-watcher.test.js +87 -0
  205. package/dist/scripts/__tests__/hook-derived-watcher.test.js.map +1 -0
  206. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  207. package/dist/scripts/codex-native-hook.js +134 -6
  208. package/dist/scripts/codex-native-hook.js.map +1 -1
  209. package/dist/scripts/hook-derived-watcher.js +43 -1
  210. package/dist/scripts/hook-derived-watcher.js.map +1 -1
  211. package/dist/scripts/notify-fallback-watcher.js +27 -2
  212. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  213. package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
  214. package/dist/scripts/notify-hook/auto-nudge.js +17 -1
  215. package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
  216. package/dist/scripts/notify-hook/managed-tmux.d.ts.map +1 -1
  217. package/dist/scripts/notify-hook/managed-tmux.js +5 -3
  218. package/dist/scripts/notify-hook/managed-tmux.js.map +1 -1
  219. package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
  220. package/dist/scripts/notify-hook/team-dispatch.js +305 -167
  221. package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
  222. package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
  223. package/dist/scripts/notify-hook/team-leader-nudge.js +79 -3
  224. package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
  225. package/dist/scripts/notify-hook/tmux-injection.d.ts.map +1 -1
  226. package/dist/scripts/notify-hook/tmux-injection.js +2 -1
  227. package/dist/scripts/notify-hook/tmux-injection.js.map +1 -1
  228. package/dist/scripts/run-provider-advisor.js +20 -2
  229. package/dist/scripts/run-provider-advisor.js.map +1 -1
  230. package/dist/scripts/smoke-packed-install.d.ts +1 -8
  231. package/dist/scripts/smoke-packed-install.d.ts.map +1 -1
  232. package/dist/scripts/smoke-packed-install.js +12 -68
  233. package/dist/scripts/smoke-packed-install.js.map +1 -1
  234. package/dist/state/__tests__/operations.test.js +113 -0
  235. package/dist/state/__tests__/operations.test.js.map +1 -1
  236. package/dist/state/operations.d.ts +1 -1
  237. package/dist/state/operations.d.ts.map +1 -1
  238. package/dist/state/operations.js +88 -2
  239. package/dist/state/operations.js.map +1 -1
  240. package/dist/state/skill-active.d.ts +1 -1
  241. package/dist/state/skill-active.d.ts.map +1 -1
  242. package/dist/state/skill-active.js +1 -0
  243. package/dist/state/skill-active.js.map +1 -1
  244. package/dist/team/__tests__/api-interop.test.js +90 -0
  245. package/dist/team/__tests__/api-interop.test.js.map +1 -1
  246. package/dist/team/__tests__/hardening-e2e.test.js +17 -0
  247. package/dist/team/__tests__/hardening-e2e.test.js.map +1 -1
  248. package/dist/team/__tests__/runtime.test.js +23 -0
  249. package/dist/team/__tests__/runtime.test.js.map +1 -1
  250. package/dist/team/__tests__/tmux-session.test.js +210 -0
  251. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  252. package/dist/team/api-interop.d.ts.map +1 -1
  253. package/dist/team/api-interop.js +10 -1
  254. package/dist/team/api-interop.js.map +1 -1
  255. package/dist/team/delivery-log.d.ts +1 -1
  256. package/dist/team/delivery-log.d.ts.map +1 -1
  257. package/dist/team/delivery-log.js.map +1 -1
  258. package/dist/team/leader-activity.d.ts +1 -0
  259. package/dist/team/leader-activity.d.ts.map +1 -1
  260. package/dist/team/leader-activity.js +4 -2
  261. package/dist/team/leader-activity.js.map +1 -1
  262. package/dist/team/progress-evidence.d.ts +2 -0
  263. package/dist/team/progress-evidence.d.ts.map +1 -0
  264. package/dist/team/progress-evidence.js +77 -0
  265. package/dist/team/progress-evidence.js.map +1 -0
  266. package/dist/team/runtime.d.ts.map +1 -1
  267. package/dist/team/runtime.js +44 -0
  268. package/dist/team/runtime.js.map +1 -1
  269. package/dist/team/tmux-session.d.ts.map +1 -1
  270. package/dist/team/tmux-session.js +57 -8
  271. package/dist/team/tmux-session.js.map +1 -1
  272. package/dist/team/worktree.d.ts +6 -1
  273. package/dist/team/worktree.d.ts.map +1 -1
  274. package/dist/team/worktree.js +4 -2
  275. package/dist/team/worktree.js.map +1 -1
  276. package/dist/utils/__tests__/agents-md.test.js +21 -1
  277. package/dist/utils/__tests__/agents-md.test.js.map +1 -1
  278. package/dist/utils/__tests__/repo-deps.test.d.ts +2 -0
  279. package/dist/utils/__tests__/repo-deps.test.d.ts.map +1 -0
  280. package/dist/utils/__tests__/repo-deps.test.js +71 -0
  281. package/dist/utils/__tests__/repo-deps.test.js.map +1 -0
  282. package/dist/utils/agents-md.d.ts +1 -0
  283. package/dist/utils/agents-md.d.ts.map +1 -1
  284. package/dist/utils/agents-md.js +7 -3
  285. package/dist/utils/agents-md.js.map +1 -1
  286. package/dist/utils/paths.d.ts +4 -0
  287. package/dist/utils/paths.d.ts.map +1 -1
  288. package/dist/utils/paths.js +20 -0
  289. package/dist/utils/paths.js.map +1 -1
  290. package/dist/utils/repo-deps.d.ts +20 -0
  291. package/dist/utils/repo-deps.d.ts.map +1 -0
  292. package/dist/utils/repo-deps.js +78 -0
  293. package/dist/utils/repo-deps.js.map +1 -0
  294. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.d.ts +2 -0
  295. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.d.ts.map +1 -0
  296. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +54 -0
  297. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -0
  298. package/dist/wiki/__tests__/cjk-tokenize.test.d.ts +12 -0
  299. package/dist/wiki/__tests__/cjk-tokenize.test.d.ts.map +1 -0
  300. package/dist/wiki/__tests__/cjk-tokenize.test.js +139 -0
  301. package/dist/wiki/__tests__/cjk-tokenize.test.js.map +1 -0
  302. package/dist/wiki/__tests__/crlf-parse.test.d.ts +2 -0
  303. package/dist/wiki/__tests__/crlf-parse.test.d.ts.map +1 -0
  304. package/dist/wiki/__tests__/crlf-parse.test.js +24 -0
  305. package/dist/wiki/__tests__/crlf-parse.test.js.map +1 -0
  306. package/dist/wiki/__tests__/escape-newline.test.d.ts +2 -0
  307. package/dist/wiki/__tests__/escape-newline.test.d.ts.map +1 -0
  308. package/dist/wiki/__tests__/escape-newline.test.js +45 -0
  309. package/dist/wiki/__tests__/escape-newline.test.js.map +1 -0
  310. package/dist/wiki/__tests__/ingest.test.d.ts +5 -0
  311. package/dist/wiki/__tests__/ingest.test.d.ts.map +1 -0
  312. package/dist/wiki/__tests__/ingest.test.js +181 -0
  313. package/dist/wiki/__tests__/ingest.test.js.map +1 -0
  314. package/dist/wiki/__tests__/lint.test.d.ts +5 -0
  315. package/dist/wiki/__tests__/lint.test.d.ts.map +1 -0
  316. package/dist/wiki/__tests__/lint.test.js +163 -0
  317. package/dist/wiki/__tests__/lint.test.js.map +1 -0
  318. package/dist/wiki/__tests__/query.test.d.ts +5 -0
  319. package/dist/wiki/__tests__/query.test.d.ts.map +1 -0
  320. package/dist/wiki/__tests__/query.test.js +141 -0
  321. package/dist/wiki/__tests__/query.test.js.map +1 -0
  322. package/dist/wiki/__tests__/reserved-file-guard.test.d.ts +2 -0
  323. package/dist/wiki/__tests__/reserved-file-guard.test.d.ts.map +1 -0
  324. package/dist/wiki/__tests__/reserved-file-guard.test.js +44 -0
  325. package/dist/wiki/__tests__/reserved-file-guard.test.js.map +1 -0
  326. package/dist/wiki/__tests__/session-hooks.test.d.ts +5 -0
  327. package/dist/wiki/__tests__/session-hooks.test.d.ts.map +1 -0
  328. package/dist/wiki/__tests__/session-hooks.test.js +36 -0
  329. package/dist/wiki/__tests__/session-hooks.test.js.map +1 -0
  330. package/dist/wiki/__tests__/slug-nonascii.test.d.ts +2 -0
  331. package/dist/wiki/__tests__/slug-nonascii.test.d.ts.map +1 -0
  332. package/dist/wiki/__tests__/slug-nonascii.test.js +24 -0
  333. package/dist/wiki/__tests__/slug-nonascii.test.js.map +1 -0
  334. package/dist/wiki/__tests__/storage.test.d.ts +5 -0
  335. package/dist/wiki/__tests__/storage.test.d.ts.map +1 -0
  336. package/dist/wiki/__tests__/storage.test.js +278 -0
  337. package/dist/wiki/__tests__/storage.test.js.map +1 -0
  338. package/dist/wiki/__tests__/test-helpers.d.ts +31 -0
  339. package/dist/wiki/__tests__/test-helpers.d.ts.map +1 -0
  340. package/dist/wiki/__tests__/test-helpers.js +108 -0
  341. package/dist/wiki/__tests__/test-helpers.js.map +1 -0
  342. package/dist/wiki/index.d.ts +14 -0
  343. package/dist/wiki/index.d.ts.map +1 -0
  344. package/dist/wiki/index.js +17 -0
  345. package/dist/wiki/index.js.map +1 -0
  346. package/dist/wiki/ingest.d.ts +20 -0
  347. package/dist/wiki/ingest.d.ts.map +1 -0
  348. package/dist/wiki/ingest.js +115 -0
  349. package/dist/wiki/ingest.js.map +1 -0
  350. package/dist/wiki/lifecycle.d.ts +20 -0
  351. package/dist/wiki/lifecycle.d.ts.map +1 -0
  352. package/dist/wiki/lifecycle.js +212 -0
  353. package/dist/wiki/lifecycle.js.map +1 -0
  354. package/dist/wiki/lint.d.ts +25 -0
  355. package/dist/wiki/lint.d.ts.map +1 -0
  356. package/dist/wiki/lint.js +166 -0
  357. package/dist/wiki/lint.js.map +1 -0
  358. package/dist/wiki/query.d.ts +36 -0
  359. package/dist/wiki/query.d.ts.map +1 -0
  360. package/dist/wiki/query.js +138 -0
  361. package/dist/wiki/query.js.map +1 -0
  362. package/dist/wiki/storage.d.ts +33 -0
  363. package/dist/wiki/storage.d.ts.map +1 -0
  364. package/dist/wiki/storage.js +321 -0
  365. package/dist/wiki/storage.js.map +1 -0
  366. package/dist/wiki/types.d.ts +83 -0
  367. package/dist/wiki/types.d.ts.map +1 -0
  368. package/dist/wiki/types.js +15 -0
  369. package/dist/wiki/types.js.map +1 -0
  370. package/package.json +3 -1
  371. package/skills/configure-notifications/SKILL.md +1 -0
  372. package/skills/doctor/SKILL.md +11 -0
  373. package/skills/omx-setup/SKILL.md +1 -1
  374. package/skills/wiki/SKILL.md +57 -0
  375. package/src/scripts/__tests__/codex-native-hook.test.ts +378 -0
  376. package/src/scripts/__tests__/hook-derived-watcher.test.ts +111 -0
  377. package/src/scripts/codex-native-hook.ts +187 -7
  378. package/src/scripts/hook-derived-watcher.ts +43 -1
  379. package/src/scripts/notify-fallback-watcher.ts +26 -2
  380. package/src/scripts/notify-hook/auto-nudge.ts +19 -1
  381. package/src/scripts/notify-hook/managed-tmux.ts +8 -3
  382. package/src/scripts/notify-hook/team-dispatch.ts +326 -168
  383. package/src/scripts/notify-hook/team-leader-nudge.ts +82 -3
  384. package/src/scripts/notify-hook/tmux-injection.ts +2 -1
  385. package/src/scripts/run-provider-advisor.ts +20 -2
  386. package/src/scripts/smoke-packed-install.ts +16 -83
@@ -0,0 +1,113 @@
1
+ import { after, before, beforeEach, afterEach, describe, it } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { chmodSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
4
+ import { join } from 'node:path';
5
+ import { tmpdir } from 'node:os';
6
+ const ENV_KEYS = ['CODEX_HOME', 'TMUX', 'TMUX_PANE', 'PATH'];
7
+ const originalFetch = globalThis.fetch;
8
+ function writeNotificationConfig(codexHome) {
9
+ writeFileSync(join(codexHome, '.omx-config.json'), JSON.stringify({
10
+ notifications: {
11
+ enabled: true,
12
+ webhook: {
13
+ enabled: true,
14
+ url: 'https://example.com/hook',
15
+ },
16
+ },
17
+ }, null, 2));
18
+ }
19
+ function writeFakeTmux(fakeBinDir, output) {
20
+ const tmuxPath = join(fakeBinDir, 'tmux');
21
+ writeFileSync(tmuxPath, `#!/usr/bin/env bash
22
+ set -eu
23
+ if [[ "$1" == "list-panes" ]]; then
24
+ printf '0 %s\\n' "$PPID"
25
+ exit 0
26
+ fi
27
+ if [[ "$1" == "capture-pane" ]]; then
28
+ printf '%s\\n' ${JSON.stringify(output)}
29
+ exit 0
30
+ fi
31
+ exit 2
32
+ `);
33
+ chmodSync(tmuxPath, 0o755);
34
+ }
35
+ describe('notifyLifecycle tmux tail auto-capture', () => {
36
+ let originalEnv;
37
+ const codexHome = mkdtempSync(join(tmpdir(), 'omx-notify-index-codex-home-'));
38
+ const fakeBinDir = mkdtempSync(join(tmpdir(), 'omx-notify-index-fake-bin-'));
39
+ before(() => {
40
+ originalEnv = { ...process.env };
41
+ process.env.CODEX_HOME = codexHome;
42
+ process.env.PATH = `${fakeBinDir}:${originalEnv.PATH || ''}`;
43
+ process.env.TMUX = '/tmp/tmux-1000/default,12345,0';
44
+ process.env.TMUX_PANE = '%42';
45
+ });
46
+ beforeEach(() => {
47
+ process.env.CODEX_HOME = codexHome;
48
+ process.env.PATH = `${fakeBinDir}:${originalEnv.PATH || ''}`;
49
+ process.env.TMUX = '/tmp/tmux-1000/default,12345,0';
50
+ process.env.TMUX_PANE = '%42';
51
+ });
52
+ afterEach(() => {
53
+ globalThis.fetch = originalFetch;
54
+ });
55
+ after(() => {
56
+ for (const key of ENV_KEYS) {
57
+ if (originalEnv[key] === undefined)
58
+ delete process.env[key];
59
+ else
60
+ process.env[key] = originalEnv[key];
61
+ }
62
+ rmSync(codexHome, { recursive: true, force: true });
63
+ rmSync(fakeBinDir, { recursive: true, force: true });
64
+ });
65
+ it('does not auto-capture historical tmux tail for terminal notifications', async () => {
66
+ writeFakeTmux(fakeBinDir, 'historical risk line');
67
+ writeNotificationConfig(codexHome);
68
+ const { notifyLifecycle } = await import('../index.js');
69
+ for (const eventName of ['session-end', 'session-stop']) {
70
+ let capturedBody = '';
71
+ globalThis.fetch = async (_input, init) => {
72
+ capturedBody = typeof init?.body === 'string' ? init.body : '';
73
+ return new Response('', { status: 200 });
74
+ };
75
+ const projectPath = mkdtempSync(join(tmpdir(), `omx-notify-index-project-${eventName}-`));
76
+ const result = await notifyLifecycle(eventName, {
77
+ sessionId: `sess-${eventName}-${Date.now()}`,
78
+ projectPath,
79
+ projectName: 'project',
80
+ reason: 'session_exit',
81
+ });
82
+ rmSync(projectPath, { recursive: true, force: true });
83
+ assert.ok(result);
84
+ assert.equal(result.anySuccess, true);
85
+ const parsed = JSON.parse(capturedBody);
86
+ assert.doesNotMatch(parsed.message, /Recent output:/);
87
+ assert.doesNotMatch(parsed.message, /historical risk line/);
88
+ }
89
+ });
90
+ it('keeps auto-capturing tmux tail for live session-idle notifications', async () => {
91
+ writeFakeTmux(fakeBinDir, 'waiting for live input');
92
+ let capturedBody = '';
93
+ globalThis.fetch = async (_input, init) => {
94
+ capturedBody = typeof init?.body === 'string' ? init.body : '';
95
+ return new Response('', { status: 200 });
96
+ };
97
+ writeNotificationConfig(codexHome);
98
+ const projectPath = mkdtempSync(join(tmpdir(), 'omx-notify-index-project-idle-'));
99
+ const { notifyLifecycle } = await import('../index.js');
100
+ const result = await notifyLifecycle('session-idle', {
101
+ sessionId: `sess-idle-${Date.now()}`,
102
+ projectPath,
103
+ projectName: 'project',
104
+ });
105
+ rmSync(projectPath, { recursive: true, force: true });
106
+ assert.ok(result);
107
+ assert.equal(result.anySuccess, true);
108
+ const parsed = JSON.parse(capturedBody);
109
+ assert.match(parsed.message, /Recent output:/);
110
+ assert.match(parsed.message, /waiting for live input/);
111
+ });
112
+ });
113
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/notifications/__tests__/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lifecycle-dedupe.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-dedupe.test.d.ts","sourceRoot":"","sources":["../../../src/notifications/__tests__/lifecycle-dedupe.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ import { describe, it } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { mkdtemp, readFile, rm } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import { join } from 'node:path';
6
+ import { shouldSendLifecycleNotification, recordLifecycleNotificationSent, shouldSendLifecycleHookBroadcast, recordLifecycleHookBroadcastSent, } from '../lifecycle-dedupe.js';
7
+ function buildPayload(overrides = {}) {
8
+ return {
9
+ event: 'session-end',
10
+ sessionId: 'session-1475',
11
+ message: 'done',
12
+ timestamp: '2026-04-11T00:00:00.000Z',
13
+ projectPath: '/tmp/project',
14
+ projectName: 'project',
15
+ reason: 'session_exit',
16
+ ...overrides,
17
+ };
18
+ }
19
+ describe('lifecycle notification dedupe', () => {
20
+ it('suppresses duplicate session lifecycle notifications for the same session transition', async () => {
21
+ const stateDir = await mkdtemp(join(tmpdir(), 'omx-lifecycle-dedupe-'));
22
+ try {
23
+ const payload = buildPayload();
24
+ assert.equal(shouldSendLifecycleNotification(stateDir, payload), true);
25
+ recordLifecycleNotificationSent(stateDir, payload);
26
+ assert.equal(shouldSendLifecycleNotification(stateDir, payload), false);
27
+ }
28
+ finally {
29
+ await rm(stateDir, { recursive: true, force: true });
30
+ }
31
+ });
32
+ it('re-emits when the lifecycle fingerprint changes', async () => {
33
+ const stateDir = await mkdtemp(join(tmpdir(), 'omx-lifecycle-dedupe-change-'));
34
+ try {
35
+ const payload = buildPayload();
36
+ recordLifecycleNotificationSent(stateDir, payload);
37
+ assert.equal(shouldSendLifecycleNotification(stateDir, buildPayload({ reason: 'completed' })), true);
38
+ }
39
+ finally {
40
+ await rm(stateDir, { recursive: true, force: true });
41
+ }
42
+ });
43
+ it('stores dedupe state per session id', async () => {
44
+ const stateDir = await mkdtemp(join(tmpdir(), 'omx-lifecycle-dedupe-session-'));
45
+ try {
46
+ const payload = buildPayload({ sessionId: 'session-a', event: 'session-start' });
47
+ recordLifecycleNotificationSent(stateDir, payload);
48
+ const sessionFile = join(stateDir, 'sessions', 'session-a', 'lifecycle-notif-state.json');
49
+ const state = JSON.parse(await readFile(sessionFile, 'utf-8'));
50
+ assert.equal(typeof state.events?.['session-start']?.fingerprint, 'string');
51
+ assert.equal(shouldSendLifecycleNotification(stateDir, buildPayload({ sessionId: 'session-b', event: 'session-start' })), true);
52
+ }
53
+ finally {
54
+ await rm(stateDir, { recursive: true, force: true });
55
+ }
56
+ });
57
+ it('re-emits the same lifecycle fingerprint after the dedupe window elapses', async () => {
58
+ const stateDir = await mkdtemp(join(tmpdir(), 'omx-lifecycle-dedupe-window-'));
59
+ try {
60
+ const payload = buildPayload({ event: 'session-start' });
61
+ const startMs = Date.parse('2026-04-12T00:00:00.000Z');
62
+ recordLifecycleNotificationSent(stateDir, payload, startMs);
63
+ assert.equal(shouldSendLifecycleNotification(stateDir, payload, startMs + 4_999), false);
64
+ assert.equal(shouldSendLifecycleNotification(stateDir, payload, startMs + 5_000), true);
65
+ }
66
+ finally {
67
+ await rm(stateDir, { recursive: true, force: true });
68
+ }
69
+ });
70
+ it('tracks hook dedupe separately from notification dedupe state', async () => {
71
+ const stateDir = await mkdtemp(join(tmpdir(), 'omx-lifecycle-dedupe-hook-'));
72
+ try {
73
+ const payload = buildPayload({ event: 'session-start', sessionId: 'hook-session' });
74
+ const hookFingerprint = 'fp:keyword-detector:turn-1';
75
+ recordLifecycleNotificationSent(stateDir, payload);
76
+ assert.equal(shouldSendLifecycleHookBroadcast(stateDir, payload.sessionId, 'keyword-detector', hookFingerprint), true);
77
+ recordLifecycleHookBroadcastSent(stateDir, payload.sessionId, 'keyword-detector', hookFingerprint);
78
+ assert.equal(shouldSendLifecycleHookBroadcast(stateDir, payload.sessionId, 'keyword-detector', hookFingerprint), false);
79
+ assert.equal(shouldSendLifecycleNotification(stateDir, payload), false);
80
+ }
81
+ finally {
82
+ await rm(stateDir, { recursive: true, force: true });
83
+ }
84
+ });
85
+ });
86
+ //# sourceMappingURL=lifecycle-dedupe.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-dedupe.test.js","sourceRoot":"","sources":["../../../src/notifications/__tests__/lifecycle-dedupe.test.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import assert from 'node:assert/strict';
3
3
  import { spawn } from 'node:child_process';
4
4
  import { PassThrough } from 'node:stream';
5
5
  import { RateLimiter, captureReplyAcknowledgementSummary, formatReplyAcknowledgement, sanitizeReplyInput, isReplyListenerProcess, normalizeReplyListenerConfig, pollDiscordOnce, pollTelegramOnce, resetReplyListenerTransientState, } from '../reply-listener.js';
6
+ import { NO_TRACKED_SESSION_MESSAGE } from '../session-status.js';
6
7
  function createBaseConfig(overrides = {}) {
7
8
  return {
8
9
  enabled: true,
@@ -301,6 +302,95 @@ describe('formatReplyAcknowledgement', () => {
301
302
  });
302
303
  });
303
304
  describe('pollDiscordOnce', () => {
305
+ it('treats exact-match status replies as read-only Discord session lookups', async () => {
306
+ resetReplyListenerTransientState();
307
+ const config = createBaseConfig();
308
+ const state = createBaseState();
309
+ const fetchCalls = [];
310
+ let injectCalled = false;
311
+ const fetchImpl = async (input, init) => {
312
+ const url = String(input);
313
+ fetchCalls.push({ url, init });
314
+ if (url.endsWith('/messages?limit=10')) {
315
+ return jsonResponse([
316
+ {
317
+ id: 'discord-status-1',
318
+ author: { id: 'discord-user-1' },
319
+ content: ' STATUS ',
320
+ message_reference: { message_id: 'orig-discord-msg' },
321
+ },
322
+ ]);
323
+ }
324
+ if (url.endsWith('/messages')) {
325
+ return jsonResponse({ id: 'status-reply-1' });
326
+ }
327
+ throw new Error(`Unexpected fetch url: ${url}`);
328
+ };
329
+ await pollDiscordOnce(config, state, new RateLimiter(10), {
330
+ fetchImpl,
331
+ lookupByMessageIdImpl: () => createMapping('discord-bot'),
332
+ buildSessionStatusReplyImpl: async (mapping) => {
333
+ assert.equal(mapping.sessionId, 'session-1');
334
+ return 'Tracked OMX session status';
335
+ },
336
+ injectReplyImpl: () => {
337
+ injectCalled = true;
338
+ return true;
339
+ },
340
+ });
341
+ assert.equal(injectCalled, false);
342
+ assert.equal(state.messagesInjected, 0);
343
+ assert.equal(state.errors, 0);
344
+ assert.equal(state.discordLastMessageId, 'discord-status-1');
345
+ assert.equal(fetchCalls.length, 2);
346
+ const replyBody = JSON.parse(String(fetchCalls[1].init?.body));
347
+ assert.equal(replyBody.content, 'Tracked OMX session status');
348
+ assert.deepEqual(replyBody.message_reference, { message_id: 'discord-status-1' });
349
+ assert.deepEqual(replyBody.allowed_mentions, { parse: [] });
350
+ });
351
+ it('uses the latest correlated session when a Discord notification message id is reused', async () => {
352
+ resetReplyListenerTransientState();
353
+ const config = createBaseConfig();
354
+ const state = createBaseState();
355
+ const statusSessionIds = [];
356
+ await pollDiscordOnce(config, state, new RateLimiter(10), {
357
+ fetchImpl: async (input) => {
358
+ const url = String(input);
359
+ if (url.endsWith('/messages?limit=10')) {
360
+ return jsonResponse([
361
+ {
362
+ id: 'discord-status-reused-id',
363
+ author: { id: 'discord-user-1' },
364
+ content: 'status',
365
+ message_reference: { message_id: 'orig-discord-msg' },
366
+ },
367
+ ]);
368
+ }
369
+ if (url.endsWith('/messages')) {
370
+ return jsonResponse({ id: 'status-reply-reused-id' });
371
+ }
372
+ throw new Error(`Unexpected fetch url: ${url}`);
373
+ },
374
+ lookupByMessageIdImpl: () => ({
375
+ ...createMapping('discord-bot'),
376
+ messageId: 'orig-discord-msg',
377
+ sessionId: 'session-newer',
378
+ tmuxPaneId: '%10',
379
+ tmuxSessionName: 'latest-session',
380
+ }),
381
+ buildSessionStatusReplyImpl: async (mapping) => {
382
+ statusSessionIds.push(mapping.sessionId);
383
+ return `Tracked OMX session status\nSession: ${mapping.sessionId}`;
384
+ },
385
+ injectReplyImpl: () => {
386
+ throw new Error('injectReply should not run for exact-match status probes');
387
+ },
388
+ });
389
+ assert.deepEqual(statusSessionIds, ['session-newer']);
390
+ assert.equal(state.messagesInjected, 0);
391
+ assert.equal(state.errors, 0);
392
+ assert.equal(state.discordLastMessageId, 'discord-status-reused-id');
393
+ });
304
394
  it('injects authorized replies and posts a threaded acknowledgement with recent output', async () => {
305
395
  resetReplyListenerTransientState();
306
396
  const config = createBaseConfig({ discordMention: '<@123>' });
@@ -382,6 +472,71 @@ describe('pollDiscordOnce', () => {
382
472
  assert.equal(state.errors, 0);
383
473
  assert.equal(state.discordLastMessageId, 'discord-reply-2');
384
474
  });
475
+ it('does not return status data for unauthorized status replies', async () => {
476
+ resetReplyListenerTransientState();
477
+ const state = createBaseState();
478
+ const fetchCalls = [];
479
+ await pollDiscordOnce(createBaseConfig(), state, new RateLimiter(10), {
480
+ fetchImpl: async (input) => {
481
+ fetchCalls.push(String(input));
482
+ return jsonResponse([
483
+ {
484
+ id: 'discord-reply-unauthorized-status',
485
+ author: { id: 'intruder' },
486
+ content: 'status',
487
+ message_reference: { message_id: 'orig-discord-msg' },
488
+ },
489
+ ]);
490
+ },
491
+ lookupByMessageIdImpl: () => {
492
+ throw new Error('lookup should not run for unauthorized status replies');
493
+ },
494
+ injectReplyImpl: () => {
495
+ throw new Error('injectReply should not run for unauthorized status replies');
496
+ },
497
+ });
498
+ assert.deepEqual(fetchCalls, ['https://discord.com/api/v10/channels/discord-channel/messages?limit=10']);
499
+ assert.equal(state.messagesInjected, 0);
500
+ assert.equal(state.errors, 0);
501
+ assert.equal(state.discordLastMessageId, 'discord-reply-unauthorized-status');
502
+ });
503
+ it('replies with a bounded failure when status has no tracked correlation and does not inject', async () => {
504
+ resetReplyListenerTransientState();
505
+ const state = createBaseState();
506
+ const fetchCalls = [];
507
+ let injectCalled = false;
508
+ await pollDiscordOnce(createBaseConfig(), state, new RateLimiter(10), {
509
+ fetchImpl: async (input, init) => {
510
+ const url = String(input);
511
+ fetchCalls.push({ url, init });
512
+ if (url.endsWith('/messages?limit=10')) {
513
+ return jsonResponse([
514
+ {
515
+ id: 'discord-status-untracked',
516
+ author: { id: 'discord-user-1' },
517
+ content: 'status',
518
+ message_reference: { message_id: 'unknown-msg' },
519
+ },
520
+ ]);
521
+ }
522
+ if (url.endsWith('/messages')) {
523
+ return jsonResponse({ id: 'status-failure-reply' });
524
+ }
525
+ throw new Error(`Unexpected fetch url: ${url}`);
526
+ },
527
+ lookupByMessageIdImpl: () => null,
528
+ injectReplyImpl: () => {
529
+ injectCalled = true;
530
+ return true;
531
+ },
532
+ });
533
+ assert.equal(injectCalled, false);
534
+ assert.equal(state.messagesInjected, 0);
535
+ assert.equal(state.errors, 0);
536
+ assert.equal(fetchCalls.length, 2);
537
+ const replyBody = JSON.parse(String(fetchCalls[1].init?.body));
538
+ assert.equal(replyBody.content, NO_TRACKED_SESSION_MESSAGE);
539
+ });
385
540
  it('drops mapped Discord replies when the rate limiter rejects them', async () => {
386
541
  resetReplyListenerTransientState();
387
542
  const state = createBaseState();
@@ -1 +1 @@
1
- {"version":3,"file":"reply-listener.test.js","sourceRoot":"","sources":["../../../src/notifications/__tests__/reply-listener.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reply-listener.test.js","sourceRoot":"","sources":["../../../src/notifications/__tests__/reply-listener.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-idle-tail-dedupe.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-idle-tail-dedupe.test.d.ts","sourceRoot":"","sources":["../../../src/notifications/__tests__/session-idle-tail-dedupe.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,93 @@
1
+ import { afterEach, beforeEach, describe, it } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { mkdtemp, mkdir, rm, writeFile } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ import { tmpdir } from 'node:os';
6
+ const ENV_KEYS = [
7
+ 'CODEX_HOME',
8
+ 'OMX_NOTIFY_TEMP',
9
+ 'OMX_NOTIFY_TEMP_CONTRACT',
10
+ 'OMX_NOTIFY_PROFILE',
11
+ 'OMX_DISCORD_WEBHOOK_URL',
12
+ 'OMX_OPENCLAW',
13
+ ];
14
+ function clearEnv() {
15
+ for (const key of ENV_KEYS)
16
+ delete process.env[key];
17
+ }
18
+ describe('session-idle tmux tail dedupe integration', () => {
19
+ let notifyLifecycle;
20
+ let tempCodexHome = '';
21
+ let projectPath = '';
22
+ let originalFetch;
23
+ const capturedBodies = [];
24
+ beforeEach(async () => {
25
+ clearEnv();
26
+ const root = await mkdtemp(join(tmpdir(), 'omx-session-idle-tail-'));
27
+ tempCodexHome = join(root, '.codex');
28
+ projectPath = join(root, 'project');
29
+ await mkdir(tempCodexHome, { recursive: true });
30
+ await mkdir(projectPath, { recursive: true });
31
+ await writeFile(join(tempCodexHome, '.omx-config.json'), JSON.stringify({
32
+ notifications: {
33
+ enabled: true,
34
+ events: {
35
+ 'session-idle': {
36
+ enabled: true,
37
+ webhook: { enabled: true, url: 'https://example.com/webhook' },
38
+ },
39
+ },
40
+ webhook: { enabled: true, url: 'https://example.com/webhook' },
41
+ },
42
+ }, null, 2));
43
+ process.env.CODEX_HOME = tempCodexHome;
44
+ ({ notifyLifecycle } = await import(`../index.js?session-idle-tail-dedupe=${Date.now()}`));
45
+ originalFetch = globalThis.fetch;
46
+ capturedBodies.length = 0;
47
+ globalThis.fetch = (async (_url, init) => {
48
+ capturedBodies.push(JSON.parse(String(init?.body || '{}')));
49
+ return {
50
+ ok: true,
51
+ status: 200,
52
+ };
53
+ });
54
+ });
55
+ afterEach(async () => {
56
+ if (originalFetch === undefined) {
57
+ Reflect.deleteProperty(globalThis, 'fetch');
58
+ }
59
+ else {
60
+ globalThis.fetch = originalFetch;
61
+ }
62
+ const root = tempCodexHome ? join(tempCodexHome, '..') : '';
63
+ clearEnv();
64
+ if (root)
65
+ await rm(root, { recursive: true, force: true });
66
+ });
67
+ it('drops unchanged stale tmux tails from repeated idle notifications but keeps fresh tails', async () => {
68
+ const base = {
69
+ sessionId: 'sess-idle-tail',
70
+ projectPath,
71
+ projectName: 'project',
72
+ };
73
+ const staleTail = [
74
+ 'risk summary',
75
+ '{"severity":"error","message":"old metadata"}',
76
+ 'resolved setup failure',
77
+ ].join('\n');
78
+ const first = await notifyLifecycle('session-idle', { ...base, tmuxTail: staleTail });
79
+ assert.equal(first?.anySuccess, true);
80
+ assert.equal(capturedBodies.length, 1);
81
+ assert.match(String(capturedBodies[0]?.message || ''), /risk summary/);
82
+ const second = await notifyLifecycle('session-idle', { ...base, tmuxTail: staleTail });
83
+ assert.equal(second?.anySuccess, true);
84
+ assert.equal(capturedBodies.length, 2);
85
+ assert.doesNotMatch(String(capturedBodies[1]?.message || ''), /risk summary/);
86
+ assert.doesNotMatch(String(capturedBodies[1]?.message || ''), /severity/);
87
+ const third = await notifyLifecycle('session-idle', { ...base, tmuxTail: 'fresh setup error' });
88
+ assert.equal(third?.anySuccess, true);
89
+ assert.equal(capturedBodies.length, 3);
90
+ assert.match(String(capturedBodies[2]?.message || ''), /fresh setup error/);
91
+ });
92
+ });
93
+ //# sourceMappingURL=session-idle-tail-dedupe.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-idle-tail-dedupe.test.js","sourceRoot":"","sources":["../../../src/notifications/__tests__/session-idle-tail-dedupe.test.ts"],"names":[],"mappings":"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"}