Files
weichen ae48970f5f fix(pi-runner): allow host-side extension path override for task runs
Task-run pi launches hardcoded the container path /app/extensions/tavily-search.mjs;
on the no-docker host sidecar every squad/dialogue task run failed at spawn with
ENOENT/extension-load errors. Add PI_AGENT_EXTENSION override and export the
managed pi-dir extension path from the sidecar start script.
2026-09-25 21:30:29 +00:00

92 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Host-side PI Agent Runner (non-container). Port defaults to 18865 (dev).
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
umask 000
PORT="${PORT:-${PI_AGENT_RUNNER_PORT:-18865}}"
DATA_DIR="${DATA_DIR:-$ROOT/data/dev/workspaces}"
PI_DIR="${PI_CODING_AGENT_DIR:-$ROOT/data/dev/pi-agent}"
ENDPOINT_URL="${MINIMAX_ENDPOINT_URL:-https://api.minimaxi.com/v1}"
API_TOKEN="${MINIMAX_API_KEY:-${MINIMAX_API_TOKEN:-}}"
# Unified model pin across environments.
MODEL_ID="${MINIMAX_MODEL_ID:-MiniMax-M2.7-highspeed}"
RAW_API_TYPE="${MINIMAX_API_TYPE:-openai-compatible}"
if [ "$RAW_API_TYPE" = "openai-compatible" ] || [ "$RAW_API_TYPE" = "openai" ]; then
API_TYPE="openai-completions"
else
API_TYPE="$RAW_API_TYPE"
fi
mkdir -p "${PI_DIR}/extensions" "$DATA_DIR"
EXT_SRC="$ROOT/deploy/pi-agent/extensions/tavily-search.mjs"
if [ -f "$EXT_SRC" ]; then
cp -f "$EXT_SRC" "${PI_DIR}/extensions/tavily-search.mjs"
fi
cat > "${PI_DIR}/models.json" <<EOF
{
"providers": {
"minimax": {
"name": "MiniMax",
"baseUrl": "${ENDPOINT_URL}",
"api": "${API_TYPE}",
"apiKey": "${API_TOKEN}",
"models": [
{
"id": "${MODEL_ID}",
"name": "${MODEL_ID}",
"reasoning": true,
"input": ["text"],
"contextWindow": 1000000,
"maxTokens": 131072
},
{
"id": "MiniMax-M2.7-highspeed",
"name": "MiniMax-M2.7-highspeed",
"reasoning": true,
"input": ["text"],
"contextWindow": 1000000,
"maxTokens": 131072
},
{
"id": "MiniMax-M3",
"name": "MiniMax-M3",
"reasoning": true,
"input": ["text"],
"contextWindow": 1000000,
"maxTokens": 131072
}
]
}
}
}
EOF
cat > "${PI_DIR}/settings.json" <<EOF
{
"defaultProvider": "minimax",
"defaultModel": "${MODEL_ID}",
"extensions": [
"${PI_DIR}/extensions/tavily-search.mjs"
]
}
EOF
export PORT DATA_DIR PI_CODING_AGENT_DIR="$PI_DIR"
export PI_AGENT_EXTENSION="${PI_DIR}/extensions/tavily-search.mjs"
export PATH="${PATH}:/home/linuxbrew/.linuxbrew/bin"
echo "================================================================="
echo " PI Agent Sidecar (host)"
echo " - PORT : ${PORT}"
echo " - DATA_DIR : ${DATA_DIR}"
echo " - PI_DIR : ${PI_DIR}"
echo " - MODEL ID : ${MODEL_ID}"
echo "================================================================="
cd "$ROOT/deploy/pi-agent"
exec node runner.mjs