oh-my-codex 0.4.0 → 0.4.2

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 (93) hide show
  1. package/README.es.md +36 -0
  2. package/README.ja.md +36 -0
  3. package/README.ko.md +36 -0
  4. package/README.md +13 -1
  5. package/README.pt.md +36 -0
  6. package/README.ru.md +36 -0
  7. package/README.vi.md +36 -0
  8. package/README.zh.md +39 -0
  9. package/bin/omx.js +2 -1
  10. package/dist/config/__tests__/generator-notify.test.js +3 -3
  11. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  12. package/dist/config/generator.d.ts +1 -1
  13. package/dist/config/generator.js +8 -8
  14. package/dist/config/generator.js.map +1 -1
  15. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.d.ts +2 -0
  16. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.d.ts.map +1 -0
  17. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +427 -0
  18. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -0
  19. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.d.ts +2 -0
  20. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.d.ts.map +1 -0
  21. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +432 -0
  22. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -0
  23. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +3 -0
  24. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  25. package/dist/hooks/emulator.d.ts +1 -1
  26. package/dist/hooks/emulator.js +5 -5
  27. package/dist/hooks/emulator.js.map +1 -1
  28. package/dist/hooks/extensibility/__tests__/dispatcher.test.d.ts +2 -0
  29. package/dist/hooks/extensibility/__tests__/dispatcher.test.d.ts.map +1 -0
  30. package/dist/hooks/extensibility/__tests__/dispatcher.test.js +152 -0
  31. package/dist/hooks/extensibility/__tests__/dispatcher.test.js.map +1 -0
  32. package/dist/hooks/extensibility/__tests__/events.test.d.ts +2 -0
  33. package/dist/hooks/extensibility/__tests__/events.test.d.ts.map +1 -0
  34. package/dist/hooks/extensibility/__tests__/events.test.js +117 -0
  35. package/dist/hooks/extensibility/__tests__/events.test.js.map +1 -0
  36. package/dist/hooks/extensibility/__tests__/loader.test.d.ts +2 -0
  37. package/dist/hooks/extensibility/__tests__/loader.test.d.ts.map +1 -0
  38. package/dist/hooks/extensibility/__tests__/loader.test.js +229 -0
  39. package/dist/hooks/extensibility/__tests__/loader.test.js.map +1 -0
  40. package/dist/hooks/extensibility/__tests__/logging.test.d.ts +2 -0
  41. package/dist/hooks/extensibility/__tests__/logging.test.d.ts.map +1 -0
  42. package/dist/hooks/extensibility/__tests__/logging.test.js +74 -0
  43. package/dist/hooks/extensibility/__tests__/logging.test.js.map +1 -0
  44. package/dist/hooks/extensibility/__tests__/plugin-runner.test.d.ts +2 -0
  45. package/dist/hooks/extensibility/__tests__/plugin-runner.test.d.ts.map +1 -0
  46. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js +202 -0
  47. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js.map +1 -0
  48. package/dist/hooks/extensibility/__tests__/runtime.test.d.ts +2 -0
  49. package/dist/hooks/extensibility/__tests__/runtime.test.d.ts.map +1 -0
  50. package/dist/hooks/extensibility/__tests__/runtime.test.js +117 -0
  51. package/dist/hooks/extensibility/__tests__/runtime.test.js.map +1 -0
  52. package/dist/hooks/extensibility/__tests__/sdk.test.d.ts +2 -0
  53. package/dist/hooks/extensibility/__tests__/sdk.test.d.ts.map +1 -0
  54. package/dist/hooks/extensibility/__tests__/sdk.test.js +277 -0
  55. package/dist/hooks/extensibility/__tests__/sdk.test.js.map +1 -0
  56. package/dist/hooks/extensibility/sdk.d.ts.map +1 -1
  57. package/dist/hooks/extensibility/sdk.js +10 -2
  58. package/dist/hooks/extensibility/sdk.js.map +1 -1
  59. package/dist/hud/__tests__/colors.test.d.ts +2 -0
  60. package/dist/hud/__tests__/colors.test.d.ts.map +1 -0
  61. package/dist/hud/__tests__/colors.test.js +194 -0
  62. package/dist/hud/__tests__/colors.test.js.map +1 -0
  63. package/dist/hud/__tests__/render.test.d.ts +2 -0
  64. package/dist/hud/__tests__/render.test.d.ts.map +1 -0
  65. package/dist/hud/__tests__/render.test.js +449 -0
  66. package/dist/hud/__tests__/render.test.js.map +1 -0
  67. package/dist/hud/__tests__/types.test.d.ts +2 -0
  68. package/dist/hud/__tests__/types.test.d.ts.map +1 -0
  69. package/dist/hud/__tests__/types.test.js +17 -0
  70. package/dist/hud/__tests__/types.test.js.map +1 -0
  71. package/dist/team/__tests__/tmux-session.test.js +15 -1
  72. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  73. package/dist/team/orchestrator.d.ts +1 -1
  74. package/dist/team/orchestrator.js +1 -1
  75. package/dist/team/tmux-session.d.ts +8 -0
  76. package/dist/team/tmux-session.d.ts.map +1 -1
  77. package/dist/team/tmux-session.js +28 -7
  78. package/dist/team/tmux-session.js.map +1 -1
  79. package/dist/utils/__tests__/package.test.d.ts +2 -0
  80. package/dist/utils/__tests__/package.test.d.ts.map +1 -0
  81. package/dist/utils/__tests__/package.test.js +21 -0
  82. package/dist/utils/__tests__/package.test.js.map +1 -0
  83. package/dist/utils/__tests__/paths.test.d.ts +2 -0
  84. package/dist/utils/__tests__/paths.test.d.ts.map +1 -0
  85. package/dist/utils/__tests__/paths.test.js +117 -0
  86. package/dist/utils/__tests__/paths.test.js.map +1 -0
  87. package/dist/verification/__tests__/verifier.test.d.ts +2 -0
  88. package/dist/verification/__tests__/verifier.test.d.ts.map +1 -0
  89. package/dist/verification/__tests__/verifier.test.js +94 -0
  90. package/dist/verification/__tests__/verifier.test.js.map +1 -0
  91. package/package.json +1 -1
  92. package/scripts/notify-hook.js +346 -1
  93. package/templates/AGENTS.md +1 -1
@@ -0,0 +1,432 @@
1
+ import { describe, it } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { spawnSync } from 'node:child_process';
4
+ import { chmod, mkdtemp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
5
+ import { existsSync } from 'node:fs';
6
+ import { tmpdir } from 'node:os';
7
+ import { join } from 'node:path';
8
+ const NOTIFY_HOOK_SCRIPT = new URL('../../../scripts/notify-hook.js', import.meta.url);
9
+ async function withTempWorkingDir(run) {
10
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-auto-nudge-'));
11
+ try {
12
+ await run(cwd);
13
+ }
14
+ finally {
15
+ await rm(cwd, { recursive: true, force: true });
16
+ }
17
+ }
18
+ async function writeJson(path, value) {
19
+ await writeFile(path, JSON.stringify(value, null, 2));
20
+ }
21
+ /**
22
+ * Build a fake tmux binary that logs all invocations and optionally returns
23
+ * capture-pane content from OMX_TEST_CAPTURE_FILE.
24
+ */
25
+ function buildFakeTmux(tmuxLogPath) {
26
+ return `#!/usr/bin/env bash
27
+ set -eu
28
+ echo "$@" >> "${tmuxLogPath}"
29
+ cmd="\$1"
30
+ shift || true
31
+ if [[ "\$cmd" == "capture-pane" ]]; then
32
+ if [[ -n "\${OMX_TEST_CAPTURE_FILE:-}" && -f "\${OMX_TEST_CAPTURE_FILE}" ]]; then
33
+ cat "\${OMX_TEST_CAPTURE_FILE}"
34
+ fi
35
+ exit 0
36
+ fi
37
+ if [[ "\$cmd" == "send-keys" ]]; then
38
+ exit 0
39
+ fi
40
+ if [[ "\$cmd" == "display-message" ]]; then
41
+ exit 0
42
+ fi
43
+ if [[ "\$cmd" == "list-panes" ]]; then
44
+ echo "%1 12345"
45
+ exit 0
46
+ fi
47
+ exit 0
48
+ `;
49
+ }
50
+ function runNotifyHook(cwd, fakeBinDir, codexHome, payloadOverrides = {}, extraEnv = {}) {
51
+ const payload = {
52
+ cwd,
53
+ type: 'agent-turn-complete',
54
+ 'thread-id': 'thread-test',
55
+ 'turn-id': `turn-${Date.now()}-${Math.random().toString(16).slice(2, 8)}`,
56
+ 'input-messages': ['test'],
57
+ 'last-assistant-message': 'done',
58
+ ...payloadOverrides,
59
+ };
60
+ return spawnSync(process.execPath, [NOTIFY_HOOK_SCRIPT.pathname, JSON.stringify(payload)], {
61
+ encoding: 'utf8',
62
+ timeout: 15_000,
63
+ env: {
64
+ ...process.env,
65
+ PATH: `${fakeBinDir}:${process.env.PATH || ''}`,
66
+ CODEX_HOME: codexHome,
67
+ TMUX_PANE: '%99',
68
+ TMUX: '1',
69
+ OMX_TEAM_WORKER: '',
70
+ OMX_TEAM_LEADER_NUDGE_MS: '9999999',
71
+ OMX_TEAM_LEADER_STALE_MS: '9999999',
72
+ ...extraEnv,
73
+ },
74
+ });
75
+ }
76
+ describe('notify-hook auto-nudge', () => {
77
+ it('sends nudge when stall pattern detected in last-assistant-message', async () => {
78
+ await withTempWorkingDir(async (cwd) => {
79
+ const omxDir = join(cwd, '.omx');
80
+ const stateDir = join(omxDir, 'state');
81
+ const logsDir = join(omxDir, 'logs');
82
+ const codexHome = join(cwd, 'codex-home');
83
+ const fakeBinDir = join(cwd, 'fake-bin');
84
+ const tmuxLogPath = join(cwd, 'tmux.log');
85
+ await mkdir(logsDir, { recursive: true });
86
+ await mkdir(stateDir, { recursive: true });
87
+ await mkdir(codexHome, { recursive: true });
88
+ await mkdir(fakeBinDir, { recursive: true });
89
+ // Config: enabled, delaySec=0 for fast tests
90
+ await writeJson(join(codexHome, '.omx-config.json'), {
91
+ autoNudge: { enabled: true, delaySec: 0 },
92
+ });
93
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
94
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
95
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
96
+ 'last-assistant-message': 'I analyzed the code. If you want me to make these changes, let me know.',
97
+ });
98
+ assert.equal(result.status, 0, `hook failed: ${result.stderr || result.stdout}`);
99
+ assert.ok(existsSync(tmuxLogPath), 'tmux should have been called');
100
+ const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
101
+ assert.match(tmuxLog, /send-keys -t %99 -l yes, proceed \[OMX_TMUX_INJECT\]/, 'should send nudge response with injection marker');
102
+ // Codex CLI needs C-m sent twice with a delay for reliable submission
103
+ const cmMatches = tmuxLog.match(/send-keys -t %99 C-m/g);
104
+ assert.ok(cmMatches && cmMatches.length >= 2, `should send C-m twice, got ${cmMatches?.length ?? 0}`);
105
+ });
106
+ });
107
+ it('sends nudge via capture-pane fallback when payload has no stall pattern', async () => {
108
+ await withTempWorkingDir(async (cwd) => {
109
+ const omxDir = join(cwd, '.omx');
110
+ const stateDir = join(omxDir, 'state');
111
+ const logsDir = join(omxDir, 'logs');
112
+ const codexHome = join(cwd, 'codex-home');
113
+ const fakeBinDir = join(cwd, 'fake-bin');
114
+ const tmuxLogPath = join(cwd, 'tmux.log');
115
+ const captureFile = join(cwd, 'capture-output.txt');
116
+ await mkdir(logsDir, { recursive: true });
117
+ await mkdir(stateDir, { recursive: true });
118
+ await mkdir(codexHome, { recursive: true });
119
+ await mkdir(fakeBinDir, { recursive: true });
120
+ await writeJson(join(codexHome, '.omx-config.json'), {
121
+ autoNudge: { enabled: true, delaySec: 0 },
122
+ });
123
+ // capture-pane will return content with a stall pattern
124
+ await writeFile(captureFile, 'Here are the results.\nWould you like me to continue with the implementation?\n');
125
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
126
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
127
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
128
+ 'last-assistant-message': 'clean output with no stall',
129
+ }, {
130
+ OMX_TEST_CAPTURE_FILE: captureFile,
131
+ });
132
+ assert.equal(result.status, 0, `hook failed: ${result.stderr || result.stdout}`);
133
+ const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
134
+ assert.match(tmuxLog, /capture-pane/, 'should have tried capture-pane');
135
+ assert.match(tmuxLog, /send-keys -t %99 -l yes, proceed \[OMX_TMUX_INJECT\]/, 'should send nudge via capture-pane fallback with marker');
136
+ });
137
+ });
138
+ it('does not nudge when no stall pattern is present', async () => {
139
+ await withTempWorkingDir(async (cwd) => {
140
+ const omxDir = join(cwd, '.omx');
141
+ const stateDir = join(omxDir, 'state');
142
+ const logsDir = join(omxDir, 'logs');
143
+ const codexHome = join(cwd, 'codex-home');
144
+ const fakeBinDir = join(cwd, 'fake-bin');
145
+ const tmuxLogPath = join(cwd, 'tmux.log');
146
+ await mkdir(logsDir, { recursive: true });
147
+ await mkdir(stateDir, { recursive: true });
148
+ await mkdir(codexHome, { recursive: true });
149
+ await mkdir(fakeBinDir, { recursive: true });
150
+ await writeJson(join(codexHome, '.omx-config.json'), {
151
+ autoNudge: { enabled: true, delaySec: 0 },
152
+ });
153
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
154
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
155
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
156
+ 'last-assistant-message': 'I completed the refactoring. All tests pass.',
157
+ });
158
+ assert.equal(result.status, 0, `hook failed: ${result.stderr || result.stdout}`);
159
+ if (existsSync(tmuxLogPath)) {
160
+ const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
161
+ assert.doesNotMatch(tmuxLog, /send-keys -t %99 -l yes, proceed/, 'should NOT send nudge');
162
+ }
163
+ });
164
+ });
165
+ it('respects enabled=false configuration', async () => {
166
+ await withTempWorkingDir(async (cwd) => {
167
+ const omxDir = join(cwd, '.omx');
168
+ const stateDir = join(omxDir, 'state');
169
+ const logsDir = join(omxDir, 'logs');
170
+ const codexHome = join(cwd, 'codex-home');
171
+ const fakeBinDir = join(cwd, 'fake-bin');
172
+ const tmuxLogPath = join(cwd, 'tmux.log');
173
+ await mkdir(logsDir, { recursive: true });
174
+ await mkdir(stateDir, { recursive: true });
175
+ await mkdir(codexHome, { recursive: true });
176
+ await mkdir(fakeBinDir, { recursive: true });
177
+ // Explicitly disabled
178
+ await writeJson(join(codexHome, '.omx-config.json'), {
179
+ autoNudge: { enabled: false, delaySec: 0 },
180
+ });
181
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
182
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
183
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
184
+ 'last-assistant-message': 'Would you like me to proceed?',
185
+ });
186
+ assert.equal(result.status, 0, `hook failed: ${result.stderr || result.stdout}`);
187
+ if (existsSync(tmuxLogPath)) {
188
+ const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
189
+ assert.doesNotMatch(tmuxLog, /send-keys -t %99 -l/, 'should NOT send nudge when disabled');
190
+ }
191
+ });
192
+ });
193
+ it('respects maxNudgesPerSession limit', async () => {
194
+ await withTempWorkingDir(async (cwd) => {
195
+ const omxDir = join(cwd, '.omx');
196
+ const stateDir = join(omxDir, 'state');
197
+ const logsDir = join(omxDir, 'logs');
198
+ const codexHome = join(cwd, 'codex-home');
199
+ const fakeBinDir = join(cwd, 'fake-bin');
200
+ const tmuxLogPath = join(cwd, 'tmux.log');
201
+ await mkdir(logsDir, { recursive: true });
202
+ await mkdir(stateDir, { recursive: true });
203
+ await mkdir(codexHome, { recursive: true });
204
+ await mkdir(fakeBinDir, { recursive: true });
205
+ await writeJson(join(codexHome, '.omx-config.json'), {
206
+ autoNudge: { enabled: true, delaySec: 0, maxNudgesPerSession: 2 },
207
+ });
208
+ // Pre-seed nudge state at the limit
209
+ await writeJson(join(stateDir, 'auto-nudge-state.json'), {
210
+ nudgeCount: 2,
211
+ lastNudgeAt: new Date().toISOString(),
212
+ });
213
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
214
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
215
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
216
+ 'last-assistant-message': 'Shall I continue with the next step?',
217
+ });
218
+ assert.equal(result.status, 0, `hook failed: ${result.stderr || result.stdout}`);
219
+ if (existsSync(tmuxLogPath)) {
220
+ const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
221
+ assert.doesNotMatch(tmuxLog, /send-keys -t %99 -l/, 'should NOT nudge past max');
222
+ }
223
+ });
224
+ });
225
+ it('uses custom response from config', async () => {
226
+ await withTempWorkingDir(async (cwd) => {
227
+ const omxDir = join(cwd, '.omx');
228
+ const stateDir = join(omxDir, 'state');
229
+ const logsDir = join(omxDir, 'logs');
230
+ const codexHome = join(cwd, 'codex-home');
231
+ const fakeBinDir = join(cwd, 'fake-bin');
232
+ const tmuxLogPath = join(cwd, 'tmux.log');
233
+ await mkdir(logsDir, { recursive: true });
234
+ await mkdir(stateDir, { recursive: true });
235
+ await mkdir(codexHome, { recursive: true });
236
+ await mkdir(fakeBinDir, { recursive: true });
237
+ await writeJson(join(codexHome, '.omx-config.json'), {
238
+ autoNudge: { enabled: true, delaySec: 0, response: 'continue now' },
239
+ });
240
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
241
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
242
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
243
+ 'last-assistant-message': 'Do you want me to implement this feature?',
244
+ });
245
+ assert.equal(result.status, 0, `hook failed: ${result.stderr || result.stdout}`);
246
+ const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
247
+ assert.match(tmuxLog, /send-keys -t %99 -l continue now \[OMX_TMUX_INJECT\]/, 'should use custom response with marker');
248
+ });
249
+ });
250
+ it('tracks nudge count in auto-nudge-state.json', async () => {
251
+ await withTempWorkingDir(async (cwd) => {
252
+ const omxDir = join(cwd, '.omx');
253
+ const stateDir = join(omxDir, 'state');
254
+ const logsDir = join(omxDir, 'logs');
255
+ const codexHome = join(cwd, 'codex-home');
256
+ const fakeBinDir = join(cwd, 'fake-bin');
257
+ const tmuxLogPath = join(cwd, 'tmux.log');
258
+ await mkdir(logsDir, { recursive: true });
259
+ await mkdir(stateDir, { recursive: true });
260
+ await mkdir(codexHome, { recursive: true });
261
+ await mkdir(fakeBinDir, { recursive: true });
262
+ await writeJson(join(codexHome, '.omx-config.json'), {
263
+ autoNudge: { enabled: true, delaySec: 0 },
264
+ });
265
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
266
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
267
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
268
+ 'last-assistant-message': 'Ready to proceed when you are.',
269
+ });
270
+ assert.equal(result.status, 0, `hook failed: ${result.stderr || result.stdout}`);
271
+ const nudgeStatePath = join(stateDir, 'auto-nudge-state.json');
272
+ assert.ok(existsSync(nudgeStatePath), 'auto-nudge-state.json should be created');
273
+ const nudgeState = JSON.parse(await readFile(nudgeStatePath, 'utf-8'));
274
+ assert.equal(nudgeState.nudgeCount, 1, 'nudge count should be 1');
275
+ assert.ok(nudgeState.lastNudgeAt, 'should have lastNudgeAt timestamp');
276
+ });
277
+ });
278
+ it('detects all default stall patterns case-insensitively', async () => {
279
+ const patterns = [
280
+ 'If You Want me to make changes',
281
+ 'Would You Like me to continue?',
282
+ 'Shall I proceed with the implementation?',
283
+ 'Next I Can refactor the module for clarity.',
284
+ 'Do You Want Me To apply this fix?',
285
+ 'Let Me Know If you need anything else.',
286
+ 'Want Me To make those changes?',
287
+ 'Let Me Know what you think.',
288
+ 'Just Let Me Know when ready.',
289
+ 'I Can Also refactor the tests.',
290
+ 'I Could Also add more tests if needed.',
291
+ 'READY TO PROCEED with the next step.',
292
+ 'Should I go ahead and deploy?',
293
+ 'Whenever You are ready, I can start.',
294
+ 'Say Go when you are ready.',
295
+ 'Say Yes to confirm the changes.',
296
+ 'Type Continue to proceed with the next step.',
297
+ "And I'll Continue once you confirm.",
298
+ "And I'll Proceed with the deployment.",
299
+ "I'll Keep Driving the implementation forward.",
300
+ "I'll Keep Pushing on the test coverage.",
301
+ "I'll Move Forward with the remaining items.",
302
+ "I'll Drive Forward from here.",
303
+ "I'll Proceed From Here with the next task.",
304
+ "I'll Continue From this point onward.",
305
+ ];
306
+ for (const message of patterns) {
307
+ await withTempWorkingDir(async (cwd) => {
308
+ const omxDir = join(cwd, '.omx');
309
+ const stateDir = join(omxDir, 'state');
310
+ const logsDir = join(omxDir, 'logs');
311
+ const codexHome = join(cwd, 'codex-home');
312
+ const fakeBinDir = join(cwd, 'fake-bin');
313
+ const tmuxLogPath = join(cwd, 'tmux.log');
314
+ await mkdir(logsDir, { recursive: true });
315
+ await mkdir(stateDir, { recursive: true });
316
+ await mkdir(codexHome, { recursive: true });
317
+ await mkdir(fakeBinDir, { recursive: true });
318
+ await writeJson(join(codexHome, '.omx-config.json'), {
319
+ autoNudge: { enabled: true, delaySec: 0 },
320
+ });
321
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
322
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
323
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
324
+ 'last-assistant-message': message,
325
+ });
326
+ assert.equal(result.status, 0, `hook failed for pattern "${message}": ${result.stderr || result.stdout}`);
327
+ assert.ok(existsSync(tmuxLogPath), `tmux should be called for pattern: "${message}"`);
328
+ const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
329
+ assert.match(tmuxLog, /send-keys -t %99 -l yes, proceed \[OMX_TMUX_INJECT\]/, `should nudge with marker for: "${message}"`);
330
+ });
331
+ }
332
+ });
333
+ it('uses custom patterns from config', async () => {
334
+ await withTempWorkingDir(async (cwd) => {
335
+ const omxDir = join(cwd, '.omx');
336
+ const stateDir = join(omxDir, 'state');
337
+ const logsDir = join(omxDir, 'logs');
338
+ const codexHome = join(cwd, 'codex-home');
339
+ const fakeBinDir = join(cwd, 'fake-bin');
340
+ const tmuxLogPath = join(cwd, 'tmux.log');
341
+ await mkdir(logsDir, { recursive: true });
342
+ await mkdir(stateDir, { recursive: true });
343
+ await mkdir(codexHome, { recursive: true });
344
+ await mkdir(fakeBinDir, { recursive: true });
345
+ // Custom patterns that replace defaults
346
+ await writeJson(join(codexHome, '.omx-config.json'), {
347
+ autoNudge: {
348
+ enabled: true,
349
+ delaySec: 0,
350
+ patterns: ['awaiting approval'],
351
+ },
352
+ });
353
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
354
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
355
+ // Default pattern should NOT trigger with custom config
356
+ const result1 = runNotifyHook(cwd, fakeBinDir, codexHome, {
357
+ 'last-assistant-message': 'Would you like me to proceed?',
358
+ });
359
+ assert.equal(result1.status, 0);
360
+ if (existsSync(tmuxLogPath)) {
361
+ const log1 = await readFile(tmuxLogPath, 'utf-8');
362
+ assert.doesNotMatch(log1, /send-keys -t %99 -l/, 'default pattern should not match with custom config');
363
+ }
364
+ // Clean tmux log for second run
365
+ if (existsSync(tmuxLogPath)) {
366
+ await writeFile(tmuxLogPath, '');
367
+ }
368
+ // Custom pattern should trigger
369
+ const result2 = runNotifyHook(cwd, fakeBinDir, codexHome, {
370
+ 'last-assistant-message': 'Changes ready. Awaiting approval before applying.',
371
+ });
372
+ assert.equal(result2.status, 0);
373
+ const log2 = await readFile(tmuxLogPath, 'utf-8');
374
+ assert.match(log2, /send-keys -t %99 -l yes, proceed \[OMX_TMUX_INJECT\]/, 'custom pattern should trigger nudge with marker');
375
+ });
376
+ });
377
+ it('defaults to enabled when no config file exists', async () => {
378
+ await withTempWorkingDir(async (cwd) => {
379
+ const omxDir = join(cwd, '.omx');
380
+ const stateDir = join(omxDir, 'state');
381
+ const logsDir = join(omxDir, 'logs');
382
+ const codexHome = join(cwd, 'codex-home');
383
+ const fakeBinDir = join(cwd, 'fake-bin');
384
+ const tmuxLogPath = join(cwd, 'tmux.log');
385
+ await mkdir(logsDir, { recursive: true });
386
+ await mkdir(stateDir, { recursive: true });
387
+ await mkdir(codexHome, { recursive: true });
388
+ await mkdir(fakeBinDir, { recursive: true });
389
+ // No .omx-config.json at all — should use defaults (enabled=true)
390
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
391
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
392
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
393
+ 'last-assistant-message': 'If you want, I can fix the remaining issues.',
394
+ });
395
+ assert.equal(result.status, 0, `hook failed: ${result.stderr || result.stdout}`);
396
+ assert.ok(existsSync(tmuxLogPath), 'tmux should be called with defaults');
397
+ const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
398
+ assert.match(tmuxLog, /send-keys -t %99 -l yes, proceed \[OMX_TMUX_INJECT\]/, 'should nudge with default config and marker');
399
+ });
400
+ });
401
+ it('does not nudge when TMUX_PANE is not set', async () => {
402
+ await withTempWorkingDir(async (cwd) => {
403
+ const omxDir = join(cwd, '.omx');
404
+ const stateDir = join(omxDir, 'state');
405
+ const logsDir = join(omxDir, 'logs');
406
+ const codexHome = join(cwd, 'codex-home');
407
+ const fakeBinDir = join(cwd, 'fake-bin');
408
+ const tmuxLogPath = join(cwd, 'tmux.log');
409
+ await mkdir(logsDir, { recursive: true });
410
+ await mkdir(stateDir, { recursive: true });
411
+ await mkdir(codexHome, { recursive: true });
412
+ await mkdir(fakeBinDir, { recursive: true });
413
+ await writeJson(join(codexHome, '.omx-config.json'), {
414
+ autoNudge: { enabled: true, delaySec: 0 },
415
+ });
416
+ await writeFile(join(fakeBinDir, 'tmux'), buildFakeTmux(tmuxLogPath));
417
+ await chmod(join(fakeBinDir, 'tmux'), 0o755);
418
+ const result = runNotifyHook(cwd, fakeBinDir, codexHome, {
419
+ 'last-assistant-message': 'Would you like me to continue?',
420
+ }, {
421
+ TMUX_PANE: '', // No pane available
422
+ TMUX: '',
423
+ });
424
+ assert.equal(result.status, 0, `hook failed: ${result.stderr || result.stdout}`);
425
+ if (existsSync(tmuxLogPath)) {
426
+ const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
427
+ assert.doesNotMatch(tmuxLog, /send-keys.*-l yes, proceed/, 'should not nudge without pane');
428
+ }
429
+ });
430
+ });
431
+ });
432
+ //# sourceMappingURL=notify-hook-auto-nudge.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-hook-auto-nudge.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/notify-hook-auto-nudge.test.ts"],"names":[],"mappings":"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"}
@@ -105,6 +105,7 @@ describe('notify-hook team leader nudge', () => {
105
105
  assert.match(tmuxLog, /send-keys/);
106
106
  assert.match(tmuxLog, /-t devsess:0/);
107
107
  assert.match(tmuxLog, /Team alpha:/);
108
+ assert.match(tmuxLog, /\[OMX_TMUX_INJECT\]/, 'should include injection marker');
108
109
  });
109
110
  });
110
111
  it('nudges when worker panes are alive and leader is stale (no recent HUD turn)', async () => {
@@ -144,6 +145,7 @@ describe('notify-hook team leader nudge', () => {
144
145
  assert.match(tmuxLog, /Team beta:/);
145
146
  assert.match(tmuxLog, /leader stale/);
146
147
  assert.match(tmuxLog, /pane\(s\) still active/);
148
+ assert.match(tmuxLog, /\[OMX_TMUX_INJECT\]/, 'should include injection marker');
147
149
  });
148
150
  });
149
151
  it('emits team_leader_nudge event to events.ndjson when nudge fires', async () => {
@@ -273,6 +275,7 @@ describe('notify-hook team leader nudge', () => {
273
275
  const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
274
276
  assert.match(tmuxLog, /leader stale/);
275
277
  assert.match(tmuxLog, /msg\(s\) pending/);
278
+ assert.match(tmuxLog, /\[OMX_TMUX_INJECT\]/, 'should include injection marker');
276
279
  // Verify event reason
277
280
  const eventsPath = join(eventsDir, 'events.ndjson');
278
281
  assert.ok(existsSync(eventsPath), 'events.ndjson should exist');
@@ -1 +1 @@
1
- {"version":3,"file":"notify-hook-team-leader-nudge.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/notify-hook-team-leader-nudge.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify-hook-team-leader-nudge.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/notify-hook-team-leader-nudge.test.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * 2. PreToolUse -> AGENTS.md instructions (inline guidance, no hook needed)
9
9
  * 3. PostToolUse -> notify config (fire-and-forget, no context injection)
10
10
  * 4. UserPromptSubmit -> AGENTS.md keyword detection instructions
11
- * 5. SubagentStart/Stop -> Codex CLI collab system (native tracking)
11
+ * 5. SubagentStart/Stop -> Codex CLI multi_agent system (native tracking)
12
12
  * 6. PreCompact -> Not available (Codex manages compaction internally)
13
13
  * 7. Stop -> notify config (can detect turn completion)
14
14
  *
@@ -8,7 +8,7 @@
8
8
  * 2. PreToolUse -> AGENTS.md instructions (inline guidance, no hook needed)
9
9
  * 3. PostToolUse -> notify config (fire-and-forget, no context injection)
10
10
  * 4. UserPromptSubmit -> AGENTS.md keyword detection instructions
11
- * 5. SubagentStart/Stop -> Codex CLI collab system (native tracking)
11
+ * 5. SubagentStart/Stop -> Codex CLI multi_agent system (native tracking)
12
12
  * 6. PreCompact -> Not available (Codex manages compaction internally)
13
13
  * 7. Stop -> notify config (can detect turn completion)
14
14
  *
@@ -45,14 +45,14 @@ export const HOOK_MAPPING = {
45
45
  notes: 'Model detects keywords via AGENTS.md instructions instead of external hook',
46
46
  },
47
47
  SubagentStart: {
48
- mechanism: 'Codex CLI collab system',
48
+ mechanism: 'Codex CLI multi_agent system',
49
49
  capability: 'full',
50
- notes: 'Native sub-agent lifecycle tracking via collab feature',
50
+ notes: 'Native sub-agent lifecycle tracking via multi_agent feature',
51
51
  },
52
52
  SubagentStop: {
53
- mechanism: 'Codex CLI collab system',
53
+ mechanism: 'Codex CLI multi_agent system',
54
54
  capability: 'full',
55
- notes: 'Native sub-agent lifecycle tracking via collab feature',
55
+ notes: 'Native sub-agent lifecycle tracking via multi_agent feature',
56
56
  },
57
57
  PreCompact: {
58
58
  mechanism: 'AGENTS.md overlay compaction protocol',
@@ -1 +1 @@
1
- {"version":3,"file":"emulator.js","sourceRoot":"","sources":["../../src/hooks/emulator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAgBH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAIpB;IACH,YAAY,EAAE;QACZ,SAAS,EAAE,4CAA4C;QACvD,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,yHAAyH;KACjI;IACD,UAAU,EAAE;QACV,SAAS,EAAE,2BAA2B;QACtC,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,qFAAqF;KAC7F;IACD,WAAW,EAAE;QACX,SAAS,EAAE,iCAAiC;QAC5C,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,4EAA4E;KACpF;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,uCAAuC;QAClD,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,4EAA4E;KACpF;IACD,aAAa,EAAE;QACb,SAAS,EAAE,yBAAyB;QACpC,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,wDAAwD;KAChE;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,yBAAyB;QACpC,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,wDAAwD;KAChE;IACD,UAAU,EAAE;QACV,SAAS,EAAE,uCAAuC;QAClD,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,sHAAsH;KAC9H;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,oCAAoC;QAC/C,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,6FAA6F;KACrG;IACD,UAAU,EAAE;QACV,SAAS,EAAE,gCAAgC;QAC3C,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,2FAA2F;KACnG;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,WAAW,EAAE,mDAAmD;IAChE,OAAO,EAAE,mDAAmD;IAC5D,WAAW,EAAE,4CAA4C;IACzD,KAAK,EAAE,4CAA4C;IACnD,SAAS,EAAE,gDAAgD;IAC3D,KAAK,EAAE,gDAAgD;IACvD,MAAM,EAAE,yBAAyB;IACjC,SAAS,EAAE,4DAA4D;IACvE,MAAM,EAAE,gCAAgC;IACxC,kBAAkB,EAAE,gCAAgC;IACpD,OAAO,EAAE,0EAA0E;IACnF,mBAAmB,EAAE,0EAA0E;IAC/F,UAAU,EAAE,mCAAmC;IAC/C,UAAU,EAAE,iCAAiC;IAC7C,QAAQ,EAAE,+BAA+B;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,+BAA+B;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,qBAAqB,OAAO,MAAM,MAAM,EAAE,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;EAGP,KAAK;;;;;CAKN,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"emulator.js","sourceRoot":"","sources":["../../src/hooks/emulator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAgBH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAIpB;IACH,YAAY,EAAE;QACZ,SAAS,EAAE,4CAA4C;QACvD,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,yHAAyH;KACjI;IACD,UAAU,EAAE;QACV,SAAS,EAAE,2BAA2B;QACtC,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,qFAAqF;KAC7F;IACD,WAAW,EAAE;QACX,SAAS,EAAE,iCAAiC;QAC5C,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,4EAA4E;KACpF;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,uCAAuC;QAClD,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,4EAA4E;KACpF;IACD,aAAa,EAAE;QACb,SAAS,EAAE,8BAA8B;QACzC,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,6DAA6D;KACrE;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,8BAA8B;QACzC,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,6DAA6D;KACrE;IACD,UAAU,EAAE;QACV,SAAS,EAAE,uCAAuC;QAClD,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,sHAAsH;KAC9H;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,oCAAoC;QAC/C,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,6FAA6F;KACrG;IACD,UAAU,EAAE;QACV,SAAS,EAAE,gCAAgC;QAC3C,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,2FAA2F;KACnG;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,WAAW,EAAE,mDAAmD;IAChE,OAAO,EAAE,mDAAmD;IAC5D,WAAW,EAAE,4CAA4C;IACzD,KAAK,EAAE,4CAA4C;IACnD,SAAS,EAAE,gDAAgD;IAC3D,KAAK,EAAE,gDAAgD;IACvD,MAAM,EAAE,yBAAyB;IACjC,SAAS,EAAE,4DAA4D;IACvE,MAAM,EAAE,gCAAgC;IACxC,kBAAkB,EAAE,gCAAgC;IACpD,OAAO,EAAE,0EAA0E;IACnF,mBAAmB,EAAE,0EAA0E;IAC/F,UAAU,EAAE,mCAAmC;IAC/C,UAAU,EAAE,iCAAiC;IAC7C,QAAQ,EAAE,+BAA+B;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,+BAA+B;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,qBAAqB,OAAO,MAAM,MAAM,EAAE,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;EAGP,KAAK;;;;;CAKN,CAAC;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dispatcher.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/extensibility/__tests__/dispatcher.test.ts"],"names":[],"mappings":""}