From eec630887ce72a7dafae4c33f5e85ad7c746b038 Mon Sep 17 00:00:00 2001 From: blasty Date: Thu, 9 Jul 2026 11:14:23 +0200 Subject: persistent MCP client: warm handshake, keep-alive pool, error taxonomy, thread-safe - IDAClient: single handshake, ~7ms warm calls (vs ~60ms cold CLI) - keep-alive connection pool over http.client; concurrent-safe (40 threads OK) - grounded error taxonomy: IDAToolError on isError, soft per-item errors as data - session-expiry recovery (404 -> re-handshake -> retry), bounded transport retries - auto db-injection + resolve_db (ignores stale empty-id sessions) - live smoke test: 13/13 pass --- idatui/__init__.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 idatui/__init__.py (limited to 'idatui/__init__.py') diff --git a/idatui/__init__.py b/idatui/__init__.py new file mode 100644 index 0000000..450d64f --- /dev/null +++ b/idatui/__init__.py @@ -0,0 +1,25 @@ +"""idatui — a minimal keyboard-first TUI for IDA Pro over ida-pro-mcp (idalib).""" + +from .client import ( + IDAClient, + IDAError, + IDAConnectionError, + IDATimeoutError, + IDAProtocolError, + IDARPCError, + IDAToolError, + IDASessionError, + Session, +) + +__all__ = [ + "IDAClient", + "IDAError", + "IDAConnectionError", + "IDATimeoutError", + "IDAProtocolError", + "IDARPCError", + "IDAToolError", + "IDASessionError", + "Session", +] -- cgit v1.3.1-sl0p