fix(copy): use agent terminology

This commit is contained in:
morluto 2026-07-13 19:17:15 +00:00
parent 77454dc8f4
commit 12060f6d8d
12 changed files with 36 additions and 37 deletions

View File

@ -4,7 +4,7 @@
# REA: Reverse Engineer Anything
### One CLI and MCP server for coding agents to reverse engineer anything
### One CLI and MCP server for agents to reverse engineer anything
**See a feature you like. Understand how it works, down to the binary level.**
@ -24,7 +24,7 @@
---
See a feature in an app that you want in your own product? Give the app to your coding agent—even without its source code. With REA, the agent can investigate the feature, explain how it works, show its evidence, and build a version adapted to your stack and requirements.
See a feature in an app that you want in your own product? Give the app to your agent—even without its source code. With REA, the agent can investigate the feature, explain how it works, show its evidence, and build a version adapted to your stack and requirements.
REA gives agents one consistent way to investigate software. Today that includes deep native analysis through Hopper, complete function dossiers, reproducible Evidence v2 records, and controlled process capture. The longer-term toolkit extends the same agent workflow to packaged apps, JavaScript bundles, websites, APIs, protocols, mobile artifacts, firmware, runtime behavior, and differences between versions.
@ -73,7 +73,7 @@ REA shows how it reached its conclusions. It does not claim to recover original
| | |
| ------------------------ | ------------------------------------------------------------------------------------ |
| **Built for agents** | Ask what an app does and let your agent inspect it instead of guessing. |
| **CLI and MCP** | Run the same reverse-engineering capabilities from your terminal or coding agent. |
| **CLI and MCP** | Run the same reverse-engineering capabilities from your terminal or agent. |
| **Complexity handled** | REA installs and manages the reverse-engineering tools behind the scenes. |
| **From insight to code** | Understand a feature, then build your own version in the same coding session. |
| **Local by design** | Analysis runs on your Mac. REA does not upload the app to a hosted analysis service. |
@ -88,7 +88,7 @@ npm install --global rea-agents
rea setup
```
Installing the CLI does not update Homebrew, Node.js, npm, Hopper, or coding-agent configuration. `rea setup` detects what is already present, prints every proposed change, and asks before applying it.
Installing the CLI does not update Homebrew, Node.js, npm, Hopper, or agent configuration. `rea setup` detects what is already present, prints every proposed change, and asks before applying it.
REA detects Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, and Devin. Registrations are additive, backup-first, and read back after writing. You can safely rerun setup.
@ -100,7 +100,7 @@ curl -fsSL https://raw.githubusercontent.com/morluto/rea/main/install.sh | bash
Pass installer options after `bash -s --`, for example `--dry-run`, `--no-setup`, or `--version 1.0.0`. The curl wrapper never installs prerequisites or configures integrations itself. See [Installation and setup](docs/installation.md) for its exact mutation boundary.
### With a coding agent — recommended
### With an agent — recommended
```bash
npx skills add morluto/rea
@ -118,7 +118,7 @@ npx -y rea-agents doctor
npx -y rea-agents analyze /Applications/Notes.app
```
Review the setup plan before confirming it. Restart a configured coding agent so it loads REA.
Review the setup plan before confirming it. Restart a configured agent so it loads REA.
### From Terminal — install the `rea` command
@ -191,7 +191,7 @@ rea uninstall --purge-data # also removes only ~/.rea/cache and ~/.rea/state
Uninstall preserves Hopper, Node.js, evidence, captures, external evidence roots, unrelated skills, and other MCP servers. It refuses malformed client configuration and never follows purge-data symlinks.
### CLI or coding agent?
### CLI or agent?
| If you want to… | Use |
| --------------------------------------------------------- | -------------------------------------------------------------- |
@ -303,9 +303,9 @@ Roadmap items describe direction, not shipped support. New providers must produc
See the [static-analysis provider evaluation](docs/provider-evaluation.md) for the current research matrix and admission gate.
## Using REA with other coding agents
## Using REA with other agents
Setup currently configures Claude Desktop and Cursor automatically. Any coding agent that supports local MCP servers can use REA with the configuration below.
Setup currently configures Claude Desktop and Cursor automatically. Any agent that supports local MCP servers can use REA with the configuration below.
### Manual MCP configuration
@ -324,7 +324,7 @@ Setup currently configures Claude Desktop and Cursor automatically. Any coding a
```mermaid
flowchart LR
Agent["Coding agent"] --> REA["REA<br/>CLI + MCP"]
Agent["Agent"] --> REA["REA<br/>CLI + MCP"]
Terminal --> REA
REA --> Workspace["Investigation workspace<br/>evidence + artifacts + captures"]
Workspace --> Router["Capability router"]
@ -442,7 +442,7 @@ No. Setup can install Hopper for you, but Hopper remains separate software with
<details>
<summary><strong>Does REA upload the app?</strong></summary>
REA has no hosted analysis service. Current providers analyze artifacts and capture behavior locally. Your coding agent or model provider may have its own data policy, so review that separately.
REA has no hosted analysis service. Current providers analyze artifacts and capture behavior locally. Your agent or model provider may have its own data policy, so review that separately.
</details>
@ -456,7 +456,7 @@ No decompiler can guarantee the original source. REA gives an agent pseudocode,
<details>
<summary><strong>Which agents can use REA?</strong></summary>
Any coding agent that can run a local MCP server can use the manual configuration. Setup currently detects and configures Claude Desktop and Cursor automatically.
Any agent that can run a local MCP server can use the manual configuration. Setup currently detects and configures Claude Desktop and Cursor automatically.
</details>

View File

@ -16,7 +16,7 @@
<li class="">
<div class="tsd-signature tsd-anchor-link" id="detectclients"><span class="tsd-kind-call-signature">detectClients</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">home</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_Setup.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span><a href="#detectclients" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div>
<div class="tsd-description">
<div class="tsd-comment tsd-typography"><p>Detect supported coding agents from stable per-user installation markers.</p>
<div class="tsd-comment tsd-typography"><p>Detect supported agents from stable per-user installation markers.</p>
</div>
<div class="tsd-parameters">
<h4 class="tsd-parameters-title">Parameters</h4>

View File

@ -1,6 +1,6 @@
# Installation and setup
REA separates installing its CLI from configuring external software and coding agents.
REA separates installing its CLI from configuring external software and agents.
## Install the CLI
@ -35,7 +35,7 @@ Supported options are `--version <semver>`, `--dry-run`, `--no-setup`, `--no-pro
`rea setup` discovers the current state, prints one plan, and asks `Continue? [Y/n]`. The plan identifies:
- an existing Hopper installation or the official package it proposes to install;
- each detected coding-agent configuration path;
- each detected agent configuration path;
- the REA skill destination;
- external software and package-manager effects.

View File

@ -1,6 +1,6 @@
# Installation roadmap
REA setup currently configures the capabilities that exist today: its coding-agent integrations, bundled skill, and optional Hopper provider.
REA setup currently configures the capabilities that exist today: its agent integrations, bundled skill, and optional Hopper provider.
When REA has at least two real optional toolchains, setup can evolve into a capability-oriented wizard. It may ask whether the operator wants to investigate native binaries, websites, mobile applications, firmware, or runtime protocols, then propose only the tools needed for the selected work.

View File

@ -39,9 +39,9 @@ harm_rank,location,trigger,current_copy,user_risk,proposed_replacement,implement
29,src/application/ReferenceSourceImport.ts:io,Reader fails during bounded traversal,Raw reader error message,May expose filesystem details and inconsistent recovery,"Reference source files could not be read. Check directory permissions and try again.",implemented,focused assertions passed
30,src/application/ReferenceSourceImport.ts:parse,Historical graph validation fails,Raw thrown graph validation message,Can expose internal graph invariants,"Reference source could not be indexed. Check that the source tree is readable, then try again.",implemented,focused assertions passed
31,src/application/ReferenceSourceImportTypes.ts:limit,Import reports terminal limit failure,No reachable constructor found,Declared state may be unreachable; false verification risk,Remove unreachable top-level limit variant; per-entry limit guidance remains caller-visible.,removed,"verified by typecheck, exhaustive projection test, and source search"
32,src/application/Setup.ts:configureDetectedClients(backup),Coding-agent configuration backup fails,"{clientName} configuration backup verification failed; no successful configuration was reported.",Exposes machine client key and obscures no-write guarantee,"Coding-agent configuration could not be backed up, so no change was made. Check file permissions, then rerun setup.",implemented,focused assertions passed
33,src/application/Setup.ts:configureDetectedClients(write),Coding-agent configuration write fails,"{clientName} configuration write verification failed; no successful configuration was reported.",Exposes machine client key and gives no recovery,"Coding-agent configuration could not be updated. Check file permissions, then rerun setup.",implemented,focused assertions passed
34,src/application/Setup.ts:configureDetectedClients(readback),Written coding-agent configuration cannot be verified,"{clientName} configuration readback verification failed; no successful configuration was reported.",Exposes machine client key and omits backup recovery,"Coding-agent configuration could not be verified after writing. Repair the configuration file or restore its `.rea.backup`, then rerun setup.",implemented,focused assertions passed
32,src/application/Setup.ts:configureDetectedClients(backup),Agent configuration backup fails,"{clientName} configuration backup verification failed; no successful configuration was reported.",Exposes machine client key and obscures no-write guarantee,"Agent configuration could not be backed up, so no change was made. Check file permissions, then rerun setup.",implemented,focused assertions passed
33,src/application/Setup.ts:configureDetectedClients(write),Agent configuration write fails,"{clientName} configuration write verification failed; no successful configuration was reported.",Exposes machine client key and gives no recovery,"Agent configuration could not be updated. Check file permissions, then rerun setup.",implemented,focused assertions passed
34,src/application/Setup.ts:configureDetectedClients(readback),Written agent configuration cannot be verified,"{clientName} configuration readback verification failed; no successful configuration was reported.",Exposes machine client key and omits backup recovery,"Agent configuration could not be verified after writing. Repair the configuration file or restore its `.rea.backup`, then rerun setup.",implemented,focused assertions passed
35,src/application/Setup.ts:installSkill,Skill install or semantic readback fails,Agent skill installation or readback failed.,No useful recovery action,"REA analysis skill could not be installed or verified. Check permissions for `~/.agents/skills`, then rerun setup.",implemented,focused assertions passed
36,src/main.ts:serveStdio.onerror,Established MCP client connection reports an error,MCP stdio transport error,Exposes transport implementation and gives no recovery,REA lost its MCP client connection. Restart REA from your MCP client.,implemented,verified by injected transport onerror runtime test
37,src/main.ts:serveStdio throw,MCP connection cannot be created,Failed to start MCP stdio transport,Exposes transport implementation and gives no recovery,REA could not start its MCP connection. Restart REA from your MCP client; run `rea doctor` if it fails again.,implemented,verified by injected transport startup-throw runtime test
@ -49,8 +49,8 @@ harm_rank,location,trigger,current_copy,user_risk,proposed_replacement,implement
39,src/main.ts:entrypoint catch,Unhandled rejection escapes run(),Unexpected server startup failure,Vague and lacks diagnostic recovery,"REA could not start. Run `rea doctor`, then restart REA from your MCP client.",implemented,verified by injected entrypoint rejection test
40,src/application/Upgrade.ts:unknown-install-method,Running package is not owned by detectable global npm installation,Update manually with: npm install --global rea-agents@latest,Already gives exact safe recovery,Keep current copy,unchanged,existing focused assertion passed
41,src/application/Upgrade.ts:install,npm global install subprocess exits unsuccessfully,npm install --global rea-agents@latest failed.,Does not identify bounded likely checks before retry,"REA could not update through npm. Check npm registry access and global install permissions, then run: npm install --global rea-agents@latest",implemented,focused assertion passed
42,src/application/Uninstall.ts:removeClient read,Existing coding-agent configuration cannot be read,Configuration could not be read.,No recovery step,"Configuration could not be read. Check file permissions, then rerun uninstall.",implemented,verified by injected filesystem read failure test
43,src/application/Uninstall.ts:removeClient parse,Coding-agent configuration is malformed,Malformed configuration was preserved without mutation.,Does not name required repair format or retry,"Configuration is not valid JSON/TOML and was not changed. Repair it, then rerun uninstall.",implemented,focused JSON assertion passed; TOML path uses same branch
42,src/application/Uninstall.ts:removeClient read,Existing agent configuration cannot be read,Configuration could not be read.,No recovery step,"Configuration could not be read. Check file permissions, then rerun uninstall.",implemented,verified by injected filesystem read failure test
43,src/application/Uninstall.ts:removeClient parse,Agent configuration is malformed,Malformed configuration was preserved without mutation.,Does not name required repair format or retry,"Configuration is not valid JSON/TOML and was not changed. Repair it, then rerun uninstall.",implemented,focused JSON assertion passed; TOML path uses same branch
44,src/application/Uninstall.ts:removeClient backup,Configuration backup copy fails,Configuration backup failed; no mutation was attempted.,No recovery step,"Configuration could not be backed up, so no change was made. Check file permissions, then rerun uninstall.",implemented,verified by injected filesystem backup failure test
45,src/application/Uninstall.ts:removeClient update,Write or semantic readback fails,Configuration update failed; the original was restored and {backupPath} was retained.,Exposes local path and lacks clear next sequence,"Report whether the original was restored; if restoration also fails, direct the user to the retained backup.",implemented,verified by injected update and restoration failure tests
45.5,src/application/Uninstall.ts:removeClient restore,Configuration update fails and restoring the original also fails,"Configuration could not be updated or restored. Restore its `.rea.backup` manually, then rerun uninstall.","High risk; persistent configuration may be damaged, but retained backup is authoritative",Keep new recovery copy,implemented,verified by injected restoration failure test

1 harm_rank location trigger current_copy user_risk proposed_replacement implementation_status verification_result
39 29 src/application/ReferenceSourceImport.ts:io Reader fails during bounded traversal Raw reader error message May expose filesystem details and inconsistent recovery Reference source files could not be read. Check directory permissions and try again. implemented focused assertions passed
40 30 src/application/ReferenceSourceImport.ts:parse Historical graph validation fails Raw thrown graph validation message Can expose internal graph invariants Reference source could not be indexed. Check that the source tree is readable, then try again. implemented focused assertions passed
41 31 src/application/ReferenceSourceImportTypes.ts:limit Import reports terminal limit failure No reachable constructor found Declared state may be unreachable; false verification risk Remove unreachable top-level limit variant; per-entry limit guidance remains caller-visible. removed verified by typecheck, exhaustive projection test, and source search
42 32 src/application/Setup.ts:configureDetectedClients(backup) Coding-agent configuration backup fails Agent configuration backup fails {clientName} configuration backup verification failed; no successful configuration was reported. Exposes machine client key and obscures no-write guarantee Coding-agent configuration could not be backed up, so no change was made. Check file permissions, then rerun setup. Agent configuration could not be backed up, so no change was made. Check file permissions, then rerun setup. implemented focused assertions passed
43 33 src/application/Setup.ts:configureDetectedClients(write) Coding-agent configuration write fails Agent configuration write fails {clientName} configuration write verification failed; no successful configuration was reported. Exposes machine client key and gives no recovery Coding-agent configuration could not be updated. Check file permissions, then rerun setup. Agent configuration could not be updated. Check file permissions, then rerun setup. implemented focused assertions passed
44 34 src/application/Setup.ts:configureDetectedClients(readback) Written coding-agent configuration cannot be verified Written agent configuration cannot be verified {clientName} configuration readback verification failed; no successful configuration was reported. Exposes machine client key and omits backup recovery Coding-agent configuration could not be verified after writing. Repair the configuration file or restore its `.rea.backup`, then rerun setup. Agent configuration could not be verified after writing. Repair the configuration file or restore its `.rea.backup`, then rerun setup. implemented focused assertions passed
45 35 src/application/Setup.ts:installSkill Skill install or semantic readback fails Agent skill installation or readback failed. No useful recovery action REA analysis skill could not be installed or verified. Check permissions for `~/.agents/skills`, then rerun setup. implemented focused assertions passed
46 36 src/main.ts:serveStdio.onerror Established MCP client connection reports an error MCP stdio transport error Exposes transport implementation and gives no recovery REA lost its MCP client connection. Restart REA from your MCP client. implemented verified by injected transport onerror runtime test
47 37 src/main.ts:serveStdio throw MCP connection cannot be created Failed to start MCP stdio transport Exposes transport implementation and gives no recovery REA could not start its MCP connection. Restart REA from your MCP client; run `rea doctor` if it fails again. implemented verified by injected transport startup-throw runtime test
49 39 src/main.ts:entrypoint catch Unhandled rejection escapes run() Unexpected server startup failure Vague and lacks diagnostic recovery REA could not start. Run `rea doctor`, then restart REA from your MCP client. implemented verified by injected entrypoint rejection test
50 40 src/application/Upgrade.ts:unknown-install-method Running package is not owned by detectable global npm installation Update manually with: npm install --global rea-agents@latest Already gives exact safe recovery Keep current copy unchanged existing focused assertion passed
51 41 src/application/Upgrade.ts:install npm global install subprocess exits unsuccessfully npm install --global rea-agents@latest failed. Does not identify bounded likely checks before retry REA could not update through npm. Check npm registry access and global install permissions, then run: npm install --global rea-agents@latest implemented focused assertion passed
52 42 src/application/Uninstall.ts:removeClient read Existing coding-agent configuration cannot be read Existing agent configuration cannot be read Configuration could not be read. No recovery step Configuration could not be read. Check file permissions, then rerun uninstall. implemented verified by injected filesystem read failure test
53 43 src/application/Uninstall.ts:removeClient parse Coding-agent configuration is malformed Agent configuration is malformed Malformed configuration was preserved without mutation. Does not name required repair format or retry Configuration is not valid JSON/TOML and was not changed. Repair it, then rerun uninstall. implemented focused JSON assertion passed; TOML path uses same branch
54 44 src/application/Uninstall.ts:removeClient backup Configuration backup copy fails Configuration backup failed; no mutation was attempted. No recovery step Configuration could not be backed up, so no change was made. Check file permissions, then rerun uninstall. implemented verified by injected filesystem backup failure test
55 45 src/application/Uninstall.ts:removeClient update Write or semantic readback fails Configuration update failed; the original was restored and {backupPath} was retained. Exposes local path and lacks clear next sequence Report whether the original was restored; if restoration also fails, direct the user to the retained backup. implemented verified by injected update and restoration failure tests
56 45.5 src/application/Uninstall.ts:removeClient restore Configuration update fails and restoring the original also fails Configuration could not be updated or restored. Restore its `.rea.backup` manually, then rerun uninstall. High risk; persistent configuration may be damaged, but retained backup is authoritative Keep new recovery copy implemented verified by injected restoration failure test

View File

@ -17,7 +17,7 @@ usage() {
cat <<'EOF'
Usage: install.sh [--version VERSION] [--dry-run] [--no-setup] [--no-prompt] [--verbose]
Installs only the REA CLI. Run `rea setup` separately to configure Hopper and coding agents.
Installs only the REA CLI. Run `rea setup` separately to configure Hopper and agents.
EOF
}
@ -109,5 +109,5 @@ if [[ "$start_setup" == true && -r /dev/tty && -w /dev/tty && -t 1 ]]; then
printf 'Starting REA setup...\n'
"$install_bin" setup </dev/tty >/dev/tty
else
printf 'Run %s setup to configure Hopper and coding agents.\n' "$install_bin"
printf 'Run %s setup to configure Hopper and agents.\n' "$install_bin"
fi

View File

@ -1,7 +1,7 @@
{
"name": "rea-agents",
"version": "1.2.0",
"description": "Reverse engineer anything from your terminal or coding agent with one CLI and MCP server.",
"description": "Reverse engineer anything from your terminal or agent with one CLI and MCP server.",
"license": "MIT",
"repository": {
"type": "git",
@ -14,7 +14,7 @@
"keywords": [
"reverse-engineering",
"binary-analysis",
"coding-agents",
"agents",
"agent-skills",
"cli",
"mcp-server",

View File

@ -24,7 +24,7 @@ Notes is only a documentation example. Never select an app unless the user names
2. If setup is needed, tell the user REA needs to install its local binary-analysis tools. Do not lead with implementation details or assume the user knows reverse-engineering products.
3. Before installing external software, obtain approval and identify what will be installed. If deeper analysis needs Hopper, describe it as REA's local analysis engine and note that it is a separate Mac app with its own license. Then run `npx -y rea-agents setup --yes`.
4. If macOS or an installer requests human input, tell the user exactly what needs attention. After they finish, rerun setup and doctor.
5. If setup registers a new MCP server, tell the user to restart their coding agent to load all REA tools. Direct CLI commands remain available before restart.
5. If setup registers a new MCP server, tell the user to restart their agent to load all REA tools. Direct CLI commands remain available before restart.
## Locate the app

View File

@ -283,7 +283,7 @@ const systemSetupHost = (): SetupHost => {
};
};
/** Detect supported coding agents from stable per-user installation markers. */
/** Detect supported agents from stable per-user installation markers. */
export const detectClients = async (
home: string,
): Promise<readonly SetupClient[]> => {

View File

@ -8,13 +8,13 @@ const failedConfigurationMessage = (
reason: "backup" | "write" | "readback",
): string => {
if (reason === "backup")
return "Coding-agent configuration could not be backed up, so no change was made. Check file permissions, then rerun setup.";
return "Agent configuration could not be backed up, so no change was made. Check file permissions, then rerun setup.";
if (reason === "write")
return "Coding-agent configuration could not be updated. Check file permissions, then rerun setup.";
return "Coding-agent configuration could not be verified after writing. Repair the configuration file or restore its `.rea.backup`, then rerun setup.";
return "Agent configuration could not be updated. Check file permissions, then rerun setup.";
return "Agent configuration could not be verified after writing. Repair the configuration file or restore its `.rea.backup`, then rerun setup.";
};
/** Configure each detected coding agent, stopping after the first failed transaction. */
/** Configure each detected agent, stopping after the first failed transaction. */
export const configureDetectedClients = async (options: {
readonly host: SetupHost;
readonly detectedClients: readonly SetupClient[];

View File

@ -35,8 +35,7 @@ export const createCli = (): ReturnType<typeof Cli.create> => {
);
const cli = Cli.create(PRODUCT_IDENTITY.cliBinary, {
version: process.env.REA_PACKAGE_VERSION ?? "0.0.0-development",
description:
"Reverse engineer anything from your terminal or coding agent.",
description: "Reverse engineer anything from your terminal or agent.",
mcp: {
command: PRODUCT_IDENTITY.mcpCommand,
instructions:
@ -131,7 +130,7 @@ const registerSetupCommands = (
logger: Logger,
): void => {
cli.command("setup", {
description: "Install requirements and configure coding agents",
description: "Install requirements and configure agents",
options: z.object({
yes: z
.boolean()

View File

@ -170,15 +170,15 @@ describe("setup workflow", () => {
it.each([
[
"backup",
"Coding-agent configuration could not be backed up, so no change was made. Check file permissions, then rerun setup.",
"Agent configuration could not be backed up, so no change was made. Check file permissions, then rerun setup.",
],
[
"write",
"Coding-agent configuration could not be updated. Check file permissions, then rerun setup.",
"Agent configuration could not be updated. Check file permissions, then rerun setup.",
],
[
"readback",
"Coding-agent configuration could not be verified after writing. Repair the configuration file or restore its `.rea.backup`, then rerun setup.",
"Agent configuration could not be verified after writing. Repair the configuration file or restore its `.rea.backup`, then rerun setup.",
],
] as const)("explains %s configuration recovery", async (reason, message) => {
const host = new FakeSetupHost();