feat(ack): support OMP workers

This commit is contained in:
2026-08-23 22:00:32 +08:00
parent 7dfdf80e9e
commit 02fafb4bf6
14 changed files with 530 additions and 18 deletions
+4 -1
View File
@@ -84,11 +84,13 @@ WORKER_CREDENTIAL_NAMES = {
"codex": frozenset({"AZURE_OPENAI_API_KEY", "OPENAI_API_KEY"}),
"cursor-agent": frozenset({"CURSOR_API_KEY"}),
"grok": frozenset({"XAI_API_KEY"}),
"omp": frozenset({"OPENCODE_API_KEY"}),
}
CLI_TITLE_LABELS = {
"codex": "CODEX",
"cursor-agent": "CURSOR",
"grok": "GROK",
"omp": "OMP",
}
INHERITED_ENVIRONMENT_PREFIXES = (
"LC_",
@@ -149,6 +151,7 @@ def trusted_path_entries() -> list[Path]:
candidates = [
home / ".local" / "bin",
home / ".local" / "share" / "mise" / "shims",
home / ".local" / "share" / "mise" / "installs" / "github-can1357-oh-my-pi" / "latest",
home / ".cargo" / "bin",
Path("/home/linuxbrew/.linuxbrew/bin"),
Path("/usr/local/go/bin"),
@@ -305,7 +308,7 @@ def _is_trusted_grok_executable(resolved: Path, metadata: os.stat_result) -> boo
def resolve_executable(name: str) -> Path:
supported = {"codex", "cursor-agent", "grok", "git", "orca"}
supported = {"codex", "cursor-agent", "grok", "omp", "git", "orca"}
if name not in supported:
raise LaunchError(f"不支持的可执行文件: {name}")
search_paths = trusted_path_entries()
+17 -2
View File
@@ -24,13 +24,13 @@ LAUNCH_PROTOCOL_VERSION = 1
MAX_ROUNDS = 3
ROLES = frozenset({"developer", "test"})
CLIS = frozenset({"codex", "cursor-agent", "grok"})
CLIS = frozenset({"codex", "cursor-agent", "grok", "omp"})
TIERS = frozenset({"standard", "strong"})
REASONING_EFFORTS = frozenset({"low", "medium", "high", "xhigh"})
PERMISSION_MODES = frozenset({"read-only", "workspace-write"})
ORCHESTRATION_MODES = frozenset({"orca", "manual"})
DEFAULT_KEYS = frozenset({"developer", "test", "developerUpgraded"})
CLI_REQUIRES_REASONING_EFFORT = frozenset({"codex", "grok"})
CLI_REQUIRES_REASONING_EFFORT = frozenset({"codex", "grok", "omp"})
CLI_REQUIRES_NULL_REASONING_EFFORT = frozenset({"cursor-agent"})
@@ -502,6 +502,21 @@ def render_worker_argv(
argv.extend(["--sandbox", "enabled", "--workspace", worktree])
return argv
if cli == "omp":
omp_approval = "always-ask" if permission == "read-only" else "yolo"
return [
executable,
"--model",
model,
"--thinking",
profile["reasoningEffort"],
"--approval-mode",
omp_approval,
"--cwd",
worktree,
"--no-session",
]
if cli != "grok":
raise ValueError(f"unsupported cli: {cli}")
grok_permission = "plan" if permission == "read-only" else "acceptEdits"