Add TKMind platform extensions, H5/MindSpace stack, and deployment tooling.
Deploy Documentation / deploy (push) Has been cancelled
Canary / Prepare Version (push) Has been cancelled
Canary / build-cli (push) Has been cancelled
Canary / Upload Install Script (push) Has been cancelled
Canary / bundle-desktop (push) Has been cancelled
Canary / bundle-desktop-intel (push) Has been cancelled
Canary / bundle-desktop-linux (push) Has been cancelled
Canary / bundle-desktop-windows (push) Has been cancelled
Canary / bundle-desktop-windows-cuda (push) Has been cancelled
Canary / Release (push) Has been cancelled
Unused Dependencies / machete (push) Has been cancelled
CI / changes (push) Has been cancelled
CI / Check Rust Code Format (push) Has been cancelled
CI / Build and Test Rust Project (push) Has been cancelled
CI / Build Rust Project on Windows (push) Has been cancelled
CI / Check MSRV (push) Has been cancelled
CI / Lint Rust Code (push) Has been cancelled
CI / Check Generated Schemas are Up-to-Date (push) Has been cancelled
CI / Test and Lint Electron Desktop App (push) Has been cancelled
CI / H5 Plaza Tests and Build (push) Has been cancelled
Live Provider Tests / check-fork (push) Has been cancelled
Live Provider Tests / changes (push) Has been cancelled
Live Provider Tests / Build Binary (push) Has been cancelled
Live Provider Tests / Smoke Tests (push) Has been cancelled
Live Provider Tests / Smoke Tests (Code Execution) (push) Has been cancelled
Live Provider Tests / Compaction Tests (push) Has been cancelled
Live Provider Tests / goose server HTTP integration tests (push) Has been cancelled
Publish Ask AI Bot Docker Image / docker (push) Has been cancelled
Publish Docker Image / docker (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled

Fork goose with custom MCP widgets, platform extensions (aider, git, web, search),
MindSpace H5 backend/frontend, Plaza/Ops UIs, and deploy scripts for tkmind.cn.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-06-14 21:30:20 +08:00
parent e5fd568e01
commit 4e21ca937a
359 changed files with 70658 additions and 56 deletions
+105
View File
@@ -0,0 +1,105 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
PORT="${GOOSED_PORT:-18006}"
LOG="${ROOT}/goosed.local.log"
PID_FILE="${ROOT}/.goosed.pid"
if [[ -f "${ROOT}/port.conf" ]]; then
# shellcheck disable=SC1091
source "${ROOT}/port.conf"
PORT="${GOOSED_PORT:-${PORT}}"
fi
if [[ -f "${ROOT}/.env.local" ]]; then
set -a
# shellcheck disable=SC1091
source "${ROOT}/.env.local"
set +a
fi
export GOOSE_PORT="${PORT}"
export GOOSE_HOST="${GOOSE_HOST:-127.0.0.1}"
export GOOSE_SERVER__SECRET_KEY="${GOOSE_SERVER__SECRET_KEY:-local-dev-secret}"
kill_port() {
if command -v lsof >/dev/null 2>&1; then
local pids
pids="$(lsof -ti TCP:"${PORT}" -s TCP:LISTEN 2>/dev/null || true)"
if [[ -n "${pids}" ]]; then
echo "==> 停止占用 :${PORT} 的进程: ${pids}"
kill ${pids} 2>/dev/null || true
sleep 1
kill -9 ${pids} 2>/dev/null || true
fi
fi
}
ensure_goosed() {
if [[ -x "${ROOT}/target/release/goosed" ]]; then
echo "${ROOT}/target/release/goosed"
return
fi
if [[ -x "${ROOT}/target/debug/goosed" ]]; then
echo "${ROOT}/target/debug/goosed"
return
fi
if ! command -v cargo >/dev/null 2>&1; then
echo "错误: 未找到 cargo。请先安装 Rust: https://rustup.rs/" >&2
exit 1
fi
echo "==> 编译 goosed(首次较慢)..." >&2
(cd "${ROOT}" && cargo build -p goose-server --bin goosed)
echo "${ROOT}/target/debug/goosed"
}
kill_port
if [[ -f "${PID_FILE}" ]]; then
old_pid="$(<"${PID_FILE}")"
if kill -0 "${old_pid}" 2>/dev/null; then
echo "==> 停止旧 goosed PID ${old_pid}"
kill "${old_pid}" 2>/dev/null || true
sleep 1
fi
rm -f "${PID_FILE}"
fi
GOOSED_BIN="$(ensure_goosed)"
echo "==> 启动 goosed @ https://${GOOSE_HOST}:${PORT}"
nohup env \
GOOSE_PORT="${PORT}" \
GOOSE_HOST="${GOOSE_HOST}" \
GOOSE_SERVER__SECRET_KEY="${GOOSE_SERVER__SECRET_KEY}" \
GOOSE_CODING_ROUTER="${GOOSE_CODING_ROUTER:-}" \
GOOSE_AIDER_BIN="${GOOSE_AIDER_BIN:-}" \
"${GOOSED_BIN}" agent >>"${LOG}" 2>&1 &
echo $! >"${PID_FILE}"
disown
started=false
for _ in 1 2 3 4 5 6 8 10 12 15; do
sleep 1
if ! kill -0 "$(<"${PID_FILE}")" 2>/dev/null; then
break
fi
if curl -sk --connect-timeout 2 --max-time 3 "https://${GOOSE_HOST}:${PORT}/status" 2>/dev/null | grep -q '^ok$'; then
started=true
break
fi
done
if [[ "${started}" == true ]]; then
echo "✅ goosed 已启动"
echo " API: https://${GOOSE_HOST}:${PORT}"
echo " 日志: ${LOG}"
echo ""
echo "启动桌面 UI(连接外部 goosed:"
echo " cd ui/desktop && GOOSE_EXTERNAL_BACKEND=true GOOSE_HOST=${GOOSE_HOST} GOOSE_PORT=${PORT} GOOSE_SERVER__SECRET_KEY=${GOOSE_SERVER__SECRET_KEY} pnpm run start-gui"
else
echo "❌ goosed 启动失败,查看日志: ${LOG}" >&2
tail -n 40 "${LOG}" >&2 || true
exit 1
fi