@arp-protocol/cli 0.0.1 → 0.0.4

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.
Files changed (31) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/LICENSE +26 -0
  3. package/README.md +22 -8
  4. package/dist/chunks/backfill-5zmh0t43.js +1050 -0
  5. package/dist/chunks/{ccip-qmytgn8e.js → ccip-zxtpc4fx.js} +4 -4
  6. package/dist/chunks/check-k4qnc9ee.js +2011 -0
  7. package/dist/chunks/cli-00qp1sj2.js +116 -0
  8. package/dist/chunks/{cli-c8568g4c.js → cli-0gsbnq5w.js} +72 -72
  9. package/dist/chunks/{cli-zpft011j.js → cli-64fx73kx.js} +3 -3
  10. package/dist/chunks/cli-7c393v47.js +173 -0
  11. package/dist/chunks/{cli-0z6f3603.js → cli-8m56jsfx.js} +239 -183
  12. package/dist/chunks/{cli-v446mw5v.js → cli-fbwpcfvp.js} +34 -34
  13. package/dist/chunks/cli-kda5hz4w.js +23 -0
  14. package/dist/chunks/{cli-0hqxver6.js → cli-mhzh9z8k.js} +33 -33
  15. package/dist/chunks/{cli-tyey74p3.js → cli-n4qagybd.js} +6 -2
  16. package/dist/chunks/{cli-74hv4etk.js → cli-wer26exb.js} +4939 -4105
  17. package/dist/chunks/cli-zehr6kdx.js +719 -0
  18. package/dist/chunks/{commands-dnk10vze.js → commands-t5a0w785.js} +88 -17
  19. package/dist/chunks/{env-s4585w6j.js → env-n5ac8d1z.js} +1 -0
  20. package/dist/chunks/{index-3a3ssef1.js → index-jrs2shcc.js} +3 -3
  21. package/dist/chunks/line-kvm1ew55.js +215 -0
  22. package/dist/chunks/{node-init-4v2m2vj0.js → node-init-amedveja.js} +7 -6
  23. package/dist/chunks/{node-0ydee9hy.js → node-x35ncwhq.js} +7 -6
  24. package/dist/chunks/server-ek7fet5m.js +6924 -0
  25. package/dist/chunks/{share-g8v5qe6r.js → share-ax2k8805.js} +10 -5
  26. package/dist/cli.js +71 -19
  27. package/dist/hook.js +4178 -270
  28. package/package.json +10 -3
  29. package/dist/chunks/backfill-j4hxt1w1.js +0 -262
  30. package/dist/chunks/line-zy1tc2np.js +0 -45
  31. package/dist/chunks/server-jmyjttvv.js +0 -3170
package/CHANGELOG.md ADDED
@@ -0,0 +1,98 @@
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.4 — unreleased
7
+
8
+ - **The sponsoring service is hosted** (task 117): `ARP_SPONSOR` defaults to
9
+ `https://sponsor.arp.intuition.box` instead of `http://127.0.0.1:3200`, so `arp line`, `arp share send`
10
+ and the plugin reach it with nothing set. Set `ARP_SPONSOR` to use another one. Testnet 13579 only.
11
+ - The MCP Registry entry names the hosted read-only endpoint, `https://mcp.arp.intuition.box/mcp`
12
+ (streamable HTTP, `arp_pulse`, `arp_tool_reputation`, `arp_agent_endpoints`), beside the npm package.
13
+ - **Breaking: the line request is version 5** (task 122). `arp line --payment-tx` now also takes the
14
+ terms the endpoint's `402` gave and you paid against: `--pay-to`, `--asset`, `--price` (the
15
+ `PaymentRequirements` `payTo`, `asset` and `amount`) and `--terms-at` (when the `402` came, unix
16
+ seconds or ISO 8601). `arp line` refuses a payment whose transfer does not match them, and
17
+ `--reason no-delivery` without `--payment-tx`: it means paid, nothing received. A line sent by 0.0.3
18
+ is refused by a sponsoring service built from today's `main` (HTTP 401). Update both together.
19
+
20
+ - `arp check <owner/repo/skill>`: before you use a skill, what its files contain, the lines agents
21
+ wrote about it, and whether the programs and variables it needed when it failed, or that its files
22
+ name, are on this machine. A variable is reported set or not set, its value never shown. Writes
23
+ nothing, needs no wallet (task 115).
24
+ - The hook no longer continues a turn on `Stop` to ask whether a skill worked. When a skill loads, it
25
+ asks the model, once per skill per session, to end its final reply with `arp: <skill> worked`,
26
+ `failed` or `unsure`, and `Stop` records that line and prints nothing. Under `claude -p` the
27
+ session's result is the real answer again (task 109). `arp init` registers `PostToolUse` twice:
28
+ every tool but `Skill` in the background, `Skill` waited on (5 s).
29
+
30
+ ## 0.0.3 — published 2026-11-10
31
+
32
+ The first release since 0.0.1 (published 2026-11-06 07:59 UTC). 0.0.2 was prepared on 2026-11-09 and
33
+ never published; its changes are listed here.
34
+
35
+ **Breaking: the line request is version 4.** A line sent by 0.0.1 is refused by a sponsoring service
36
+ built from today's `main` (HTTP 401): version 3 signs the exact x402 endpoint (task 93), version 4
37
+ signs what was missing (task 97), and each one stops the previous from verifying. Update the CLI and
38
+ the sponsoring service together.
39
+
40
+ ### Before a skill is installed
41
+
42
+ - The hook reads a skill before `npx skills add` installs it, and tells the person and the agent what
43
+ agents wrote about it. It asks GitHub for the repository and skill names, nothing else, and never
44
+ blocks the install (task 98).
45
+ - `arp_pulse` and `arp_get_skill` return `contains`: the programs, packages, settings (names only),
46
+ scripts, fetch-and-run lines, domains and hidden text in a skill's own files (task 96).
47
+ - `arp_pulse`, `arp_find_tools` and `arp_agent_endpoints` return `outside`: dated facts from GitHub
48
+ (archived, not found, issue titles naming a failure) and x402 Doctor's Trust Index, never in a score
49
+ (task 101).
50
+ - `arp_find_tools` also searches skills.sh's index (task 82), and finds a category by a word people use
51
+ (`slides` for `presentation`) through a local alias table (task 84).
52
+ - `arp_find_agents` reads the 8004 sieve: agents with a callable endpoint, by their highest rung
53
+ (task 87).
54
+
55
+ ### While a skill runs, and after
56
+
57
+ - When a skill fails for a missing program, key or file, the hook answers with what other agents wrote
58
+ about that skill's failures (task 99). `ARP_FAILURE_LINES=off` turns it off.
59
+ - On `Stop`, the hook asks the model once per skill used whether it did its job, and keeps the answer
60
+ in `~/.arp/outcomes.jsonl` (task 100).
61
+ - A failure the hook records keeps the missing program or key name when the skill's SKILL.md names it
62
+ (task 97).
63
+ - The hook records a category node, never the person's words (task 84).
64
+
65
+ ### Writing a line
66
+
67
+ - `arp line --needs <name>` after a missing-program or missing-key failure, `--with <name>` on a worked
68
+ line: published only when the skill's SKILL.md names it (task 97).
69
+ - `arp line --payment-tx <hash> --network eip155:<chain>`: an x402 line names its payment, read on its
70
+ own chain before any key (task 89); `ARP_X402_NETWORKS` adds a paying network (task 91); `--tool` is
71
+ the exact URL paid (task 93).
72
+ - `arp line --parent <category> --why <reason>` adds a category the tree lacks, by the agent's signed
73
+ request (task 75).
74
+ - `arp_declare_used` takes `needs` and `with`, under the same guard: one skill, and its SKILL.md must
75
+ name the word (task 105).
76
+ - A declaration can add the category it needs (`domain_parent`, `domain_reason`, then
77
+ `arp_propose_category`), and `arp_file_category` files a skill under a category in the sponsored mode
78
+ (tasks 59, 73).
79
+ - `arp line` checks its domain and the sponsoring service before it makes a key (task 74).
80
+
81
+ ### Install and modes
82
+
83
+ - Every install offers sharing once, off unless the person agrees: `arp init --share` / `--no-share`,
84
+ `arp share on|off`, `arp share send` (task 88).
85
+ - `ARP_HOSTED=1` runs the MCP server as a hosted read-only endpoint: no key, no tool argument logged
86
+ (task 92).
87
+ - The sponsoring service's default address is set when the package is built, from `package.json`'s
88
+ `config.sponsorDefault`, loopback (`http://127.0.0.1:3200`) when empty; `ARP_SPONSOR` still overrides
89
+ it (task 105).
90
+ - A refused tool listing says its status, rule and reason (task 94).
91
+ - `--help` after any command prints the usage and starts nothing; a mode serves exactly the tools it
92
+ lists; the search keeps no npm log with the query in it (task 74).
93
+ - `mcpName` is `io.github.Wieedze/arp`, for the official MCP Registry (task 105).
94
+
95
+ ## 0.0.1 — 2026-11-06
96
+
97
+ The first published version: `arp mcp`, `arp hook`, `arp node`, `arp init`, `arp doctor`,
98
+ `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,6 +1,6 @@
1
1
  <picture>
2
- <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Wieedze/ARP/main/docs/design/brand/arp-lockup-dark.svg" />
3
- <img src="https://raw.githubusercontent.com/Wieedze/ARP/main/docs/design/brand/arp-lockup-light.svg" height="40" alt="ARP" />
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
4
  </picture>
5
5
 
6
6
  # @arp-protocol/cli
@@ -17,22 +17,27 @@ arp init --node bind the node to your ERC-8004 agent: the token's owner signs
17
17
  All three run on your machine, and none of them signs a transaction.
18
18
 
19
19
  - **What each one reads, writes and connects to** is in
20
- [`docs/22_RUNNING_THE_NODE.md`](https://github.com/Wieedze/ARP/blob/main/docs/22_RUNNING_THE_NODE.md).
20
+ [`docs/22_RUNNING_THE_NODE.md`](https://github.com/intuition-box/ARP/blob/main/docs/22_RUNNING_THE_NODE.md).
21
21
  - **What the hook records**, and what it never records, is
22
- [ADR `0090`](https://github.com/Wieedze/ARP/blob/main/.claude/choices/0090-what-the-hook-records.md).
22
+ [ADR `0090`](https://github.com/intuition-box/ARP/blob/main/.claude/choices/0090-what-the-hook-records.md).
23
+
24
+ Every way to install ARP, and the state of each, is in one place:
25
+ [Install](https://github.com/intuition-box/ARP/blob/main/apps/web/public/docs/install.md).
23
26
 
24
27
  ## The Claude Code plugin
25
28
 
26
29
  The plugin carries this program as one file, `bin/arp.js`, so it needs Node 22 and nothing from npm:
27
30
 
28
31
  ```
29
- claude plugin marketplace add <a checkout of this repo, or owner/repo>
32
+ claude plugin marketplace add intuition-box/ARP
30
33
  claude plugin install arp@arp
31
34
  ```
32
35
 
33
- 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:
36
+ The agent reaches for ARP when you name it: "find me a skill for X with ARP". A search reads skills.sh,
37
+ GitHub and the npm registry, and contacts the addresses of up to ten agents that match: none of your
38
+ words, but each sees your IP.
34
39
 
35
- A session that allows `Bash` can still run the file itself: that rests on your permissions.
40
+ 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:
36
41
 
37
42
  ```
38
43
  /arp:share what would be public, and what stays here. Sends nothing
@@ -42,6 +47,8 @@ A session that allows `Bash` can still run the file itself: that rests on your p
42
47
  /arp:line write one public line on testnet: --tool <url> --outcome worked|failed
43
48
  ```
44
49
 
50
+ A session that allows `Bash` can still run the file itself: that rests on your permissions.
51
+
45
52
  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.
46
53
 
47
54
  ## Install into your runtime
@@ -66,4 +73,11 @@ arp uninstall removes what init added, and nothing else
66
73
  npm uninstall -g @arp-protocol/cli
67
74
  ```
68
75
 
69
- The `.arp/` directory in each project is the hook's log. Delete it if you want it gone.
76
+ Installed with `npx -y @arp-protocol/cli init`, there is no `arp` on `PATH`: run
77
+ `npx -y @arp-protocol/cli uninstall` (and `doctor`) the same way. The plugin goes with
78
+ `claude plugin uninstall arp@arp` and `claude plugin marketplace remove arp`.
79
+
80
+ Neither removes what ARP wrote while it ran. `~/.arp/` holds the keys it made (`receipt-key`, and
81
+ `agent-key` if you wrote a line), your failures, your sharing choice and the search package's cache;
82
+ `.arp/` in each project is the hook's log. Delete both if you want them gone: `rm -rf ~/.arp`, and
83
+ `.arp/` in each project.