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.
- package/Cargo.lock +6 -6
- package/Cargo.toml +1 -1
- package/README.md +9 -1
- package/dist/autopilot/__tests__/ralplan-gate.test.js +668 -0
- package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
- package/dist/autopilot/completion-gate.d.ts +10 -0
- package/dist/autopilot/completion-gate.d.ts.map +1 -0
- package/dist/autopilot/completion-gate.js +154 -0
- package/dist/autopilot/completion-gate.js.map +1 -0
- package/dist/autopilot/ralplan-gate.d.ts.map +1 -1
- package/dist/autopilot/ralplan-gate.js +42 -21
- package/dist/autopilot/ralplan-gate.js.map +1 -1
- package/dist/cli/__tests__/codex-plugin-layout.test.js +46 -3
- package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-invalid-config.test.js +35 -0
- package/dist/cli/__tests__/doctor-invalid-config.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +317 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +120 -2
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/resume.test.js +217 -1
- package/dist/cli/__tests__/resume.test.js.map +1 -1
- package/dist/cli/__tests__/session-scoped-runtime.test.js +101 -0
- package/dist/cli/__tests__/session-scoped-runtime.test.js.map +1 -1
- package/dist/cli/__tests__/session-search-help.test.js +3 -2
- package/dist/cli/__tests__/session-search-help.test.js.map +1 -1
- package/dist/cli/__tests__/session-search.test.js +64 -2
- package/dist/cli/__tests__/session-search.test.js.map +1 -1
- package/dist/cli/__tests__/setup-agents-overwrite.test.js +289 -1
- package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-install-mode.test.js +290 -17
- package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
- package/dist/cli/__tests__/setup-prompts-overwrite.test.js +74 -0
- package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-scope.test.js +45 -0
- package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
- package/dist/cli/__tests__/state.test.js +93 -0
- package/dist/cli/__tests__/state.test.js.map +1 -1
- package/dist/cli/__tests__/update.test.js +157 -3
- package/dist/cli/__tests__/update.test.js.map +1 -1
- package/dist/cli/__tests__/version-sync-contract.test.js +2 -0
- package/dist/cli/__tests__/version-sync-contract.test.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +90 -12
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +13 -4
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +439 -46
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/project-runtime-codex-homes.d.ts +6 -0
- package/dist/cli/project-runtime-codex-homes.d.ts.map +1 -0
- package/dist/cli/project-runtime-codex-homes.js +27 -0
- package/dist/cli/project-runtime-codex-homes.js.map +1 -0
- package/dist/cli/session-search.d.ts.map +1 -1
- package/dist/cli/session-search.js +8 -1
- package/dist/cli/session-search.js.map +1 -1
- package/dist/cli/setup.d.ts +2 -2
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +482 -126
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/state.d.ts.map +1 -1
- package/dist/cli/state.js +79 -8
- package/dist/cli/state.js.map +1 -1
- package/dist/cli/update.d.ts +1 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +42 -10
- package/dist/cli/update.js.map +1 -1
- package/dist/config/__tests__/codex-hooks.test.js +73 -29
- package/dist/config/__tests__/codex-hooks.test.js.map +1 -1
- package/dist/config/codex-hooks.d.ts +14 -0
- package/dist/config/codex-hooks.d.ts.map +1 -1
- package/dist/config/codex-hooks.js +54 -51
- package/dist/config/codex-hooks.js.map +1 -1
- package/dist/config/generator.d.ts +1 -1
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +1 -1
- package/dist/config/generator.js.map +1 -1
- package/dist/hooks/__tests__/best-practice-research-skill.test.js +12 -0
- package/dist/hooks/__tests__/best-practice-research-skill.test.js.map +1 -1
- package/dist/hud/__tests__/authority.test.js +45 -12
- package/dist/hud/__tests__/authority.test.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +95 -0
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/render.test.js +6 -6
- package/dist/hud/__tests__/render.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +2 -2
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/authority.d.ts.map +1 -1
- package/dist/hud/authority.js +17 -2
- package/dist/hud/authority.js.map +1 -1
- package/dist/hud/index.js +1 -4
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.d.ts.map +1 -1
- package/dist/hud/reconcile.js +42 -0
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +6 -0
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +5 -4
- package/dist/hud/tmux.js.map +1 -1
- package/dist/mcp/__tests__/bootstrap.test.js +31 -1
- package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
- package/dist/mcp/bootstrap.d.ts +1 -0
- package/dist/mcp/bootstrap.d.ts.map +1 -1
- package/dist/mcp/bootstrap.js +32 -0
- package/dist/mcp/bootstrap.js.map +1 -1
- package/dist/modes/__tests__/base-autopilot-gates.test.d.ts +2 -0
- package/dist/modes/__tests__/base-autopilot-gates.test.d.ts.map +1 -0
- package/dist/modes/__tests__/base-autopilot-gates.test.js +154 -0
- package/dist/modes/__tests__/base-autopilot-gates.test.js.map +1 -0
- package/dist/modes/base.d.ts +4 -1
- package/dist/modes/base.d.ts.map +1 -1
- package/dist/modes/base.js +71 -1
- package/dist/modes/base.js.map +1 -1
- package/dist/pipeline/__tests__/orchestrator.test.js +144 -3
- package/dist/pipeline/__tests__/orchestrator.test.js.map +1 -1
- package/dist/pipeline/__tests__/stages.test.js +109 -0
- package/dist/pipeline/__tests__/stages.test.js.map +1 -1
- package/dist/pipeline/orchestrator.d.ts.map +1 -1
- package/dist/pipeline/orchestrator.js +11 -4
- package/dist/pipeline/orchestrator.js.map +1 -1
- package/dist/pipeline/stages/code-review.d.ts +2 -0
- package/dist/pipeline/stages/code-review.d.ts.map +1 -1
- package/dist/pipeline/stages/code-review.js +2 -0
- package/dist/pipeline/stages/code-review.js.map +1 -1
- package/dist/pipeline/stages/ultraqa.d.ts +3 -0
- package/dist/pipeline/stages/ultraqa.d.ts.map +1 -1
- package/dist/pipeline/stages/ultraqa.js +3 -0
- package/dist/pipeline/stages/ultraqa.js.map +1 -1
- package/dist/ralplan/__tests__/consensus-gate.test.d.ts +2 -0
- package/dist/ralplan/__tests__/consensus-gate.test.d.ts.map +1 -0
- package/dist/ralplan/__tests__/consensus-gate.test.js +631 -0
- package/dist/ralplan/__tests__/consensus-gate.test.js.map +1 -0
- package/dist/ralplan/consensus-gate.d.ts +9 -1
- package/dist/ralplan/consensus-gate.d.ts.map +1 -1
- package/dist/ralplan/consensus-gate.js +287 -65
- package/dist/ralplan/consensus-gate.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +481 -0
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +145 -25
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/codex-native-pre-post.d.ts +1 -0
- package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
- package/dist/scripts/codex-native-pre-post.js +130 -0
- package/dist/scripts/codex-native-pre-post.js.map +1 -1
- package/dist/session-history/__tests__/search.test.js +166 -0
- package/dist/session-history/__tests__/search.test.js.map +1 -1
- package/dist/session-history/search.d.ts +7 -0
- package/dist/session-history/search.d.ts.map +1 -1
- package/dist/session-history/search.js +83 -24
- package/dist/session-history/search.js.map +1 -1
- package/dist/sidecar/__tests__/collector.test.js +60 -0
- package/dist/sidecar/__tests__/collector.test.js.map +1 -1
- package/dist/sidecar/collector.d.ts.map +1 -1
- package/dist/sidecar/collector.js +3 -6
- package/dist/sidecar/collector.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +622 -0
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/__tests__/skill-active.test.js +82 -0
- package/dist/state/__tests__/skill-active.test.js.map +1 -1
- package/dist/state/operations.d.ts.map +1 -1
- package/dist/state/operations.js +31 -9
- package/dist/state/operations.js.map +1 -1
- package/dist/state/skill-active.d.ts.map +1 -1
- package/dist/state/skill-active.js +41 -1
- package/dist/state/skill-active.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +81 -57
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/runtime.js +4 -4
- package/dist/team/runtime.js.map +1 -1
- package/dist/utils/__tests__/paths.test.js +23 -0
- package/dist/utils/__tests__/paths.test.js.map +1 -1
- package/dist/utils/__tests__/version.test.js +27 -0
- package/dist/utils/__tests__/version.test.js.map +1 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +4 -2
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +7 -2
- package/dist/utils/version.js.map +1 -1
- package/dist/verification/__tests__/ci-rust-gates.test.js +4 -2
- package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
- package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +71 -3
- package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -1
- package/package.json +1 -1
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +53 -2
- package/plugins/oh-my-codex/skills/best-practice-research/SKILL.md +6 -1
- package/skills/best-practice-research/SKILL.md +6 -1
- package/src/scripts/__tests__/codex-native-hook.test.ts +615 -0
- package/src/scripts/codex-native-hook.ts +162 -32
- 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 {
|