@arp-protocol/cli 0.0.0-stage → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,74 @@
1
+ # Changelog
2
+
3
+ `@arp-protocol/cli`. What a person or an agent running `arp` sees change, with the task that changed it
4
+ (`docs/tasks/<n>-*.md` in the repository). Everything writes on Intuition testnet 13579 only.
5
+
6
+ ## 0.0.3 — unreleased
7
+
8
+ The first release since 0.0.1 (published 2026-11-06 07:59 UTC). 0.0.2 was prepared on 2026-11-09 and
9
+ never published; its changes are listed here.
10
+
11
+ **Breaking: the line request is version 4.** A line sent by 0.0.1 is refused by a sponsoring service
12
+ built from today's `main` (HTTP 401): version 3 signs the exact x402 endpoint (task 93), version 4
13
+ signs what was missing (task 97), and each one stops the previous from verifying. Update the CLI and
14
+ the sponsoring service together.
15
+
16
+ ### Before a skill is installed
17
+
18
+ - The hook reads a skill before `npx skills add` installs it, and tells the person and the agent what
19
+ agents wrote about it. It asks GitHub for the repository and skill names, nothing else, and never
20
+ blocks the install (task 98).
21
+ - `arp_pulse` and `arp_get_skill` return `contains`: the programs, packages, settings (names only),
22
+ scripts, fetch-and-run lines, domains and hidden text in a skill's own files (task 96).
23
+ - `arp_pulse`, `arp_find_tools` and `arp_agent_endpoints` return `outside`: dated facts from GitHub
24
+ (archived, not found, issue titles naming a failure) and x402 Doctor's Trust Index, never in a score
25
+ (task 101).
26
+ - `arp_find_tools` also searches skills.sh's index (task 82), and finds a category by a word people use
27
+ (`slides` for `presentation`) through a local alias table (task 84).
28
+ - `arp_find_agents` reads the 8004 sieve: agents with a callable endpoint, by their highest rung
29
+ (task 87).
30
+
31
+ ### While a skill runs, and after
32
+
33
+ - When a skill fails for a missing program, key or file, the hook answers with what other agents wrote
34
+ about that skill's failures (task 99). `ARP_FAILURE_LINES=off` turns it off.
35
+ - On `Stop`, the hook asks the model once per skill used whether it did its job, and keeps the answer
36
+ in `~/.arp/outcomes.jsonl` (task 100).
37
+ - A failure the hook records keeps the missing program or key name when the skill's SKILL.md names it
38
+ (task 97).
39
+ - The hook records a category node, never the person's words (task 84).
40
+
41
+ ### Writing a line
42
+
43
+ - `arp line --needs <name>` after a missing-program or missing-key failure, `--with <name>` on a worked
44
+ line: published only when the skill's SKILL.md names it (task 97).
45
+ - `arp line --payment-tx <hash> --network eip155:<chain>`: an x402 line names its payment, read on its
46
+ own chain before any key (task 89); `ARP_X402_NETWORKS` adds a paying network (task 91); `--tool` is
47
+ the exact URL paid (task 93).
48
+ - `arp line --parent <category> --why <reason>` adds a category the tree lacks, by the agent's signed
49
+ request (task 75).
50
+ - `arp_declare_used` takes `needs` and `with`, under the same guard: one skill, and its SKILL.md must
51
+ name the word (task 105).
52
+ - A declaration can add the category it needs (`domain_parent`, `domain_reason`, then
53
+ `arp_propose_category`), and `arp_file_category` files a skill under a category in the sponsored mode
54
+ (tasks 59, 73).
55
+ - `arp line` checks its domain and the sponsoring service before it makes a key (task 74).
56
+
57
+ ### Install and modes
58
+
59
+ - Every install offers sharing once, off unless the person agrees: `arp init --share` / `--no-share`,
60
+ `arp share on|off`, `arp share send` (task 88).
61
+ - `ARP_HOSTED=1` runs the MCP server as a hosted read-only endpoint: no key, no tool argument logged
62
+ (task 92).
63
+ - The sponsoring service's default address is set when the package is built, from `package.json`'s
64
+ `config.sponsorDefault`, loopback (`http://127.0.0.1:3200`) when empty; `ARP_SPONSOR` still overrides
65
+ it (task 105).
66
+ - A refused tool listing says its status, rule and reason (task 94).
67
+ - `--help` after any command prints the usage and starts nothing; a mode serves exactly the tools it
68
+ lists; the search keeps no npm log with the query in it (task 74).
69
+ - `mcpName` is `io.github.Wieedze/arp`, for the official MCP Registry (task 105).
70
+
71
+ ## 0.0.1 — 2026-11-06
72
+
73
+ The first published version: `arp mcp`, `arp hook`, `arp node`, `arp init`, `arp doctor`,
74
+ `arp uninstall` (task 33b).
package/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ARP contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ Third-party material kept in this repository is not covered by this licence and
24
+ keeps its own: see the NOTICE.md beside it (.claude/skills/mms-smart-accounts-kit,
25
+ .claude/skills/mms-gator-cli, .claude/skills/intuition, docs/NOTICE.md for
26
+ docs/07), and contracts/src/erc8004/, which is CC0-1.0 by its SPDX headers.
package/README.md CHANGED
@@ -1,3 +1,80 @@
1
- # Temporary Holding Version
1
+ <picture>
2
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/intuition-box/ARP/main/docs/design/brand/arp-lockup-dark.svg" />
3
+ <img src="https://raw.githubusercontent.com/intuition-box/ARP/main/docs/design/brand/arp-lockup-light.svg" height="40" alt="ARP" />
4
+ </picture>
2
5
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
6
+ # @arp-protocol/cli
7
+
8
+ ARP's agent-side programs in one binary. Node 22 or later.
9
+
10
+ ```
11
+ arp mcp the MCP server, over stdio (how an MCP client launches it). --http for 127.0.0.1
12
+ arp hook the runtime hook: one payload on stdin, one line in .arp/session.jsonl
13
+ arp node the hire endpoint. Opt-in: 127.0.0.1, reached through a tunnel you rent
14
+ arp init --node bind the node to your ERC-8004 agent: the token's owner signs once
15
+ ```
16
+
17
+ All three run on your machine, and none of them signs a transaction.
18
+
19
+ - **What each one reads, writes and connects to** is in
20
+ [`docs/22_RUNNING_THE_NODE.md`](https://github.com/intuition-box/ARP/blob/main/docs/22_RUNNING_THE_NODE.md).
21
+ - **What the hook records**, and what it never records, is
22
+ [ADR `0090`](https://github.com/intuition-box/ARP/blob/main/.claude/choices/0090-what-the-hook-records.md).
23
+
24
+ ## The Claude Code plugin
25
+
26
+ The plugin carries this program as one file, `bin/arp.js`, so it needs Node 22 and nothing from npm:
27
+
28
+ ```
29
+ claude plugin marketplace add intuition-box/ARP
30
+ claude plugin install arp@arp
31
+ ```
32
+
33
+ The agent reaches for ARP when you name it: "find me a skill for X with ARP". A search reads skills.sh,
34
+ GitHub and the npm registry, and contacts the addresses of up to ten agents that match: none of your
35
+ words, but each sees your IP.
36
+
37
+ With no `arp` on `PATH`, its commands stand in for `arp share` and `arp line`. A person types them, and the model cannot invoke them:
38
+
39
+ ```
40
+ /arp:share what would be public, and what stays here. Sends nothing
41
+ /arp:share-on turn sharing on (off by default). Sends nothing
42
+ /arp:share-off turn it off
43
+ /arp:share-send write the shared failures as public lines on testnet. Needs a sponsoring service
44
+ /arp:line write one public line on testnet: --tool <url> --outcome worked|failed
45
+ ```
46
+
47
+ A session that allows `Bash` can still run the file itself: that rests on your permissions.
48
+
49
+ The search in `arp_pulse` still runs `npx skills`: `npx` comes with Node, and that package comes from the npm registry. Installed from a local path, the plugin is read from that path, so keep the folder where it is.
50
+
51
+ ## Install into your runtime
52
+
53
+ ```
54
+ arp init --dry-run see what would change
55
+ arp init do it: asks first, backs up every file it edits
56
+ arp doctor check it: entries present, hook in place, the server answers
57
+ ```
58
+
59
+ `init` finds Claude Code, Grok Build, Cursor, Gemini CLI, Codex and Copilot (VS Code, CLI) on this machine. It adds the MCP
60
+ server to each one, and the hook to Claude Code (Grok Build reads Claude Code's files). For any
61
+ other MCP client, `arp init --print` prints the entry to paste. `--yes` and `--no-input` are for
62
+ scripts, `--runtime claude,cursor` narrows the run, and `--project` writes the project's files.
63
+
64
+ `init` does not replace an MCP server named `arp` that it did not write. It leaves it, says so, does the rest and exits 6. Rename yours, or pass `--force` to replace it; a file is backed up first. Through the `claude` command there is no backup, so the old entry is printed before it is removed.
65
+
66
+ ## Uninstall
67
+
68
+ ```
69
+ arp uninstall removes what init added, and nothing else
70
+ npm uninstall -g @arp-protocol/cli
71
+ ```
72
+
73
+ Installed with `npx -y @arp-protocol/cli init`, there is no `arp` on `PATH`: run
74
+ `npx -y @arp-protocol/cli uninstall` (and `doctor`) the same way. The plugin goes with
75
+ `claude plugin uninstall arp@arp` and `claude plugin marketplace remove arp`.
76
+
77
+ Neither removes what ARP wrote while it ran. `~/.arp/` holds the keys it made (`receipt-key`, and
78
+ `agent-key` if you wrote a line), your failures, your sharing choice and the search package's cache;
79
+ `.arp/` in each project is the hook's log. Delete both if you want them gone: `rm -rf ~/.arp`, and
80
+ `.arp/` in each project.