oh-my-codex 0.8.4 → 0.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/bin/omx.js +2 -2
- package/dist/agents/__tests__/definitions.test.js +5 -1
- package/dist/agents/__tests__/definitions.test.js.map +1 -1
- package/dist/agents/__tests__/native-config.test.js +7 -2
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/definitions.d.ts +5 -2
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +117 -30
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +72 -9
- package/dist/agents/native-config.js.map +1 -1
- package/dist/cli/__tests__/prompt-skill-sanitization.test.d.ts +2 -0
- package/dist/cli/__tests__/prompt-skill-sanitization.test.d.ts.map +1 -0
- package/dist/cli/__tests__/prompt-skill-sanitization.test.js +48 -0
- package/dist/cli/__tests__/prompt-skill-sanitization.test.js.map +1 -0
- package/dist/cli/__tests__/team.test.js +75 -1
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +56 -0
- package/dist/cli/team.js.map +1 -1
- package/dist/config/__tests__/generator-notify.test.js +5 -1
- package/dist/config/__tests__/generator-notify.test.js.map +1 -1
- package/dist/config/generator.js +1 -1
- package/dist/config/generator.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +43 -0
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +50 -0
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +40 -0
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +59 -0
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +4 -0
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-catalog.test.d.ts +2 -0
- package/dist/hooks/__tests__/prompt-guidance-catalog.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/prompt-guidance-catalog.test.js +44 -0
- package/dist/hooks/__tests__/prompt-guidance-catalog.test.js.map +1 -0
- package/dist/hooks/__tests__/prompt-guidance-contract.test.d.ts +2 -0
- package/dist/hooks/__tests__/prompt-guidance-contract.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/prompt-guidance-contract.test.js +56 -0
- package/dist/hooks/__tests__/prompt-guidance-contract.test.js.map +1 -0
- package/dist/hooks/__tests__/prompt-guidance-scenarios.test.d.ts +2 -0
- package/dist/hooks/__tests__/prompt-guidance-scenarios.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/prompt-guidance-scenarios.test.js +30 -0
- package/dist/hooks/__tests__/prompt-guidance-scenarios.test.js.map +1 -0
- package/dist/hooks/__tests__/prompt-guidance-wave-two.test.d.ts +2 -0
- package/dist/hooks/__tests__/prompt-guidance-wave-two.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js +56 -0
- package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js.map +1 -0
- package/dist/hooks/__tests__/skill-guidance-contract.test.d.ts +2 -0
- package/dist/hooks/__tests__/skill-guidance-contract.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/skill-guidance-contract.test.js +31 -0
- package/dist/hooks/__tests__/skill-guidance-contract.test.js.map +1 -0
- package/dist/mcp/__tests__/team-server-wait.test.d.ts +2 -0
- package/dist/mcp/__tests__/team-server-wait.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/team-server-wait.test.js +155 -0
- package/dist/mcp/__tests__/team-server-wait.test.js.map +1 -0
- package/dist/mcp/team-server.d.ts.map +1 -1
- package/dist/mcp/team-server.js +41 -4
- package/dist/mcp/team-server.js.map +1 -1
- package/dist/notifications/__tests__/tmux.test.js +5 -5
- package/dist/notifications/__tests__/tmux.test.js.map +1 -1
- package/dist/notifications/tmux.js +1 -1
- package/dist/notifications/tmux.js.map +1 -1
- package/dist/team/__tests__/runtime-cli.test.js +6 -0
- package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +2 -1
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/api-interop.d.ts.map +1 -1
- package/dist/team/api-interop.js +4 -0
- package/dist/team/api-interop.js.map +1 -1
- package/dist/team/contracts.d.ts +1 -1
- package/dist/team/contracts.d.ts.map +1 -1
- package/dist/team/contracts.js +5 -0
- package/dist/team/contracts.js.map +1 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +14 -0
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/state/events.d.ts +18 -1
- package/dist/team/state/events.d.ts.map +1 -1
- package/dist/team/state/events.js +129 -1
- package/dist/team/state/events.js.map +1 -1
- package/dist/team/state/types.d.ts +9 -2
- package/dist/team/state/types.d.ts.map +1 -1
- package/dist/team/state/types.js.map +1 -1
- package/dist/team/state.d.ts +10 -1
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +3 -3
- package/dist/team/state.js.map +1 -1
- package/dist/verification/verifier.d.ts +1 -1
- package/dist/verification/verifier.js +1 -1
- package/package.json +1 -1
- package/prompts/analyst.md +15 -1
- package/prompts/api-reviewer.md +14 -0
- package/prompts/architect.md +18 -1
- package/prompts/build-fixer.md +14 -0
- package/prompts/code-reviewer.md +14 -0
- package/prompts/code-simplifier.md +13 -1
- package/prompts/critic.md +17 -1
- package/prompts/debugger.md +14 -0
- package/prompts/dependency-expert.md +16 -2
- package/prompts/designer.md +15 -1
- package/prompts/executor.md +22 -3
- package/prompts/explore.md +14 -0
- package/prompts/git-master.md +14 -0
- package/prompts/information-architect.md +14 -1
- package/prompts/performance-reviewer.md +14 -0
- package/prompts/planner.md +21 -3
- package/prompts/product-analyst.md +14 -1
- package/prompts/product-manager.md +18 -5
- package/prompts/qa-tester.md +15 -1
- package/prompts/quality-reviewer.md +14 -0
- package/prompts/quality-strategist.md +18 -5
- package/prompts/researcher.md +16 -2
- package/prompts/security-reviewer.md +14 -0
- package/prompts/style-reviewer.md +14 -0
- package/prompts/test-engineer.md +14 -0
- package/prompts/ux-researcher.md +14 -1
- package/prompts/verifier.md +15 -0
- package/prompts/vision.md +15 -1
- package/prompts/writer.md +15 -1
- package/scripts/notify-fallback-watcher.js +52 -2
- package/scripts/notify-hook/team-dispatch.js +33 -18
- package/scripts/notify-hook/team-leader-nudge.js +13 -3
- package/scripts/notify-hook/team-worker.js +11 -0
- package/skills/analyze/SKILL.md +15 -2
- package/skills/autopilot/SKILL.md +20 -7
- package/skills/build-fix/SKILL.md +20 -4
- package/skills/code-review/SKILL.md +20 -4
- package/skills/ecomode/SKILL.md +20 -20
- package/skills/frontend-ui-ux/SKILL.md +1 -1
- package/skills/git-master/SKILL.md +1 -1
- package/skills/help/SKILL.md +1 -1
- package/skills/plan/SKILL.md +15 -2
- package/skills/ralph/SKILL.md +26 -13
- package/skills/ralplan/SKILL.md +15 -0
- package/skills/security-review/SKILL.md +20 -4
- package/skills/team/SKILL.md +16 -1
- package/skills/ultraqa/SKILL.md +19 -3
- package/skills/ultrawork/SKILL.md +16 -16
- package/templates/AGENTS.md +8 -2
- package/dist/cli/__tests__/setup-codex-version.test.d.ts +0 -2
- package/dist/cli/__tests__/setup-codex-version.test.d.ts.map +0 -1
- package/dist/cli/__tests__/setup-codex-version.test.js +0 -99
- package/dist/cli/__tests__/setup-codex-version.test.js.map +0 -1
package/templates/AGENTS.md
CHANGED
|
@@ -26,6 +26,10 @@ Keep runtime marker contracts stable and non-destructive when overlays are appli
|
|
|
26
26
|
- Choose the lightest-weight path that preserves quality (direct action, MCP, or agent).
|
|
27
27
|
- Use context files and concrete outputs so delegated tasks are grounded.
|
|
28
28
|
- Consult official documentation before implementing with SDKs, frameworks, or APIs.
|
|
29
|
+
- Default to compact, information-dense responses; expand only when risk, ambiguity, or the user explicitly calls for detail.
|
|
30
|
+
- Proceed automatically on clear, low-risk, reversible next steps; ask only for irreversible, side-effectful, or materially branching actions.
|
|
31
|
+
- Treat newer user task updates as local overrides for the active task while preserving earlier non-conflicting instructions.
|
|
32
|
+
- Persist with tool use when correctness depends on retrieval, inspection, execution, or verification; do not skip prerequisites just because the likely answer seems obvious.
|
|
29
33
|
</operating_principles>
|
|
30
34
|
|
|
31
35
|
---
|
|
@@ -281,7 +285,7 @@ Sizing guidance:
|
|
|
281
285
|
- Standard changes: standard verifier
|
|
282
286
|
- Large or security/architectural changes (>20 files): thorough verifier
|
|
283
287
|
|
|
284
|
-
Verification loop: identify what proves the claim, run the verification, read the output, then report with evidence. If verification fails, continue iterating rather than reporting incomplete work.
|
|
288
|
+
Verification loop: identify what proves the claim, run the verification, read the output, then report with evidence. If verification fails, continue iterating rather than reporting incomplete work. Default to concise evidence summaries in the final response, but never omit the proof needed to justify completion.
|
|
285
289
|
</verification>
|
|
286
290
|
|
|
287
291
|
<execution_protocols>
|
|
@@ -290,9 +294,11 @@ Broad Request Detection:
|
|
|
290
294
|
|
|
291
295
|
Parallelization:
|
|
292
296
|
- Run 2+ independent tasks in parallel when each takes >30s.
|
|
293
|
-
- Run dependent tasks sequentially.
|
|
297
|
+
- Run dependent tasks sequentially; verify prerequisites before starting downstream actions.
|
|
294
298
|
- Use background execution for installs, builds, and tests.
|
|
295
299
|
- Prefer Team mode as the primary parallel execution surface. Use ad hoc parallelism only when Team overhead is disproportionate to the task.
|
|
300
|
+
- If a task update changes only the current branch of work, apply it locally and continue without reinterpreting unrelated standing instructions.
|
|
301
|
+
- When correctness depends on retrieval, diagnostics, tests, or other tools, continue using them until the task is grounded and verified.
|
|
296
302
|
|
|
297
303
|
Visual iteration gate:
|
|
298
304
|
- For visual tasks (reference image(s) + generated screenshot), run `$visual-verdict` every iteration before the next edit.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-codex-version.test.d.ts","sourceRoot":"","sources":["../../../src/cli/__tests__/setup-codex-version.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { describe, it } from 'node:test';
|
|
2
|
-
import assert from 'node:assert/strict';
|
|
3
|
-
import { chmod, mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import { tmpdir } from 'node:os';
|
|
6
|
-
import { parseCodexVersion, setup } from '../setup.js';
|
|
7
|
-
async function writeFakeCodex(binDir) {
|
|
8
|
-
const codexPath = join(binDir, 'codex');
|
|
9
|
-
const script = [
|
|
10
|
-
'#!/usr/bin/env node',
|
|
11
|
-
'if (process.argv.includes("--version")) {',
|
|
12
|
-
' process.stdout.write(process.env.OMX_TEST_CODEX_VERSION_OUTPUT ?? "0.106.0");',
|
|
13
|
-
' process.exit(0);',
|
|
14
|
-
'}',
|
|
15
|
-
'process.exit(1);',
|
|
16
|
-
'',
|
|
17
|
-
].join('\n');
|
|
18
|
-
await writeFile(codexPath, script, { mode: 0o755 });
|
|
19
|
-
await chmod(codexPath, 0o755);
|
|
20
|
-
}
|
|
21
|
-
async function runSetupWithCapturedLogs(cwd, env) {
|
|
22
|
-
const previousCwd = process.cwd();
|
|
23
|
-
const previousEnv = {
|
|
24
|
-
HOME: process.env.HOME,
|
|
25
|
-
PATH: process.env.PATH,
|
|
26
|
-
OMX_TEST_CODEX_VERSION_OUTPUT: process.env.OMX_TEST_CODEX_VERSION_OUTPUT,
|
|
27
|
-
};
|
|
28
|
-
const logs = [];
|
|
29
|
-
const originalLog = console.log;
|
|
30
|
-
process.chdir(cwd);
|
|
31
|
-
process.env.HOME = env.HOME;
|
|
32
|
-
process.env.PATH = env.PATH;
|
|
33
|
-
process.env.OMX_TEST_CODEX_VERSION_OUTPUT = env.OMX_TEST_CODEX_VERSION_OUTPUT;
|
|
34
|
-
console.log = (...args) => {
|
|
35
|
-
logs.push(args.map((arg) => String(arg)).join(' '));
|
|
36
|
-
};
|
|
37
|
-
try {
|
|
38
|
-
await setup({ scope: 'project' });
|
|
39
|
-
return logs.join('\n');
|
|
40
|
-
}
|
|
41
|
-
finally {
|
|
42
|
-
console.log = originalLog;
|
|
43
|
-
process.chdir(previousCwd);
|
|
44
|
-
process.env.HOME = previousEnv.HOME;
|
|
45
|
-
process.env.PATH = previousEnv.PATH;
|
|
46
|
-
process.env.OMX_TEST_CODEX_VERSION_OUTPUT = previousEnv.OMX_TEST_CODEX_VERSION_OUTPUT;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
describe('omx setup codex version handling', () => {
|
|
50
|
-
it('parses codex versions from common --version outputs', () => {
|
|
51
|
-
assert.equal(parseCodexVersion('0.107.0'), '0.107.0');
|
|
52
|
-
assert.equal(parseCodexVersion('codex 0.107.1'), '0.107.1');
|
|
53
|
-
assert.equal(parseCodexVersion('v0.106.2'), '0.106.2');
|
|
54
|
-
assert.equal(parseCodexVersion('codex version: unknown'), undefined);
|
|
55
|
-
});
|
|
56
|
-
it('skips [tui] for codex >= 0.107.0', async () => {
|
|
57
|
-
const wd = await mkdtemp(join(tmpdir(), 'omx-setup-codex-version-'));
|
|
58
|
-
try {
|
|
59
|
-
const home = join(wd, 'home');
|
|
60
|
-
const binDir = join(wd, 'bin');
|
|
61
|
-
await mkdir(home, { recursive: true });
|
|
62
|
-
await mkdir(binDir, { recursive: true });
|
|
63
|
-
await writeFakeCodex(binDir);
|
|
64
|
-
const output = await runSetupWithCapturedLogs(wd, {
|
|
65
|
-
HOME: home,
|
|
66
|
-
PATH: `${binDir}:${process.env.PATH || ''}`,
|
|
67
|
-
OMX_TEST_CODEX_VERSION_OUTPUT: 'codex 0.107.1',
|
|
68
|
-
});
|
|
69
|
-
const config = await readFile(join(wd, '.codex', 'config.toml'), 'utf-8');
|
|
70
|
-
assert.doesNotMatch(config, /^\[tui\]$/m);
|
|
71
|
-
assert.match(output, /StatusLine \[tui\] skipped \(detected codex 0\.107\.1 >= 0\.107\.0\)\./);
|
|
72
|
-
}
|
|
73
|
-
finally {
|
|
74
|
-
await rm(wd, { recursive: true, force: true });
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
it('keeps [tui] when codex version is unparseable (compatibility default)', async () => {
|
|
78
|
-
const wd = await mkdtemp(join(tmpdir(), 'omx-setup-codex-version-'));
|
|
79
|
-
try {
|
|
80
|
-
const home = join(wd, 'home');
|
|
81
|
-
const binDir = join(wd, 'bin');
|
|
82
|
-
await mkdir(home, { recursive: true });
|
|
83
|
-
await mkdir(binDir, { recursive: true });
|
|
84
|
-
await writeFakeCodex(binDir);
|
|
85
|
-
const output = await runSetupWithCapturedLogs(wd, {
|
|
86
|
-
HOME: home,
|
|
87
|
-
PATH: `${binDir}:${process.env.PATH || ''}`,
|
|
88
|
-
OMX_TEST_CODEX_VERSION_OUTPUT: 'codex version: unknown',
|
|
89
|
-
});
|
|
90
|
-
const config = await readFile(join(wd, '.codex', 'config.toml'), 'utf-8');
|
|
91
|
-
assert.match(config, /^\[tui\]$/m);
|
|
92
|
-
assert.match(output, /StatusLine configured in config\.toml via \[tui\] section \(codex version unparseable; compatibility mode\)\./);
|
|
93
|
-
}
|
|
94
|
-
finally {
|
|
95
|
-
await rm(wd, { recursive: true, force: true });
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
//# sourceMappingURL=setup-codex-version.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-codex-version.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/setup-codex-version.test.ts"],"names":[],"mappings":"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"}
|