mirror of
https://github.com/earendil-works/pi.git
synced 2026-09-28 05:54:43 +08:00
Replace the tsgo native preview with typescript@7.0.2 and port the check scripts to the TS 7 API. Target ES2024, drop useDefineForClassFields: false and unused decorator options, and enable verbatimModuleSyntax. Replace tsx with node plus the source resolver hook, passed to --import as a file URL. closes #9965
49 lines
1.7 KiB
Bash
Executable File
49 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
MINI_SRC="$SCRIPT_DIR/packages/coding-agent/src/experimental/mini/main.ts"
|
|
MINI_DIST="$SCRIPT_DIR/packages/coding-agent/dist/experimental/mini/main.js"
|
|
|
|
# The session server is spawned detached and outlives the TUI, so it keeps running whatever code it
|
|
# started with. Restart it after changing anything under mini/, or the protocol will not match.
|
|
stop_server() {
|
|
pkill -f "mini/server/entry" 2>/dev/null || true
|
|
rm -f "${PI_AGENT_DIR:-$HOME/.pi/agent}/experimental/mini.sock"
|
|
}
|
|
|
|
USE_DIST=false
|
|
ARGS=()
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--dist) USE_DIST=true ;;
|
|
--fresh) stop_server ;;
|
|
--stop) stop_server; echo "Stopped the mini session server."; exit 0 ;;
|
|
--help)
|
|
cat <<'USAGE'
|
|
Usage: ./mini-test.sh [--dist] [--fresh] [--stop] [mini args...]
|
|
|
|
--dist run built output instead of sources
|
|
--fresh stop the detached session server first, so it picks up your changes
|
|
--stop stop the detached session server and exit
|
|
|
|
Mini args are passed through, for example:
|
|
./mini-test.sh --continue
|
|
USAGE
|
|
exit 0 ;;
|
|
*) ARGS+=("$arg") ;;
|
|
esac
|
|
done
|
|
|
|
if [[ "$USE_DIST" == "true" ]]; then
|
|
if [[ ! -f "$MINI_DIST" ]]; then
|
|
echo "No build found. Run: npm run build -w @earendil-works/pi-coding-agent" >&2
|
|
exit 1
|
|
fi
|
|
exec node "$MINI_DIST" ${ARGS[@]+"${ARGS[@]}"}
|
|
fi
|
|
|
|
# --import takes a module specifier, so pass the resolver as a file URL (raw paths break on #, ?, %).
|
|
RESOLVER_URL="$(node -p 'require("node:url").pathToFileURL(process.argv[1]).href' "$SCRIPT_DIR/packages/coding-agent/src/experimental/source-resolver.ts")"
|
|
exec node --import "$RESOLVER_URL" "$MINI_SRC" ${ARGS[@]+"${ARGS[@]}"}
|