@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.
- package/CHANGELOG.md +98 -0
- package/LICENSE +26 -0
- package/README.md +22 -8
- package/dist/chunks/backfill-5zmh0t43.js +1050 -0
- package/dist/chunks/{ccip-qmytgn8e.js → ccip-zxtpc4fx.js} +4 -4
- package/dist/chunks/check-k4qnc9ee.js +2011 -0
- package/dist/chunks/cli-00qp1sj2.js +116 -0
- package/dist/chunks/{cli-c8568g4c.js → cli-0gsbnq5w.js} +72 -72
- package/dist/chunks/{cli-zpft011j.js → cli-64fx73kx.js} +3 -3
- package/dist/chunks/cli-7c393v47.js +173 -0
- package/dist/chunks/{cli-0z6f3603.js → cli-8m56jsfx.js} +239 -183
- package/dist/chunks/{cli-v446mw5v.js → cli-fbwpcfvp.js} +34 -34
- package/dist/chunks/cli-kda5hz4w.js +23 -0
- package/dist/chunks/{cli-0hqxver6.js → cli-mhzh9z8k.js} +33 -33
- package/dist/chunks/{cli-tyey74p3.js → cli-n4qagybd.js} +6 -2
- package/dist/chunks/{cli-74hv4etk.js → cli-wer26exb.js} +4939 -4105
- package/dist/chunks/cli-zehr6kdx.js +719 -0
- package/dist/chunks/{commands-dnk10vze.js → commands-t5a0w785.js} +88 -17
- package/dist/chunks/{env-s4585w6j.js → env-n5ac8d1z.js} +1 -0
- package/dist/chunks/{index-3a3ssef1.js → index-jrs2shcc.js} +3 -3
- package/dist/chunks/line-kvm1ew55.js +215 -0
- package/dist/chunks/{node-init-4v2m2vj0.js → node-init-amedveja.js} +7 -6
- package/dist/chunks/{node-0ydee9hy.js → node-x35ncwhq.js} +7 -6
- package/dist/chunks/server-ek7fet5m.js +6924 -0
- package/dist/chunks/{share-g8v5qe6r.js → share-ax2k8805.js} +10 -5
- package/dist/cli.js +71 -19
- package/dist/hook.js +4178 -270
- package/package.json +10 -3
- package/dist/chunks/backfill-j4hxt1w1.js +0 -262
- package/dist/chunks/line-zy1tc2np.js +0 -45
- 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/
|
|
3
|
-
<img src="https://raw.githubusercontent.com/
|
|
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/
|
|
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/
|
|
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
|
|
32
|
+
claude plugin marketplace add intuition-box/ARP
|
|
30
33
|
claude plugin install arp@arp
|
|
31
34
|
```
|
|
32
35
|
|
|
33
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|