v2.1.0 — Pi MCP bridge, sync tool registration, provider exports
Changes
Pi adapter: complete rewrite — MCP bridge with sync tool registration
The root cause of the Pi LTM tools not appearing was a two-part problem:
- Wrong install target: The published 2.0.2 was missing the
"pi": { "extensions": [...] }key inpackage.json— Pi couldn't discover the extension entry point. - Race condition: Tools were registered asynchronously (after MCP handshake), but Pi collects its tool list synchronously right after calling the extension factory. Tools registered asynchronously were invisible to Pi.
Fix: Pre-register all tools synchronously at extension load time with their known schemas. The execute() function awaits the MCP bridge being ready. Pi sees 7 LTM tools immediately.
Also switches from direct @rohirik/ltm-core imports (requires bun:sqlite, unavailable in Pi's Node.js runtime) to an MCP stdio bridge: spawns the ltm-core MCP server as a Bun child process and proxies tool calls via newline-delimited JSON-RPC.
Other fixes
ltm-core: export provider factories and setting constants from package rootgraph-server: import shared-db helpers from@rohirik/ltm-corebunfig.toml: set test timeout to 30s (prevents intermittent failures under load)- Fixed Aegis LOW: added allowlist validation for
piCmdinpi.ts