cascrow-cli 1.4.0 → 3.1.0

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 CHANGED
@@ -1,5 +1,43 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.1.0 — 2026-10-20
4
+
5
+ Prepared as 3.0.1 (texts only) and never published; new options made it a minor release.
6
+
7
+ - **New command `cascrow human-review --contract <id> [--milestone <id>] [--reason "…"]`** (either party asks a person at cascrow to review a verification outcome, Art. 22(3) GDPR; decided within one month, both parties receive the decision with its reasons) **and `cascrow human-review --contract <id> --list`** (the requests and their decisions). A request already open prints its deadline and exits 0. A refused call's error now carries the server's body.
8
+ - The review-queue help no longer says an undecided milestone completes after 48 h or 14 days: it completes when its window closes only when the panel's own YES opened the review and the contract's terms let silence count; any other review goes to cascrow's human review.
9
+ - **`cascrow create` takes `--review-days <n>`** (your review window, 2–30 days, default 14; under 7 only if both parties registered as businesses) **and `--panel-alone`** (the panel decides alone: YES above 85 % completes, anything else is a rejection the builder can resubmit against). The server validates both and answers with its own sentence.
10
+ - `cascrow verify` says "5 AI models run by 5 different providers" (was "5 independent AI models").
11
+ - New hint for **`SCREENING_UNAVAILABLE`** (the new-money sanctions screen fails closed — nothing was created; retry), and the V3 text table carries the no-arbiter veto sentence.
12
+
13
+ The 3.0.1 notes, unchanged:
14
+
15
+ - The wallet-linking instructions (the custody-path refusal and the builder agent) follow cascrow's Sign-In with Ethereum challenge: `GET /api/user/wallet/challenge?address=<your wallet>`, sign the returned message with that wallet, `POST /api/user/wallet` — or `npx cascrow-signer@0.2.0 link`. The old one-line challenge is refused by the server.
16
+ - `cascrow v3 sign` runs the pinned `cascrow-signer@0.2.0`; 0.1.0 can no longer link a wallet.
17
+ - The builder agent names the panel's OpenAI model correctly (GPT-4o-mini).
18
+ - The package now carries its MIT `LICENSE` and ships only `index.js`, `README.md`, `CHANGELOG.md` and `LICENSE`. `builder-agent.js`, a demo agent that no command runs, stays in the repository.
19
+
20
+ ## 3.0.0 — 2026-09-27
21
+
22
+ - **`cascrow join` says what the builder can do now**: a $0 verification contract is active at once; a contract with an amount waits for the payer's MilestoneEscrowV3 offer, accepted with your own key (`npx cascrow-signer@0.1.0 accept --milestone <id>`). The JSON carries the server's `status` and `activated`. The builder agent prints the same.
23
+ - **`cascrow review --decision APPROVE`** says "approved and completed (a verification-only contract: no money moves)" and prints the contract status; the "escrow is being released" line and the "Release tx" it never received are gone.
24
+ - **New outcome `NOT_COMPLETABLE_WITHOUT_ESCROW`** at `cascrow verify --proof` (stream), `cascrow verify --contract` (the one-shot submit: the server's 409, with its hint) and `cascrow status` (the new `notCompletableWithoutEscrow` field ends the wait): the panel approved a milestone that carries an amount without a MilestoneEscrowV3 escrow — nothing completed it, no money moved, contact support.
25
+ - **Breaking: `releaseHoldUntil` / `release_hold_until` are gone** from `verify` and `status` output; a bare `VERIFIED` no longer promises a retried release. `passed` on the one-shot `verify --contract` is `verdict === "approved"`.
26
+ - **Breaking: `cascrow fund` is removed** (cascrow Phase 6 — the v2 RLUSD escrow is gone). It now only prints why: a contract with `--amount 0` is active by itself once the builder has joined, and a milestone with an amount is a MilestoneEscrowV3 escrow in native XRP — `cascrow v3 offer`, the builder accepts (`cascrow v3 sign accept`), and the payer funds with one transaction from their own machine (`cascrow v3 sign fund`). Nothing is sent.
27
+ - The `escrow-fund` refusal and the help text no longer point at `escrow-prepare` / `escrow/sync` (both removed); `--amount` is described as the switch to the MilestoneEscrowV3 offer flow.
28
+ - A COMPLETED milestone no longer reads "funds released": the line says whether no money was held (verification only) or a MilestoneEscrowV3 escrow paid out on chain. `review` / `review-queue` describe a verdict that completes or hands back a verification-only milestone and moves no money.
29
+ - The builder agent (`builder-agent.js`) waits for the milestone to be active rather than "funded", and its demo deliverable describes the product as it is now.
30
+
31
+ ## 2.1.0 — not published on its own, released as part of 3.0.0
32
+
33
+ - `cascrow v3 offer | acceptance | accept-submit | prepare | report-tx | attestation | claims` — the MilestoneEscrowV3 remote calls. `cascrow v3 sign <command…>` runs the PINNED local signer (`npx cascrow-signer@0.1.0`) with this terminal attached; the CLI itself stays dependency-free and never sees a key.
34
+ - `cascrow fund` refuses a MilestoneEscrowV3 milestone with the way to fund it; every V3 refusal code prints what can be done about it; a V3 verification reads as a recommendation that moves no money.
35
+
36
+ ## 2.0.0 — not published on its own, released as part of 3.0.0
37
+
38
+ - **Breaking: `cascrow escrow-fund --private-key` is removed.** It sent your EVM private key to cascrow, which signed the deposit server-side; cascrow no longer accepts, stores or signs with anyone's key. Fund a v2 escrow by signing locally: `GET /api/agent/escrow-prepare` returns the two unsigned transactions, you sign and broadcast them with your own wallet, then `POST /api/escrow/sync`. Funding a MilestoneEscrowV3 contract from an API client is not available yet. **If you ever passed a private key to this command, treat that key as exposed and move its funds to a new wallet.**
39
+ - `cascrow register` no longer receives a generated wallet: registration returns `wallet: null` and a note on how to link your own (`GET /api/user/wallet/challenge` → sign → `POST /api/user/wallet`).
40
+
3
41
  ## 1.4.0 — 2026-09-25
4
42
 
5
43
  - New `cascrow status --proof <id> [--wait]` — show, or wait for, a proof's verification result. `submit` now points to it: verification starts by itself after an upload.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Cascrow
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.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # cascrow-cli
2
2
 
3
- Command-line interface for [Cascrow](https://cascrow.com) — trust infrastructure for the agent economy (AI verification, on-chain reputation, milestone escrow) on the XRP Ledger, for shells, CI pipelines, and subprocesses.
3
+ Command-line interface for [Cascrow](https://cascrow.com) — trust infrastructure for the agent economy (AI verification, on-chain reputation, and a non-custodial milestone escrow in native XRP), for shells, CI pipelines, and subprocesses.
4
4
 
5
- AI agents and their operators use Cascrow to create milestone-based contracts, submit proof of completion, and get verified by a **5-model AI majority vote** — with funds released automatically on-chain. No humans required.
5
+ AI agents and their operators use Cascrow to create milestone-based contracts, submit proof of completion, and get verified by a **5-model AI majority vote**, anchored on the XRP Ledger. For paid work the AI verdict is a signed, non-binding recommendation: the money sits in a MilestoneEscrowV3 smart contract that only the parties (or an arbiter they chose) can move — cascrow holds no key that can move escrowed funds and never signs an escrow transaction.
6
6
 
7
7
  ## Install
8
8
 
@@ -51,8 +51,6 @@ is never anchored.
51
51
  | `register` | Create an agent account, get an API key instantly | No |
52
52
  | `verify` | Submit proof and get an AI verdict in one call (recommended) | Yes |
53
53
  | `create` | Create a milestone contract | Yes |
54
- | `fund` | Activate a milestone (simulation — no on-chain tx) | Yes |
55
- | `escrow-fund` | Fund a milestone with real on-chain RLUSD escrow | Yes |
56
54
  | `submit` | Upload proof text — verification starts by itself; returns `proofId` | Yes |
57
55
  | `status` | Show, or `--wait` for, the verification result of a proof | Yes |
58
56
  | `get` | Get contract status and milestones | Yes |
@@ -60,7 +58,11 @@ is never anchored.
60
58
  | `handoff` | Send a contract invite to a Builder agent by Agent ID | Yes |
61
59
  | `check-invites` | Check pending contract invites for this agent | Yes |
62
60
  | `review-queue` | As funder: list milestones still waiting for your verdict | Yes |
61
+ | `v3-claims` | As payer: list MilestoneEscrowV3 claims you can still object to on chain | Yes |
62
+ | `v3 offer \| acceptance \| accept-submit \| prepare \| report-tx \| attestation \| claims` | MilestoneEscrowV3, remote half — cascrow prepares and reads, you sign | Yes |
63
+ | `v3 sign <command…>` | Runs the pinned local signer, `npx cascrow-signer@0.2.0 <command…>` — your key stays on your machine | Signer's own |
63
64
  | `review` | As funder: approve or reject a milestone under manual review | Yes |
65
+ | `human-review` | Either party: ask a person at cascrow to review a verification outcome (Art. 22(3) GDPR), `--list` its decisions | Yes |
64
66
  | `me` | Print this agent's ID | Yes |
65
67
 
66
68
  Run `cascrow --help` (or `cascrow`) any time for the full, always-current option reference.
@@ -85,7 +87,7 @@ Exactly one of `--pr`, `--code`, or `--image` is required alongside `--task`.
85
87
  --key-name <name> optional label for the API key (default: cli)
86
88
  ```
87
89
 
88
- ### `verify` [one-shot — recommended for escrow contracts]
90
+ ### `verify` [one-shot — recommended for text proof]
89
91
 
90
92
  ```
91
93
  --contract <id> required contract ID
@@ -100,7 +102,8 @@ Exactly one of `--pr`, `--code`, or `--image` is required alongside `--task`.
100
102
  ```
101
103
  --title <title> required short milestone title (printed on the certificate)
102
104
  --days <n> optional deadline days from now (default: 7)
103
- --amount <usd> optional RLUSD to lock in escrow (default: 0 = verification-only)
105
+ --amount <usd> optional default 0 = verification-only (active once the builder joins);
106
+ above 0 = a MilestoneEscrowV3 escrow in native XRP (see below)
104
107
  --criteria <text> optional what the AI panel checks the proof against (max 4000 chars)
105
108
  --criteria-file <path> optional the same, read from a file
106
109
  --checklist-file <path> optional JSON array of { title, severity?, id? } (max 20), scored item by item on text proofs
@@ -110,21 +113,8 @@ Exactly one of `--pr`, `--code`, or `--image` is required alongside `--task`.
110
113
  Keep acceptance criteria out of `--title`: the title is printed on the public
111
114
  certificate, and the panel judges the proof against `--criteria`.
112
115
 
113
- ### `fund`
114
-
115
- ```
116
- --contract <id> required
117
- --milestone <id> optional defaults to first available
118
- ```
119
-
120
- ### `escrow-fund` [real on-chain RLUSD — agent's own wallet]
121
-
122
- ```
123
- --contract <id> required
124
- --private-key <key> required EVM private key (funds come from this wallet)
125
- --amount <usd> IGNORED the escrowed amount is the milestone's own amountUSD
126
- --milestone <id> optional
127
- ```
116
+ `cascrow fund` was removed in 3.0.0: a verification-only contract needs no funding,
117
+ and a paid milestone is funded by the payer's own transaction (`cascrow v3 sign fund`).
128
118
 
129
119
  ### `submit` [or use `verify` for text proof in one call]
130
120
 
@@ -175,16 +165,16 @@ No options.
175
165
  ### `review-queue`
176
166
 
177
167
  No options. Lists the contracts on which you, as funder, still owe a manual
178
- verdict — the pull behind the `manual_review.required` webhook. A webhook nobody
179
- received is a decision nobody makes, and cascrow auto-approves an undecided
180
- milestone after 48 hours (agent contracts) or 14 days (human) and releases the
181
- escrow, so poll this whenever you have funded work in flight.
168
+ verdict on a verification-only contract — the pull behind the
169
+ `manual_review.required` webhook. A webhook nobody received is a decision nobody
170
+ makes; cascrow completes an undecided milestone when its review window closes
171
+ only when the panel's own verdict opened the review with a YES — any other review goes to cascrow's human review instead; the window is the contract's `reviewWindowDays` (default 14 days; 48h on an agent contract created before 2026-10-20 in review mode `MANUAL_AUTO` or `AUTO`). A verdict completes or hands back the milestone and moves no money.
182
172
 
183
173
  ### `review`
184
174
 
185
175
  ```
186
176
  --contract <id> required from `cascrow review-queue`
187
- --decision <APPROVE|REJECT> required APPROVE releases the escrow; REJECT returns
177
+ --decision <APPROVE|REJECT> required APPROVE completes the milestone; REJECT returns
188
178
  the milestone to the builder, who can resubmit
189
179
  --milestone <id> required once more than one milestone of the contract is
190
180
  pending review; `review-queue` names it
@@ -224,18 +214,25 @@ Five AI models vote in parallel on submitted proof:
224
214
 
225
215
  | Confidence | Outcome |
226
216
  |---|---|
227
- | > 85% + 3/5 YES | **VERIFIED** — funds released on-chain automatically (escrow contracts only) |
217
+ | > 85% + 3/5 YES | **VERIFIED** — a verification-only milestone completes; for a MilestoneEscrowV3 milestone it is a recommendation, and the money moves only by the parties' own on-chain calls |
228
218
  | 60–85% | **PENDING_REVIEW** — manual review triggered |
229
219
  | < 60% | **REJECTED** — resubmit with stronger proof |
230
220
 
231
- ## Example: Escrow Flow (RLUSD locked on-chain)
221
+ ## Example: Paid milestone (MilestoneEscrowV3, native XRP, testnet)
232
222
 
233
223
  ```bash
234
- cascrow create --title "Deploy API" --amount 100 --days 14
235
- cascrow escrow-fund --contract <contractId> --private-key 0x...
224
+ cascrow create --title "Deploy API" --amount 100 --days 14 # as payer
225
+ cascrow v3 offer --milestone <id> --review-period-sec 259200 # terms frozen at an XRP/USD rate
226
+ cascrow v3 sign accept --milestone <id> --network testnet # as builder: check + sign locally
227
+ cascrow v3 sign fund --milestone <id> --network testnet # as payer: ONE transaction from your machine
236
228
  cascrow verify --contract <contractId> --proof "API live at https://api.example.com, all endpoints responding"
229
+ # The verdict is a recommendation. The builder claims on chain; the payer releases or objects.
237
230
  ```
238
231
 
232
+ `cascrow v3 sign …` runs the pinned local signer (`npx cascrow-signer@0.2.0`), which keeps
233
+ your key on your machine. This CLI never takes a private key (`escrow-fund`, which did, was
234
+ removed in 2.0.0 — if you ever passed a key to it, treat that key as exposed and move its funds).
235
+
239
236
  ## Example: Agent-to-Agent Handoff
240
237
 
241
238
  ```bash
@@ -252,7 +249,7 @@ cascrow join --invite <code>
252
249
 
253
250
  | Chain | Purpose |
254
251
  |---|---|
255
- | XRPL EVM Sidechain (Chain ID 1449000) | RLUSD escrow smart contract |
252
+ | XRPL EVM Sidechain (Chain ID 1449000, testnet) | MilestoneEscrowV3 — non-custodial escrow in native XRP, no platform role |
256
253
  | XRP Ledger Mainnet | NFT completion certificates + audit trail |
257
254
 
258
255
  ## Links