Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions bin/ghost
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,18 @@ else
FB="fallback: ${FB_MODEL:-hermes-4-70b}"; FB_DOWN="no offline fallback (hosted-only)"
fi

# Egress is DIRECT by default. The rotating proxy is opt-in (GHOST_PROXY=1 at install, which
# writes the .proxy marker); only then is og-veil's egress actually IP-masked. Don't claim
# IP-masking just because a leftover proxy process answers a ping.
NET="direct"
# Privacy comes from og-veil: every request is HPKE/OHTTP-encrypted, so the relay only ever sees
# ciphertext (the "via TEE gateway (OHTTP)" below). The relay still sees your IP; the OPTIONAL
# rotating proxy (GHOST_PROXY=1, off by default) hides that too. Only surface an IP indicator
# when the proxy is actually enabled (.proxy marker) -- no VPN noise in the default direct setup.
NET=""
if [ -f "__GHOST_HOME__/privacy/.proxy" ]; then
EXIT_IP=$(/usr/bin/curl -s --max-time 6 -x "$PROXY" https://api.ipify.org 2>/dev/null)
NET="${EXIT_IP:+IP-masked via $EXIT_IP}"; NET="${NET:-proxy DOWN}"
NET=" · ${EXIT_IP:+IP-masked via $EXIT_IP}"; [ -n "$EXIT_IP" ] || NET=" · proxy DOWN"
fi

if [ "$HC" = "200" ] && [ "$VC" = "200" ]; then
STATUS="👻 ghost · $DEF_MODEL via TEE gateway (OHTTP/og-veil) · $NET · $LOGIN · $FB"
STATUS="👻 ghost · $DEF_MODEL via TEE gateway (OHTTP/og-veil)${NET} · $LOGIN · $FB"
elif [ "$HC" = "200" ]; then
STATUS="👻 ghost · ⚠️ og-veil DOWN (veil=$VC) -- hosted unreachable (try ghost-login), $FB_DOWN"
else
Expand Down
5 changes: 4 additions & 1 deletion install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,10 @@ s = re.sub(r"provider: ollama-local\n(\s*)model: \S+",
s = re.sub(r"model: ghost-tool:latest\n(\s*)provider: ollama-local",
r"model: nous/hermes-4-70b\n\1provider: opengradient", s)
s = s.replace("provider: ollama-local", "provider: opengradient")
open(p, "w").write(s); print(" hosted-only: auxiliary + fallback routed to hosted nous/hermes-4-70b (via og-veil)")
# Chat fallback -> the stronger 405B (aux tasks stay on 70B for speed/cost).
s = re.sub(r"(fallback_model:\n provider: opengradient\n model: )nous/hermes-4-70b",
r"\g<1>nous/hermes-4-405b", s, count=1)
open(p, "w").write(s); print(" hosted-only: fallback -> nous/hermes-4-405b, auxiliary -> nous/hermes-4-70b (via og-veil)")
PYEOF
fi

Expand Down
Loading