Files
tkmind_go/deploy/coding_router.sh
T
john 3c73d470f5 feat(tkmind): port v1.49 compat layer, PG sessions, and platform extensions
Add tkmind_compat REST routes (including config/read), PostgreSQL session
storage, and TKMind platform extensions so upstream Goose 1.49 can serve Portal
locally without changing H5 contracts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 21:10:36 +08:00

73 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ENGINE="${1:-}"
PROJECT_DIR="${2:-}"
TASK="${3:-}"
DRY_RUN="${4:-}"
AIDER_HOME="${AIDER_HOME:-/Users/john/Project/aider}"
AIDER_BIN="${AIDER_BIN:-${GOOSE_AIDER_BIN:-${AIDER_HOME}/aider.sh}}"
if [[ -f "${AIDER_HOME}/.env" ]]; then
set -a
# shellcheck disable=SC1091
source "${AIDER_HOME}/.env"
set +a
fi
if [[ -z "$ENGINE" || -z "$PROJECT_DIR" || -z "$TASK" ]]; then
echo "Usage: coding_router.sh <aider|goose|auto> <project_dir> <task> [--dry-run]"
exit 1
fi
if [[ ! -d "$PROJECT_DIR" ]]; then
echo "Project dir not found: $PROJECT_DIR"
exit 1
fi
choose_engine() {
case "$ENGINE" in
aider) echo "aider" ;;
goose) echo "goose" ;;
auto)
if echo "$TASK" | grep -qE '修复|bug|Bug|BUG|重构|跨文件|实现|新增|改造|兼容|报错|测试失败|commit|提交|代码修改|开发|feature|refactor|fix'; then
echo "aider"
else
echo "goose"
fi
;;
*)
echo "Unknown engine: $ENGINE"
exit 1
;;
esac
}
SELECTED_ENGINE="$(choose_engine)"
echo "Selected engine: $SELECTED_ENGINE"
if [[ "$DRY_RUN" == "--dry-run" ]]; then
exit 0
fi
cd "$PROJECT_DIR"
echo "===== git status before ====="
git status --short || true
case "$SELECTED_ENGINE" in
aider)
if [[ ! -x "$AIDER_BIN" ]]; then
echo "Aider not executable: $AIDER_BIN"
exit 1
fi
"$AIDER_BIN" --yes-always --message "$TASK"
echo "===== git status after ====="
git status --short || true
;;
goose)
echo "Goose developer tools handle this task in-session: $TASK"
exit 2
;;
esac