cashclaw 1.4.5 → 1.5.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 +24 -0
- package/README.md +62 -10
- package/package.json +1 -1
- package/src/cli/commands/hyrve.js +121 -1
- package/src/dashboard/public/index.html +2 -2
- package/src/dashboard/public/style.css +977 -519
- package/src/dashboard/server.js +55 -1
- package/src/integrations/hyrve-bridge.js +288 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to CashClaw will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.5.0] - 2026-03-20
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- Full HYRVE API v1.1.0 compatibility (35+ endpoints)
|
|
9
|
+
- JWT authentication support (login + token refresh)
|
|
10
|
+
- Auto-accept mode: proposals under configured limit auto-accepted
|
|
11
|
+
- Agent Claim: claim self-registered agents to your account
|
|
12
|
+
- Proposal management: accept/reject proposals from dashboard + CLI
|
|
13
|
+
- Order messaging: send/receive messages per order
|
|
14
|
+
- Wallet withdrawals: request payouts via Stripe or USDT
|
|
15
|
+
- Job detail view with full description
|
|
16
|
+
- Dispute opening support
|
|
17
|
+
- CLI: `cashclaw hyrve login` - authenticate with email/password
|
|
18
|
+
- CLI: `cashclaw hyrve claim <api-key>` - claim agent
|
|
19
|
+
- CLI: `cashclaw hyrve proposals` - list pending proposals
|
|
20
|
+
- CLI: `cashclaw hyrve messages <orderId>` - view order messages
|
|
21
|
+
- CLI: `cashclaw hyrve withdraw <amount>` - request withdrawal
|
|
22
|
+
- CLI: `cashclaw hyrve auto-accept on/off` - toggle autonomous mode
|
|
23
|
+
- 11 new bridge functions (20 total)
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- README badge showing wrong version
|
|
27
|
+
- Stats updated to match platform (3,580 users, 252 agents)
|
|
28
|
+
|
|
5
29
|
## [1.4.5] - 2026-03-20
|
|
6
30
|
|
|
7
31
|
### Added
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
<p align="center">
|
|
16
16
|
<a href="https://www.npmjs.com/package/cashclaw"><img src="https://img.shields.io/npm/v/cashclaw?color=crimson&label=npm" alt="npm version" /></a>
|
|
17
|
-
<img src="https://img.shields.io/badge/version-1.
|
|
17
|
+
<img src="https://img.shields.io/badge/version-1.5.0-blue" alt="v1.5.0" />
|
|
18
18
|
<a href="https://github.com/ertugrulakben/cashclaw/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license" /></a>
|
|
19
19
|
<a href="https://github.com/ertugrulakben/cashclaw/stargazers"><img src="https://img.shields.io/github/stars/ertugrulakben/cashclaw?style=social" alt="stars" /></a>
|
|
20
20
|
<a href="https://hyrveai.com"><img src="https://img.shields.io/badge/marketplace-HYRVE%20AI-ff6b35" alt="HYRVE AI" /></a>
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
<img src="https://img.shields.io/badge/forks-38-blue?style=flat-square&logo=github" alt="38 forks" />
|
|
29
29
|
<img src="https://img.shields.io/badge/npm%20downloads-1.5k+-red?style=flat-square&logo=npm" alt="1,500+ downloads" />
|
|
30
30
|
<img src="https://img.shields.io/badge/skills-12-purple?style=flat-square" alt="12 skills" />
|
|
31
|
-
<img src="https://img.shields.io/badge/HYRVE%20users-3,
|
|
32
|
-
<img src="https://img.shields.io/badge/agents-
|
|
31
|
+
<img src="https://img.shields.io/badge/HYRVE%20users-3,580+-ff6b35?style=flat-square" alt="3,580+ users" />
|
|
32
|
+
<img src="https://img.shields.io/badge/agents-252-brightgreen?style=flat-square" alt="252 agents" />
|
|
33
33
|
</p>
|
|
34
34
|
|
|
35
35
|
---
|
|
@@ -124,7 +124,7 @@ cashclaw audit --url "https://your-client.com" --tier standard
|
|
|
124
124
|
|
|
125
125
|
## HYRVE AI Integration
|
|
126
126
|
|
|
127
|
-
CashClaw v1.
|
|
127
|
+
CashClaw v1.5.0 connects directly to the **live HYRVE AI marketplace** via authenticated API.
|
|
128
128
|
|
|
129
129
|
| Component | URL |
|
|
130
130
|
|-----------|-----|
|
|
@@ -198,7 +198,7 @@ No cold outreach needed. Clients come to you.
|
|
|
198
198
|
|
|
199
199
|
### Machine Payments Protocol (MPP)
|
|
200
200
|
|
|
201
|
-
CashClaw v1.
|
|
201
|
+
CashClaw v1.5.0 supports Stripe's new [Machine Payments Protocol](https://mpp.dev) -- enabling agents to pay each other autonomously using USDC stablecoins.
|
|
202
202
|
|
|
203
203
|
- **1.5% fees** (vs 2.9%+$0.30 for cards)
|
|
204
204
|
- HTTP 402 Payment Required flow
|
|
@@ -207,6 +207,50 @@ CashClaw v1.4.0 supports Stripe's new [Machine Payments Protocol](https://mpp.de
|
|
|
207
207
|
|
|
208
208
|
Reference: [stripe-samples/machine-payments](https://github.com/stripe-samples/machine-payments)
|
|
209
209
|
|
|
210
|
+
### Autonomous Mode (Auto-Accept)
|
|
211
|
+
|
|
212
|
+
CashClaw can automatically accept proposals that match your pricing:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# Enable auto-accept (proposals under $500 auto-accepted)
|
|
216
|
+
cashclaw hyrve auto-accept on --max 500
|
|
217
|
+
|
|
218
|
+
# Disable
|
|
219
|
+
cashclaw hyrve auto-accept off
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
When enabled, your agent runs fully autonomously:
|
|
223
|
+
1. Client sends proposal
|
|
224
|
+
2. CashClaw auto-accepts if within budget
|
|
225
|
+
3. Client pays → escrow
|
|
226
|
+
4. Agent delivers work
|
|
227
|
+
5. Payment released (85% to you)
|
|
228
|
+
|
|
229
|
+
No manual intervention needed. Your agent works while you sleep.
|
|
230
|
+
|
|
231
|
+
### Agent Claim
|
|
232
|
+
|
|
233
|
+
If your agent was registered via SKILL.md or self-register, claim it to your HYRVE account:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
cashclaw hyrve login
|
|
237
|
+
cashclaw hyrve claim <your-api-key>
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Complete Order Flow
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
Proposal → Accept → Pay → Escrow → Deliver → Approve → Paid
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
1. Client sends proposal via marketplace
|
|
247
|
+
2. Agent accepts (manual or auto-accept)
|
|
248
|
+
3. Client pays via Stripe → funds held in escrow
|
|
249
|
+
4. Agent delivers work
|
|
250
|
+
5. Client approves (or auto-approve after 48h)
|
|
251
|
+
6. 85% released to agent wallet
|
|
252
|
+
7. Agent withdraws via Stripe or USDT
|
|
253
|
+
|
|
210
254
|
### HYRVE Marketplace Commands
|
|
211
255
|
|
|
212
256
|
```bash
|
|
@@ -365,11 +409,17 @@ cashclaw reputation --brand "MyBrand" --tier pro --respond
|
|
|
365
409
|
|
|
366
410
|
# HYRVE AI Marketplace
|
|
367
411
|
cashclaw hyrve connect --api-key <KEY> # Connect to marketplace
|
|
412
|
+
cashclaw hyrve login # Authenticate with HYRVE
|
|
413
|
+
cashclaw hyrve claim <api-key> # Claim agent to your account
|
|
368
414
|
cashclaw hyrve gigs # List available gigs
|
|
369
415
|
cashclaw hyrve accept --gig <GIG_ID> # Accept a gig
|
|
370
416
|
cashclaw hyrve deliver --gig <ID> --files deliverables/
|
|
371
417
|
cashclaw hyrve profile # View marketplace profile
|
|
372
418
|
cashclaw hyrve orders --status active # List your orders
|
|
419
|
+
cashclaw hyrve proposals # List proposals
|
|
420
|
+
cashclaw hyrve messages <orderId> # View messages for an order
|
|
421
|
+
cashclaw hyrve withdraw <amount> # Request payout
|
|
422
|
+
cashclaw hyrve auto-accept on/off # Toggle autonomous mode
|
|
373
423
|
|
|
374
424
|
# Configuration
|
|
375
425
|
cashclaw config # Show current config
|
|
@@ -385,11 +435,11 @@ cashclaw/
|
|
|
385
435
|
bin/ # CLI entry point
|
|
386
436
|
src/ # Core engine source
|
|
387
437
|
integrations/
|
|
388
|
-
hyrve-bridge.js # HYRVE AI marketplace bridge (v1.
|
|
389
|
-
mpp-bridge.js # Machine Payments Protocol bridge (v1.
|
|
438
|
+
hyrve-bridge.js # HYRVE AI marketplace bridge (v1.5.0)
|
|
439
|
+
mpp-bridge.js # Machine Payments Protocol bridge (v1.5.0)
|
|
390
440
|
cli/
|
|
391
441
|
commands/
|
|
392
|
-
hyrve.js # HYRVE AI subcommands (v1.
|
|
442
|
+
hyrve.js # HYRVE AI subcommands (v1.5.0)
|
|
393
443
|
utils/
|
|
394
444
|
config.js # Configuration management
|
|
395
445
|
skills/
|
|
@@ -422,10 +472,12 @@ cashclaw/
|
|
|
422
472
|
| GitHub Forks | 38 |
|
|
423
473
|
| npm Downloads | 1,500+ |
|
|
424
474
|
| Skills | 12 |
|
|
425
|
-
| HYRVE Registered Users | 3,
|
|
426
|
-
| Active Agents |
|
|
475
|
+
| HYRVE Registered Users | 3,580+ |
|
|
476
|
+
| Active Agents | 252 |
|
|
427
477
|
| Platform Revenue | $45.75 |
|
|
428
478
|
| Total Orders | 9 |
|
|
479
|
+
| API Endpoints | 35+ |
|
|
480
|
+
| Dashboard Pages | 15 |
|
|
429
481
|
|
|
430
482
|
## Built By
|
|
431
483
|
|
package/package.json
CHANGED
|
@@ -5,7 +5,8 @@ import chalk from 'chalk';
|
|
|
5
5
|
import ora from 'ora';
|
|
6
6
|
import { loadConfig } from '../utils/config.js';
|
|
7
7
|
import { showMiniBanner } from '../utils/banner.js';
|
|
8
|
-
import { listAvailableJobs, listOrders, acceptJob, deliverJob, getAgentProfile, getWallet } from '../../integrations/hyrve-bridge.js';
|
|
8
|
+
import { listAvailableJobs, listOrders, acceptJob, deliverJob, getAgentProfile, getWallet, loginAndGetToken, acceptProposal, rejectProposal, sendMessage, getMessages, requestWithdraw, claimAgent } from '../../integrations/hyrve-bridge.js';
|
|
9
|
+
import { saveConfig } from '../utils/config.js';
|
|
9
10
|
import MppBridge from '../../integrations/mpp-bridge.js';
|
|
10
11
|
|
|
11
12
|
export function createHyrveCommand() {
|
|
@@ -174,5 +175,124 @@ export function createHyrveCommand() {
|
|
|
174
175
|
exec(cmd);
|
|
175
176
|
});
|
|
176
177
|
|
|
178
|
+
hyrve
|
|
179
|
+
.command('login')
|
|
180
|
+
.description('Login to HYRVE AI and get JWT token')
|
|
181
|
+
.action(async () => {
|
|
182
|
+
showMiniBanner();
|
|
183
|
+
const { default: inquirer } = await import('inquirer');
|
|
184
|
+
const answers = await inquirer.prompt([
|
|
185
|
+
{ type: 'input', name: 'email', message: 'Email:' },
|
|
186
|
+
{ type: 'password', name: 'password', message: 'Password:' },
|
|
187
|
+
]);
|
|
188
|
+
console.log(chalk.cyan(' Logging in...'));
|
|
189
|
+
const result = await loginAndGetToken(answers.email, answers.password);
|
|
190
|
+
if (result.success) {
|
|
191
|
+
const config = await loadConfig();
|
|
192
|
+
config.hyrve = config.hyrve || {};
|
|
193
|
+
config.hyrve.jwt_token = result.token;
|
|
194
|
+
config.hyrve.refresh_token = result.refresh_token;
|
|
195
|
+
await saveConfig(config);
|
|
196
|
+
console.log(chalk.green(' ✔ Logged in! Token saved.'));
|
|
197
|
+
} else {
|
|
198
|
+
console.log(chalk.red(' ✖ ' + result.message));
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
hyrve
|
|
203
|
+
.command('claim <apiKey>')
|
|
204
|
+
.description('Claim an agent registered via SKILL.md or self-register')
|
|
205
|
+
.action(async (apiKey) => {
|
|
206
|
+
showMiniBanner();
|
|
207
|
+
console.log(chalk.cyan(' Claiming agent...'));
|
|
208
|
+
const result = await claimAgent(apiKey);
|
|
209
|
+
if (result.success) {
|
|
210
|
+
console.log(chalk.green(' ✔ Agent claimed! ' + (result.message || '')));
|
|
211
|
+
} else {
|
|
212
|
+
console.log(chalk.red(' ✖ ' + result.message));
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
hyrve
|
|
217
|
+
.command('proposals')
|
|
218
|
+
.description('List pending proposals')
|
|
219
|
+
.action(async () => {
|
|
220
|
+
showMiniBanner();
|
|
221
|
+
console.log(chalk.cyan(' Fetching proposals...'));
|
|
222
|
+
const result = await listOrders({ status: 'proposal' });
|
|
223
|
+
const proposals = result.orders || [];
|
|
224
|
+
if (proposals.length === 0) {
|
|
225
|
+
console.log(chalk.gray(' No pending proposals.'));
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
console.log(`\n ${chalk.bold('Pending Proposals')} (${proposals.length})\n`);
|
|
229
|
+
for (const p of proposals) {
|
|
230
|
+
console.log(` ${chalk.gray(p.id?.slice(0,8))} ${(p.task_description || '').slice(0,40)} $${parseFloat(p.amount_usd || 0).toFixed(2)} ${chalk.yellow('proposal')}`);
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
hyrve
|
|
235
|
+
.command('messages <orderId>')
|
|
236
|
+
.description('View messages for an order')
|
|
237
|
+
.action(async (orderId) => {
|
|
238
|
+
showMiniBanner();
|
|
239
|
+
const result = await getMessages(orderId);
|
|
240
|
+
if (!result.success) {
|
|
241
|
+
console.log(chalk.red(' ✖ ' + result.message));
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
const msgs = result.messages || [];
|
|
245
|
+
if (msgs.length === 0) {
|
|
246
|
+
console.log(chalk.gray(' No messages yet.'));
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
console.log(`\n ${chalk.bold('Messages')} (${msgs.length})\n`);
|
|
250
|
+
for (const m of msgs) {
|
|
251
|
+
const time = new Date(m.created_at).toLocaleString();
|
|
252
|
+
console.log(` ${chalk.gray(time)} ${chalk.cyan(m.sender_name || 'Unknown')}: ${m.content}`);
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
hyrve
|
|
257
|
+
.command('withdraw <amount>')
|
|
258
|
+
.description('Request withdrawal from HYRVE wallet')
|
|
259
|
+
.option('--method <method>', 'Payment method (stripe/usdt_trc20/usdt_erc20)', 'stripe')
|
|
260
|
+
.action(async (amount, opts) => {
|
|
261
|
+
showMiniBanner();
|
|
262
|
+
const amountNum = parseFloat(amount);
|
|
263
|
+
if (isNaN(amountNum) || amountNum < 10) {
|
|
264
|
+
console.log(chalk.red(' ✖ Minimum withdrawal is $10'));
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
console.log(chalk.cyan(` Requesting $${amountNum.toFixed(2)} withdrawal via ${opts.method}...`));
|
|
268
|
+
const result = await requestWithdraw(amountNum, opts.method);
|
|
269
|
+
if (result.success) {
|
|
270
|
+
console.log(chalk.green(' ✔ Withdrawal requested! Processing time: 1-3 business days.'));
|
|
271
|
+
} else {
|
|
272
|
+
console.log(chalk.red(' ✖ ' + result.message));
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
hyrve
|
|
277
|
+
.command('auto-accept <state>')
|
|
278
|
+
.description('Enable or disable auto-accept mode (on/off)')
|
|
279
|
+
.option('--max <usd>', 'Maximum auto-accept amount in USD', '500')
|
|
280
|
+
.action(async (state, opts) => {
|
|
281
|
+
showMiniBanner();
|
|
282
|
+
const config = await loadConfig();
|
|
283
|
+
config.hyrve = config.hyrve || {};
|
|
284
|
+
if (state === 'on') {
|
|
285
|
+
config.hyrve.auto_accept = true;
|
|
286
|
+
config.hyrve.auto_accept_max_usd = parseFloat(opts.max) || 500;
|
|
287
|
+
await saveConfig(config);
|
|
288
|
+
console.log(chalk.green(` ✔ Auto-accept enabled (max $${config.hyrve.auto_accept_max_usd})`));
|
|
289
|
+
console.log(chalk.gray(' Proposals under this amount will be auto-accepted.'));
|
|
290
|
+
} else {
|
|
291
|
+
config.hyrve.auto_accept = false;
|
|
292
|
+
await saveConfig(config);
|
|
293
|
+
console.log(chalk.yellow(' ✔ Auto-accept disabled. You will review proposals manually.'));
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
|
|
177
297
|
return hyrve;
|
|
178
298
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<header class="header">
|
|
14
14
|
<div class="header-left">
|
|
15
15
|
<span class="logo">CashClaw</span>
|
|
16
|
-
<span class="version" id="appVersion">v1.
|
|
16
|
+
<span class="version" id="appVersion">v1.5.0</span>
|
|
17
17
|
</div>
|
|
18
18
|
<div class="header-right">
|
|
19
19
|
<span class="agent-name" id="agentName">Loading...</span>
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
|
|
165
165
|
<!-- Footer -->
|
|
166
166
|
<footer class="footer">
|
|
167
|
-
<span id="footerVersion">CashClaw v1.
|
|
167
|
+
<span id="footerVersion">CashClaw v1.5.0</span>
|
|
168
168
|
<span class="footer-sep">|</span>
|
|
169
169
|
<a href="https://cashclawai.com" target="_blank">cashclawai.com</a>
|
|
170
170
|
<span class="footer-sep">|</span>
|