#!/bin/sh # Neuron launcher: prefer the compiled binary from a local build, # fall back to running from source under Bun. SELF="$0" while [ -L "$SELF" ]; do LINK="$(readlink "$SELF")" case "$LINK" in /*) SELF="$LINK" ;; *) SELF="$(dirname "$SELF")/$LINK" ;; esac done DIR="$(cd "$(dirname "$SELF")" && pwd)" PKG="$DIR/.." ARCH=$(uname -m) case "$ARCH" in arm64) TARGET="opencode-darwin-arm64" ;; x86_64) TARGET="opencode-darwin-x64" ;; *) TARGET="" ;; esac if [ -n "$TARGET" ] && [ -x "$PKG/dist/$TARGET/bin/opencode" ]; then BIN="$PKG/dist/$TARGET/bin/opencode" # launch-integrity record: every run logs WHO ran and WHAT its fingerprint was LOG_DIR="${XDG_STATE_HOME:-$HOME/.local/state}" SUM=$(shasum -a 256 "$BIN" | cut -d" " -f1) mkdir -p "$LOG_DIR" echo "{\"t\":\"$(date -u +%FT%TZ)\",\"event\":\"launch\",\"bin\":\"$TARGET\",\"sha256\":\"$SUM\"}" >> "$LOG_DIR/neuron-guard.jsonl" exec "$BIN" "$@" fi exec bun run --conditions=browser "$PKG/src/index.ts" "$@"