oh-my-codex 0.18.11 → 0.18.13

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 (196) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +9 -1
  4. package/dist/autopilot/__tests__/ralplan-gate.test.js +668 -0
  5. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
  6. package/dist/autopilot/completion-gate.d.ts +10 -0
  7. package/dist/autopilot/completion-gate.d.ts.map +1 -0
  8. package/dist/autopilot/completion-gate.js +154 -0
  9. package/dist/autopilot/completion-gate.js.map +1 -0
  10. package/dist/autopilot/ralplan-gate.d.ts.map +1 -1
  11. package/dist/autopilot/ralplan-gate.js +42 -21
  12. package/dist/autopilot/ralplan-gate.js.map +1 -1
  13. package/dist/cli/__tests__/codex-plugin-layout.test.js +46 -3
  14. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
  15. package/dist/cli/__tests__/doctor-invalid-config.test.js +35 -0
  16. package/dist/cli/__tests__/doctor-invalid-config.test.js.map +1 -1
  17. package/dist/cli/__tests__/doctor-warning-copy.test.js +317 -0
  18. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  19. package/dist/cli/__tests__/index.test.js +120 -2
  20. package/dist/cli/__tests__/index.test.js.map +1 -1
  21. package/dist/cli/__tests__/launch-fallback.test.js +1 -1
  22. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  23. package/dist/cli/__tests__/resume.test.js +217 -1
  24. package/dist/cli/__tests__/resume.test.js.map +1 -1
  25. package/dist/cli/__tests__/session-scoped-runtime.test.js +101 -0
  26. package/dist/cli/__tests__/session-scoped-runtime.test.js.map +1 -1
  27. package/dist/cli/__tests__/session-search-help.test.js +3 -2
  28. package/dist/cli/__tests__/session-search-help.test.js.map +1 -1
  29. package/dist/cli/__tests__/session-search.test.js +64 -2
  30. package/dist/cli/__tests__/session-search.test.js.map +1 -1
  31. package/dist/cli/__tests__/setup-agents-overwrite.test.js +289 -1
  32. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
  33. package/dist/cli/__tests__/setup-install-mode.test.js +290 -17
  34. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  35. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +74 -0
  36. package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -1
  37. package/dist/cli/__tests__/setup-scope.test.js +45 -0
  38. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  39. package/dist/cli/__tests__/state.test.js +93 -0
  40. package/dist/cli/__tests__/state.test.js.map +1 -1
  41. package/dist/cli/__tests__/update.test.js +157 -3
  42. package/dist/cli/__tests__/update.test.js.map +1 -1
  43. package/dist/cli/__tests__/version-sync-contract.test.js +2 -0
  44. package/dist/cli/__tests__/version-sync-contract.test.js.map +1 -1
  45. package/dist/cli/doctor.d.ts.map +1 -1
  46. package/dist/cli/doctor.js +90 -12
  47. package/dist/cli/doctor.js.map +1 -1
  48. package/dist/cli/index.d.ts +13 -4
  49. package/dist/cli/index.d.ts.map +1 -1
  50. package/dist/cli/index.js +439 -46
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/cli/project-runtime-codex-homes.d.ts +6 -0
  53. package/dist/cli/project-runtime-codex-homes.d.ts.map +1 -0
  54. package/dist/cli/project-runtime-codex-homes.js +27 -0
  55. package/dist/cli/project-runtime-codex-homes.js.map +1 -0
  56. package/dist/cli/session-search.d.ts.map +1 -1
  57. package/dist/cli/session-search.js +8 -1
  58. package/dist/cli/session-search.js.map +1 -1
  59. package/dist/cli/setup.d.ts +2 -2
  60. package/dist/cli/setup.d.ts.map +1 -1
  61. package/dist/cli/setup.js +482 -126
  62. package/dist/cli/setup.js.map +1 -1
  63. package/dist/cli/state.d.ts.map +1 -1
  64. package/dist/cli/state.js +79 -8
  65. package/dist/cli/state.js.map +1 -1
  66. package/dist/cli/update.d.ts +1 -0
  67. package/dist/cli/update.d.ts.map +1 -1
  68. package/dist/cli/update.js +42 -10
  69. package/dist/cli/update.js.map +1 -1
  70. package/dist/config/__tests__/codex-hooks.test.js +73 -29
  71. package/dist/config/__tests__/codex-hooks.test.js.map +1 -1
  72. package/dist/config/codex-hooks.d.ts +14 -0
  73. package/dist/config/codex-hooks.d.ts.map +1 -1
  74. package/dist/config/codex-hooks.js +54 -51
  75. package/dist/config/codex-hooks.js.map +1 -1
  76. package/dist/config/generator.d.ts +1 -1
  77. package/dist/config/generator.d.ts.map +1 -1
  78. package/dist/config/generator.js +1 -1
  79. package/dist/config/generator.js.map +1 -1
  80. package/dist/hooks/__tests__/best-practice-research-skill.test.js +12 -0
  81. package/dist/hooks/__tests__/best-practice-research-skill.test.js.map +1 -1
  82. package/dist/hud/__tests__/authority.test.js +45 -12
  83. package/dist/hud/__tests__/authority.test.js.map +1 -1
  84. package/dist/hud/__tests__/reconcile.test.js +95 -0
  85. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  86. package/dist/hud/__tests__/render.test.js +6 -6
  87. package/dist/hud/__tests__/render.test.js.map +1 -1
  88. package/dist/hud/__tests__/tmux.test.js +2 -2
  89. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  90. package/dist/hud/authority.d.ts.map +1 -1
  91. package/dist/hud/authority.js +17 -2
  92. package/dist/hud/authority.js.map +1 -1
  93. package/dist/hud/index.js +1 -4
  94. package/dist/hud/index.js.map +1 -1
  95. package/dist/hud/reconcile.d.ts.map +1 -1
  96. package/dist/hud/reconcile.js +42 -0
  97. package/dist/hud/reconcile.js.map +1 -1
  98. package/dist/hud/render.d.ts.map +1 -1
  99. package/dist/hud/render.js +6 -0
  100. package/dist/hud/render.js.map +1 -1
  101. package/dist/hud/tmux.d.ts.map +1 -1
  102. package/dist/hud/tmux.js +5 -4
  103. package/dist/hud/tmux.js.map +1 -1
  104. package/dist/mcp/__tests__/bootstrap.test.js +31 -1
  105. package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
  106. package/dist/mcp/bootstrap.d.ts +1 -0
  107. package/dist/mcp/bootstrap.d.ts.map +1 -1
  108. package/dist/mcp/bootstrap.js +32 -0
  109. package/dist/mcp/bootstrap.js.map +1 -1
  110. package/dist/modes/__tests__/base-autopilot-gates.test.d.ts +2 -0
  111. package/dist/modes/__tests__/base-autopilot-gates.test.d.ts.map +1 -0
  112. package/dist/modes/__tests__/base-autopilot-gates.test.js +154 -0
  113. package/dist/modes/__tests__/base-autopilot-gates.test.js.map +1 -0
  114. package/dist/modes/base.d.ts +4 -1
  115. package/dist/modes/base.d.ts.map +1 -1
  116. package/dist/modes/base.js +71 -1
  117. package/dist/modes/base.js.map +1 -1
  118. package/dist/pipeline/__tests__/orchestrator.test.js +144 -3
  119. package/dist/pipeline/__tests__/orchestrator.test.js.map +1 -1
  120. package/dist/pipeline/__tests__/stages.test.js +109 -0
  121. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  122. package/dist/pipeline/orchestrator.d.ts.map +1 -1
  123. package/dist/pipeline/orchestrator.js +11 -4
  124. package/dist/pipeline/orchestrator.js.map +1 -1
  125. package/dist/pipeline/stages/code-review.d.ts +2 -0
  126. package/dist/pipeline/stages/code-review.d.ts.map +1 -1
  127. package/dist/pipeline/stages/code-review.js +2 -0
  128. package/dist/pipeline/stages/code-review.js.map +1 -1
  129. package/dist/pipeline/stages/ultraqa.d.ts +3 -0
  130. package/dist/pipeline/stages/ultraqa.d.ts.map +1 -1
  131. package/dist/pipeline/stages/ultraqa.js +3 -0
  132. package/dist/pipeline/stages/ultraqa.js.map +1 -1
  133. package/dist/ralplan/__tests__/consensus-gate.test.d.ts +2 -0
  134. package/dist/ralplan/__tests__/consensus-gate.test.d.ts.map +1 -0
  135. package/dist/ralplan/__tests__/consensus-gate.test.js +631 -0
  136. package/dist/ralplan/__tests__/consensus-gate.test.js.map +1 -0
  137. package/dist/ralplan/consensus-gate.d.ts +9 -1
  138. package/dist/ralplan/consensus-gate.d.ts.map +1 -1
  139. package/dist/ralplan/consensus-gate.js +287 -65
  140. package/dist/ralplan/consensus-gate.js.map +1 -1
  141. package/dist/scripts/__tests__/codex-native-hook.test.js +481 -0
  142. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  143. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  144. package/dist/scripts/codex-native-hook.js +145 -25
  145. package/dist/scripts/codex-native-hook.js.map +1 -1
  146. package/dist/scripts/codex-native-pre-post.d.ts +1 -0
  147. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  148. package/dist/scripts/codex-native-pre-post.js +130 -0
  149. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  150. package/dist/session-history/__tests__/search.test.js +166 -0
  151. package/dist/session-history/__tests__/search.test.js.map +1 -1
  152. package/dist/session-history/search.d.ts +7 -0
  153. package/dist/session-history/search.d.ts.map +1 -1
  154. package/dist/session-history/search.js +83 -24
  155. package/dist/session-history/search.js.map +1 -1
  156. package/dist/sidecar/__tests__/collector.test.js +60 -0
  157. package/dist/sidecar/__tests__/collector.test.js.map +1 -1
  158. package/dist/sidecar/collector.d.ts.map +1 -1
  159. package/dist/sidecar/collector.js +3 -6
  160. package/dist/sidecar/collector.js.map +1 -1
  161. package/dist/state/__tests__/operations.test.js +622 -0
  162. package/dist/state/__tests__/operations.test.js.map +1 -1
  163. package/dist/state/__tests__/skill-active.test.js +82 -0
  164. package/dist/state/__tests__/skill-active.test.js.map +1 -1
  165. package/dist/state/operations.d.ts.map +1 -1
  166. package/dist/state/operations.js +31 -9
  167. package/dist/state/operations.js.map +1 -1
  168. package/dist/state/skill-active.d.ts.map +1 -1
  169. package/dist/state/skill-active.js +41 -1
  170. package/dist/state/skill-active.js.map +1 -1
  171. package/dist/team/__tests__/runtime.test.js +81 -57
  172. package/dist/team/__tests__/runtime.test.js.map +1 -1
  173. package/dist/team/runtime.js +4 -4
  174. package/dist/team/runtime.js.map +1 -1
  175. package/dist/utils/__tests__/paths.test.js +23 -0
  176. package/dist/utils/__tests__/paths.test.js.map +1 -1
  177. package/dist/utils/__tests__/version.test.js +27 -0
  178. package/dist/utils/__tests__/version.test.js.map +1 -1
  179. package/dist/utils/paths.d.ts.map +1 -1
  180. package/dist/utils/paths.js +4 -2
  181. package/dist/utils/paths.js.map +1 -1
  182. package/dist/utils/version.d.ts.map +1 -1
  183. package/dist/utils/version.js +7 -2
  184. package/dist/utils/version.js.map +1 -1
  185. package/dist/verification/__tests__/ci-rust-gates.test.js +4 -2
  186. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
  187. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +71 -3
  188. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -1
  189. package/package.json +1 -1
  190. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  191. package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +53 -2
  192. package/plugins/oh-my-codex/skills/best-practice-research/SKILL.md +6 -1
  193. package/skills/best-practice-research/SKILL.md +6 -1
  194. package/src/scripts/__tests__/codex-native-hook.test.ts +615 -0
  195. package/src/scripts/codex-native-hook.ts +162 -32
  196. package/src/scripts/codex-native-pre-post.ts +137 -0
@@ -1 +1 @@
1
- {"version":3,"file":"consensus-gate.js","sourceRoot":"","sources":["../../src/ralplan/consensus-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consensus-gate.js","sourceRoot":"","sources":["../../src/ralplan/consensus-gate.ts"],"names":[],"mappings":"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"}
@@ -1153,6 +1153,110 @@ describe("codex native hook dispatch", () => {
1153
1153
  await rm(cwd, { recursive: true, force: true });
1154
1154
  }
1155
1155
  });
1156
+ it("suppresses child-agent SessionStart and Stop before the canonical leader session is reconciled (#2831)", async () => {
1157
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-subagent-no-canonical-"));
1158
+ const originalCodexHome = process.env.CODEX_HOME;
1159
+ try {
1160
+ process.env.CODEX_HOME = join(cwd, "codex-home");
1161
+ await writeJson(join(process.env.CODEX_HOME, ".omx-config.json"), {
1162
+ notifications: {
1163
+ enabled: true,
1164
+ verbosity: "session",
1165
+ telegram: { enabled: true, botToken: "123:abc", chatId: "456" },
1166
+ },
1167
+ });
1168
+ const stateDir = join(cwd, ".omx", "state");
1169
+ const leaderNativeSessionId = "codex-leader-thread-no-canonical";
1170
+ const childNativeSessionId = "codex-child-thread-no-canonical";
1171
+ await mkdir(join(cwd, ".omx", "hooks"), { recursive: true });
1172
+ await writeFile(join(cwd, ".omx", "hooks", "record-lifecycle.mjs"), [
1173
+ "import { appendFileSync } from 'node:fs';",
1174
+ "export async function onHookEvent(event) {",
1175
+ " appendFileSync('hook-events.jsonl', `${JSON.stringify({ event: event.event })}\\n`);",
1176
+ "}",
1177
+ ].join("\n"));
1178
+ const transcriptPath = join(cwd, "no-canonical-subagent-rollout.jsonl");
1179
+ await writeFile(transcriptPath, `${JSON.stringify({
1180
+ type: "session_meta",
1181
+ payload: {
1182
+ id: childNativeSessionId,
1183
+ source: {
1184
+ subagent: {
1185
+ thread_spawn: {
1186
+ parent_thread_id: leaderNativeSessionId,
1187
+ agent_role: "explorer",
1188
+ },
1189
+ },
1190
+ },
1191
+ },
1192
+ })}\n`);
1193
+ await dispatchCodexNativeHook({
1194
+ hook_event_name: "SessionStart",
1195
+ cwd,
1196
+ session_id: childNativeSessionId,
1197
+ transcript_path: transcriptPath,
1198
+ }, { cwd, sessionOwnerPid: process.pid });
1199
+ assert.equal(existsSync(join(cwd, "hook-events.jsonl")), false, "child SessionStart must be suppressed even before the canonical leader session is reconciled");
1200
+ assert.equal(existsSync(join(stateDir, "session.json")), false, "child SessionStart must not be promoted into a root/leader session");
1201
+ const tracking = JSON.parse(await readFile(join(stateDir, "subagent-tracking.json"), "utf-8"));
1202
+ assert.equal(tracking.sessions?.[leaderNativeSessionId]?.leader_thread_id, leaderNativeSessionId);
1203
+ assert.equal(tracking.sessions?.[leaderNativeSessionId]?.threads?.[childNativeSessionId]?.kind, "subagent");
1204
+ await dispatchCodexNativeHook({
1205
+ hook_event_name: "Stop",
1206
+ cwd,
1207
+ session_id: childNativeSessionId,
1208
+ thread_id: childNativeSessionId,
1209
+ turn_id: "no-canonical-child-stop-turn",
1210
+ }, { cwd });
1211
+ assert.equal(existsSync(join(cwd, "hook-events.jsonl")), false, "child Stop must be suppressed when the start was recognized as subagent-scoped");
1212
+ }
1213
+ finally {
1214
+ if (originalCodexHome === undefined) {
1215
+ delete process.env.CODEX_HOME;
1216
+ }
1217
+ else {
1218
+ process.env.CODEX_HOME = originalCodexHome;
1219
+ }
1220
+ await rm(cwd, { recursive: true, force: true });
1221
+ }
1222
+ });
1223
+ it("preserves root/leader SessionStart dispatch at session verbosity (#2831)", async () => {
1224
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-root-session-start-preserved-"));
1225
+ const originalCodexHome = process.env.CODEX_HOME;
1226
+ try {
1227
+ process.env.CODEX_HOME = join(cwd, "codex-home");
1228
+ await writeJson(join(process.env.CODEX_HOME, ".omx-config.json"), {
1229
+ notifications: {
1230
+ enabled: true,
1231
+ verbosity: "session",
1232
+ telegram: { enabled: true, botToken: "123:abc", chatId: "456" },
1233
+ },
1234
+ });
1235
+ await mkdir(join(cwd, ".omx", "hooks"), { recursive: true });
1236
+ await writeFile(join(cwd, ".omx", "hooks", "record-lifecycle.mjs"), [
1237
+ "import { appendFileSync } from 'node:fs';",
1238
+ "export async function onHookEvent(event) {",
1239
+ " appendFileSync('hook-events.jsonl', `${JSON.stringify({ event: event.event })}\\n`);",
1240
+ "}",
1241
+ ].join("\n"));
1242
+ await dispatchCodexNativeHook({
1243
+ hook_event_name: "SessionStart",
1244
+ cwd,
1245
+ session_id: "codex-root-thread-preserved",
1246
+ }, { cwd, sessionOwnerPid: process.pid });
1247
+ const hookEvents = await readFile(join(cwd, "hook-events.jsonl"), "utf-8");
1248
+ assert.match(hookEvents, /"event":"session-start"/, "root/leader SessionStart must still dispatch at session verbosity");
1249
+ }
1250
+ finally {
1251
+ if (originalCodexHome === undefined) {
1252
+ delete process.env.CODEX_HOME;
1253
+ }
1254
+ else {
1255
+ process.env.CODEX_HOME = originalCodexHome;
1256
+ }
1257
+ await rm(cwd, { recursive: true, force: true });
1258
+ }
1259
+ });
1156
1260
  it("keeps a self-parented native role thread as subagent evidence", async () => {
1157
1261
  const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-self-parented-subagent-"));
1158
1262
  try {
@@ -4915,6 +5019,334 @@ exit 0
4915
5019
  await rm(cwd, { recursive: true, force: true });
4916
5020
  }
4917
5021
  });
5022
+ it("allows read-only diagnostics mentioning apply_patch while deep-interview blocks real apply_patch invocations", async () => {
5023
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-pretool-deep-interview-grep-apply-patch-"));
5024
+ try {
5025
+ const stateDir = join(cwd, ".omx", "state");
5026
+ const sessionDir = join(stateDir, "sessions", "sess-di-grep");
5027
+ await mkdir(sessionDir, { recursive: true });
5028
+ await writeJson(join(stateDir, "session.json"), { session_id: "sess-di-grep", cwd });
5029
+ await writeJson(join(sessionDir, "skill-active-state.json"), {
5030
+ version: 1,
5031
+ active: true,
5032
+ skill: "deep-interview",
5033
+ phase: "planning",
5034
+ session_id: "sess-di-grep",
5035
+ active_skills: [{ skill: "deep-interview", phase: "planning", active: true, session_id: "sess-di-grep" }],
5036
+ });
5037
+ await writeJson(join(sessionDir, "deep-interview-state.json"), {
5038
+ active: true,
5039
+ mode: "deep-interview",
5040
+ current_phase: "intent-first",
5041
+ session_id: "sess-di-grep",
5042
+ });
5043
+ const allowedGrep = await dispatchCodexNativeHook({
5044
+ hook_event_name: "PreToolUse",
5045
+ cwd,
5046
+ session_id: "sess-di-grep",
5047
+ tool_name: "Bash",
5048
+ tool_use_id: "tool-di-grep",
5049
+ tool_input: { command: 'grep -n "apply_patch" dist/scripts/codex-native-hook.js' },
5050
+ }, { cwd });
5051
+ assert.equal(allowedGrep.outputJson, null);
5052
+ const allowedSubshellGrep = await dispatchCodexNativeHook({
5053
+ hook_event_name: "PreToolUse",
5054
+ cwd,
5055
+ session_id: "sess-di-grep",
5056
+ tool_name: "Bash",
5057
+ tool_use_id: "tool-di-grep-subshell",
5058
+ tool_input: { command: '(grep -n "apply_patch" dist/scripts/codex-native-hook.js)' },
5059
+ }, { cwd });
5060
+ assert.equal(allowedSubshellGrep.outputJson, null);
5061
+ // Double-quoted spans that merely mention the literal token, expand a
5062
+ // parameter, or run a substitution that is not `apply_patch` stay allowed
5063
+ // — the quoted-substitution fix must not over-block read-only diagnostics.
5064
+ const allowedQuotedMention = await dispatchCodexNativeHook({
5065
+ hook_event_name: "PreToolUse",
5066
+ cwd,
5067
+ session_id: "sess-di-grep",
5068
+ tool_name: "Bash",
5069
+ tool_use_id: "tool-di-grep-quoted-mention",
5070
+ tool_input: { command: 'echo "${apply_patch} $(echo apply_patch)"' },
5071
+ }, { cwd });
5072
+ assert.equal(allowedQuotedMention.outputJson, null);
5073
+ const blockedApplyPatch = await dispatchCodexNativeHook({
5074
+ hook_event_name: "PreToolUse",
5075
+ cwd,
5076
+ session_id: "sess-di-grep",
5077
+ tool_name: "Bash",
5078
+ tool_use_id: "tool-di-apply-patch-invoke",
5079
+ tool_input: { command: "apply_patch <<'EOF'\n*** Begin Patch\n*** Add File: src/leak.ts\n+export const x = 1;\n*** End Patch\nEOF" },
5080
+ }, { cwd });
5081
+ assert.equal(blockedApplyPatch.outputJson?.decision, "block");
5082
+ const blockedEnvAssignmentApplyPatch = await dispatchCodexNativeHook({
5083
+ hook_event_name: "PreToolUse",
5084
+ cwd,
5085
+ session_id: "sess-di-grep",
5086
+ tool_name: "Bash",
5087
+ tool_use_id: "tool-di-apply-patch-env-assignment",
5088
+ tool_input: { command: "FOO=bar apply_patch <<'EOF'\n*** Begin Patch\n*** Add File: src/leak.ts\n+export const x = 1;\n*** End Patch\nEOF" },
5089
+ }, { cwd });
5090
+ assert.equal(blockedEnvAssignmentApplyPatch.outputJson?.decision, "block");
5091
+ const blockedEnvWrapperApplyPatch = await dispatchCodexNativeHook({
5092
+ hook_event_name: "PreToolUse",
5093
+ cwd,
5094
+ session_id: "sess-di-grep",
5095
+ tool_name: "Bash",
5096
+ tool_use_id: "tool-di-apply-patch-env-wrapper",
5097
+ tool_input: { command: "env FOO=bar apply_patch <<'EOF'\n*** Begin Patch\n*** Add File: src/leak.ts\n+export const x = 1;\n*** End Patch\nEOF" },
5098
+ }, { cwd });
5099
+ assert.equal(blockedEnvWrapperApplyPatch.outputJson?.decision, "block");
5100
+ const heredocBody = "\n*** Begin Patch\n*** Add File: src/leak.ts\n+export const x = 1;\n*** End Patch\nEOF";
5101
+ const blockedRealApplyPatchForms = [
5102
+ { id: "tool-di-apply-patch-env-i", command: `env -i apply_patch <<'EOF'${heredocBody}` },
5103
+ { id: "tool-di-apply-patch-env-unset", command: `env -u FOO apply_patch <<'EOF'${heredocBody}` },
5104
+ { id: "tool-di-apply-patch-env-i-assignment", command: `env -i FOO=bar apply_patch <<'EOF'${heredocBody}` },
5105
+ { id: "tool-di-apply-patch-assignment-env", command: `FOO=bar env apply_patch <<'EOF'${heredocBody}` },
5106
+ { id: "tool-di-apply-patch-exec-env-assignment", command: `exec env FOO=bar apply_patch <<'EOF'${heredocBody}` },
5107
+ { id: "tool-di-apply-patch-absolute-path", command: `/usr/bin/apply_patch <<'EOF'${heredocBody}` },
5108
+ { id: "tool-di-apply-patch-relative-path", command: `./apply_patch <<'EOF'${heredocBody}` },
5109
+ { id: "tool-di-apply-patch-subshell", command: `(apply_patch <<'EOF'${heredocBody}\n)` },
5110
+ { id: "tool-di-apply-patch-subshell-spaced", command: `( apply_patch <<'EOF'${heredocBody}\n)` },
5111
+ { id: "tool-di-apply-patch-double-subshell", command: `((apply_patch <<'EOF'${heredocBody}\n))` },
5112
+ { id: "tool-di-apply-patch-pipe-subshell", command: `true | (apply_patch <<'EOF'${heredocBody}\n)` },
5113
+ { id: "tool-di-apply-patch-subshell-env", command: `(env apply_patch <<'EOF'${heredocBody}\n)` },
5114
+ { id: "tool-di-apply-patch-command-substitution", command: `x=$(apply_patch <<'EOF'${heredocBody}\n)` },
5115
+ { id: "tool-di-apply-patch-brace-group", command: `{ apply_patch <<'EOF'${heredocBody}\n}` },
5116
+ // Command substitution runs even inside double quotes, so quoting the
5117
+ // already-blocked `$(…)` / `` `…` `` form must not bypass the guard.
5118
+ { id: "tool-di-apply-patch-quoted-command-substitution", command: `echo "$(apply_patch <<'EOF'${heredocBody}\n)"` },
5119
+ { id: "tool-di-apply-patch-quoted-backtick", command: `echo "\`apply_patch <<'EOF'${heredocBody}\`"` },
5120
+ { id: "tool-di-apply-patch-quoted-command-substitution-prefixed", command: `echo "patched: $(apply_patch <<'EOF'${heredocBody}\n) done"` },
5121
+ ];
5122
+ for (const form of blockedRealApplyPatchForms) {
5123
+ const blockedForm = await dispatchCodexNativeHook({
5124
+ hook_event_name: "PreToolUse",
5125
+ cwd,
5126
+ session_id: "sess-di-grep",
5127
+ tool_name: "Bash",
5128
+ tool_use_id: form.id,
5129
+ tool_input: { command: form.command },
5130
+ }, { cwd });
5131
+ assert.equal(blockedForm.outputJson?.decision, "block", `expected deep-interview to block real apply_patch form: ${form.command}`);
5132
+ }
5133
+ }
5134
+ finally {
5135
+ await rm(cwd, { recursive: true, force: true });
5136
+ }
5137
+ });
5138
+ it("allows deep-interview same-command literal variable redirects to artifacts while blocking variable redirects outside them", async () => {
5139
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-pretool-deep-interview-var-redirect-"));
5140
+ try {
5141
+ const stateDir = join(cwd, ".omx", "state");
5142
+ const sessionDir = join(stateDir, "sessions", "sess-di-var-redirect");
5143
+ await mkdir(sessionDir, { recursive: true });
5144
+ await writeJson(join(stateDir, "session.json"), { session_id: "sess-di-var-redirect", cwd });
5145
+ await writeJson(join(sessionDir, "skill-active-state.json"), {
5146
+ version: 1,
5147
+ active: true,
5148
+ skill: "deep-interview",
5149
+ phase: "planning",
5150
+ session_id: "sess-di-var-redirect",
5151
+ active_skills: [{ skill: "deep-interview", phase: "planning", active: true, session_id: "sess-di-var-redirect" }],
5152
+ });
5153
+ await writeJson(join(sessionDir, "deep-interview-state.json"), {
5154
+ active: true,
5155
+ mode: "deep-interview",
5156
+ current_phase: "intent-first",
5157
+ session_id: "sess-di-var-redirect",
5158
+ });
5159
+ const allowedVarRedirect = await dispatchCodexNativeHook({
5160
+ hook_event_name: "PreToolUse",
5161
+ cwd,
5162
+ session_id: "sess-di-var-redirect",
5163
+ tool_name: "Bash",
5164
+ tool_use_id: "tool-di-var-redirect-allow",
5165
+ tool_input: { command: 'SNAP=".omx/context/example.md"\ncat > "$SNAP" <<\'EOF\'\ncontent\nEOF' },
5166
+ }, { cwd });
5167
+ assert.equal(allowedVarRedirect.outputJson, null);
5168
+ const blockedVarRedirect = await dispatchCodexNativeHook({
5169
+ hook_event_name: "PreToolUse",
5170
+ cwd,
5171
+ session_id: "sess-di-var-redirect",
5172
+ tool_name: "Bash",
5173
+ tool_use_id: "tool-di-var-redirect-block",
5174
+ tool_input: { command: 'SNAP="src/leak.ts"\ncat > "$SNAP" <<\'EOF\'\ncontent\nEOF' },
5175
+ }, { cwd });
5176
+ assert.equal(blockedVarRedirect.outputJson?.decision, "block");
5177
+ const blockedUnresolvedVarRedirect = await dispatchCodexNativeHook({
5178
+ hook_event_name: "PreToolUse",
5179
+ cwd,
5180
+ session_id: "sess-di-var-redirect",
5181
+ tool_name: "Bash",
5182
+ tool_use_id: "tool-di-var-redirect-unresolved",
5183
+ tool_input: { command: 'cat > "$SNAP" <<\'EOF\'\ncontent\nEOF' },
5184
+ }, { cwd });
5185
+ assert.equal(blockedUnresolvedVarRedirect.outputJson?.decision, "block");
5186
+ }
5187
+ finally {
5188
+ await rm(cwd, { recursive: true, force: true });
5189
+ }
5190
+ });
5191
+ it("allows deep-interview apply_patch artifact writes from freeform patch text while blocking outside paths", async () => {
5192
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-pretool-deep-interview-apply-patch-"));
5193
+ try {
5194
+ const stateDir = join(cwd, ".omx", "state");
5195
+ const sessionDir = join(stateDir, "sessions", "sess-di-apply-patch");
5196
+ await mkdir(sessionDir, { recursive: true });
5197
+ await writeJson(join(stateDir, "session.json"), { session_id: "sess-di-apply-patch", cwd });
5198
+ await writeJson(join(sessionDir, "skill-active-state.json"), {
5199
+ version: 1,
5200
+ active: true,
5201
+ skill: "deep-interview",
5202
+ phase: "planning",
5203
+ session_id: "sess-di-apply-patch",
5204
+ active_skills: [{ skill: "deep-interview", phase: "planning", active: true, session_id: "sess-di-apply-patch" }],
5205
+ });
5206
+ await writeJson(join(sessionDir, "deep-interview-state.json"), {
5207
+ active: true,
5208
+ mode: "deep-interview",
5209
+ current_phase: "intent-first",
5210
+ session_id: "sess-di-apply-patch",
5211
+ });
5212
+ const allowedAddFile = await dispatchCodexNativeHook({
5213
+ hook_event_name: "PreToolUse",
5214
+ cwd,
5215
+ session_id: "sess-di-apply-patch",
5216
+ tool_name: "apply_patch",
5217
+ tool_use_id: "tool-di-apply-patch-add",
5218
+ tool_input: {
5219
+ input: "*** Begin Patch\n*** Add File: .omx/context/findings.md\n+# Findings\n*** End Patch\n",
5220
+ },
5221
+ }, { cwd });
5222
+ assert.equal(allowedAddFile.outputJson, null);
5223
+ const allowedUpdateFile = await dispatchCodexNativeHook({
5224
+ hook_event_name: "PreToolUse",
5225
+ cwd,
5226
+ session_id: "sess-di-apply-patch",
5227
+ tool_name: "ApplyPatch",
5228
+ tool_use_id: "tool-di-apply-patch-update",
5229
+ tool_input: {
5230
+ input: "*** Begin Patch\n*** Update File: .omx/specs/deep-interview-demo.md\n@@\n-old\n+new\n*** End Patch\n",
5231
+ },
5232
+ }, { cwd });
5233
+ assert.equal(allowedUpdateFile.outputJson, null);
5234
+ const allowedStateWrite = await dispatchCodexNativeHook({
5235
+ hook_event_name: "PreToolUse",
5236
+ cwd,
5237
+ session_id: "sess-di-apply-patch",
5238
+ tool_name: "apply_patch",
5239
+ tool_use_id: "tool-di-apply-patch-state",
5240
+ tool_input: {
5241
+ input: "*** Begin Patch\n*** Add File: .omx/state/deep-interview-notes.json\n+{}\n*** End Patch\n",
5242
+ },
5243
+ }, { cwd });
5244
+ assert.equal(allowedStateWrite.outputJson, null);
5245
+ const blockedOutsidePath = await dispatchCodexNativeHook({
5246
+ hook_event_name: "PreToolUse",
5247
+ cwd,
5248
+ session_id: "sess-di-apply-patch",
5249
+ tool_name: "apply_patch",
5250
+ tool_use_id: "tool-di-apply-patch-outside",
5251
+ tool_input: {
5252
+ input: "*** Begin Patch\n*** Add File: src/implementation.ts\n+export const x = 1;\n*** End Patch\n",
5253
+ },
5254
+ }, { cwd });
5255
+ assert.equal(blockedOutsidePath.outputJson?.decision, "block");
5256
+ assert.match(String(blockedOutsidePath.outputJson?.reason ?? ""), /Deep-interview is active/);
5257
+ const blockedMixedPaths = await dispatchCodexNativeHook({
5258
+ hook_event_name: "PreToolUse",
5259
+ cwd,
5260
+ session_id: "sess-di-apply-patch",
5261
+ tool_name: "apply_patch",
5262
+ tool_use_id: "tool-di-apply-patch-mixed",
5263
+ tool_input: {
5264
+ input: "*** Begin Patch\n*** Add File: .omx/context/ok.md\n+ok\n*** Add File: src/leak.ts\n+leak\n*** End Patch\n",
5265
+ },
5266
+ }, { cwd });
5267
+ assert.equal(blockedMixedPaths.outputJson?.decision, "block");
5268
+ const blockedUnparseablePatch = await dispatchCodexNativeHook({
5269
+ hook_event_name: "PreToolUse",
5270
+ cwd,
5271
+ session_id: "sess-di-apply-patch",
5272
+ tool_name: "apply_patch",
5273
+ tool_use_id: "tool-di-apply-patch-empty",
5274
+ tool_input: { input: "not a recognizable patch" },
5275
+ }, { cwd });
5276
+ assert.equal(blockedUnparseablePatch.outputJson?.decision, "block");
5277
+ }
5278
+ finally {
5279
+ await rm(cwd, { recursive: true, force: true });
5280
+ }
5281
+ });
5282
+ it("allows Autopilot ralplan planning artifacts while blocking implementation writes", async () => {
5283
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-pretool-autopilot-ralplan-artifact-"));
5284
+ try {
5285
+ const stateDir = join(cwd, ".omx", "state");
5286
+ const sessionDir = join(stateDir, "sessions", "sess-autopilot-ralplan-artifact");
5287
+ await mkdir(sessionDir, { recursive: true });
5288
+ await writeJson(join(stateDir, "session.json"), { session_id: "sess-autopilot-ralplan-artifact", cwd });
5289
+ await writeJson(join(sessionDir, "skill-active-state.json"), {
5290
+ version: 1,
5291
+ active: true,
5292
+ skill: "autopilot",
5293
+ phase: "ralplan",
5294
+ session_id: "sess-autopilot-ralplan-artifact",
5295
+ thread_id: "thread-autopilot-ralplan-artifact",
5296
+ active_skills: [
5297
+ {
5298
+ skill: "autopilot",
5299
+ phase: "ralplan",
5300
+ active: true,
5301
+ session_id: "sess-autopilot-ralplan-artifact",
5302
+ thread_id: "thread-autopilot-ralplan-artifact",
5303
+ },
5304
+ ],
5305
+ });
5306
+ await writeJson(join(sessionDir, "autopilot-state.json"), {
5307
+ active: true,
5308
+ mode: "autopilot",
5309
+ current_phase: "ralplan",
5310
+ session_id: "sess-autopilot-ralplan-artifact",
5311
+ thread_id: "thread-autopilot-ralplan-artifact",
5312
+ });
5313
+ const allowedPlanWrite = await dispatchCodexNativeHook({
5314
+ hook_event_name: "PreToolUse",
5315
+ cwd,
5316
+ session_id: "sess-autopilot-ralplan-artifact",
5317
+ thread_id: "thread-autopilot-ralplan-artifact",
5318
+ tool_name: "Write",
5319
+ tool_use_id: "tool-autopilot-ralplan-plan-write",
5320
+ tool_input: { file_path: ".omx/plans/prd-omx-y7a.md", content: "# Plan" },
5321
+ }, { cwd });
5322
+ assert.equal(allowedPlanWrite.outputJson, null);
5323
+ const allowedSpecEdit = await dispatchCodexNativeHook({
5324
+ hook_event_name: "PreToolUse",
5325
+ cwd,
5326
+ session_id: "sess-autopilot-ralplan-artifact",
5327
+ thread_id: "thread-autopilot-ralplan-artifact",
5328
+ tool_name: "Edit",
5329
+ tool_use_id: "tool-autopilot-ralplan-spec-edit",
5330
+ tool_input: { file_path: ".omx/specs/omx-y7a.md", old_string: "old", new_string: "new" },
5331
+ }, { cwd });
5332
+ assert.equal(allowedSpecEdit.outputJson, null);
5333
+ const blockedImplementationEdit = await dispatchCodexNativeHook({
5334
+ hook_event_name: "PreToolUse",
5335
+ cwd,
5336
+ session_id: "sess-autopilot-ralplan-artifact",
5337
+ thread_id: "thread-autopilot-ralplan-artifact",
5338
+ tool_name: "Edit",
5339
+ tool_use_id: "tool-autopilot-ralplan-src-edit",
5340
+ tool_input: { file_path: "src/implementation.ts", old_string: "a", new_string: "b" },
5341
+ }, { cwd });
5342
+ assert.equal(blockedImplementationEdit.outputJson?.decision, "block");
5343
+ assert.match(String(blockedImplementationEdit.outputJson?.reason ?? ""), /src\/implementation\.ts/);
5344
+ assert.match(String(blockedImplementationEdit.outputJson?.reason ?? ""), /not under allowed planning artifact paths/);
5345
+ }
5346
+ finally {
5347
+ await rm(cwd, { recursive: true, force: true });
5348
+ }
5349
+ });
4918
5350
  it("allows null-device fd redirects while deep-interview blocks real Bash writes", async () => {
4919
5351
  const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-pretool-deep-interview-null-redirect-"));
4920
5352
  try {
@@ -11762,6 +12194,55 @@ exit 0
11762
12194
  await rm(cwd, { recursive: true, force: true });
11763
12195
  }
11764
12196
  });
12197
+ it("blocks implementation writes while Autopilot is supervising deep-interview without a persisted phase transition", async () => {
12198
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-autopilot-deep-interview-pretool-block-"));
12199
+ try {
12200
+ const stateDir = join(cwd, ".omx", "state");
12201
+ const sessionId = "sess-autopilot-deep-interview-pretool-block";
12202
+ await mkdir(join(stateDir, "sessions", sessionId), { recursive: true });
12203
+ await writeJson(join(stateDir, "session.json"), { session_id: sessionId });
12204
+ await writeJson(join(stateDir, "sessions", sessionId, "skill-active-state.json"), {
12205
+ active: true,
12206
+ skill: "autopilot",
12207
+ phase: "deep-interview",
12208
+ session_id: sessionId,
12209
+ active_skills: [{ skill: "autopilot", phase: "deep-interview", active: true, session_id: sessionId }],
12210
+ });
12211
+ await writeJson(join(stateDir, "sessions", sessionId, "autopilot-state.json"), {
12212
+ active: true,
12213
+ mode: "autopilot",
12214
+ current_phase: "deep-interview",
12215
+ session_id: sessionId,
12216
+ handoff_artifacts: {
12217
+ deep_interview: null,
12218
+ ralplan: null,
12219
+ ultragoal: null,
12220
+ code_review: null,
12221
+ ultraqa: null,
12222
+ },
12223
+ ralplan_consensus_gate: {
12224
+ ralplan_architect_review: null,
12225
+ ralplan_critic_review: null,
12226
+ complete: false,
12227
+ },
12228
+ });
12229
+ const result = await dispatchCodexNativeHook({
12230
+ hook_event_name: "PreToolUse",
12231
+ cwd,
12232
+ session_id: sessionId,
12233
+ thread_id: "thread-autopilot-deep-interview-pretool-block",
12234
+ tool_name: "Edit",
12235
+ tool_input: { file_path: "src/runtime.ts", old_string: "a", new_string: "b" },
12236
+ }, { cwd });
12237
+ assert.equal(result.omxEventName, "pre-tool-use");
12238
+ assert.equal(result.outputJson?.decision, "block");
12239
+ assert.match(String(result.outputJson?.reason ?? ""), /Deep-interview is active .*implementation\/write tools are blocked/i);
12240
+ assert.match(String(result.outputJson?.hookSpecificOutput?.additionalContext ?? ""), /To implement, first ask for or process an explicit transition/i);
12241
+ }
12242
+ finally {
12243
+ await rm(cwd, { recursive: true, force: true });
12244
+ }
12245
+ });
11765
12246
  it("blocks implementation writes while Autopilot is supervising ralplan without handoff", async () => {
11766
12247
  const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-autopilot-ralplan-pretool-block-"));
11767
12248
  try {