fix: expose hwpod in code queue runners

This commit is contained in:
Codex
2026-05-29 23:34:17 +00:00
parent 1445f155b3
commit e7c2d97e46
5 changed files with 109 additions and 23 deletions
@@ -8,7 +8,8 @@ ENV CARGO_HOME=/usr/local/cargo
ENV PATH=/usr/local/cargo/bin:${PATH}
COPY scripts/tran /usr/local/bin/tran
RUN chmod 755 /usr/local/bin/tran
COPY scripts/hwpod /usr/local/bin/hwpod
RUN chmod 755 /usr/local/bin/tran /usr/local/bin/hwpod
RUN (command -v docker >/dev/null 2>&1 && docker buildx version >/dev/null 2>&1 && command -v gh >/dev/null 2>&1 && command -v rg >/dev/null 2>&1 && command -v cargo >/dev/null 2>&1 && command -v rustc >/dev/null 2>&1 && command -v rustfmt >/dev/null 2>&1 && command -v xvfb-run >/dev/null 2>&1) \
|| (apt-get update \
@@ -975,7 +975,21 @@ printf %s ${shellQuote(bridgeBase64)} | base64 -d > ${shellQuote(resolve(ctx().c
chmod 700 ${shellQuote(resolve(ctx().config.windowsNativeCodexBridgeDir, "bridge.py"))}`;
}
function hwpodWrapperSource(): string {
const candidates = [
"/usr/local/bin/hwpod",
resolve(ctx().config.defaultWorkdir, "scripts/hwpod"),
"/app/scripts/hwpod",
"/root/unidesk/scripts/hwpod",
resolve(process.cwd(), "scripts/hwpod"),
];
const path = candidates.find((candidate) => existsSync(candidate));
if (path === undefined) throw new Error(`hwpod wrapper source not found in ${candidates.join(", ")}`);
return readFileSync(path, "utf8");
}
function remoteCodexRuntimePrepareScript(plan: DevContainerPlan): string {
const hwpodWrapper = base64Text(hwpodWrapperSource());
return `set -euo pipefail
CONTAINER=${shellQuote(plan.containerName)}
docker exec -i "$CONTAINER" bash -s <<'INNER'
@@ -1008,8 +1022,10 @@ fi
if ! command -v opencode >/dev/null 2>&1; then
npm install -g --no-audit --no-fund --prefer-offline ${opencodeNpmPackage}
fi
printf %s ${shellQuote(hwpodWrapper)} | base64 -d > /usr/local/bin/hwpod
chmod 755 /usr/local/bin/hwpod
mkdir -p "$WORKDIR" "$CODEX_HOME_DIR" "$OPENCODE_XDG_DIR/data" "$OPENCODE_XDG_DIR/config" "$OPENCODE_XDG_DIR/cache" "$OPENCODE_XDG_DIR/state"
echo "code_agent_runtime_ready codex=$(command -v codex) opencode=$(command -v opencode) cwd=$WORKDIR home=$CODEX_HOME_DIR opencodeXdg=$OPENCODE_XDG_DIR"
echo "code_agent_runtime_ready codex=$(command -v codex) opencode=$(command -v opencode) hwpod=$(command -v hwpod) cwd=$WORKDIR home=$CODEX_HOME_DIR opencodeXdg=$OPENCODE_XDG_DIR"
INNER`;
}