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.
92 lines
2.5 KiB
Bash
Executable File
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
|