Start HTTP Registry Server
Start the http-registry server in the background.
Instructions:
First, find the monorepo root (working directory may have drifted):
git rev-parse --show-toplevelRun the command with
run_in_background: true, prefixing withcdto the monorepo root ANDCI=falseinline (see next paragraph for why):cd <MONOREPO_ROOT> && CI=false pnpm -C typescript/infra start:http-registry--writeMode(optional): append--writeModewhen the calling skill will write artifacts back through the server —warp deploy,warp apply, andwarp alt createpersist the resulting config/addresses via the write routes. Omit it for read-only flows (warp read,warp check). Serving private/pinned RPCs (the reason to use the HTTP registry at all) is independent of--writeMode; the flag only enables the write routes.Why
CI=false: the infra HTTP registry wrapsgetRegistryForEnvironment(typescript/infra/config/registry.ts:192), which merges filesystem chain metadata with per-chain RPC overrides. The override source is CI-gated:CI !== 'true'→ GCP Secret Manager (private / keyed URLs like Alchemy, Dwellir, Ankr, TronGrid);CI === 'true'→MAINNET3_<CHAIN>_RPC_URLSenv vars (the GitHub-Actions injection path). On Haggis workers and any environment where those env vars aren't set,CI=truesilently falls back to the public on-disk registry URLs — which are rate-limited (e.g. Tron's public trongrid.io = 3 rps unauthenticated → 429 during broadcasts). Prefix inline so the setting is scoped to this single invocation; do NOTexport CI=falseglobally — other flows in the same session may legitimately needCI=true.Wait for the log line
Server runningin the background task's output before any downstream consumer hits the server. This is the canonical readiness signal.Verify the server is reachable using the
/readinessendpoint, NOT the root path — the root returns404by design and is not a liveness signal:curl -sf http://localhost:<port>/readiness && echo "ok"The server only routes specific paths:
/readiness,/metadata,/addresses,/chains,/chain/<name>,/warp-route/deploy/<id>,/warp-route/deploy?<filter>, etc. Hittinghttp://localhost:<port>/returns404even when the server is healthy. Do NOT interpret a root-404 as "server is dead" and fall back to passing the local FS registry path to downstream--registryflags — falling back bypasses the centralized RPC config the HTTP registry provides and can cost real mainnet gas on retries against flaky public RPCs.Report the task/shell ID + the port (typically
3333, read from the logs) to the user.Remind the user they can stop it later with
KillShellusing that ID, or via/stop-http-registry.
Example output:
Started http-registry server in background (shell ID:
shell_abc123) onhttp://localhost:3333. Readiness verified. To stop it later, I can use KillShell or you can run/stop-http-registry.