Invoke a Hopper tool against the active target. +Calls may overlap, but a pending target transition prevents new calls from +entering until the transition has settled.
+Optionaloptions: { signal?: AbortSignal }Close the active target, if any.
+Open or switch targets after draining calls against the current target. +Returns the switch failure even if best-effort restoration also fails.
+Describe the active binary session.
+Composes official Hopper operations into bounded reverse-engineering tools. +Inputs are parsed again at this application boundary even though MCP normally +validates them, allowing direct callers to use the same service safely.
+Parse inputs again at the direct-call boundary, then dispatch exhaustively.
+Optionalsignal: AbortSignalA supplied target path could not be safely opened as a supported binary.
+Optionaloptions: ErrorOptionsRuntime configuration could not be parsed safely.
+Optionalmessage: stringOptionalmessage: stringOptionaloptions: ErrorOptionsThe caller cancelled a Hopper operation before it completed.
+AbstractBase class for expected Hopper integration failures.
+Optionalmessage: stringOptionalmessage: stringOptionaloptions: ErrorOptionsThe owned Hopper bridge stopped before its client was closed.
+Hopper returned bytes or JSON that do not satisfy the NDJSON RPC contract.
+Optionalmessage: stringOptionalmessage: stringOptionaloptions: ErrorOptionsHopper's JSON-RPC endpoint returned an expected remote error response.
+Hopper or the repository bridge could not be started.
+Optionaloptions: ErrorOptionsHopper did not respond within the configured operation deadline.
+Hopper did not make the repository bridge available after launch.
+No binary session exists for an analysis request.
+Launches Hopper through its documented CLI and injects only REA's owned bridge.
+Hopper's hopper helper internally issues an AppleScript activate command.
+Consequently, opening a target may bring Hopper to the foreground even though
+REA first asks macOS to start the application hidden and in the background.
+REA cannot reliably suppress that activation without replacing Hopper's
+supported launcher; callers must treat possible foreground UI as an upstream
+Hopper constraint, not as evidence that analysis failed.
The returned process is the short-lived launcher helper, not the Hopper app, +so REA does not claim ownership of the application's lifetime.
+Owns one authenticated NDJSON-over-Unix-socket bridge session.
+Each instance creates a private directory and random bearer token, correlates +concurrent requests by numeric id, and removes its artifacts on close. It +only terminates launch processes explicitly marked as owned; the normal +Hopper launcher does not confer ownership of the GUI application.
+Invoke one declared operation, returning timeout and cancellation as values.
+Stop the bridge, settle outstanding requests, and remove session artifacts.
+Launch the bridge once and complete its authenticated health handshake.
+Optionalsignal: AbortSignalOpen one binary, execute one tool, and always release the bridge session. +Unlike MCP mode, every CLI invocation is intentionally isolated and does not +retain a target or bridge resources for a subsequent command.
+Check requirements and an optional target without mutating the host. +Every failed check includes remediation suitable for either the one-shot CLI +or an agent consuming the structured result.
+Optionaltarget: stringCreate diagnostics backed by the current process and host commands.
+Back up, atomically update, and semantically read back one JSON MCP configuration.
+OptionalhopperPath: stringInstall prerequisites and configure detected clients idempotently.
+With yes false, mutations requiring consent are reported as needs_human;
+with yes true, external installers still fail closed if they require UI.
Return the first defined result from standard Homebrew executables.
+A probe returning undefined means that location was unavailable or failed;
+other falsy values are successful results and stop discovery.
Compose the target-switching runtime shared directly by CLI and MCP adapters. +This is the sole production wiring point for Hopper so neither adapter shells +out to the other and both retain identical loader and bridge semantics.
+Parse Hopper launcher configuration once at the composition root. +Explicit loader arguments override REA's header-derived defaults for a +supported target, allowing callers to refine Hopper's loader behavior without +bypassing REA's path and executable-header checks.
+Resolve and classify a readable local target before Hopper is launched. +FAT Mach-O inputs select only a host-compatible architecture so setup remains +non-interactive; unsupported or ambiguous inputs are returned as typed errors.
+OptionaltargetKind: "executable" | "database"Parse supported executable headers without I/O and derive explicit Hopper +loader arguments. The caller must supply the host architecture used for FAT +Mach-O slice selection.
+Parse direct or wrapped Hopper document names.
+Parse a direct or wrapped list when only its cardinality is required.
+Parse Hopper's direct or wrapped list of address/name records.
+Parse Hopper's direct or wrapped procedure map into stable entries.
+Parse callee/caller strings from direct or wrapped Hopper results.
+Parse direct or wrapped Hopper segment records.
+Categorize deduplicated Swift mangled symbols.
+Select and deduplicate Objective-C class labels.
+Select and deduplicate Objective-C and Swift protocol labels.
+Select Swift class symbols using the legacy _TtC convention.
Parse one complete Hopper NDJSON response line.
+Project a parsed response into its result or expected remote failure.
+Start the long-lived MCP adapter and install idempotent shutdown handlers. +The adapter owns its BinarySession for the process lifetime; EOF and process +signals close bridge resources without assuming ownership of the Hopper app.
+Construct one MCP server without acquiring subprocess resources. +Supplying a session adds target lifecycle tools; omitting it retains the +fixed-target seam used by focused tests and embedders.
+Optionalsession: BinarySessionRegister composed workflows against the same port as direct bridge tools.
+Register direct bridge proxies, preserving MCP cancellation and typed errors.
+Register MCP-only target lifecycle operations on a long-lived session.
+Translate an application result into MCP text content. +Error tags and safe messages remain visible while underlying causes, process +output, and other potentially sensitive details stay private.
+A closeable Hopper port created for exactly one parsed target.
+Invoke a declared bridge operation with JSON-safe arguments. +Implementations return expected Hopper, timeout, and cancellation failures +as values and must honor an already-aborted signal.
+Optionaloptions: { signal?: AbortSignal }Read-only host capabilities required by diagnostics.
+Optional ReadonlyconfiguredReadonlynodeReadonlyplatformApplication-owned capability for invoking one official Hopper tool.
+Invoke a declared bridge operation with JSON-safe arguments. +Implementations return expected Hopper, timeout, and cancellation failures +as values and must honor an already-aborted signal.
+Optionaloptions: { signal?: AbortSignal }A detected agent configuration owned by setup.
+Effects required by the idempotent setup workflow. +Implementations report interrupted installers as values: setup must not wait +indefinitely for stdin or a GUI response in an unattended agent invocation.
+Structured setup outcome intended to travel back through an agent to a human.
+needs_human carries remediation text instead of initiating an interactive
+prompt, avoiding deadlocks in stdio and other unattended environments.
Single source of truth for a public tool's name, description, and input.
+A canonical local target plus deterministic Hopper loader arguments. +Explicit loader and architecture flags prevent Hopper from presenting modal +format or FAT-architecture selection dialogs during agent-driven analysis.
+Application-owned capability that starts the in-Hopper bridge.
+Optionaloptions: { signal?: AbortSignal }Dependencies, deadlines, and redacted diagnostics for one bridge client.
+Production seam for creating one unstarted client for a parsed target.
+Result of one backup/write/readback transaction.
+Adapter family responsible for implementing a public MCP tool.
+CPU families understood by the supported executable loaders.
+Safe launcher telemetry; stderr content is intentionally never exposed.
+ConstStandard executable names and locations used to discover Homebrew.
+ConstInput schemas shared by MCP registration and enhanced application dispatch.
+Readonlyanalyze_swift_types: ZodObject<{}, $strip>Readonlybatch_decompile: ZodObject<{ addresses: ZodDefault<ZodArray<ZodString>> }, $strip>Readonlybinary_overview: ZodObject<{}, $strip>Readonlyfind_xrefs_to_name: ZodObject<{ name: ZodString }, $strip>Readonlyget_call_graph: ZodObject<Readonlyget_objc_classes: ZodObject<{ pattern: ZodDefault<ZodString> }, $strip>Readonlyget_objc_protocols: ZodObject<{}, $strip>Readonlyswift_classes: ZodObject<{ pattern: ZodDefault<ZodString> }, $strip>ConstRuntime parser for dispatching only the eight closed enhanced names.
+ConstBounded workflows composed from one or more bridge operations.
+ConstBridge operations exposed without additional application composition.
+ConstTarget lifecycle tools available only on the long-lived MCP adapter.
+ConstComplete ordered public inventory used by registration and verification. +Keep this collection at 42 tools unless a deliberate contract change updates +snapshots, package verification, and real-Hopper verification together.
+Const
Owns the single active target shared by CLI and MCP adapters.
+Target transitions are serialized because each client dispatches Hopper API +work on its dedicated Python thread, and switching targets tears that bridge +down. A failed switch recreates the previous target instead of retaining a +client whose bridge was already shut down.
+