























@@ -30,10 +30,11 @@ openclaw_live_acp_bind_resolve_auth_provider() {
3030case "${1:-}" in
3131 claude) printf '%s\n' "claude-cli" ;;
3232 codex) printf '%s\n' "codex-cli" ;;
33+ droid) printf '%s\n' "droid" ;;
3334 gemini) printf '%s\n' "google-gemini-cli" ;;
3435 opencode) printf '%s\n' "opencode" ;;
3536*)
36-echo "Unsupported OPENCLAW_LIVE_ACP_BIND agent: ${1:-} (expected claude, codex, gemini, or opencode)" >&2
37+echo "Unsupported OPENCLAW_LIVE_ACP_BIND agent: ${1:-} (expected claude, codex, droid, gemini, or opencode)" >&2
3738return 1
3839 ;;
3940esac
@@ -43,6 +44,7 @@ openclaw_live_acp_bind_resolve_agent_command() {
4344case "${1:-}" in
4445 claude) printf '%s' "${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND_CLAUDE:-${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND:-}}" ;;
4546 codex) printf '%s' "${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND_CODEX:-${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND:-}}" ;;
47+ droid) printf '%s' "${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND_DROID:-${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND:-}}" ;;
4648 gemini) printf '%s' "${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND_GEMINI:-${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND:-}}" ;;
4749 opencode) printf '%s' "${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND_OPENCODE:-${OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND:-}}" ;;
4850*) return 1 ;;
@@ -95,9 +97,9 @@ export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
9597export COREPACK_HOME="${COREPACK_HOME:-$XDG_CACHE_HOME/node/corepack}"
9698export NPM_CONFIG_CACHE="${NPM_CONFIG_CACHE:-$XDG_CACHE_HOME/npm}"
9799export npm_config_cache="$NPM_CONFIG_CACHE"
98-mkdir -p "$NPM_CONFIG_PREFIX" "$XDG_CACHE_HOME" "$COREPACK_HOME" "$NPM_CONFIG_CACHE"
100+mkdir -p "$NPM_CONFIG_PREFIX" "$HOME/.local/bin" "$XDG_CACHE_HOME" "$COREPACK_HOME" "$NPM_CONFIG_CACHE"
99101chmod 700 "$XDG_CACHE_HOME" "$COREPACK_HOME" "$NPM_CONFIG_CACHE" || true
100-export PATH="$NPM_CONFIG_PREFIX/bin:$PATH"
102+export PATH="$HOME/.local/bin:$NPM_CONFIG_PREFIX/bin:$PATH"
101103if [ "${OPENCLAW_DOCKER_AUTH_PRESTAGED:-0}" != "1" ]; then
102104 IFS=',' read -r -a auth_dirs <<<"${OPENCLAW_DOCKER_AUTH_DIRS_RESOLVED:-}"
103105 IFS=',' read -r -a auth_files <<<"${OPENCLAW_DOCKER_AUTH_FILES_RESOLVED:-}"
@@ -153,6 +155,17 @@ WRAP
153155 npm install -g @openai/codex
154156 fi
155157 ;;
158+ droid)
159+ if ! command -v droid >/dev/null 2>&1; then
160+ curl -fsSL https://app.factory.ai/cli | sh
161+ export PATH="$HOME/.local/bin:$PATH"
162+ fi
163+ droid --version
164+ if [ -z "${FACTORY_API_KEY:-}" ]; then
165+ echo "Droid Docker ACP bind requires FACTORY_API_KEY; Factory OAuth/keyring auth in ~/.factory is not portable into the container." >&2
166+ exit 1
167+ fi
168+ ;;
156169 gemini)
157170 mkdir -p "$HOME/.gemini"
158171 if [ ! -x "$NPM_CONFIG_PREFIX/bin/gemini" ]; then
@@ -197,7 +210,7 @@ for token in "${ACP_AGENT_TOKENS[@]}"; do
197210done
198211199212if ((${#ACP_AGENTS[@]} == 0)); then
200-echo "No ACP bind agents selected. Use OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,gemini,opencode." >&2
213+echo "No ACP bind agents selected. Use OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,droid,gemini,opencode." >&2
201214exit 1
202215fi
203216@@ -283,6 +296,7 @@ for ACP_AGENT in "${ACP_AGENTS[@]}"; do
283296 -e OPENCLAW_LIVE_ACP_BIND_ANTHROPIC_API_KEY_OLD="${ANTHROPIC_API_KEY_OLD:-}" \
284297 -e GEMINI_API_KEY \
285298 -e GOOGLE_API_KEY \
299+ -e FACTORY_API_KEY \
286300 -e OPENAI_API_KEY \
287301 -e OPENCODE_API_KEY \
288302 -e OPENCODE_ZEN_API_KEY \
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。