diff --git a/README.md b/README.md index 3db21fccb..57fcf4bab 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ REA does not bundle Hopper. `rea setup --yes` can install Homebrew when absent, After publication: ```bash -npx -y @morluto/rea setup --yes -npx -y @morluto/rea doctor +npx -y reaa setup --yes +npx -y reaa doctor ``` For source-checkout development: @@ -59,7 +59,7 @@ Manual target-free MCP configuration: "mcpServers": { "rea": { "command": "npx", - "args": ["-y", "@morluto/rea", "mcp"] + "args": ["-y", "reaa", "mcp"] } } } @@ -94,13 +94,13 @@ npm run verify:hopper Real-Hopper verification requires Hopper and two distinct binaries. It checks target-free startup, all 42 tools, analysis, bounded decompilation, target switching, bridge cleanup, and server shutdown. The verifier terminates only Hopper bundle processes that appeared during its run; it preserves Hopper processes that were already running. -Before publishing a release, run `npm run check`, `npm run verify:package`, `npm pack --dry-run`, and the two-target real-Hopper verifier. After publication, repeat the CLI and MCP smoke tests through `npx -y @morluto/rea`. +Before publishing a release, run `npm run check`, `npm run verify:package`, `npm pack --dry-run`, and the two-target real-Hopper verifier. After publication, repeat the CLI and MCP smoke tests through `npx -y reaa`. -The package ships only the `rea` executable. Setup writes a floating MCP registration using `npx -y @morluto/rea mcp`. A local tarball exercises the same package boundary before publication: +The npm package is named `reaa`, while the product and installed executable remain `REA` and `rea`. Setup writes a floating MCP registration using `npx -y reaa mcp`. A local tarball exercises the same package boundary before publication: ```bash npm pack -npm exec --yes --package ./morluto-rea-0.1.0.tgz -- rea --help +npm exec --yes --package ./reaa-0.1.0.tgz -- rea --help ``` ## License diff --git a/package-lock.json b/package-lock.json index 9bdcbd6d6..63b915e43 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@morluto/rea", + "name": "reaa", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@morluto/rea", + "name": "reaa", "version": "0.1.0", "dependencies": { "@modelcontextprotocol/server": "2.0.0-beta.3", diff --git a/package.json b/package.json index 27ac96a01..af757e9c9 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@morluto/rea", + "name": "reaa", "version": "0.1.0", "description": "Reverse-engineering automation for Hopper Disassembler through one CLI and MCP server.", "license": "MIT", diff --git a/scripts/verify-package.mjs b/scripts/verify-package.mjs index 85e32c9f3..7fd129c92 100644 --- a/scripts/verify-package.mjs +++ b/scripts/verify-package.mjs @@ -95,7 +95,7 @@ try { throw new Error("packaged CLI discovery or doctor failed"); await run(cli, ["mcp", "add"], environment); const mcpRegistration = await readFile(npxLog, "utf8"); - if (!mcpRegistration.includes("add-mcp npx -y @morluto/rea mcp --name rea")) + if (!mcpRegistration.includes("add-mcp npx -y reaa mcp --name rea")) throw new Error("Incur mcp add did not register the floating npx command"); const first = json(await run(cli, ["setup", "--yes", "--json"], environment)); const second = json( @@ -113,7 +113,7 @@ try { config.existing !== true || config.mcpServers?.rea?.command !== "npx" || JSON.stringify(config.mcpServers?.rea?.args) !== - JSON.stringify(["-y", "@morluto/rea", "mcp"]) + JSON.stringify(["-y", "reaa", "mcp"]) ) throw new Error("packaged client readback failed"); if ( @@ -173,7 +173,7 @@ try { } process.stdout.write( - `${JSON.stringify({ cli: true, incurMcpCommand: "npx -y @morluto/rea mcp", doctor: true, setup: "idempotent", clients: 2, backupReadback: true, failureRecovery: true, skill: true, mcpTools: 42, targetFree: true })}\n`, + `${JSON.stringify({ cli: true, incurMcpCommand: "npx -y reaa mcp", doctor: true, setup: "idempotent", clients: 2, backupReadback: true, failureRecovery: true, skill: true, mcpTools: 42, targetFree: true })}\n`, ); } finally { if (tarball) await rm(join(root, tarball), { force: true }); diff --git a/src/identity.ts b/src/identity.ts index 7452fa245..abd78fa04 100644 --- a/src/identity.ts +++ b/src/identity.ts @@ -5,9 +5,9 @@ */ export const PRODUCT_IDENTITY = { displayName: "REA", - packageName: "@morluto/rea", + packageName: "reaa", cliBinary: "rea", - mcpCommand: "npx -y @morluto/rea mcp", + mcpCommand: "npx -y reaa mcp", mcpServerKey: "rea", skillName: "rea-analysis", configFileName: "rea.json", diff --git a/tests/setupConfig.test.ts b/tests/setupConfig.test.ts index 57510adc7..8c93b180e 100644 --- a/tests/setupConfig.test.ts +++ b/tests/setupConfig.test.ts @@ -28,7 +28,7 @@ describe("JSON client configuration transaction", () => { other: { command: "other" }, rea: { command: "npx", - args: ["-y", "@morluto/rea", "mcp"], + args: ["-y", "reaa", "mcp"], }, }, }); @@ -39,7 +39,7 @@ describe("JSON client configuration transaction", () => { const configPath = join(directory, "mcp.json"); await writeFile( configPath, - '{"mcpServers":{"rea":{"command":"npx","args":["-y","@morluto/rea","mcp"]}}}\n', + '{"mcpServers":{"rea":{"command":"npx","args":["-y","reaa","mcp"]}}}\n', ); expect(await configureJsonClient({ name: "cursor", configPath })).toEqual({ status: "unchanged", @@ -61,7 +61,7 @@ describe("JSON client configuration transaction", () => { mcpServers: { rea: { command: "npx", - args: ["-y", "@morluto/rea", "mcp"], + args: ["-y", "reaa", "mcp"], env: { HOPPER_LAUNCHER_PATH: hopperPath }, }, },