oh-my-codex 0.7.6 → 0.8.1
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.de.md +315 -0
- package/README.es.md +296 -17
- package/README.fr.md +315 -0
- package/README.it.md +315 -0
- package/README.ja.md +297 -18
- package/README.ko.md +296 -17
- package/README.md +110 -13
- package/README.pt.md +296 -17
- package/README.ru.md +296 -17
- package/README.tr.md +315 -0
- package/README.vi.md +297 -18
- package/README.zh-TW.md +362 -0
- package/README.zh.md +293 -17
- package/dist/catalog/__tests__/generator.test.js +2 -0
- package/dist/catalog/__tests__/generator.test.js.map +1 -1
- package/dist/catalog/__tests__/schema.test.js +7 -0
- package/dist/catalog/__tests__/schema.test.js.map +1 -1
- package/dist/cli/__tests__/ask.test.d.ts +2 -0
- package/dist/cli/__tests__/ask.test.d.ts.map +1 -0
- package/dist/cli/__tests__/ask.test.js +236 -0
- package/dist/cli/__tests__/ask.test.js.map +1 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.d.ts +2 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.d.ts.map +1 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js +45 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -0
- package/dist/cli/__tests__/index.test.js +85 -2
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-prd-deep-interview.test.d.ts +2 -0
- package/dist/cli/__tests__/ralph-prd-deep-interview.test.d.ts.map +1 -0
- package/dist/cli/__tests__/ralph-prd-deep-interview.test.js +15 -0
- package/dist/cli/__tests__/ralph-prd-deep-interview.test.js.map +1 -0
- package/dist/cli/__tests__/ralph.test.js +19 -43
- package/dist/cli/__tests__/ralph.test.js.map +1 -1
- package/dist/cli/__tests__/setup-scope.test.js +2 -0
- package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +219 -1
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/version.test.d.ts +2 -0
- package/dist/cli/__tests__/version.test.d.ts.map +1 -0
- package/dist/cli/__tests__/version.test.js +21 -0
- package/dist/cli/__tests__/version.test.js.map +1 -0
- package/dist/cli/ask.d.ts +13 -0
- package/dist/cli/ask.d.ts.map +1 -0
- package/dist/cli/ask.js +174 -0
- package/dist/cli/ask.js.map +1 -0
- package/dist/cli/constants.d.ts +10 -0
- package/dist/cli/constants.d.ts.map +1 -0
- package/dist/cli/constants.js +10 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/doctor.js +16 -5
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +8 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +150 -52
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/ralph.d.ts +3 -11
- package/dist/cli/ralph.d.ts.map +1 -1
- package/dist/cli/ralph.js +64 -45
- package/dist/cli/ralph.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +17 -18
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +257 -0
- package/dist/cli/team.js.map +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.d.ts +2 -0
- package/dist/hooks/__tests__/deep-interview-contract.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/deep-interview-contract.test.js +55 -0
- package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -0
- package/dist/hooks/__tests__/emulator.test.js +6 -0
- package/dist/hooks/__tests__/emulator.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +44 -22
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +23 -7
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-session-scope.test.js +59 -0
- package/dist/hooks/__tests__/notify-hook-session-scope.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +264 -1
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +61 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +17 -7
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/openclaw-setup-contract.test.d.ts +2 -0
- package/dist/hooks/__tests__/openclaw-setup-contract.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/openclaw-setup-contract.test.js +61 -0
- package/dist/hooks/__tests__/openclaw-setup-contract.test.js.map +1 -0
- package/dist/hooks/__tests__/pre-context-gate-skills.test.d.ts +2 -0
- package/dist/hooks/__tests__/pre-context-gate-skills.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/pre-context-gate-skills.test.js +34 -0
- package/dist/hooks/__tests__/pre-context-gate-skills.test.js.map +1 -0
- package/dist/hooks/__tests__/visual-verdict-loop.test.d.ts +2 -0
- package/dist/hooks/__tests__/visual-verdict-loop.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/visual-verdict-loop.test.js +35 -0
- package/dist/hooks/__tests__/visual-verdict-loop.test.js.map +1 -0
- package/dist/hooks/agents-overlay.d.ts.map +1 -1
- package/dist/hooks/agents-overlay.js +18 -16
- package/dist/hooks/agents-overlay.js.map +1 -1
- package/dist/hooks/codebase-map.d.ts.map +1 -1
- package/dist/hooks/codebase-map.js +6 -2
- package/dist/hooks/codebase-map.js.map +1 -1
- package/dist/hooks/emulator.d.ts.map +1 -1
- package/dist/hooks/emulator.js +2 -0
- package/dist/hooks/emulator.js.map +1 -1
- package/dist/hooks/extensibility/sdk.d.ts.map +1 -1
- package/dist/hooks/extensibility/sdk.js +2 -1
- package/dist/hooks/extensibility/sdk.js.map +1 -1
- package/dist/hooks/keyword-registry.d.ts.map +1 -1
- package/dist/hooks/keyword-registry.js +6 -0
- package/dist/hooks/keyword-registry.js.map +1 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +2 -24
- package/dist/hud/index.js.map +1 -1
- package/dist/mcp/__tests__/path-traversal.test.js +9 -227
- package/dist/mcp/__tests__/path-traversal.test.js.map +1 -1
- package/dist/mcp/__tests__/state-server-schema.test.js +16 -20
- package/dist/mcp/__tests__/state-server-schema.test.js.map +1 -1
- package/dist/mcp/__tests__/state-server-team-tools.test.js +30 -487
- package/dist/mcp/__tests__/state-server-team-tools.test.js.map +1 -1
- package/dist/mcp/code-intel-server.d.ts.map +1 -1
- package/dist/mcp/code-intel-server.js +18 -8
- package/dist/mcp/code-intel-server.js.map +1 -1
- package/dist/mcp/memory-server.js +72 -11
- package/dist/mcp/memory-server.js.map +1 -1
- package/dist/mcp/state-paths.d.ts.map +1 -1
- package/dist/mcp/state-paths.js +4 -1
- package/dist/mcp/state-paths.js.map +1 -1
- package/dist/mcp/state-server.d.ts +179 -0
- package/dist/mcp/state-server.d.ts.map +1 -1
- package/dist/mcp/state-server.js +221 -1111
- package/dist/mcp/state-server.js.map +1 -1
- package/dist/mcp/team-server.d.ts.map +1 -1
- package/dist/mcp/team-server.js +9 -3
- package/dist/mcp/team-server.js.map +1 -1
- package/dist/mcp/trace-server.d.ts.map +1 -1
- package/dist/mcp/trace-server.js +8 -3
- package/dist/mcp/trace-server.js.map +1 -1
- package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts +5 -0
- package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts.map +1 -0
- package/dist/notifications/__tests__/dispatch-cooldown.test.js +100 -0
- package/dist/notifications/__tests__/dispatch-cooldown.test.js.map +1 -0
- package/dist/notifications/__tests__/temp-mode.test.d.ts +2 -0
- package/dist/notifications/__tests__/temp-mode.test.d.ts.map +1 -0
- package/dist/notifications/__tests__/temp-mode.test.js +172 -0
- package/dist/notifications/__tests__/temp-mode.test.js.map +1 -0
- package/dist/notifications/config.d.ts.map +1 -1
- package/dist/notifications/config.js +67 -7
- package/dist/notifications/config.js.map +1 -1
- package/dist/notifications/dispatch-cooldown.d.ts +36 -0
- package/dist/notifications/dispatch-cooldown.d.ts.map +1 -0
- package/dist/notifications/dispatch-cooldown.js +109 -0
- package/dist/notifications/dispatch-cooldown.js.map +1 -0
- package/dist/notifications/dispatcher.d.ts.map +1 -1
- package/dist/notifications/dispatcher.js +4 -4
- package/dist/notifications/dispatcher.js.map +1 -1
- package/dist/notifications/index.d.ts +5 -0
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +39 -8
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/reply-listener.d.ts.map +1 -1
- package/dist/notifications/reply-listener.js +6 -2
- package/dist/notifications/reply-listener.js.map +1 -1
- package/dist/notifications/session-registry.d.ts.map +1 -1
- package/dist/notifications/session-registry.js +2 -2
- package/dist/notifications/session-registry.js.map +1 -1
- package/dist/notifications/temp-contract.d.ts +22 -0
- package/dist/notifications/temp-contract.d.ts.map +1 -0
- package/dist/notifications/temp-contract.js +147 -0
- package/dist/notifications/temp-contract.js.map +1 -0
- package/dist/notifications/tmux.js +2 -2
- package/dist/notifications/tmux.js.map +1 -1
- package/dist/notifications/types.d.ts +18 -0
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/openclaw/__tests__/config.test.js +81 -0
- package/dist/openclaw/__tests__/config.test.js.map +1 -1
- package/dist/openclaw/__tests__/dispatcher.test.js +40 -1
- package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
- package/dist/openclaw/config.d.ts +4 -0
- package/dist/openclaw/config.d.ts.map +1 -1
- package/dist/openclaw/config.js +110 -16
- package/dist/openclaw/config.js.map +1 -1
- package/dist/openclaw/dispatcher.d.ts +9 -3
- package/dist/openclaw/dispatcher.d.ts.map +1 -1
- package/dist/openclaw/dispatcher.js +42 -9
- package/dist/openclaw/dispatcher.js.map +1 -1
- package/dist/openclaw/types.d.ts +5 -1
- package/dist/openclaw/types.d.ts.map +1 -1
- package/dist/ralph/__tests__/persistence.test.js +28 -1
- package/dist/ralph/__tests__/persistence.test.js.map +1 -1
- package/dist/ralph/persistence.d.ts +21 -0
- package/dist/ralph/persistence.d.ts.map +1 -1
- package/dist/ralph/persistence.js +85 -2
- package/dist/ralph/persistence.js.map +1 -1
- package/dist/state/paths.d.ts +3 -0
- package/dist/state/paths.d.ts.map +1 -0
- package/dist/state/paths.js +2 -0
- package/dist/state/paths.js.map +1 -0
- package/dist/team/__tests__/api-interop.test.d.ts +2 -0
- package/dist/team/__tests__/api-interop.test.d.ts.map +1 -0
- package/dist/team/__tests__/api-interop.test.js +1052 -0
- package/dist/team/__tests__/api-interop.test.js.map +1 -0
- package/dist/team/__tests__/idle-nudge.test.d.ts +2 -0
- package/dist/team/__tests__/idle-nudge.test.d.ts.map +1 -0
- package/dist/team/__tests__/idle-nudge.test.js +225 -0
- package/dist/team/__tests__/idle-nudge.test.js.map +1 -0
- package/dist/team/__tests__/mcp-comm.test.js +30 -0
- package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +33 -26
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/state-root.test.d.ts +2 -0
- package/dist/team/__tests__/state-root.test.d.ts.map +1 -0
- package/dist/team/__tests__/state-root.test.js +9 -0
- package/dist/team/__tests__/state-root.test.js.map +1 -0
- package/dist/team/__tests__/state.test.js +52 -17
- package/dist/team/__tests__/state.test.js.map +1 -1
- package/dist/team/__tests__/team-ops-contract.test.d.ts +2 -0
- package/dist/team/__tests__/team-ops-contract.test.d.ts.map +1 -0
- package/dist/team/__tests__/team-ops-contract.test.js +90 -0
- package/dist/team/__tests__/team-ops-contract.test.js.map +1 -0
- package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts +2 -0
- package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts.map +1 -0
- package/dist/team/__tests__/tmux-claude-workers-demo.test.js +176 -0
- package/dist/team/__tests__/tmux-claude-workers-demo.test.js.map +1 -0
- package/dist/team/__tests__/tmux-session.test.js +8 -0
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +29 -0
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/__tests__/worktree.test.js +54 -1
- package/dist/team/__tests__/worktree.test.js.map +1 -1
- package/dist/team/api-interop.d.ts +19 -0
- package/dist/team/api-interop.d.ts.map +1 -0
- package/dist/team/api-interop.js +578 -0
- package/dist/team/api-interop.js.map +1 -0
- package/dist/team/mcp-comm.d.ts.map +1 -1
- package/dist/team/mcp-comm.js +32 -2
- package/dist/team/mcp-comm.js.map +1 -1
- package/dist/team/orchestrator.d.ts +1 -10
- package/dist/team/orchestrator.d.ts.map +1 -1
- package/dist/team/orchestrator.js +8 -0
- package/dist/team/orchestrator.js.map +1 -1
- package/dist/team/runtime-cli.js +14 -8
- package/dist/team/runtime-cli.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 +103 -30
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +33 -12
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/state/approvals.d.ts +25 -0
- package/dist/team/state/approvals.d.ts.map +1 -0
- package/dist/team/state/approvals.js +31 -0
- package/dist/team/state/approvals.js.map +1 -0
- package/dist/team/state/config.d.ts +2 -0
- package/dist/team/state/config.d.ts.map +1 -0
- package/dist/team/state/config.js +2 -0
- package/dist/team/state/config.js.map +1 -0
- package/dist/team/state/dispatch-lock.d.ts +3 -0
- package/dist/team/state/dispatch-lock.d.ts.map +1 -0
- package/dist/team/state/dispatch-lock.js +81 -0
- package/dist/team/state/dispatch-lock.js.map +1 -0
- package/dist/team/state/dispatch.d.ts +61 -0
- package/dist/team/state/dispatch.d.ts.map +1 -0
- package/dist/team/state/dispatch.js +158 -0
- package/dist/team/state/dispatch.js.map +1 -0
- package/dist/team/state/events.d.ts +2 -0
- package/dist/team/state/events.d.ts.map +1 -0
- package/dist/team/state/events.js +2 -0
- package/dist/team/state/events.js.map +1 -0
- package/dist/team/state/index.d.ts +11 -0
- package/dist/team/state/index.d.ts.map +1 -0
- package/dist/team/state/index.js +11 -0
- package/dist/team/state/index.js.map +1 -0
- package/dist/team/state/io.d.ts +2 -0
- package/dist/team/state/io.d.ts.map +1 -0
- package/dist/team/state/io.js +2 -0
- package/dist/team/state/io.js.map +1 -0
- package/dist/team/state/locks.d.ts +16 -0
- package/dist/team/state/locks.d.ts.map +1 -0
- package/dist/team/state/locks.js +201 -0
- package/dist/team/state/locks.js.map +1 -0
- package/dist/team/state/mailbox.d.ts +39 -0
- package/dist/team/state/mailbox.d.ts.map +1 -0
- package/dist/team/state/mailbox.js +58 -0
- package/dist/team/state/mailbox.js.map +1 -0
- package/dist/team/state/monitor.d.ts +96 -0
- package/dist/team/state/monitor.d.ts.map +1 -0
- package/dist/team/state/monitor.js +163 -0
- package/dist/team/state/monitor.js.map +1 -0
- package/dist/team/state/shutdown.d.ts +2 -0
- package/dist/team/state/shutdown.d.ts.map +1 -0
- package/dist/team/state/shutdown.js +2 -0
- package/dist/team/state/shutdown.js.map +1 -0
- package/dist/team/state/summary.d.ts +2 -0
- package/dist/team/state/summary.d.ts.map +1 -0
- package/dist/team/state/summary.js +2 -0
- package/dist/team/state/summary.js.map +1 -0
- package/dist/team/state/tasks.d.ts +49 -0
- package/dist/team/state/tasks.d.ts.map +1 -0
- package/dist/team/state/tasks.js +182 -0
- package/dist/team/state/tasks.js.map +1 -0
- package/dist/team/state/types.d.ts +281 -0
- package/dist/team/state/types.d.ts.map +1 -0
- package/dist/team/state/types.js +3 -0
- package/dist/team/state/types.js.map +1 -0
- package/dist/team/state/workers.d.ts +2 -0
- package/dist/team/state/workers.d.ts.map +1 -0
- package/dist/team/state/workers.js +2 -0
- package/dist/team/state/workers.js.map +1 -0
- package/dist/team/state-root.d.ts +5 -0
- package/dist/team/state-root.d.ts.map +1 -0
- package/dist/team/state-root.js +8 -0
- package/dist/team/state-root.js.map +1 -0
- package/dist/team/state.d.ts +4 -1
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +200 -881
- package/dist/team/state.js.map +1 -1
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +11 -10
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +58 -26
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/team/worktree.d.ts.map +1 -1
- package/dist/team/worktree.js +43 -1
- package/dist/team/worktree.js.map +1 -1
- package/dist/utils/safe-json.d.ts +3 -0
- package/dist/utils/safe-json.d.ts.map +1 -0
- package/dist/utils/safe-json.js +19 -0
- package/dist/utils/safe-json.js.map +1 -0
- package/dist/utils/sleep.d.ts +3 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +15 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/visual/__tests__/verdict.test.d.ts +2 -0
- package/dist/visual/__tests__/verdict.test.d.ts.map +1 -0
- package/dist/visual/__tests__/verdict.test.js +81 -0
- package/dist/visual/__tests__/verdict.test.js.map +1 -0
- package/dist/visual/constants.d.ts +4 -0
- package/dist/visual/constants.d.ts.map +1 -0
- package/dist/visual/constants.js +3 -0
- package/dist/visual/constants.js.map +1 -0
- package/dist/visual/verdict.d.ts +17 -0
- package/dist/visual/verdict.d.ts.map +1 -0
- package/dist/visual/verdict.js +61 -0
- package/dist/visual/verdict.js.map +1 -0
- package/package.json +10 -3
- package/scripts/ask-claude.sh +17 -0
- package/scripts/ask-gemini.sh +14 -0
- package/scripts/demo-claude-workers.sh +241 -0
- package/scripts/demo-team-e2e.sh +179 -0
- package/scripts/fixtures/ask-advisor-stub.js +12 -0
- package/scripts/notify-hook/team-dispatch.js +234 -12
- package/scripts/notify-hook/team-leader-nudge.js +42 -2
- package/scripts/notify-hook/team-worker.js +63 -4
- package/scripts/notify-hook/visual-verdict.js +50 -1
- package/scripts/notify-hook.js +1 -0
- package/scripts/run-provider-advisor.js +179 -0
- package/skills/ask-claude/SKILL.md +61 -0
- package/skills/ask-gemini/SKILL.md +61 -0
- package/skills/autopilot/SKILL.md +32 -2
- package/skills/configure-notifications/SKILL.md +188 -186
- package/skills/deep-interview/SKILL.md +247 -0
- package/skills/omx-setup/SKILL.md +1 -1
- package/skills/ralph/SKILL.md +42 -11
- package/skills/ralplan/SKILL.md +17 -0
- package/skills/team/SKILL.md +64 -5
- package/skills/visual-verdict/SKILL.md +76 -0
- package/skills/web-clone/SKILL.md +366 -0
- package/skills/worker/SKILL.md +42 -11
- package/templates/AGENTS.md +9 -0
- package/templates/catalog-manifest.json +39 -18
- package/skills/configure-discord/SKILL.md +0 -256
- package/skills/configure-openclaw/SKILL.md +0 -267
- package/skills/configure-slack/SKILL.md +0 -226
- package/skills/configure-telegram/SKILL.md +0 -232
package/README.vi.md
CHANGED
|
@@ -1,10 +1,60 @@
|
|
|
1
|
-
# oh-my-codex (OMX)
|
|
1
|
+
# oh-my-codex (OMX)
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://yeachan-heo.github.io/oh-my-codex-website/omx-character-nobg.png" alt="oh-my-codex character" width="280">
|
|
5
|
+
<br>
|
|
6
|
+
<em>Codex của bạn không đơn độc.</em>
|
|
7
|
+
</p>
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+
[](https://www.npmjs.com/package/oh-my-codex)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
[](https://nodejs.org)
|
|
6
12
|
|
|
7
|
-
|
|
13
|
+
> **[Website](https://yeachan-heo.github.io/oh-my-codex-website/)** | **[Documentation](https://yeachan-heo.github.io/oh-my-codex-website/docs.html)** | **[CLI Reference](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#cli-reference)** | **[Workflows](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#workflows)** | **[GitHub](https://github.com/Yeachan-Heo/oh-my-codex)** | **[npm](https://www.npmjs.com/package/oh-my-codex)**
|
|
14
|
+
|
|
15
|
+
Lớp điều phối đa tác nhân cho [OpenAI Codex CLI](https://github.com/openai/codex).
|
|
16
|
+
|
|
17
|
+
## Ngôn ngữ
|
|
18
|
+
|
|
19
|
+
- [English](./README.md)
|
|
20
|
+
- [한국어 (Korean)](./README.ko.md)
|
|
21
|
+
- [日本語 (Japanese)](./README.ja.md)
|
|
22
|
+
- [简体中文 (Chinese Simplified)](./README.zh.md)
|
|
23
|
+
- [繁體中文 (Chinese Traditional)](./README.zh-TW.md)
|
|
24
|
+
- [Tiếng Việt (Vietnamese)](./README.vi.md)
|
|
25
|
+
- [Español (Spanish)](./README.es.md)
|
|
26
|
+
- [Português (Portuguese)](./README.pt.md)
|
|
27
|
+
- [Русский (Russian)](./README.ru.md)
|
|
28
|
+
- [Türkçe (Turkish)](./README.tr.md)
|
|
29
|
+
- [Deutsch (German)](./README.de.md)
|
|
30
|
+
- [Français (French)](./README.fr.md)
|
|
31
|
+
- [Italiano (Italian)](./README.it.md)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
OMX biến Codex từ một tác nhân phiên đơn thành một hệ thống phối hợp với:
|
|
35
|
+
- Role prompts (`/prompts:name`) cho các tác nhân chuyên biệt
|
|
36
|
+
- Workflow skills (`$name`) cho các chế độ thực thi lặp lại
|
|
37
|
+
- Điều phối đội ngũ trong tmux (`omx team`, `$team`)
|
|
38
|
+
- Trạng thái bền vững và bộ nhớ qua máy chủ MCP
|
|
39
|
+
|
|
40
|
+
## Tại sao chọn OMX
|
|
41
|
+
|
|
42
|
+
Codex CLI mạnh mẽ cho các tác vụ trực tiếp. OMX thêm cấu trúc cho công việc lớn hơn:
|
|
43
|
+
- Phân tách và thực thi theo giai đoạn (`team-plan -> team-prd -> team-exec -> team-verify -> team-fix`)
|
|
44
|
+
- Trạng thái vòng đời chế độ bền vững (`.omx/state/`)
|
|
45
|
+
- Bề mặt bộ nhớ và sổ ghi chú cho phiên làm việc dài
|
|
46
|
+
- Điều khiển vận hành cho khởi chạy, xác minh và hủy bỏ
|
|
47
|
+
|
|
48
|
+
OMX là một tiện ích bổ sung, không phải fork. Nó sử dụng các điểm mở rộng gốc của Codex.
|
|
49
|
+
|
|
50
|
+
## Yêu cầu hệ thống
|
|
51
|
+
|
|
52
|
+
- macOS hoặc Linux (Windows qua WSL2)
|
|
53
|
+
- Node.js >= 20
|
|
54
|
+
- Codex CLI đã cài đặt (`npm install -g @openai/codex`)
|
|
55
|
+
- Xác thực Codex đã cấu hình
|
|
56
|
+
|
|
57
|
+
## Bắt đầu nhanh (3 phút)
|
|
8
58
|
|
|
9
59
|
```bash
|
|
10
60
|
npm install -g oh-my-codex
|
|
@@ -12,25 +62,254 @@ omx setup
|
|
|
12
62
|
omx doctor
|
|
13
63
|
```
|
|
14
64
|
|
|
15
|
-
|
|
65
|
+
Cấu hình khởi chạy khuyến nghị cho môi trường tin cậy:
|
|
16
66
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
67
|
+
```bash
|
|
68
|
+
omx --xhigh --madmax
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Mới trong v0.5.0
|
|
72
|
+
|
|
73
|
+
- **Thiết lập nhận biết phạm vi** qua `omx setup --scope user|project` cho các chế độ cài đặt linh hoạt.
|
|
74
|
+
- **Định tuyến Spark worker** qua `--spark` / `--madmax-spark` — worker của đội có thể sử dụng `gpt-5.3-codex-spark` mà không ép buộc model lãnh đạo.
|
|
75
|
+
- **Hợp nhất danh mục** — loại bỏ các prompt không dùng nữa (`deep-executor`, `scientist`) và 9 skill không dùng nữa để có bề mặt gọn hơn.
|
|
76
|
+
- **Mức độ chi tiết thông báo** cho kiểm soát chi tiết đầu ra CCNotifier.
|
|
77
|
+
|
|
78
|
+
## Phiên đầu tiên
|
|
21
79
|
|
|
22
|
-
|
|
80
|
+
Trong Codex:
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
/prompts:architect "analyze current auth boundaries"
|
|
84
|
+
/prompts:executor "implement input validation in login"
|
|
85
|
+
$plan "ship OAuth callback safely"
|
|
86
|
+
$team 3:executor "fix all TypeScript errors"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Từ terminal:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
omx team 4:executor "parallelize a multi-module refactor"
|
|
93
|
+
omx team status <team-name>
|
|
94
|
+
omx team shutdown <team-name>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Mô hình cốt lõi
|
|
98
|
+
|
|
99
|
+
OMX cài đặt và kết nối các lớp sau:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
User
|
|
103
|
+
-> Codex CLI
|
|
104
|
+
-> AGENTS.md (bộ não điều phối)
|
|
105
|
+
-> ~/.codex/prompts/*.md (danh mục prompt tác nhân)
|
|
106
|
+
-> ~/.agents/skills/*/SKILL.md (danh mục skill)
|
|
107
|
+
-> ~/.codex/config.toml (tính năng, thông báo, MCP)
|
|
108
|
+
-> .omx/ (trạng thái runtime, bộ nhớ, kế hoạch, nhật ký)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Các lệnh chính
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
omx # Khởi chạy Codex (+ HUD trong tmux khi có sẵn)
|
|
115
|
+
omx setup # Cài đặt prompt/skill/config theo phạm vi + dự án AGENTS.md/.omx
|
|
116
|
+
omx doctor # Chẩn đoán cài đặt/runtime
|
|
117
|
+
omx doctor --team # Chẩn đoán Team/swarm
|
|
118
|
+
omx team ... # Khởi động/trạng thái/tiếp tục/tắt worker tmux của đội
|
|
119
|
+
omx status # Hiển thị các chế độ đang hoạt động
|
|
120
|
+
omx cancel # Hủy các chế độ thực thi đang hoạt động
|
|
121
|
+
omx reasoning <mode> # low|medium|high|xhigh
|
|
122
|
+
omx tmux-hook ... # init|status|validate|test
|
|
123
|
+
omx hooks ... # init|status|validate|test (quy trình mở rộng plugin)
|
|
124
|
+
omx hud ... # --watch|--json|--preset
|
|
125
|
+
omx help
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Mở rộng Hooks (Bề mặt bổ sung)
|
|
129
|
+
|
|
130
|
+
OMX hiện bao gồm `omx hooks` cho scaffolding và xác thực plugin.
|
|
131
|
+
|
|
132
|
+
- `omx tmux-hook` vẫn được hỗ trợ và không thay đổi.
|
|
133
|
+
- `omx hooks` là bổ sung và không thay thế quy trình tmux-hook.
|
|
134
|
+
- Tệp plugin nằm tại `.omx/hooks/*.mjs`.
|
|
135
|
+
- Plugin tắt theo mặc định; kích hoạt bằng `OMX_HOOK_PLUGINS=1`.
|
|
136
|
+
|
|
137
|
+
Xem `docs/hooks-extension.md` cho quy trình mở rộng đầy đủ và mô hình sự kiện.
|
|
138
|
+
|
|
139
|
+
## Cờ khởi chạy
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
--yolo
|
|
143
|
+
--high
|
|
144
|
+
--xhigh
|
|
145
|
+
--madmax
|
|
146
|
+
--force
|
|
147
|
+
--dry-run
|
|
148
|
+
--verbose
|
|
149
|
+
--scope <user|project> # chỉ dành cho setup
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
`--madmax` ánh xạ đến Codex `--dangerously-bypass-approvals-and-sandbox`.
|
|
153
|
+
Chỉ sử dụng trong môi trường sandbox tin cậy hoặc bên ngoài.
|
|
154
|
+
|
|
155
|
+
### Chính sách workingDirectory MCP (tăng cường tùy chọn)
|
|
156
|
+
|
|
157
|
+
Theo mặc định, các công cụ MCP state/memory/trace chấp nhận `workingDirectory` do người gọi cung cấp.
|
|
158
|
+
Để hạn chế điều này, đặt danh sách gốc được phép:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
export OMX_MCP_WORKDIR_ROOTS="/path/to/project:/path/to/another-root"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Khi được đặt, các giá trị `workingDirectory` ngoài các gốc này sẽ bị từ chối.
|
|
165
|
+
|
|
166
|
+
## Kiểm soát Prompt Codex-First
|
|
167
|
+
|
|
168
|
+
Theo mặc định, OMX tiêm:
|
|
169
|
+
|
|
170
|
+
```text
|
|
171
|
+
-c model_instructions_file="<cwd>/AGENTS.md"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Điều này thêm hướng dẫn `AGENTS.md` của dự án vào lệnh khởi chạy Codex.
|
|
175
|
+
Mở rộng hành vi Codex, nhưng không thay thế/bỏ qua các chính sách hệ thống cốt lõi của Codex.
|
|
176
|
+
|
|
177
|
+
Điều khiển:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
OMX_BYPASS_DEFAULT_SYSTEM_PROMPT=0 omx # tắt tiêm AGENTS.md
|
|
181
|
+
OMX_MODEL_INSTRUCTIONS_FILE=/path/to/instructions.md omx
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Chế độ đội
|
|
185
|
+
|
|
186
|
+
Sử dụng chế độ đội cho công việc lớn được hưởng lợi từ worker song song.
|
|
187
|
+
|
|
188
|
+
Vòng đời:
|
|
189
|
+
|
|
190
|
+
```text
|
|
191
|
+
start -> assign scoped lanes -> monitor -> verify terminal tasks -> shutdown
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Các lệnh vận hành:
|
|
23
195
|
|
|
24
196
|
```bash
|
|
25
|
-
omx
|
|
26
|
-
omx setup
|
|
27
|
-
omx doctor
|
|
28
197
|
omx team <args>
|
|
29
|
-
omx status
|
|
30
|
-
omx
|
|
198
|
+
omx team status <team-name>
|
|
199
|
+
omx team resume <team-name>
|
|
200
|
+
omx team shutdown <team-name>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Quy tắc quan trọng: không tắt khi các tác vụ vẫn đang ở trạng thái `in_progress` trừ khi đang hủy bỏ.
|
|
204
|
+
|
|
205
|
+
### Chính sách dọn dẹp Ralph
|
|
206
|
+
|
|
207
|
+
Khi đội chạy trong chế độ ralph (`omx team ralph ...`), việc dọn dẹp khi tắt
|
|
208
|
+
áp dụng chính sách chuyên dụng khác với đường dẫn thông thường:
|
|
209
|
+
|
|
210
|
+
| Hành vi | Đội thông thường | Đội Ralph |
|
|
211
|
+
|---|---|---|
|
|
212
|
+
| Tắt cưỡng bức khi lỗi | Ném `shutdown_gate_blocked` | Bỏ qua cổng, ghi nhật ký sự kiện `ralph_cleanup_policy` |
|
|
213
|
+
| Xóa nhánh tự động | Xóa nhánh worktree khi rollback | Giữ lại nhánh (`skipBranchDeletion`) |
|
|
214
|
+
| Ghi nhật ký hoàn thành | Sự kiện `shutdown_gate` tiêu chuẩn | Sự kiện `ralph_cleanup_summary` bổ sung với phân tích tác vụ |
|
|
215
|
+
|
|
216
|
+
Chính sách Ralph được phát hiện tự động từ trạng thái chế độ đội (`linked_ralph`) hoặc
|
|
217
|
+
có thể được truyền rõ ràng qua `omx team shutdown <name> --ralph`.
|
|
218
|
+
|
|
219
|
+
Chọn Worker CLI cho worker của đội:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
OMX_TEAM_WORKER_CLI=auto # mặc định; sử dụng claude khi worker --model chứa "claude"
|
|
223
|
+
OMX_TEAM_WORKER_CLI=codex # ép buộc worker Codex CLI
|
|
224
|
+
OMX_TEAM_WORKER_CLI=claude # ép buộc worker Claude CLI
|
|
225
|
+
OMX_TEAM_WORKER_CLI_MAP=codex,codex,claude,claude # hỗn hợp CLI theo worker (độ dài=1 hoặc số worker)
|
|
226
|
+
OMX_TEAM_AUTO_INTERRUPT_RETRY=0 # tùy chọn: tắt fallback thích ứng queue->resend
|
|
31
227
|
```
|
|
32
228
|
|
|
33
|
-
|
|
229
|
+
Lưu ý:
|
|
230
|
+
- Tham số khởi chạy worker vẫn được chia sẻ qua `OMX_TEAM_WORKER_LAUNCH_ARGS`.
|
|
231
|
+
- `OMX_TEAM_WORKER_CLI_MAP` ghi đè `OMX_TEAM_WORKER_CLI` cho lựa chọn theo worker.
|
|
232
|
+
- Gửi trigger sử dụng thử lại thích ứng theo mặc định (queue/submit, sau đó fallback an toàn clear-line+resend khi cần).
|
|
233
|
+
- Trong chế độ Claude worker, OMX khởi chạy worker dưới dạng `claude` thuần túy (không có tham số khởi chạy thêm) và bỏ qua các ghi đè rõ ràng `--model` / `--config` / `--effort` để Claude sử dụng `settings.json` mặc định.
|
|
234
|
+
|
|
235
|
+
## `omx setup` ghi những gì
|
|
236
|
+
|
|
237
|
+
- `.omx/setup-scope.json` (phạm vi cài đặt được lưu trữ)
|
|
238
|
+
- Cài đặt phụ thuộc phạm vi:
|
|
239
|
+
- `user`: `~/.codex/prompts/`, `~/.agents/skills/`, `~/.codex/config.toml`, `~/.omx/agents/`
|
|
240
|
+
- `project`: `./.codex/prompts/`, `./.agents/skills/`, `./.codex/config.toml`, `./.omx/agents/`
|
|
241
|
+
- Hành vi khởi chạy: nếu phạm vi được lưu trữ là `project`, khởi chạy `omx` tự động sử dụng `CODEX_HOME=./.codex` (trừ khi `CODEX_HOME` đã được đặt).
|
|
242
|
+
- `AGENTS.md` hiện có được giữ nguyên theo mặc định. Trong các lần chạy TTY tương tác, setup hỏi trước khi ghi đè; `--force` ghi đè không hỏi (kiểm tra an toàn phiên hoạt động vẫn áp dụng).
|
|
243
|
+
- Cập nhật `config.toml` (cho cả hai phạm vi):
|
|
244
|
+
- `notify = ["node", "..."]`
|
|
245
|
+
- `model_reasoning_effort = "high"`
|
|
246
|
+
- `developer_instructions = "..."`
|
|
247
|
+
- `[features] multi_agent = true, child_agents_md = true`
|
|
248
|
+
- Mục máy chủ MCP (`omx_state`, `omx_memory`, `omx_code_intel`, `omx_trace`)
|
|
249
|
+
- `[tui] status_line`
|
|
250
|
+
- `AGENTS.md` của dự án
|
|
251
|
+
- Thư mục `.omx/` runtime và cấu hình HUD
|
|
252
|
+
|
|
253
|
+
## Tác nhân và skill
|
|
254
|
+
|
|
255
|
+
- Prompt: `prompts/*.md` (cài vào `~/.codex/prompts/` cho `user`, `./.codex/prompts/` cho `project`)
|
|
256
|
+
- Skill: `skills/*/SKILL.md` (cài vào `~/.agents/skills/` cho `user`, `./.agents/skills/` cho `project`)
|
|
257
|
+
|
|
258
|
+
Ví dụ:
|
|
259
|
+
- Tác nhân: `architect`, `planner`, `executor`, `debugger`, `verifier`, `security-reviewer`
|
|
260
|
+
- Skill: `autopilot`, `plan`, `team`, `ralph`, `ultrawork`, `cancel`
|
|
261
|
+
|
|
262
|
+
## Cấu trúc dự án
|
|
263
|
+
|
|
264
|
+
```text
|
|
265
|
+
oh-my-codex/
|
|
266
|
+
bin/omx.js
|
|
267
|
+
src/
|
|
268
|
+
cli/
|
|
269
|
+
team/
|
|
270
|
+
mcp/
|
|
271
|
+
hooks/
|
|
272
|
+
hud/
|
|
273
|
+
config/
|
|
274
|
+
modes/
|
|
275
|
+
notifications/
|
|
276
|
+
verification/
|
|
277
|
+
prompts/
|
|
278
|
+
skills/
|
|
279
|
+
templates/
|
|
280
|
+
scripts/
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## Phát triển
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
git clone https://github.com/Yeachan-Heo/oh-my-codex.git
|
|
287
|
+
cd oh-my-codex
|
|
288
|
+
npm install
|
|
289
|
+
npm run build
|
|
290
|
+
npm test
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
## Tài liệu
|
|
294
|
+
|
|
295
|
+
- **[Tài liệu đầy đủ](https://yeachan-heo.github.io/oh-my-codex-website/docs.html)** — Hướng dẫn hoàn chỉnh
|
|
296
|
+
- **[Tham chiếu CLI](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#cli-reference)** — Tất cả lệnh `omx`, cờ và công cụ
|
|
297
|
+
- **[Hướng dẫn thông báo](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#notifications)** — Cài đặt Discord, Telegram, Slack và webhook
|
|
298
|
+
- **[Quy trình công việc khuyến nghị](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#workflows)** — Chuỗi skill đã thử nghiệm thực chiến cho các tác vụ phổ biến
|
|
299
|
+
- **[Ghi chú phát hành](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#release-notes)** — Tính năng mới trong mỗi phiên bản
|
|
300
|
+
|
|
301
|
+
## Ghi chú
|
|
302
|
+
|
|
303
|
+
- Nhật ký thay đổi đầy đủ: `CHANGELOG.md`
|
|
304
|
+
- Hướng dẫn di chuyển (sau v0.4.4 mainline): `docs/migration-mainline-post-v0.4.4.md`
|
|
305
|
+
- Ghi chú về độ bao phủ và tương đương: `COVERAGE.md`
|
|
306
|
+
- Quy trình mở rộng hook: `docs/hooks-extension.md`
|
|
307
|
+
- Chi tiết cài đặt và đóng góp: `CONTRIBUTING.md`
|
|
308
|
+
|
|
309
|
+
## Lời cảm ơn
|
|
310
|
+
|
|
311
|
+
Lấy cảm hứng từ [oh-my-claudecode](https://github.com/Yeachan-Heo/oh-my-claudecode), được điều chỉnh cho Codex CLI.
|
|
312
|
+
|
|
313
|
+
## Giấy phép
|
|
34
314
|
|
|
35
|
-
|
|
36
|
-
- Website: https://yeachan-heo.github.io/oh-my-codex-website/
|
|
315
|
+
MIT
|
package/README.zh-TW.md
ADDED
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
# oh-my-codex (OMX)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://yeachan-heo.github.io/oh-my-codex-website/omx-character-nobg.png" alt="oh-my-codex character" width="280">
|
|
5
|
+
<br>
|
|
6
|
+
<em>你的 Codex,從不孤行。</em>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/oh-my-codex)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
[](https://nodejs.org)
|
|
12
|
+
|
|
13
|
+
> **[官方網站](https://yeachan-heo.github.io/oh-my-codex-website/)** | **[說明文件](https://yeachan-heo.github.io/oh-my-codex-website/docs.html)** | **[CLI 參考手冊](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#cli-reference)** | **[工作流程](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#workflows)** | **[GitHub](https://github.com/Yeachan-Heo/oh-my-codex)** | **[npm](https://www.npmjs.com/package/oh-my-codex)**
|
|
14
|
+
|
|
15
|
+
[OpenAI Codex CLI](https://github.com/openai/codex) 的多智能體編排層。
|
|
16
|
+
|
|
17
|
+
## 語言
|
|
18
|
+
|
|
19
|
+
- [English](./README.md)
|
|
20
|
+
- [한국어 (Korean)](./README.ko.md)
|
|
21
|
+
- [日本語 (Japanese)](./README.ja.md)
|
|
22
|
+
- [简体中文 (Chinese Simplified)](./README.zh.md)
|
|
23
|
+
- [繁體中文 (Chinese Traditional)](./README.zh-TW.md)
|
|
24
|
+
- [Tiếng Việt (Vietnamese)](./README.vi.md)
|
|
25
|
+
- [Español (Spanish)](./README.es.md)
|
|
26
|
+
- [Português (Portuguese)](./README.pt.md)
|
|
27
|
+
- [Русский (Russian)](./README.ru.md)
|
|
28
|
+
- [Türkçe (Turkish)](./README.tr.md)
|
|
29
|
+
- [Deutsch (German)](./README.de.md)
|
|
30
|
+
- [Français (French)](./README.fr.md)
|
|
31
|
+
- [Italiano (Italian)](./README.it.md)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
OMX 讓 Codex 從單一會話代理進化為協同運作的系統,具備以下能力:
|
|
35
|
+
- 角色提示詞 (`/prompts:name`),賦予代理各司其職的專業特質
|
|
36
|
+
- 工作流程技能 (`$name`),實現可重複執行的作業模式
|
|
37
|
+
- 透過 tmux 互動模式(預設)或非 tmux 提示模式進行團隊編排 (`omx team`、`$team`)
|
|
38
|
+
- 透過 MCP 伺服器實現持久化狀態與記憶
|
|
39
|
+
|
|
40
|
+
## 為何選擇 OMX
|
|
41
|
+
|
|
42
|
+
Codex CLI 擅長處理直接明確的任務。OMX 為更大規模的工作注入結構:
|
|
43
|
+
- 分解任務並分階段執行 (`team-plan -> team-prd -> team-exec -> team-verify -> team-fix`)
|
|
44
|
+
- 持久化的模式生命週期狀態 (`.omx/state/`)
|
|
45
|
+
- 長時間運行會話所需的記憶與備忘錄介面
|
|
46
|
+
- 啟動、驗證與取消的作業控制
|
|
47
|
+
|
|
48
|
+
OMX 是插件,而非分支版本。它完全運用 Codex 的原生擴充點。
|
|
49
|
+
|
|
50
|
+
## 定位:CLI 優先的編排層,MCP 支援的狀態管理
|
|
51
|
+
|
|
52
|
+
OMX 最適合作為**外層 CLI 編排層**使用:
|
|
53
|
+
- **控制平面(CLI/執行期):** `omx team`、tmux 工作進程、生命週期指令
|
|
54
|
+
- **能力/狀態平面(MCP):** 任務狀態、信箱、記憶、診斷工具
|
|
55
|
+
|
|
56
|
+
實際模式分工:
|
|
57
|
+
- **`$team` / `omx team`**:耐久、可檢視、可恢復的多工作進程執行
|
|
58
|
+
- **`$ultrawork`**:針對獨立任務的輕量平行扇出(元件模式)
|
|
59
|
+
|
|
60
|
+
低 Token 消耗的團隊設定範例:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
OMX_TEAM_WORKER_CLI=codex \
|
|
64
|
+
OMX_TEAM_WORKER_LAUNCH_ARGS='--model gpt-5.3-codex-spark -c model_reasoning_effort="low"' \
|
|
65
|
+
omx team 2:explore "短暫有界的分析任務"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## 系統需求
|
|
69
|
+
|
|
70
|
+
- macOS 或 Linux(Windows 可透過 WSL2 使用)
|
|
71
|
+
- Node.js >= 20(CI 驗證 Node 20 及目前 LTS,目前為 Node 22)
|
|
72
|
+
- 已安裝 Codex CLI(`npm install -g @openai/codex`)
|
|
73
|
+
- 已完成 Codex 身份驗證設定
|
|
74
|
+
|
|
75
|
+
## 快速入門(3 分鐘)
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
npm install -g oh-my-codex
|
|
79
|
+
omx setup
|
|
80
|
+
omx doctor
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
推薦的信任環境啟動設定:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
omx --xhigh --madmax
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## v0.5.0 新功能
|
|
90
|
+
|
|
91
|
+
- 透過 `omx setup --scope user|project` 實現**範圍感知設定** — 彈性的安裝模式。
|
|
92
|
+
- 透過 `--spark` / `--madmax-spark` 實現 **Spark 工作進程路由** — 團隊工作進程可使用 `gpt-5.3-codex-spark`,無需強制套用領導者模型。
|
|
93
|
+
- **目錄整合** — 移除已棄用的提示詞(`deep-executor`、`scientist`)及 9 個已棄用的技能,讓介面更為精簡。
|
|
94
|
+
- **通知詳細程度等級** — 對 CCNotifier 輸出進行精細控制。
|
|
95
|
+
|
|
96
|
+
## 首次會話
|
|
97
|
+
|
|
98
|
+
在 Codex 內部:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
/prompts:architect "analyze current auth boundaries"
|
|
102
|
+
/prompts:executor "implement input validation in login"
|
|
103
|
+
$plan "ship OAuth callback safely"
|
|
104
|
+
$team 3:executor "fix all TypeScript errors"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
從終端機:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
omx team 4:executor "parallelize a multi-module refactor"
|
|
111
|
+
omx team status <team-name>
|
|
112
|
+
omx team shutdown <team-name>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 核心模型
|
|
116
|
+
|
|
117
|
+
OMX 安裝並串接以下各層:
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
使用者
|
|
121
|
+
-> Codex CLI
|
|
122
|
+
-> AGENTS.md(編排大腦)
|
|
123
|
+
-> ~/.codex/prompts/*.md(代理提示詞目錄)
|
|
124
|
+
-> ~/.agents/skills/*/SKILL.md(技能目錄)
|
|
125
|
+
-> ~/.codex/config.toml(功能、通知、MCP)
|
|
126
|
+
-> .omx/(執行期狀態、記憶、計畫、日誌)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## 主要指令
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
omx # 啟動 Codex(可用時在 tmux 中附帶 HUD)
|
|
133
|
+
omx setup # 依範圍安裝提示詞/技能/設定 + 專案 AGENTS.md/.omx
|
|
134
|
+
omx doctor # 安裝/執行期診斷
|
|
135
|
+
omx doctor --team # 團隊/群集診斷
|
|
136
|
+
omx ask ... # 詢問本地供應商顧問(claude|gemini),結果寫入 .omx/artifacts/*
|
|
137
|
+
omx team ... # 啟動/狀態/恢復/關閉團隊工作進程(預設為互動式 tmux)
|
|
138
|
+
omx status # 顯示目前活動模式
|
|
139
|
+
omx cancel # 取消活動中的執行模式
|
|
140
|
+
omx reasoning <mode> # low|medium|high|xhigh
|
|
141
|
+
omx tmux-hook ... # init|status|validate|test
|
|
142
|
+
omx hooks ... # init|status|validate|test(插件擴充工作流程)
|
|
143
|
+
omx hud ... # --watch|--json|--preset
|
|
144
|
+
omx help
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Ask 指令範例:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
omx ask claude "review this diff"
|
|
151
|
+
omx ask gemini "brainstorm alternatives"
|
|
152
|
+
omx ask claude --agent-prompt executor "implement feature X with tests"
|
|
153
|
+
omx ask gemini --agent-prompt=planner --prompt "draft a rollout plan"
|
|
154
|
+
# 底層供應商 CLI 說明中的旗標:
|
|
155
|
+
# claude -p|--print "<prompt>"
|
|
156
|
+
# gemini -p|--prompt "<prompt>"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
非 tmux 團隊啟動(進階):
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
OMX_TEAM_WORKER_LAUNCH_MODE=prompt omx team 2:executor "task"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Hooks 擴充(附加介面)
|
|
166
|
+
|
|
167
|
+
OMX 現已包含 `omx hooks`,用於插件鷹架建立與驗證。
|
|
168
|
+
|
|
169
|
+
- `omx tmux-hook` 持續受支援,行為不變。
|
|
170
|
+
- `omx hooks` 屬於附加功能,不會取代 tmux-hook 工作流程。
|
|
171
|
+
- 插件檔案位於 `.omx/hooks/*.mjs`。
|
|
172
|
+
- 插件預設關閉;使用 `OMX_HOOK_PLUGINS=1` 啟用。
|
|
173
|
+
|
|
174
|
+
完整的擴充工作流程與事件模型,請參閱 `docs/hooks-extension.md`。
|
|
175
|
+
|
|
176
|
+
## 啟動旗標
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
--yolo
|
|
180
|
+
--high
|
|
181
|
+
--xhigh
|
|
182
|
+
--madmax
|
|
183
|
+
--force
|
|
184
|
+
--dry-run
|
|
185
|
+
--verbose
|
|
186
|
+
--scope <user|project> # 僅用於 setup
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
`--madmax` 對應 Codex 的 `--dangerously-bypass-approvals-and-sandbox`。
|
|
190
|
+
僅在信任環境或外部沙箱環境中使用。
|
|
191
|
+
|
|
192
|
+
### MCP workingDirectory 策略(選用強化)
|
|
193
|
+
|
|
194
|
+
預設情況下,MCP 狀態/記憶/追蹤工具接受呼叫方提供的 `workingDirectory`。
|
|
195
|
+
若要限制此行為,請設定允許的根目錄清單:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
export OMX_MCP_WORKDIR_ROOTS="/path/to/project:/path/to/another-root"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
設定後,超出這些根目錄的 `workingDirectory` 值將被拒絕。
|
|
202
|
+
|
|
203
|
+
## Codex 優先的提示詞控制
|
|
204
|
+
|
|
205
|
+
預設情況下,OMX 注入:
|
|
206
|
+
|
|
207
|
+
```text
|
|
208
|
+
-c model_instructions_file="<cwd>/AGENTS.md"
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
這會將專案的 `AGENTS.md` 指引加入 Codex 啟動指令中。
|
|
212
|
+
此舉擴充了 Codex 的行為,但不會取代或繞過 Codex 核心系統策略。
|
|
213
|
+
|
|
214
|
+
控制方式:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
OMX_BYPASS_DEFAULT_SYSTEM_PROMPT=0 omx # 停用 AGENTS.md 注入
|
|
218
|
+
OMX_MODEL_INSTRUCTIONS_FILE=/path/to/instructions.md omx
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## 團隊模式
|
|
222
|
+
|
|
223
|
+
對於能從平行工作進程獲益的大規模工作,請使用團隊模式。
|
|
224
|
+
|
|
225
|
+
生命週期:
|
|
226
|
+
|
|
227
|
+
```text
|
|
228
|
+
啟動 -> 分配有界通道 -> 監控 -> 驗證終端任務 -> 關閉
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
作業指令:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
omx team <args>
|
|
235
|
+
omx team status <team-name>
|
|
236
|
+
omx team resume <team-name>
|
|
237
|
+
omx team shutdown <team-name>
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
重要規則:除非要中止,否則請勿在任務仍處於 `in_progress` 狀態時關閉。
|
|
241
|
+
|
|
242
|
+
### Ralph 清理策略
|
|
243
|
+
|
|
244
|
+
當團隊以 ralph 模式執行(`omx team ralph ...`)時,關閉清理
|
|
245
|
+
會套用與一般路徑不同的專屬策略:
|
|
246
|
+
|
|
247
|
+
| 行為 | 一般團隊 | Ralph 團隊 |
|
|
248
|
+
|---|---|---|
|
|
249
|
+
| 失敗時強制關閉 | 拋出 `shutdown_gate_blocked` | 略過閘門,記錄 `ralph_cleanup_policy` 事件 |
|
|
250
|
+
| 自動刪除分支 | 復原時刪除 worktree 分支 | 保留分支(`skipBranchDeletion`) |
|
|
251
|
+
| 完成日誌 | 標準 `shutdown_gate` 事件 | 附帶任務分解的 `ralph_cleanup_summary` 事件 |
|
|
252
|
+
|
|
253
|
+
Ralph 策略會從團隊模式狀態(`linked_ralph`)自動偵測,
|
|
254
|
+
也可透過 `omx team shutdown <name> --ralph` 明確傳遞。
|
|
255
|
+
|
|
256
|
+
團隊工作進程的 Worker CLI 選擇:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
OMX_TEAM_WORKER_CLI=auto # 預設;當 worker --model 包含 "claude" 時使用 claude
|
|
260
|
+
OMX_TEAM_WORKER_CLI=codex # 強制使用 Codex CLI 工作進程
|
|
261
|
+
OMX_TEAM_WORKER_CLI=claude # 強制使用 Claude CLI 工作進程
|
|
262
|
+
OMX_TEAM_WORKER_CLI_MAP=codex,codex,claude,claude # 每個工作進程的 CLI 混合(長度為 1 或等於工作進程數量)
|
|
263
|
+
OMX_TEAM_AUTO_INTERRUPT_RETRY=0 # 選用:停用自適應 queue->resend 回退機制
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
注意事項:
|
|
267
|
+
- 工作進程啟動參數仍透過 `OMX_TEAM_WORKER_LAUNCH_ARGS` 共享。
|
|
268
|
+
- `OMX_TEAM_WORKER_CLI_MAP` 會覆寫 `OMX_TEAM_WORKER_CLI`,以實現每個工作進程的個別選擇。
|
|
269
|
+
- 觸發提交預設使用自適應重試(queue/submit,必要時採用安全的清除行 + 重傳回退)。
|
|
270
|
+
- 在 Claude 工作進程模式下,OMX 以純 `claude` 啟動工作進程(無額外啟動參數),並忽略明確的 `--model` / `--config` / `--effort` 覆寫,讓 Claude 使用預設的 `settings.json`。
|
|
271
|
+
|
|
272
|
+
## `omx setup` 寫入的內容
|
|
273
|
+
|
|
274
|
+
- `.omx/setup-scope.json`(持久化的設定範圍)
|
|
275
|
+
- 依範圍的安裝內容:
|
|
276
|
+
- `user`:`~/.codex/prompts/`、`~/.agents/skills/`、`~/.codex/config.toml`、`~/.omx/agents/`
|
|
277
|
+
- `project`:`./.codex/prompts/`、`./.agents/skills/`、`./.codex/config.toml`、`./.omx/agents/`
|
|
278
|
+
- 啟動行為:若持久化範圍為 `project`,`omx` 啟動時自動使用 `CODEX_HOME=./.codex`(除非已設定 `CODEX_HOME`)。
|
|
279
|
+
- 現有的 `AGENTS.md` 預設會保留。在互動式 TTY 執行時,setup 會在覆寫前詢問確認;`--force` 則不詢問直接覆寫(仍適用活動會話安全檢查)。
|
|
280
|
+
- `config.toml` 更新(兩種範圍均適用):
|
|
281
|
+
- `notify = ["node", "..."]`
|
|
282
|
+
- `model_reasoning_effort = "high"`
|
|
283
|
+
- `developer_instructions = "..."`
|
|
284
|
+
- `[features] multi_agent = true, child_agents_md = true`
|
|
285
|
+
- MCP 伺服器項目(`omx_state`、`omx_memory`、`omx_code_intel`、`omx_trace`)
|
|
286
|
+
- `[tui] status_line`
|
|
287
|
+
- 專案 `AGENTS.md`
|
|
288
|
+
- `.omx/` 執行期目錄與 HUD 設定
|
|
289
|
+
|
|
290
|
+
## 代理與技能
|
|
291
|
+
|
|
292
|
+
- 提示詞:`prompts/*.md`(`user` 安裝至 `~/.codex/prompts/`,`project` 安裝至 `./.codex/prompts/`)
|
|
293
|
+
- 技能:`skills/*/SKILL.md`(`user` 安裝至 `~/.agents/skills/`,`project` 安裝至 `./.agents/skills/`)
|
|
294
|
+
|
|
295
|
+
範例:
|
|
296
|
+
- 代理:`architect`、`planner`、`executor`、`debugger`、`verifier`、`security-reviewer`
|
|
297
|
+
- 技能:`autopilot`、`plan`、`team`、`ralph`、`ultrawork`、`cancel`
|
|
298
|
+
|
|
299
|
+
### 視覺品管迴圈(`$visual-verdict`)
|
|
300
|
+
|
|
301
|
+
當任務需要視覺保真度驗證(參考圖片 + 生成截圖)時,請使用 `$visual-verdict`。
|
|
302
|
+
|
|
303
|
+
- 回傳結構化 JSON:`score`、`verdict`、`category_match`、`differences[]`、`suggestions[]`、`reasoning`
|
|
304
|
+
- 建議通過門檻:**90 分以上**
|
|
305
|
+
- 對於視覺任務,在每次下一輪編輯前先執行 `$visual-verdict`
|
|
306
|
+
- 使用像素差異 / pixelmatch 疊加圖作為**輔助除錯工具**(而非主要通過/失敗判斷依據)
|
|
307
|
+
|
|
308
|
+
## 專案結構
|
|
309
|
+
|
|
310
|
+
```text
|
|
311
|
+
oh-my-codex/
|
|
312
|
+
bin/omx.js
|
|
313
|
+
src/
|
|
314
|
+
cli/
|
|
315
|
+
team/
|
|
316
|
+
mcp/
|
|
317
|
+
hooks/
|
|
318
|
+
hud/
|
|
319
|
+
config/
|
|
320
|
+
modes/
|
|
321
|
+
notifications/
|
|
322
|
+
verification/
|
|
323
|
+
prompts/
|
|
324
|
+
skills/
|
|
325
|
+
templates/
|
|
326
|
+
scripts/
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## 開發
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
git clone https://github.com/Yeachan-Heo/oh-my-codex.git
|
|
333
|
+
cd oh-my-codex
|
|
334
|
+
npm install
|
|
335
|
+
npm run lint
|
|
336
|
+
npm run build
|
|
337
|
+
npm test
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
## 說明文件
|
|
341
|
+
|
|
342
|
+
- **[完整說明文件](https://yeachan-heo.github.io/oh-my-codex-website/docs.html)** — 完整指南
|
|
343
|
+
- **[CLI 參考手冊](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#cli-reference)** — 所有 `omx` 指令、旗標與工具
|
|
344
|
+
- **[通知設定指南](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#notifications)** — Discord、Telegram、Slack 及 Webhook 設定
|
|
345
|
+
- **[推薦工作流程](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#workflows)** — 實戰驗證的技能鏈,適用常見任務
|
|
346
|
+
- **[版本發行說明](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#release-notes)** — 每個版本的新功能
|
|
347
|
+
|
|
348
|
+
## 附註
|
|
349
|
+
|
|
350
|
+
- 完整變更日誌:`CHANGELOG.md`
|
|
351
|
+
- 遷移指南(v0.4.4 後的主線版本):`docs/migration-mainline-post-v0.4.4.md`
|
|
352
|
+
- 覆蓋率與同等性說明:`COVERAGE.md`
|
|
353
|
+
- Hook 擴充工作流程:`docs/hooks-extension.md`
|
|
354
|
+
- 設定與貢獻詳情:`CONTRIBUTING.md`
|
|
355
|
+
|
|
356
|
+
## 致謝
|
|
357
|
+
|
|
358
|
+
靈感來自 [oh-my-claudecode](https://github.com/Yeachan-Heo/oh-my-claudecode),為 Codex CLI 量身改編。
|
|
359
|
+
|
|
360
|
+
## 授權條款
|
|
361
|
+
|
|
362
|
+
MIT
|