oh-my-codex 0.18.16 → 0.19.0
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/crates/omx-sparkshell/tests/execution.rs +8 -1
- package/dist/agents/__tests__/definitions.test.js +5 -5
- package/dist/agents/__tests__/definitions.test.js.map +1 -1
- package/dist/agents/__tests__/native-config.test.js +18 -14
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/definitions.d.ts +2 -2
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +4 -4
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/native-config.d.ts +1 -0
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +18 -16
- package/dist/agents/native-config.js.map +1 -1
- package/dist/auth/hotswap.d.ts.map +1 -1
- package/dist/auth/hotswap.js +17 -4
- package/dist/auth/hotswap.js.map +1 -1
- package/dist/autopilot/__tests__/planner-routing.test.js +2 -2
- package/dist/autopilot/__tests__/planner-routing.test.js.map +1 -1
- package/dist/autopilot/fsm.d.ts +1 -1
- package/dist/autopilot/fsm.d.ts.map +1 -1
- package/dist/autopilot/fsm.js +1 -1
- package/dist/autopilot/fsm.js.map +1 -1
- package/dist/cli/__tests__/auth.test.js +78 -3
- package/dist/cli/__tests__/auth.test.js.map +1 -1
- package/dist/cli/__tests__/codex-plugin-layout.test.js +30 -5
- package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +2 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +96 -8
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +135 -1
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/mcp-parity.test.js +2 -4
- package/dist/cli/__tests__/mcp-parity.test.js.map +1 -1
- package/dist/cli/__tests__/plugin-marketplace-idempotent.test.js +14 -0
- package/dist/cli/__tests__/plugin-marketplace-idempotent.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +8 -0
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -1
- package/dist/cli/__tests__/resume.test.js +229 -1
- package/dist/cli/__tests__/resume.test.js.map +1 -1
- package/dist/cli/__tests__/session-scoped-runtime.test.js +46 -0
- package/dist/cli/__tests__/session-scoped-runtime.test.js.map +1 -1
- package/dist/cli/__tests__/setup-install-mode.test.js +37 -0
- package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
- package/dist/cli/__tests__/ultragoal.test.js +21 -0
- package/dist/cli/__tests__/ultragoal.test.js.map +1 -1
- package/dist/cli/__tests__/version.test.js +13 -1
- package/dist/cli/__tests__/version.test.js.map +1 -1
- package/dist/cli/auth.d.ts +1 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +49 -9
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/index.d.ts +25 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +233 -32
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/plugin-marketplace.d.ts.map +1 -1
- package/dist/cli/plugin-marketplace.js +22 -1
- package/dist/cli/plugin-marketplace.js.map +1 -1
- package/dist/cli/ralph.d.ts.map +1 -1
- package/dist/cli/ralph.js +4 -0
- package/dist/cli/ralph.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +3 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js +7 -0
- package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js.map +1 -1
- package/dist/goal-workflows/codex-goal-snapshot.js +1 -1
- package/dist/goal-workflows/codex-goal-snapshot.js.map +1 -1
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js +12 -0
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +267 -7
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +143 -30
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +121 -0
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +110 -0
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +1 -1
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/reconcile.d.ts +3 -1
- package/dist/hud/reconcile.d.ts.map +1 -1
- package/dist/hud/reconcile.js +281 -151
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +4 -2
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +44 -12
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +1 -4
- package/dist/hud/tmux.js.map +1 -1
- package/dist/hud/types.d.ts +5 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js.map +1 -1
- package/dist/leader/__tests__/contract.test.d.ts +2 -0
- package/dist/leader/__tests__/contract.test.d.ts.map +1 -0
- package/dist/leader/__tests__/contract.test.js +75 -0
- package/dist/leader/__tests__/contract.test.js.map +1 -0
- package/dist/leader/contract.d.ts +26 -0
- package/dist/leader/contract.d.ts.map +1 -0
- package/dist/leader/contract.js +97 -0
- package/dist/leader/contract.js.map +1 -0
- package/dist/modes/base.d.ts.map +1 -1
- package/dist/modes/base.js +22 -7
- package/dist/modes/base.js.map +1 -1
- package/dist/notifications/__tests__/dispatcher.test.js +16 -0
- package/dist/notifications/__tests__/dispatcher.test.js.map +1 -1
- package/dist/notifications/__tests__/profiles.test.js +87 -0
- package/dist/notifications/__tests__/profiles.test.js.map +1 -1
- package/dist/notifications/config.d.ts +1 -0
- package/dist/notifications/config.d.ts.map +1 -1
- package/dist/notifications/config.js +60 -22
- package/dist/notifications/config.js.map +1 -1
- package/dist/notifications/dispatcher.d.ts.map +1 -1
- package/dist/notifications/dispatcher.js +6 -16
- package/dist/notifications/dispatcher.js.map +1 -1
- package/dist/pipeline/__tests__/stages.test.js +2 -0
- package/dist/pipeline/__tests__/stages.test.js.map +1 -1
- package/dist/pipeline/stages/ultragoal.d.ts.map +1 -1
- package/dist/pipeline/stages/ultragoal.js +6 -1
- package/dist/pipeline/stages/ultragoal.js.map +1 -1
- package/dist/question/__tests__/renderer.test.js +58 -4
- package/dist/question/__tests__/renderer.test.js.map +1 -1
- package/dist/question/renderer.d.ts +1 -1
- package/dist/question/renderer.d.ts.map +1 -1
- package/dist/question/renderer.js +73 -5
- package/dist/question/renderer.js.map +1 -1
- package/dist/ralplan/__tests__/runtime.test.js +202 -0
- package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
- package/dist/ralplan/runtime.d.ts +7 -0
- package/dist/ralplan/runtime.d.ts.map +1 -1
- package/dist/ralplan/runtime.js +63 -4
- package/dist/ralplan/runtime.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +8484 -4560
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts +1 -0
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +4387 -190
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +1137 -0
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/__tests__/planning-gate.test.js +410 -0
- package/dist/state/__tests__/planning-gate.test.js.map +1 -1
- package/dist/state/operations.d.ts +10 -0
- package/dist/state/operations.d.ts.map +1 -1
- package/dist/state/operations.js +242 -8
- package/dist/state/operations.js.map +1 -1
- package/dist/state/skill-active.d.ts +4 -1
- package/dist/state/skill-active.d.ts.map +1 -1
- package/dist/state/skill-active.js +5 -3
- package/dist/state/skill-active.js.map +1 -1
- package/dist/state/workflow-transition.d.ts.map +1 -1
- package/dist/state/workflow-transition.js +642 -1
- package/dist/state/workflow-transition.js.map +1 -1
- package/dist/subagents/__tests__/tracker.test.js +248 -1
- package/dist/subagents/__tests__/tracker.test.js.map +1 -1
- package/dist/subagents/tracker.d.ts +60 -0
- package/dist/subagents/tracker.d.ts.map +1 -1
- package/dist/subagents/tracker.js +225 -1
- package/dist/subagents/tracker.js.map +1 -1
- package/dist/team/__tests__/model-contract.test.js +72 -4
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +44 -2
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +127 -8
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-runtime-identity.test.js +89 -0
- package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
- package/dist/team/model-contract.d.ts +3 -0
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +42 -5
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/runtime.d.ts +2 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +21 -11
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +13 -11
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/tmux-session.d.ts +1 -0
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +63 -13
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/ultragoal/__tests__/artifacts.test.js +7 -0
- package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
- package/dist/ultragoal/artifacts.d.ts.map +1 -1
- package/dist/ultragoal/artifacts.js +5 -0
- package/dist/ultragoal/artifacts.js.map +1 -1
- package/dist/utils/__tests__/agents-model-table.test.js +2 -2
- package/dist/utils/__tests__/agents-model-table.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 +19 -7
- package/plugins/oh-my-codex/skills/code-review/SKILL.md +16 -0
- package/plugins/oh-my-codex/skills/ultragoal/SKILL.md +23 -0
- package/plugins/oh-my-codex/skills/ultrawork/references/agent-tiers.md +3 -2
- package/skills/code-review/SKILL.md +16 -0
- package/skills/ecomode/references/agent-tiers.md +1 -1
- package/skills/ultragoal/SKILL.md +23 -0
- package/skills/ultrawork/references/agent-tiers.md +3 -2
- package/src/scripts/__tests__/codex-native-hook.test.ts +14014 -9097
- package/src/scripts/codex-native-hook.ts +4459 -199
|
@@ -10,6 +10,7 @@ import { buildClientAttachedReconcileHookName, assertTeamWorkerCliBinaryAvailabl
|
|
|
10
10
|
import { HUD_RESIZE_RECONCILE_DELAY_SECONDS, HUD_TMUX_TEAM_HEIGHT_LINES } from '../../hud/constants.js';
|
|
11
11
|
import * as tmuxSessionModule from '../tmux-session.js';
|
|
12
12
|
import { OMX_ENTRY_PATH_ENV, OMX_STARTUP_CWD_ENV } from '../../utils/paths.js';
|
|
13
|
+
const fsMutable = fs;
|
|
13
14
|
function withEmptyPath(fn) {
|
|
14
15
|
const prev = process.env.PATH;
|
|
15
16
|
process.env.PATH = '';
|
|
@@ -24,26 +25,26 @@ function withEmptyPath(fn) {
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
function withMockedExistsSync(mock, fn) {
|
|
27
|
-
const original =
|
|
28
|
-
|
|
28
|
+
const original = fsMutable.existsSync;
|
|
29
|
+
fsMutable.existsSync = mock;
|
|
29
30
|
syncBuiltinESMExports();
|
|
30
31
|
try {
|
|
31
32
|
return fn();
|
|
32
33
|
}
|
|
33
34
|
finally {
|
|
34
|
-
|
|
35
|
+
fsMutable.existsSync = original;
|
|
35
36
|
syncBuiltinESMExports();
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
function withMockedStatSync(mock, fn) {
|
|
39
|
-
const original =
|
|
40
|
-
|
|
40
|
+
const original = fsMutable.statSync;
|
|
41
|
+
fsMutable.statSync = mock;
|
|
41
42
|
syncBuiltinESMExports();
|
|
42
43
|
try {
|
|
43
44
|
return fn();
|
|
44
45
|
}
|
|
45
46
|
finally {
|
|
46
|
-
|
|
47
|
+
fsMutable.statSync = original;
|
|
47
48
|
syncBuiltinESMExports();
|
|
48
49
|
}
|
|
49
50
|
}
|
|
@@ -1051,21 +1052,139 @@ describe('buildWorkerStartupCommand', () => {
|
|
|
1051
1052
|
delete process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT;
|
|
1052
1053
|
}
|
|
1053
1054
|
});
|
|
1054
|
-
it('
|
|
1055
|
+
it('uses a generated startup script with MSYS paths on win32/MSYS', async () => {
|
|
1055
1056
|
const originalPlatform = Object.getOwnPropertyDescriptor(process, 'platform');
|
|
1056
1057
|
const prevMsystem = process.env.MSYSTEM;
|
|
1058
|
+
const prevBypass = process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT;
|
|
1059
|
+
const stateRoot = 'C:\\omx-state';
|
|
1060
|
+
try {
|
|
1061
|
+
Object.defineProperty(process, 'platform', { value: 'win32', configurable: true });
|
|
1062
|
+
process.env.MSYSTEM = 'MINGW64';
|
|
1063
|
+
process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT = '0';
|
|
1064
|
+
const cmd = writeWorkerStartupScriptCommand('alpha', 1, ['--model', 'gpt-5'], 'C:\\repo', { OMX_TEAM_STATE_ROOT: stateRoot }, 'gemini');
|
|
1065
|
+
assert.equal(cmd, `exec /bin/sh '/c/omx-state/team/alpha/runtime/worker-1-startup.sh'`);
|
|
1066
|
+
const script = await readFile(join(stateRoot, 'team', 'alpha', 'runtime', 'worker-1-startup.sh'), 'utf-8');
|
|
1067
|
+
assert.match(script, /^cd '\/c\/repo'$/m);
|
|
1068
|
+
assert.match(script, /^exec '\/bin\/sh' -c /m);
|
|
1069
|
+
}
|
|
1070
|
+
finally {
|
|
1071
|
+
await rm(stateRoot, { recursive: true, force: true });
|
|
1072
|
+
if (originalPlatform)
|
|
1073
|
+
Object.defineProperty(process, 'platform', originalPlatform);
|
|
1074
|
+
if (typeof prevMsystem === 'string')
|
|
1075
|
+
process.env.MSYSTEM = prevMsystem;
|
|
1076
|
+
else
|
|
1077
|
+
delete process.env.MSYSTEM;
|
|
1078
|
+
if (typeof prevBypass === 'string')
|
|
1079
|
+
process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT = prevBypass;
|
|
1080
|
+
else
|
|
1081
|
+
delete process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT;
|
|
1082
|
+
}
|
|
1083
|
+
});
|
|
1084
|
+
it('does not emit cmd.exe flag wrappers for MSYS startup scripts with cmd shims', async () => {
|
|
1085
|
+
const fakeRoot = await mkdtemp(join(tmpdir(), 'omx-worker-startup-msys-cmd-shim-'));
|
|
1086
|
+
const fakeBin = join(fakeRoot, 'bin dir');
|
|
1087
|
+
const stateRoot = join(fakeRoot, 'state root');
|
|
1088
|
+
const startupScriptPath = join(stateRoot, 'team', 'alpha', 'runtime', 'worker-1-startup.sh');
|
|
1089
|
+
const originalPlatform = Object.getOwnPropertyDescriptor(process, 'platform');
|
|
1090
|
+
const prevPath = process.env.PATH;
|
|
1091
|
+
const prevPathext = process.env.PATHEXT;
|
|
1092
|
+
const prevMsystem = process.env.MSYSTEM;
|
|
1093
|
+
const prevBypass = process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT;
|
|
1094
|
+
try {
|
|
1095
|
+
await mkdir(fakeBin, { recursive: true });
|
|
1096
|
+
const geminiCmdPath = join(fakeBin, 'gemini.cmd');
|
|
1097
|
+
await writeFile(geminiCmdPath, '@echo off\r\n');
|
|
1098
|
+
Object.defineProperty(process, 'platform', { value: 'win32', configurable: true });
|
|
1099
|
+
process.env.PATH = fakeBin;
|
|
1100
|
+
process.env.PATHEXT = '.CMD';
|
|
1101
|
+
process.env.MSYSTEM = 'MINGW64';
|
|
1102
|
+
process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT = '0';
|
|
1103
|
+
const cmd = writeWorkerStartupScriptCommand('alpha', 1, ['--model', 'gemini-2.5-pro'], 'C:\\repo with space', { OMX_TEAM_STATE_ROOT: stateRoot }, 'gemini');
|
|
1104
|
+
assert.equal(cmd, `exec /bin/sh '${startupScriptPath}'`);
|
|
1105
|
+
const script = await readFile(startupScriptPath, 'utf-8');
|
|
1106
|
+
assert.doesNotMatch(script, /cmd\.exe/i);
|
|
1107
|
+
assert.doesNotMatch(script, /'\/d'|'\/s'|'\/c'|\s\/d\s|\s\/s\s|\s\/c\s/i);
|
|
1108
|
+
assert.match(script, /^cd '\/c\/repo with space'$/m);
|
|
1109
|
+
assert.match(script, /^exec '\/bin\/sh' -c /m);
|
|
1110
|
+
assert.match(script, new RegExp(escapeRegExp(geminiCmdPath)));
|
|
1111
|
+
assert.match(script, /--approval-mode/);
|
|
1112
|
+
assert.match(script, /yolo/);
|
|
1113
|
+
}
|
|
1114
|
+
finally {
|
|
1115
|
+
await rm(fakeRoot, { recursive: true, force: true });
|
|
1116
|
+
if (originalPlatform)
|
|
1117
|
+
Object.defineProperty(process, 'platform', originalPlatform);
|
|
1118
|
+
if (typeof prevPath === 'string')
|
|
1119
|
+
process.env.PATH = prevPath;
|
|
1120
|
+
else
|
|
1121
|
+
delete process.env.PATH;
|
|
1122
|
+
if (typeof prevPathext === 'string')
|
|
1123
|
+
process.env.PATHEXT = prevPathext;
|
|
1124
|
+
else
|
|
1125
|
+
delete process.env.PATHEXT;
|
|
1126
|
+
if (typeof prevMsystem === 'string')
|
|
1127
|
+
process.env.MSYSTEM = prevMsystem;
|
|
1128
|
+
else
|
|
1129
|
+
delete process.env.MSYSTEM;
|
|
1130
|
+
if (typeof prevBypass === 'string')
|
|
1131
|
+
process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT = prevBypass;
|
|
1132
|
+
else
|
|
1133
|
+
delete process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT;
|
|
1134
|
+
}
|
|
1135
|
+
});
|
|
1136
|
+
it('wraps MSYS prompt worker cmd shims for shell-free Windows spawn', async () => {
|
|
1137
|
+
const fakeRoot = await mkdtemp(join(tmpdir(), 'omx-worker-process-msys-bat-shim-'));
|
|
1138
|
+
const fakeBin = join(fakeRoot, 'bin dir');
|
|
1139
|
+
const originalPlatform = Object.getOwnPropertyDescriptor(process, 'platform');
|
|
1140
|
+
const prevPath = process.env.PATH;
|
|
1141
|
+
const prevPathext = process.env.PATHEXT;
|
|
1142
|
+
const prevMsystem = process.env.MSYSTEM;
|
|
1143
|
+
const prevBypass = process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT;
|
|
1144
|
+
const prevComSpec = process.env.ComSpec;
|
|
1057
1145
|
try {
|
|
1146
|
+
await mkdir(fakeBin, { recursive: true });
|
|
1147
|
+
const geminiBatPath = join(fakeBin, 'gemini.bat');
|
|
1148
|
+
await writeFile(geminiBatPath, '@echo off\r\n');
|
|
1058
1149
|
Object.defineProperty(process, 'platform', { value: 'win32', configurable: true });
|
|
1150
|
+
process.env.PATH = fakeBin;
|
|
1151
|
+
process.env.PATHEXT = '.BAT';
|
|
1059
1152
|
process.env.MSYSTEM = 'MINGW64';
|
|
1060
|
-
|
|
1153
|
+
process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT = '0';
|
|
1154
|
+
process.env.ComSpec = 'C:\\Windows\\System32\\cmd.exe';
|
|
1155
|
+
const spec = buildWorkerProcessLaunchSpec('alpha', 1, ['--model', 'gemini-2.5-pro'], 'C:\\repo with space', {}, 'gemini');
|
|
1156
|
+
assert.equal(spec.command, 'C:\\Windows\\System32\\cmd.exe');
|
|
1157
|
+
assert.deepEqual(spec.args.slice(0, 3), ['/d', '/s', '/c']);
|
|
1158
|
+
assert.match(spec.args[3] ?? '', new RegExp(escapeRegExp(geminiBatPath)));
|
|
1159
|
+
assert.match(spec.args[3] ?? '', /--approval-mode/);
|
|
1160
|
+
assert.match(spec.args[3] ?? '', /yolo/);
|
|
1161
|
+
assert.equal(spec.env.OMX_LEADER_CLI_PATH, geminiBatPath);
|
|
1162
|
+
assert.notEqual(spec.command, geminiBatPath);
|
|
1061
1163
|
}
|
|
1062
1164
|
finally {
|
|
1165
|
+
await rm(fakeRoot, { recursive: true, force: true });
|
|
1063
1166
|
if (originalPlatform)
|
|
1064
1167
|
Object.defineProperty(process, 'platform', originalPlatform);
|
|
1168
|
+
if (typeof prevPath === 'string')
|
|
1169
|
+
process.env.PATH = prevPath;
|
|
1170
|
+
else
|
|
1171
|
+
delete process.env.PATH;
|
|
1172
|
+
if (typeof prevPathext === 'string')
|
|
1173
|
+
process.env.PATHEXT = prevPathext;
|
|
1174
|
+
else
|
|
1175
|
+
delete process.env.PATHEXT;
|
|
1065
1176
|
if (typeof prevMsystem === 'string')
|
|
1066
1177
|
process.env.MSYSTEM = prevMsystem;
|
|
1067
1178
|
else
|
|
1068
1179
|
delete process.env.MSYSTEM;
|
|
1180
|
+
if (typeof prevBypass === 'string')
|
|
1181
|
+
process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT = prevBypass;
|
|
1182
|
+
else
|
|
1183
|
+
delete process.env.OMX_BYPASS_DEFAULT_SYSTEM_PROMPT;
|
|
1184
|
+
if (typeof prevComSpec === 'string')
|
|
1185
|
+
process.env.ComSpec = prevComSpec;
|
|
1186
|
+
else
|
|
1187
|
+
delete process.env.ComSpec;
|
|
1069
1188
|
}
|
|
1070
1189
|
});
|
|
1071
1190
|
it('writes a short worker startup script under team runtime state when available', async () => {
|