arc402-cli 0.3.1 → 0.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqY5D"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuiB5D"}
@@ -378,6 +378,172 @@ function registerAgentCommands(program) {
378
378
  throw new Error("No wallet configured");
379
379
  await program.parseAsync([process.argv[0], process.argv[1], "agent", "info", address], { from: "user" });
380
380
  });
381
+ // ─── profile (subgraph view) ─────────────────────────────────────────────
382
+ agent
383
+ .command("profile <address>")
384
+ .description("Show detailed agent profile from the Arena subgraph")
385
+ .option("--json", "Output as JSON")
386
+ .action(async (address, opts) => {
387
+ const normalizedAddr = address.toLowerCase();
388
+ try {
389
+ const data = await agentSubgraphQuery(`{
390
+ agent(id: "${normalizedAddr}") {
391
+ id name serviceType endpoint active
392
+ trustScore { globalScore }
393
+ capabilities(where: { active: true }) { capability active }
394
+ handshakesSent(first: 100, orderBy: timestamp, orderDirection: desc) {
395
+ id to { id name } hsType note timestamp
396
+ }
397
+ handshakesReceived(first: 100, orderBy: timestamp, orderDirection: desc) {
398
+ id from { id name } hsType note timestamp
399
+ }
400
+ }
401
+ clientAgreements: agreements(where: { client: "${normalizedAddr}", state: 1 }, first: 10) {
402
+ id serviceType price state
403
+ }
404
+ providerAgreements: agreements(where: { provider: "${normalizedAddr}", state: 1 }, first: 10) {
405
+ id serviceType price state
406
+ }
407
+ vouchedFor: vouches(where: { voucher: "${normalizedAddr}", active: true }, first: 100) {
408
+ id newAgent { id name } stakeAmount
409
+ }
410
+ vouchedBy: vouches(where: { newAgent: "${normalizedAddr}", active: true }, first: 100) {
411
+ id voucher { id name } stakeAmount
412
+ }
413
+ }`);
414
+ const agentData = data["agent"];
415
+ if (!agentData) {
416
+ if (opts.json) {
417
+ console.log(JSON.stringify({ error: "Agent not registered", address }));
418
+ }
419
+ else {
420
+ console.log(chalk_1.default.red(`Agent not registered: ${address}`));
421
+ }
422
+ process.exit(1);
423
+ }
424
+ if (opts.json) {
425
+ console.log(JSON.stringify(data, null, 2));
426
+ return;
427
+ }
428
+ const sent = agentData["handshakesSent"] ?? [];
429
+ const received = agentData["handshakesReceived"] ?? [];
430
+ const sentToIds = new Set(sent.map((h) => h["to"]["id"]));
431
+ const receivedFromIds = new Set(received.map((h) => h["from"]["id"]));
432
+ const mutual = [...sentToIds].filter((id) => receivedFromIds.has(id)).length;
433
+ const trustScore = agentData["trustScore"]?.["globalScore"] ?? 0;
434
+ const caps = agentData["capabilities"] ?? [];
435
+ const allAgreements = [
436
+ ...(data["clientAgreements"] ?? []),
437
+ ...(data["providerAgreements"] ?? []),
438
+ ];
439
+ const hsTypeLabels = {
440
+ 0: "Respected",
441
+ 1: "Curious",
442
+ 2: "Endorsed",
443
+ 3: "Thanked",
444
+ 4: "Collaborated",
445
+ 5: "Challenged",
446
+ 6: "Referred",
447
+ 7: "Hello",
448
+ };
449
+ const recentActivity = [
450
+ ...sent.slice(0, 3).map((h) => {
451
+ const to = h["to"];
452
+ const label = hsTypeLabels[Number(h["hsType"])] ?? `Type${h["hsType"]}`;
453
+ const note = h["note"] ? ` — "${h["note"]}"` : "";
454
+ return {
455
+ ts: Number(h["timestamp"]),
456
+ line: ` [${profileDate(Number(h["timestamp"]))}] ${label} ${to["name"] || shortAddress(to["id"])}${note}`,
457
+ };
458
+ }),
459
+ ...received.slice(0, 3).map((h) => {
460
+ const from = h["from"];
461
+ const label = hsTypeLabels[Number(h["hsType"])] ?? `Type${h["hsType"]}`;
462
+ const note = h["note"] ? ` — "${h["note"]}"` : "";
463
+ return {
464
+ ts: Number(h["timestamp"]),
465
+ line: ` [${profileDate(Number(h["timestamp"]))}] Received ${label} from ${from["name"] || shortAddress(from["id"])}${note}`,
466
+ };
467
+ }),
468
+ ]
469
+ .sort((a, b) => b.ts - a.ts)
470
+ .slice(0, 5);
471
+ const vouchedFor = data["vouchedFor"] ?? [];
472
+ const vouchedBy = data["vouchedBy"] ?? [];
473
+ const line = "═".repeat(43);
474
+ console.log(chalk_1.default.bold(line));
475
+ console.log(` ${chalk_1.default.bold(agentData["name"] || "(unnamed)")}`);
476
+ console.log(` ${agentData["id"]}`);
477
+ console.log(chalk_1.default.bold(line));
478
+ console.log();
479
+ console.log(` Service Type: ${agentData["serviceType"]}`);
480
+ console.log(` Endpoint: ${agentData["endpoint"] || chalk_1.default.dim("(none)")}`);
481
+ console.log(` Status: ${agentData["active"] ? chalk_1.default.green("✅ Active") : chalk_1.default.red("❌ Inactive")}`);
482
+ console.log(` Trust Score: ${trustScore}`);
483
+ console.log();
484
+ if (caps.length > 0) {
485
+ console.log(" Capabilities:");
486
+ for (const cap of caps) {
487
+ console.log(` ✓ ${cap["capability"]}`);
488
+ }
489
+ console.log();
490
+ }
491
+ console.log(` Handshakes: ${sent.length} sent • ${received.length} received • ${mutual} mutual connections`);
492
+ console.log();
493
+ if (recentActivity.length > 0) {
494
+ console.log(" Recent Activity:");
495
+ for (const a of recentActivity) {
496
+ console.log(a.line);
497
+ }
498
+ console.log();
499
+ }
500
+ console.log(" Active Agreements:");
501
+ if (allAgreements.length === 0) {
502
+ console.log(" None");
503
+ }
504
+ else {
505
+ for (const a of allAgreements.slice(0, 5)) {
506
+ console.log(` #${a["id"].slice(0, 8)} ${a["serviceType"]}`);
507
+ }
508
+ }
509
+ console.log();
510
+ console.log(" Vouches:");
511
+ console.log(` Vouched for: ${vouchedFor.length} agents`);
512
+ console.log(` Vouched by: ${vouchedBy.length} agents`);
513
+ }
514
+ catch (err) {
515
+ const msg = err instanceof Error ? err.message : String(err);
516
+ if (opts.json) {
517
+ console.log(JSON.stringify({ error: "Subgraph unavailable", details: msg }));
518
+ }
519
+ else {
520
+ console.error(chalk_1.default.red(`Subgraph unavailable: ${msg}`));
521
+ }
522
+ process.exit(1);
523
+ }
524
+ });
525
+ }
526
+ // ─── subgraph helpers (used by agent profile) ────────────────────────────────
527
+ const AGENT_SUBGRAPH_URL = "https://api.studio.thegraph.com/query/1744310/arc-402/v0.2.0";
528
+ async function agentSubgraphQuery(query) {
529
+ const res = await fetch(AGENT_SUBGRAPH_URL, {
530
+ method: "POST",
531
+ headers: { "Content-Type": "application/json" },
532
+ body: JSON.stringify({ query }),
533
+ });
534
+ if (!res.ok)
535
+ throw new Error(`Subgraph HTTP ${res.status}`);
536
+ const json = (await res.json());
537
+ if (json.errors?.length)
538
+ throw new Error(`Subgraph error: ${JSON.stringify(json.errors[0])}`);
539
+ return json.data ?? {};
540
+ }
541
+ function shortAddress(addr) {
542
+ return addr.length > 12 ? `${addr.slice(0, 6)}...${addr.slice(-4)}` : addr;
543
+ }
544
+ function profileDate(ts) {
545
+ const d = new Date(ts * 1000);
546
+ return d.toLocaleDateString("en-US", { month: "short", day: "numeric" });
381
547
  }
382
548
  // ─── subdomain claim ──────────────────────────────────────────────────────────
383
549
  async function claimSubdomain(subdomain, walletAddress, tunnelTarget) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerArenaCommands(program: Command): void;
3
+ //# sourceMappingURL=arena.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arena.d.ts","sourceRoot":"","sources":["../../src/commands/arena.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsG5D"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerArenaCommands = registerArenaCommands;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const feed_1 = require("./feed");
9
+ const SUBGRAPH_URL = "https://api.studio.thegraph.com/query/1744310/arc-402/v0.2.0";
10
+ async function gql(query) {
11
+ const res = await fetch(SUBGRAPH_URL, {
12
+ method: "POST",
13
+ headers: { "Content-Type": "application/json" },
14
+ body: JSON.stringify({ query }),
15
+ });
16
+ if (!res.ok)
17
+ throw new Error(`Subgraph HTTP ${res.status}`);
18
+ const json = (await res.json());
19
+ if (json.errors?.length)
20
+ throw new Error(`Subgraph error: ${JSON.stringify(json.errors[0])}`);
21
+ return json.data ?? {};
22
+ }
23
+ function registerArenaCommands(program) {
24
+ const arena = program.command("arena").description("Arena network commands");
25
+ // ─── arena stats ───────────────────────────────────────────────────────────
26
+ arena
27
+ .command("stats")
28
+ .description("Show Arena network statistics")
29
+ .option("--json", "Output as JSON")
30
+ .action(async (opts) => {
31
+ try {
32
+ const data = await gql(`{
33
+ protocolStats(id: "global") {
34
+ totalAgents
35
+ totalWallets
36
+ totalAgreements
37
+ totalHandshakes
38
+ totalConnections
39
+ totalVouches
40
+ totalCapabilityClaims
41
+ }
42
+ }`);
43
+ const stats = data["protocolStats"];
44
+ if (!stats) {
45
+ const msg = "No stats available — subgraph may still be syncing.";
46
+ if (opts.json) {
47
+ console.log(JSON.stringify({ error: msg }));
48
+ }
49
+ else {
50
+ console.error(chalk_1.default.red(msg));
51
+ }
52
+ process.exit(1);
53
+ }
54
+ // Try to count active agreements separately — non-fatal if it fails
55
+ let activeAgreements = 0;
56
+ try {
57
+ const agData = await gql(`{
58
+ proposals: agreements(where: { state: 0 }, first: 1000) { id }
59
+ accepted: agreements(where: { state: 1 }, first: 1000) { id }
60
+ }`);
61
+ activeAgreements =
62
+ (agData["proposals"] ?? []).length +
63
+ (agData["accepted"] ?? []).length;
64
+ }
65
+ catch {
66
+ // ignore — active count just stays 0
67
+ }
68
+ if (opts.json) {
69
+ console.log(JSON.stringify({ ...stats, activeAgreements }, null, 2));
70
+ return;
71
+ }
72
+ const pad = (v) => String(v ?? 0).padStart(6);
73
+ console.log(chalk_1.default.bold("╔══════════════════════════════════════╗"));
74
+ console.log(chalk_1.default.bold("║ ARC Arena — Network Stats ║"));
75
+ console.log(chalk_1.default.bold("╚══════════════════════════════════════╝"));
76
+ console.log();
77
+ console.log(` Agents ${pad(stats["totalAgents"])} registered`);
78
+ console.log(` Wallets ${pad(stats["totalWallets"])} deployed`);
79
+ console.log(` Agreements ${pad(stats["totalAgreements"])} total (${activeAgreements} active)`);
80
+ console.log(` Handshakes ${pad(stats["totalHandshakes"])} sent`);
81
+ console.log(` Connections ${pad(stats["totalConnections"])} unique pairs`);
82
+ console.log(` Vouches ${pad(stats["totalVouches"])} active`);
83
+ console.log(` Capabilities ${pad(stats["totalCapabilityClaims"])} claimed`);
84
+ console.log();
85
+ console.log(chalk_1.default.dim(" Subgraph: v0.2.0 · synced"));
86
+ }
87
+ catch (err) {
88
+ const msg = err instanceof Error ? err.message : String(err);
89
+ if (opts.json) {
90
+ console.log(JSON.stringify({ error: "Subgraph unavailable", details: msg }));
91
+ }
92
+ else {
93
+ console.error(chalk_1.default.red(`Subgraph unavailable: ${msg}`));
94
+ }
95
+ process.exit(1);
96
+ }
97
+ });
98
+ // ─── arena feed (alias) ─────────────────────────────────────────────────────
99
+ arena
100
+ .command("feed")
101
+ .description("Live terminal feed of recent Arena events (alias for arc402 feed)")
102
+ .option("--limit <n>", "Number of events to show", "20")
103
+ .option("--live", "Poll every 30s for new events")
104
+ .option("--type <type>", "Filter by event type: handshake|hire|fulfill|vouch")
105
+ .option("--json", "Output as JSON")
106
+ .action(async (opts) => {
107
+ try {
108
+ await (0, feed_1.runFeed)(opts);
109
+ }
110
+ catch (err) {
111
+ const msg = err instanceof Error ? err.message : String(err);
112
+ if (opts.json) {
113
+ console.log(JSON.stringify({ error: "Subgraph unavailable", details: msg }));
114
+ }
115
+ else {
116
+ console.error(chalk_1.default.red(`Subgraph unavailable: ${msg}`));
117
+ }
118
+ process.exit(1);
119
+ }
120
+ });
121
+ }
122
+ //# sourceMappingURL=arena.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arena.js","sourceRoot":"","sources":["../../src/commands/arena.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Command } from "commander";
2
+ export interface FeedOptions {
3
+ limit?: string;
4
+ live?: boolean;
5
+ type?: string;
6
+ json?: boolean;
7
+ }
8
+ export declare function runFeed(opts: FeedOptions): Promise<void>;
9
+ export declare function registerFeedCommand(program: Command): void;
10
+ //# sourceMappingURL=feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../src/commands/feed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0JpC,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C9D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqB1D"}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runFeed = runFeed;
7
+ exports.registerFeedCommand = registerFeedCommand;
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const SUBGRAPH_URL = "https://api.studio.thegraph.com/query/1744310/arc-402/v0.2.0";
10
+ const HS_TYPE_LABELS = {
11
+ 0: "Respected",
12
+ 1: "Curious",
13
+ 2: "Endorsed",
14
+ 3: "Thanked",
15
+ 4: "Collaborated",
16
+ 5: "Challenged",
17
+ 6: "Referred",
18
+ 7: "Hello",
19
+ };
20
+ async function gql(query) {
21
+ const res = await fetch(SUBGRAPH_URL, {
22
+ method: "POST",
23
+ headers: { "Content-Type": "application/json" },
24
+ body: JSON.stringify({ query }),
25
+ });
26
+ if (!res.ok)
27
+ throw new Error(`Subgraph HTTP ${res.status}`);
28
+ const json = (await res.json());
29
+ if (json.errors?.length)
30
+ throw new Error(`Subgraph error: ${JSON.stringify(json.errors[0])}`);
31
+ return json.data ?? {};
32
+ }
33
+ function shortAddr(addr) {
34
+ return addr.length > 12 ? `${addr.slice(0, 6)}...${addr.slice(-4)}` : addr;
35
+ }
36
+ function utcTime(ts) {
37
+ const d = new Date(ts * 1000);
38
+ const h = d.getUTCHours().toString().padStart(2, "0");
39
+ const m = d.getUTCMinutes().toString().padStart(2, "0");
40
+ return `${h}:${m} UTC`;
41
+ }
42
+ function weiToEth(wei) {
43
+ return (Number(BigInt(wei)) / 1e18).toFixed(4);
44
+ }
45
+ function weiToUsdc(wei) {
46
+ return (Number(BigInt(wei)) / 1e6).toFixed(2);
47
+ }
48
+ async function fetchFeedEvents(limit, typeFilter, sinceTs) {
49
+ const includeHandshakes = !typeFilter || typeFilter === "handshake";
50
+ const includeHire = !typeFilter || typeFilter === "hire";
51
+ const includeFulfill = !typeFilter || typeFilter === "fulfill";
52
+ const includeVouch = !typeFilter || typeFilter === "vouch";
53
+ const tsFilt = sinceTs ? `, where: { timestamp_gt: "${sinceTs}" }` : "";
54
+ const agTsFilt = sinceTs ? `, where: { proposedAt_gt: "${sinceTs}" }` : "";
55
+ const parts = [];
56
+ if (includeHandshakes) {
57
+ parts.push(`
58
+ handshakes(orderBy: timestamp, orderDirection: desc, first: ${limit}${tsFilt}) {
59
+ id from { id name } to { id name } hsType note timestamp isNewConnection
60
+ }`);
61
+ }
62
+ if (includeHire || includeFulfill) {
63
+ parts.push(`
64
+ agreements(orderBy: proposedAt, orderDirection: desc, first: ${limit}${agTsFilt}) {
65
+ id client provider serviceType price state proposedAt updatedAt
66
+ }`);
67
+ }
68
+ if (includeVouch) {
69
+ parts.push(`
70
+ vouches(orderBy: id, orderDirection: desc, first: ${limit}) {
71
+ id voucher { id name } newAgent { id name } stakeAmount active
72
+ }`);
73
+ }
74
+ const data = await gql(`{ ${parts.join("\n")} }`);
75
+ const events = [];
76
+ if (includeHandshakes) {
77
+ for (const h of data.handshakes ?? []) {
78
+ events.push({ type: "handshake", timestamp: Number(h["timestamp"]), raw: h });
79
+ }
80
+ }
81
+ if (data["agreements"]) {
82
+ for (const a of data["agreements"]) {
83
+ const state = Number(a["state"]);
84
+ if (includeHire && state === 0) {
85
+ events.push({ type: "hire", timestamp: Number(a["proposedAt"]), raw: a });
86
+ }
87
+ if (includeFulfill && state === 2) {
88
+ events.push({ type: "fulfill", timestamp: Number(a["updatedAt"]), raw: a });
89
+ }
90
+ }
91
+ }
92
+ if (includeVouch) {
93
+ for (const v of data["vouches"] ?? []) {
94
+ events.push({ type: "vouch", timestamp: 0, raw: v });
95
+ }
96
+ }
97
+ events.sort((a, b) => b.timestamp - a.timestamp);
98
+ return events.slice(0, limit);
99
+ }
100
+ function renderFeedEvent(ev) {
101
+ const ts = ev.timestamp > 0 ? `[${utcTime(ev.timestamp)}]` : "[ ]";
102
+ switch (ev.type) {
103
+ case "handshake": {
104
+ const h = ev.raw;
105
+ const from = h["from"];
106
+ const to = h["to"];
107
+ const fromName = from["name"] || shortAddr(from["id"]);
108
+ const toName = to["name"] || shortAddr(to["id"]);
109
+ const label = HS_TYPE_LABELS[Number(h["hsType"])] ?? `Type${h["hsType"]}`;
110
+ const note = h["note"] ? ` "${h["note"]}"` : "";
111
+ return chalk_1.default.cyan(`${ts} 🤝 ${fromName} → ${toName} ${label}${note}`);
112
+ }
113
+ case "hire": {
114
+ const a = ev.raw;
115
+ const price = a["price"] ? ` ${weiToEth(a["price"])} ETH` : "";
116
+ return chalk_1.default.yellow(`${ts} 📋 ${shortAddr(a["client"])} hired ${shortAddr(a["provider"])} ${a["serviceType"]}${price}`);
117
+ }
118
+ case "fulfill": {
119
+ const a = ev.raw;
120
+ const price = a["price"] ? ` ${weiToEth(a["price"])} ETH released` : "";
121
+ return chalk_1.default.green(`${ts} ✅ Agreement #${a["id"].slice(0, 8)} fulfilled${price}`);
122
+ }
123
+ case "vouch": {
124
+ const v = ev.raw;
125
+ const voucher = v["voucher"];
126
+ const newAgent = v["newAgent"];
127
+ const vName = voucher["name"] || shortAddr(voucher["id"]);
128
+ const nName = newAgent["name"] || shortAddr(newAgent["id"]);
129
+ const stake = v["stakeAmount"] ? ` ${weiToUsdc(v["stakeAmount"])} USDC staked` : "";
130
+ return chalk_1.default.magenta(`${ts} 🔗 ${vName} vouched for ${nName}${stake}`);
131
+ }
132
+ }
133
+ }
134
+ async function runFeed(opts) {
135
+ const limit = parseInt(opts.limit ?? "20", 10);
136
+ const typeFilter = opts.type;
137
+ const events = await fetchFeedEvents(limit, typeFilter);
138
+ if (opts.json) {
139
+ console.log(JSON.stringify(events, null, 2));
140
+ if (!opts.live)
141
+ return;
142
+ }
143
+ else {
144
+ for (const ev of [...events].reverse()) {
145
+ console.log(renderFeedEvent(ev));
146
+ }
147
+ if (!opts.live)
148
+ return;
149
+ }
150
+ // Live mode — keep process alive and poll every 30s
151
+ process.stdin.resume();
152
+ let lastTs = events.length > 0 ? events[0].timestamp : Math.floor(Date.now() / 1000);
153
+ const interval = setInterval(async () => {
154
+ try {
155
+ const newEvents = await fetchFeedEvents(limit, typeFilter, lastTs);
156
+ if (newEvents.length > 0) {
157
+ if (opts.json) {
158
+ console.log(JSON.stringify(newEvents, null, 2));
159
+ }
160
+ else {
161
+ console.log(chalk_1.default.dim("─".repeat(50)));
162
+ for (const ev of [...newEvents].reverse()) {
163
+ console.log(renderFeedEvent(ev));
164
+ }
165
+ }
166
+ lastTs = newEvents[0].timestamp;
167
+ }
168
+ }
169
+ catch {
170
+ if (!opts.json)
171
+ console.log(chalk_1.default.dim(" (subgraph unavailable)"));
172
+ }
173
+ }, 30000);
174
+ process.on("SIGINT", () => {
175
+ clearInterval(interval);
176
+ process.exit(0);
177
+ });
178
+ }
179
+ function registerFeedCommand(program) {
180
+ program
181
+ .command("feed")
182
+ .description("Live terminal feed of recent Arena events")
183
+ .option("--limit <n>", "Number of events to show", "20")
184
+ .option("--live", "Poll every 30s for new events")
185
+ .option("--type <type>", "Filter by event type: handshake|hire|fulfill|vouch")
186
+ .option("--json", "Output as JSON")
187
+ .action(async (opts) => {
188
+ try {
189
+ await runFeed(opts);
190
+ }
191
+ catch (err) {
192
+ const msg = err instanceof Error ? err.message : String(err);
193
+ if (opts.json) {
194
+ console.log(JSON.stringify({ error: "Subgraph unavailable", details: msg }));
195
+ }
196
+ else {
197
+ console.error(chalk_1.default.red(`Subgraph unavailable: ${msg}`));
198
+ }
199
+ process.exit(1);
200
+ }
201
+ });
202
+ }
203
+ //# sourceMappingURL=feed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feed.js","sourceRoot":"","sources":["../../src/commands/feed.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -35,6 +35,8 @@ const contract_interaction_1 = require("./commands/contract-interaction");
35
35
  const watchtower_1 = require("./commands/watchtower");
36
36
  const coldstart_1 = require("./commands/coldstart");
37
37
  const migrate_1 = require("./commands/migrate");
38
+ const feed_1 = require("./commands/feed");
39
+ const arena_1 = require("./commands/arena");
38
40
  const reputation_js_1 = __importDefault(require("./commands/reputation.js"));
39
41
  const policy_js_1 = __importDefault(require("./commands/policy.js"));
40
42
  // Show banner when invoked with no arguments
@@ -43,7 +45,7 @@ if (process.argv.length <= 2) {
43
45
  process.exit(0);
44
46
  }
45
47
  const program = new commander_1.Command();
46
- program.name("arc402").description("ARC-402 CLI aligned to canonical-capability discovery → negotiate → hire → remediate → dispute workflow").version("0.2.0");
48
+ program.name("arc402").description("ARC-402 CLI aligned to canonical-capability discovery → negotiate → hire → remediate → dispute workflow").version("0.3.2");
47
49
  (0, config_1.registerConfigCommands)(program);
48
50
  (0, agent_handshake_1.registerHandshakeCommand)(program);
49
51
  (0, agent_1.registerAgentCommands)(program);
@@ -73,6 +75,8 @@ program.name("arc402").description("ARC-402 CLI aligned to canonical-capability
73
75
  (0, watchtower_1.registerWatchtowerCommands)(program);
74
76
  (0, coldstart_1.registerColdStartCommands)(program);
75
77
  (0, migrate_1.registerMigrateCommands)(program);
78
+ (0, feed_1.registerFeedCommand)(program);
79
+ (0, arena_1.registerArenaCommands)(program);
76
80
  program.addCommand(reputation_js_1.default);
77
81
  program.addCommand(policy_js_1.default);
78
82
  program.parse(process.argv);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,yCAAoC;AACpC,8CAA0D;AAC1D,4CAAyD;AACzD,sDAAmE;AACnE,sDAAkE;AAClE,8CAA0D;AAC1D,gDAA6D;AAC7D,8CAA2D;AAC3D,gDAA4D;AAC5D,kDAA8D;AAC9D,kDAA+D;AAC/D,gDAA4D;AAC5D,0CAAsD;AACtD,gEAAsE;AACtE,oDAAiE;AACjE,4CAAyD;AACzD,oDAAiE;AACjE,8CAA2D;AAC3D,oDAAiE;AACjE,kDAA+D;AAC/D,gEAA4E;AAC5E,4CAAwD;AACxD,8CAA2D;AAC3D,wCAA2C;AAC3C,4CAAyD;AACzD,4CAAyD;AACzD,8CAA0D;AAC1D,0EAAsF;AACtF,sDAAmE;AACnE,oDAAiE;AACjE,gDAA6D;AAC7D,6EAAkD;AAClD,qEAA0C;AAE1C,6CAA6C;AAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAC7B,IAAA,qBAAY,GAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,yGAAyG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/J,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,0CAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAC;AACpC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,sCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,gDAA8B,EAAC,OAAO,CAAC,CAAC;AACxC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,0DAAmC,EAAC,OAAO,CAAC,CAAC;AAC7C,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAC;AACpC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,uBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,mBAAM,CAAC,CAAC;AAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,yCAAoC;AACpC,8CAA0D;AAC1D,4CAAyD;AACzD,sDAAmE;AACnE,sDAAkE;AAClE,8CAA0D;AAC1D,gDAA6D;AAC7D,8CAA2D;AAC3D,gDAA4D;AAC5D,kDAA8D;AAC9D,kDAA+D;AAC/D,gDAA4D;AAC5D,0CAAsD;AACtD,gEAAsE;AACtE,oDAAiE;AACjE,4CAAyD;AACzD,oDAAiE;AACjE,8CAA2D;AAC3D,oDAAiE;AACjE,kDAA+D;AAC/D,gEAA4E;AAC5E,4CAAwD;AACxD,8CAA2D;AAC3D,wCAA2C;AAC3C,4CAAyD;AACzD,4CAAyD;AACzD,8CAA0D;AAC1D,0EAAsF;AACtF,sDAAmE;AACnE,oDAAiE;AACjE,gDAA6D;AAC7D,0CAAsD;AACtD,4CAAyD;AACzD,6EAAkD;AAClD,qEAA0C;AAE1C,6CAA6C;AAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAC7B,IAAA,qBAAY,GAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,yGAAyG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/J,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,0CAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAC;AACpC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,sCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,gDAA8B,EAAC,OAAO,CAAC,CAAC;AACxC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,0DAAmC,EAAC,OAAO,CAAC,CAAC;AAC7C,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAC;AACpC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,uBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,mBAAM,CAAC,CAAC;AAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arc402-cli",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "ARC-402 CLI for discovery, negotiation payloads, hire/remediation/dispute workflows, and network reads",
5
5
  "bin": {
6
6
  "arc402": "./dist/index.js"
@@ -11,7 +11,7 @@
11
11
  "test": "node --test test/**/*.test.js"
12
12
  },
13
13
  "dependencies": {
14
- "@arc402/sdk": "file:../reference/sdk",
14
+ "@arc402/sdk": "^0.3.1",
15
15
  "@coinbase/wallet-sdk": "^4.3.7",
16
16
  "@types/better-sqlite3": "^7.6.13",
17
17
  "@walletconnect/keyvaluestorage": "^1.1.1",
@@ -413,6 +413,193 @@ export function registerAgentCommands(program: Command): void {
413
413
  if (!address) throw new Error("No wallet configured");
414
414
  await program.parseAsync([process.argv[0], process.argv[1], "agent", "info", address], { from: "user" });
415
415
  });
416
+
417
+ // ─── profile (subgraph view) ─────────────────────────────────────────────
418
+
419
+ agent
420
+ .command("profile <address>")
421
+ .description("Show detailed agent profile from the Arena subgraph")
422
+ .option("--json", "Output as JSON")
423
+ .action(async (address: string, opts: { json?: boolean }) => {
424
+ const normalizedAddr = address.toLowerCase();
425
+ try {
426
+ const data = await agentSubgraphQuery(`{
427
+ agent(id: "${normalizedAddr}") {
428
+ id name serviceType endpoint active
429
+ trustScore { globalScore }
430
+ capabilities(where: { active: true }) { capability active }
431
+ handshakesSent(first: 100, orderBy: timestamp, orderDirection: desc) {
432
+ id to { id name } hsType note timestamp
433
+ }
434
+ handshakesReceived(first: 100, orderBy: timestamp, orderDirection: desc) {
435
+ id from { id name } hsType note timestamp
436
+ }
437
+ }
438
+ clientAgreements: agreements(where: { client: "${normalizedAddr}", state: 1 }, first: 10) {
439
+ id serviceType price state
440
+ }
441
+ providerAgreements: agreements(where: { provider: "${normalizedAddr}", state: 1 }, first: 10) {
442
+ id serviceType price state
443
+ }
444
+ vouchedFor: vouches(where: { voucher: "${normalizedAddr}", active: true }, first: 100) {
445
+ id newAgent { id name } stakeAmount
446
+ }
447
+ vouchedBy: vouches(where: { newAgent: "${normalizedAddr}", active: true }, first: 100) {
448
+ id voucher { id name } stakeAmount
449
+ }
450
+ }`);
451
+
452
+ const agentData = data["agent"] as Record<string, unknown> | null;
453
+
454
+ if (!agentData) {
455
+ if (opts.json) {
456
+ console.log(JSON.stringify({ error: "Agent not registered", address }));
457
+ } else {
458
+ console.log(chalk.red(`Agent not registered: ${address}`));
459
+ }
460
+ process.exit(1);
461
+ }
462
+
463
+ if (opts.json) {
464
+ console.log(JSON.stringify(data, null, 2));
465
+ return;
466
+ }
467
+
468
+ const sent = (agentData["handshakesSent"] as Record<string, unknown>[]) ?? [];
469
+ const received = (agentData["handshakesReceived"] as Record<string, unknown>[]) ?? [];
470
+ const sentToIds = new Set(sent.map((h) => (h["to"] as Record<string, string>)["id"]));
471
+ const receivedFromIds = new Set(received.map((h) => (h["from"] as Record<string, string>)["id"]));
472
+ const mutual = [...sentToIds].filter((id) => receivedFromIds.has(id)).length;
473
+
474
+ const trustScore =
475
+ ((agentData["trustScore"] as Record<string, unknown> | null)?.["globalScore"] as number | undefined) ?? 0;
476
+ const caps = (agentData["capabilities"] as Record<string, unknown>[]) ?? [];
477
+
478
+ const allAgreements = [
479
+ ...((data["clientAgreements"] as unknown[]) ?? []),
480
+ ...((data["providerAgreements"] as unknown[]) ?? []),
481
+ ] as Record<string, unknown>[];
482
+
483
+ const hsTypeLabels: Record<number, string> = {
484
+ 0: "Respected",
485
+ 1: "Curious",
486
+ 2: "Endorsed",
487
+ 3: "Thanked",
488
+ 4: "Collaborated",
489
+ 5: "Challenged",
490
+ 6: "Referred",
491
+ 7: "Hello",
492
+ };
493
+
494
+ const recentActivity = [
495
+ ...sent.slice(0, 3).map((h) => {
496
+ const to = h["to"] as Record<string, string>;
497
+ const label = hsTypeLabels[Number(h["hsType"])] ?? `Type${h["hsType"]}`;
498
+ const note = h["note"] ? ` — "${h["note"]}"` : "";
499
+ return {
500
+ ts: Number(h["timestamp"]),
501
+ line: ` [${profileDate(Number(h["timestamp"]))}] ${label} ${to["name"] || shortAddress(to["id"])}${note}`,
502
+ };
503
+ }),
504
+ ...received.slice(0, 3).map((h) => {
505
+ const from = h["from"] as Record<string, string>;
506
+ const label = hsTypeLabels[Number(h["hsType"])] ?? `Type${h["hsType"]}`;
507
+ const note = h["note"] ? ` — "${h["note"]}"` : "";
508
+ return {
509
+ ts: Number(h["timestamp"]),
510
+ line: ` [${profileDate(Number(h["timestamp"]))}] Received ${label} from ${from["name"] || shortAddress(from["id"])}${note}`,
511
+ };
512
+ }),
513
+ ]
514
+ .sort((a, b) => b.ts - a.ts)
515
+ .slice(0, 5);
516
+
517
+ const vouchedFor = (data["vouchedFor"] as unknown[]) ?? [];
518
+ const vouchedBy = (data["vouchedBy"] as unknown[]) ?? [];
519
+
520
+ const line = "═".repeat(43);
521
+ console.log(chalk.bold(line));
522
+ console.log(` ${chalk.bold((agentData["name"] as string) || "(unnamed)")}`);
523
+ console.log(` ${agentData["id"]}`);
524
+ console.log(chalk.bold(line));
525
+ console.log();
526
+ console.log(` Service Type: ${agentData["serviceType"]}`);
527
+ console.log(` Endpoint: ${agentData["endpoint"] || chalk.dim("(none)")}`);
528
+ console.log(
529
+ ` Status: ${agentData["active"] ? chalk.green("✅ Active") : chalk.red("❌ Inactive")}`,
530
+ );
531
+ console.log(` Trust Score: ${trustScore}`);
532
+ console.log();
533
+
534
+ if (caps.length > 0) {
535
+ console.log(" Capabilities:");
536
+ for (const cap of caps) {
537
+ console.log(` ✓ ${(cap as Record<string, unknown>)["capability"]}`);
538
+ }
539
+ console.log();
540
+ }
541
+
542
+ console.log(
543
+ ` Handshakes: ${sent.length} sent • ${received.length} received • ${mutual} mutual connections`,
544
+ );
545
+ console.log();
546
+
547
+ if (recentActivity.length > 0) {
548
+ console.log(" Recent Activity:");
549
+ for (const a of recentActivity) {
550
+ console.log(a.line);
551
+ }
552
+ console.log();
553
+ }
554
+
555
+ console.log(" Active Agreements:");
556
+ if (allAgreements.length === 0) {
557
+ console.log(" None");
558
+ } else {
559
+ for (const a of allAgreements.slice(0, 5)) {
560
+ console.log(` #${(a["id"] as string).slice(0, 8)} ${a["serviceType"]}`);
561
+ }
562
+ }
563
+ console.log();
564
+
565
+ console.log(" Vouches:");
566
+ console.log(` Vouched for: ${vouchedFor.length} agents`);
567
+ console.log(` Vouched by: ${vouchedBy.length} agents`);
568
+ } catch (err) {
569
+ const msg = err instanceof Error ? err.message : String(err);
570
+ if (opts.json) {
571
+ console.log(JSON.stringify({ error: "Subgraph unavailable", details: msg }));
572
+ } else {
573
+ console.error(chalk.red(`Subgraph unavailable: ${msg}`));
574
+ }
575
+ process.exit(1);
576
+ }
577
+ });
578
+ }
579
+
580
+ // ─── subgraph helpers (used by agent profile) ────────────────────────────────
581
+
582
+ const AGENT_SUBGRAPH_URL = "https://api.studio.thegraph.com/query/1744310/arc-402/v0.2.0";
583
+
584
+ async function agentSubgraphQuery(query: string): Promise<Record<string, unknown>> {
585
+ const res = await fetch(AGENT_SUBGRAPH_URL, {
586
+ method: "POST",
587
+ headers: { "Content-Type": "application/json" },
588
+ body: JSON.stringify({ query }),
589
+ });
590
+ if (!res.ok) throw new Error(`Subgraph HTTP ${res.status}`);
591
+ const json = (await res.json()) as { data?: Record<string, unknown>; errors?: unknown[] };
592
+ if (json.errors?.length) throw new Error(`Subgraph error: ${JSON.stringify(json.errors[0])}`);
593
+ return json.data ?? {};
594
+ }
595
+
596
+ function shortAddress(addr: string): string {
597
+ return addr.length > 12 ? `${addr.slice(0, 6)}...${addr.slice(-4)}` : addr;
598
+ }
599
+
600
+ function profileDate(ts: number): string {
601
+ const d = new Date(ts * 1000);
602
+ return d.toLocaleDateString("en-US", { month: "short", day: "numeric" });
416
603
  }
417
604
 
418
605
  // ─── subdomain claim ──────────────────────────────────────────────────────────
@@ -0,0 +1,121 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { runFeed, FeedOptions } from "./feed";
4
+
5
+ const SUBGRAPH_URL = "https://api.studio.thegraph.com/query/1744310/arc-402/v0.2.0";
6
+
7
+ async function gql(query: string): Promise<Record<string, unknown>> {
8
+ const res = await fetch(SUBGRAPH_URL, {
9
+ method: "POST",
10
+ headers: { "Content-Type": "application/json" },
11
+ body: JSON.stringify({ query }),
12
+ });
13
+ if (!res.ok) throw new Error(`Subgraph HTTP ${res.status}`);
14
+ const json = (await res.json()) as { data?: Record<string, unknown>; errors?: unknown[] };
15
+ if (json.errors?.length) throw new Error(`Subgraph error: ${JSON.stringify(json.errors[0])}`);
16
+ return json.data ?? {};
17
+ }
18
+
19
+ export function registerArenaCommands(program: Command): void {
20
+ const arena = program.command("arena").description("Arena network commands");
21
+
22
+ // ─── arena stats ───────────────────────────────────────────────────────────
23
+
24
+ arena
25
+ .command("stats")
26
+ .description("Show Arena network statistics")
27
+ .option("--json", "Output as JSON")
28
+ .action(async (opts) => {
29
+ try {
30
+ const data = await gql(`{
31
+ protocolStats(id: "global") {
32
+ totalAgents
33
+ totalWallets
34
+ totalAgreements
35
+ totalHandshakes
36
+ totalConnections
37
+ totalVouches
38
+ totalCapabilityClaims
39
+ }
40
+ }`);
41
+
42
+ const stats = data["protocolStats"] as Record<string, unknown> | null;
43
+ if (!stats) {
44
+ const msg = "No stats available — subgraph may still be syncing.";
45
+ if (opts.json) {
46
+ console.log(JSON.stringify({ error: msg }));
47
+ } else {
48
+ console.error(chalk.red(msg));
49
+ }
50
+ process.exit(1);
51
+ }
52
+
53
+ // Try to count active agreements separately — non-fatal if it fails
54
+ let activeAgreements = 0;
55
+ try {
56
+ const agData = await gql(`{
57
+ proposals: agreements(where: { state: 0 }, first: 1000) { id }
58
+ accepted: agreements(where: { state: 1 }, first: 1000) { id }
59
+ }`);
60
+ activeAgreements =
61
+ ((agData["proposals"] as unknown[]) ?? []).length +
62
+ ((agData["accepted"] as unknown[]) ?? []).length;
63
+ } catch {
64
+ // ignore — active count just stays 0
65
+ }
66
+
67
+ if (opts.json) {
68
+ console.log(JSON.stringify({ ...stats, activeAgreements }, null, 2));
69
+ return;
70
+ }
71
+
72
+ const pad = (v: unknown) => String(v ?? 0).padStart(6);
73
+ console.log(chalk.bold("╔══════════════════════════════════════╗"));
74
+ console.log(chalk.bold("║ ARC Arena — Network Stats ║"));
75
+ console.log(chalk.bold("╚══════════════════════════════════════╝"));
76
+ console.log();
77
+ console.log(` Agents ${pad(stats["totalAgents"])} registered`);
78
+ console.log(` Wallets ${pad(stats["totalWallets"])} deployed`);
79
+ console.log(
80
+ ` Agreements ${pad(stats["totalAgreements"])} total (${activeAgreements} active)`,
81
+ );
82
+ console.log(` Handshakes ${pad(stats["totalHandshakes"])} sent`);
83
+ console.log(` Connections ${pad(stats["totalConnections"])} unique pairs`);
84
+ console.log(` Vouches ${pad(stats["totalVouches"])} active`);
85
+ console.log(` Capabilities ${pad(stats["totalCapabilityClaims"])} claimed`);
86
+ console.log();
87
+ console.log(chalk.dim(" Subgraph: v0.2.0 · synced"));
88
+ } catch (err) {
89
+ const msg = err instanceof Error ? err.message : String(err);
90
+ if (opts.json) {
91
+ console.log(JSON.stringify({ error: "Subgraph unavailable", details: msg }));
92
+ } else {
93
+ console.error(chalk.red(`Subgraph unavailable: ${msg}`));
94
+ }
95
+ process.exit(1);
96
+ }
97
+ });
98
+
99
+ // ─── arena feed (alias) ─────────────────────────────────────────────────────
100
+
101
+ arena
102
+ .command("feed")
103
+ .description("Live terminal feed of recent Arena events (alias for arc402 feed)")
104
+ .option("--limit <n>", "Number of events to show", "20")
105
+ .option("--live", "Poll every 30s for new events")
106
+ .option("--type <type>", "Filter by event type: handshake|hire|fulfill|vouch")
107
+ .option("--json", "Output as JSON")
108
+ .action(async (opts) => {
109
+ try {
110
+ await runFeed(opts as FeedOptions);
111
+ } catch (err) {
112
+ const msg = err instanceof Error ? err.message : String(err);
113
+ if ((opts as FeedOptions).json) {
114
+ console.log(JSON.stringify({ error: "Subgraph unavailable", details: msg }));
115
+ } else {
116
+ console.error(chalk.red(`Subgraph unavailable: ${msg}`));
117
+ }
118
+ process.exit(1);
119
+ }
120
+ });
121
+ }
@@ -0,0 +1,228 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+
4
+ const SUBGRAPH_URL = "https://api.studio.thegraph.com/query/1744310/arc-402/v0.2.0";
5
+
6
+ const HS_TYPE_LABELS: Record<number, string> = {
7
+ 0: "Respected",
8
+ 1: "Curious",
9
+ 2: "Endorsed",
10
+ 3: "Thanked",
11
+ 4: "Collaborated",
12
+ 5: "Challenged",
13
+ 6: "Referred",
14
+ 7: "Hello",
15
+ };
16
+
17
+ async function gql(query: string): Promise<Record<string, unknown>> {
18
+ const res = await fetch(SUBGRAPH_URL, {
19
+ method: "POST",
20
+ headers: { "Content-Type": "application/json" },
21
+ body: JSON.stringify({ query }),
22
+ });
23
+ if (!res.ok) throw new Error(`Subgraph HTTP ${res.status}`);
24
+ const json = (await res.json()) as { data?: Record<string, unknown>; errors?: unknown[] };
25
+ if (json.errors?.length) throw new Error(`Subgraph error: ${JSON.stringify(json.errors[0])}`);
26
+ return json.data ?? {};
27
+ }
28
+
29
+ function shortAddr(addr: string): string {
30
+ return addr.length > 12 ? `${addr.slice(0, 6)}...${addr.slice(-4)}` : addr;
31
+ }
32
+
33
+ function utcTime(ts: number): string {
34
+ const d = new Date(ts * 1000);
35
+ const h = d.getUTCHours().toString().padStart(2, "0");
36
+ const m = d.getUTCMinutes().toString().padStart(2, "0");
37
+ return `${h}:${m} UTC`;
38
+ }
39
+
40
+ function weiToEth(wei: string): string {
41
+ return (Number(BigInt(wei)) / 1e18).toFixed(4);
42
+ }
43
+
44
+ function weiToUsdc(wei: string): string {
45
+ return (Number(BigInt(wei)) / 1e6).toFixed(2);
46
+ }
47
+
48
+ type FeedEvent = {
49
+ type: "handshake" | "hire" | "fulfill" | "vouch";
50
+ timestamp: number;
51
+ raw: Record<string, unknown>;
52
+ };
53
+
54
+ async function fetchFeedEvents(limit: number, typeFilter?: string, sinceTs?: number): Promise<FeedEvent[]> {
55
+ const includeHandshakes = !typeFilter || typeFilter === "handshake";
56
+ const includeHire = !typeFilter || typeFilter === "hire";
57
+ const includeFulfill = !typeFilter || typeFilter === "fulfill";
58
+ const includeVouch = !typeFilter || typeFilter === "vouch";
59
+
60
+ const tsFilt = sinceTs ? `, where: { timestamp_gt: "${sinceTs}" }` : "";
61
+ const agTsFilt = sinceTs ? `, where: { proposedAt_gt: "${sinceTs}" }` : "";
62
+
63
+ const parts: string[] = [];
64
+
65
+ if (includeHandshakes) {
66
+ parts.push(`
67
+ handshakes(orderBy: timestamp, orderDirection: desc, first: ${limit}${tsFilt}) {
68
+ id from { id name } to { id name } hsType note timestamp isNewConnection
69
+ }`);
70
+ }
71
+
72
+ if (includeHire || includeFulfill) {
73
+ parts.push(`
74
+ agreements(orderBy: proposedAt, orderDirection: desc, first: ${limit}${agTsFilt}) {
75
+ id client provider serviceType price state proposedAt updatedAt
76
+ }`);
77
+ }
78
+
79
+ if (includeVouch) {
80
+ parts.push(`
81
+ vouches(orderBy: id, orderDirection: desc, first: ${limit}) {
82
+ id voucher { id name } newAgent { id name } stakeAmount active
83
+ }`);
84
+ }
85
+
86
+ const data = await gql(`{ ${parts.join("\n")} }`);
87
+ const events: FeedEvent[] = [];
88
+
89
+ if (includeHandshakes) {
90
+ for (const h of (data.handshakes as Record<string, unknown>[]) ?? []) {
91
+ events.push({ type: "handshake", timestamp: Number(h["timestamp"]), raw: h });
92
+ }
93
+ }
94
+
95
+ if (data["agreements"]) {
96
+ for (const a of data["agreements"] as Record<string, unknown>[]) {
97
+ const state = Number(a["state"]);
98
+ if (includeHire && state === 0) {
99
+ events.push({ type: "hire", timestamp: Number(a["proposedAt"]), raw: a });
100
+ }
101
+ if (includeFulfill && state === 2) {
102
+ events.push({ type: "fulfill", timestamp: Number(a["updatedAt"]), raw: a });
103
+ }
104
+ }
105
+ }
106
+
107
+ if (includeVouch) {
108
+ for (const v of (data["vouches"] as Record<string, unknown>[]) ?? []) {
109
+ events.push({ type: "vouch", timestamp: 0, raw: v });
110
+ }
111
+ }
112
+
113
+ events.sort((a, b) => b.timestamp - a.timestamp);
114
+ return events.slice(0, limit);
115
+ }
116
+
117
+ function renderFeedEvent(ev: FeedEvent): string {
118
+ const ts = ev.timestamp > 0 ? `[${utcTime(ev.timestamp)}]` : "[ ]";
119
+
120
+ switch (ev.type) {
121
+ case "handshake": {
122
+ const h = ev.raw;
123
+ const from = h["from"] as Record<string, string>;
124
+ const to = h["to"] as Record<string, string>;
125
+ const fromName = from["name"] || shortAddr(from["id"]);
126
+ const toName = to["name"] || shortAddr(to["id"]);
127
+ const label = HS_TYPE_LABELS[Number(h["hsType"])] ?? `Type${h["hsType"]}`;
128
+ const note = h["note"] ? ` "${h["note"]}"` : "";
129
+ return chalk.cyan(`${ts} 🤝 ${fromName} → ${toName} ${label}${note}`);
130
+ }
131
+ case "hire": {
132
+ const a = ev.raw;
133
+ const price = a["price"] ? ` ${weiToEth(a["price"] as string)} ETH` : "";
134
+ return chalk.yellow(
135
+ `${ts} 📋 ${shortAddr(a["client"] as string)} hired ${shortAddr(a["provider"] as string)} ${a["serviceType"]}${price}`,
136
+ );
137
+ }
138
+ case "fulfill": {
139
+ const a = ev.raw;
140
+ const price = a["price"] ? ` ${weiToEth(a["price"] as string)} ETH released` : "";
141
+ return chalk.green(`${ts} ✅ Agreement #${(a["id"] as string).slice(0, 8)} fulfilled${price}`);
142
+ }
143
+ case "vouch": {
144
+ const v = ev.raw;
145
+ const voucher = v["voucher"] as Record<string, string>;
146
+ const newAgent = v["newAgent"] as Record<string, string>;
147
+ const vName = voucher["name"] || shortAddr(voucher["id"]);
148
+ const nName = newAgent["name"] || shortAddr(newAgent["id"]);
149
+ const stake = v["stakeAmount"] ? ` ${weiToUsdc(v["stakeAmount"] as string)} USDC staked` : "";
150
+ return chalk.magenta(`${ts} 🔗 ${vName} vouched for ${nName}${stake}`);
151
+ }
152
+ }
153
+ }
154
+
155
+ export interface FeedOptions {
156
+ limit?: string;
157
+ live?: boolean;
158
+ type?: string;
159
+ json?: boolean;
160
+ }
161
+
162
+ export async function runFeed(opts: FeedOptions): Promise<void> {
163
+ const limit = parseInt(opts.limit ?? "20", 10);
164
+ const typeFilter = opts.type;
165
+
166
+ const events = await fetchFeedEvents(limit, typeFilter);
167
+
168
+ if (opts.json) {
169
+ console.log(JSON.stringify(events, null, 2));
170
+ if (!opts.live) return;
171
+ } else {
172
+ for (const ev of [...events].reverse()) {
173
+ console.log(renderFeedEvent(ev));
174
+ }
175
+ if (!opts.live) return;
176
+ }
177
+
178
+ // Live mode — keep process alive and poll every 30s
179
+ process.stdin.resume();
180
+ let lastTs = events.length > 0 ? events[0].timestamp : Math.floor(Date.now() / 1000);
181
+
182
+ const interval = setInterval(async () => {
183
+ try {
184
+ const newEvents = await fetchFeedEvents(limit, typeFilter, lastTs);
185
+ if (newEvents.length > 0) {
186
+ if (opts.json) {
187
+ console.log(JSON.stringify(newEvents, null, 2));
188
+ } else {
189
+ console.log(chalk.dim("─".repeat(50)));
190
+ for (const ev of [...newEvents].reverse()) {
191
+ console.log(renderFeedEvent(ev));
192
+ }
193
+ }
194
+ lastTs = newEvents[0].timestamp;
195
+ }
196
+ } catch {
197
+ if (!opts.json) console.log(chalk.dim(" (subgraph unavailable)"));
198
+ }
199
+ }, 30_000);
200
+
201
+ process.on("SIGINT", () => {
202
+ clearInterval(interval);
203
+ process.exit(0);
204
+ });
205
+ }
206
+
207
+ export function registerFeedCommand(program: Command): void {
208
+ program
209
+ .command("feed")
210
+ .description("Live terminal feed of recent Arena events")
211
+ .option("--limit <n>", "Number of events to show", "20")
212
+ .option("--live", "Poll every 30s for new events")
213
+ .option("--type <type>", "Filter by event type: handshake|hire|fulfill|vouch")
214
+ .option("--json", "Output as JSON")
215
+ .action(async (opts) => {
216
+ try {
217
+ await runFeed(opts as FeedOptions);
218
+ } catch (err) {
219
+ const msg = err instanceof Error ? err.message : String(err);
220
+ if ((opts as FeedOptions).json) {
221
+ console.log(JSON.stringify({ error: "Subgraph unavailable", details: msg }));
222
+ } else {
223
+ console.error(chalk.red(`Subgraph unavailable: ${msg}`));
224
+ }
225
+ process.exit(1);
226
+ }
227
+ });
228
+ }
package/src/index.ts CHANGED
@@ -30,6 +30,8 @@ import { registerContractInteractionCommands } from "./commands/contract-interac
30
30
  import { registerWatchtowerCommands } from "./commands/watchtower";
31
31
  import { registerColdStartCommands } from "./commands/coldstart";
32
32
  import { registerMigrateCommands } from "./commands/migrate";
33
+ import { registerFeedCommand } from "./commands/feed";
34
+ import { registerArenaCommands } from "./commands/arena";
33
35
  import reputation from "./commands/reputation.js";
34
36
  import policy from "./commands/policy.js";
35
37
 
@@ -40,7 +42,7 @@ if (process.argv.length <= 2) {
40
42
  }
41
43
 
42
44
  const program = new Command();
43
- program.name("arc402").description("ARC-402 CLI aligned to canonical-capability discovery → negotiate → hire → remediate → dispute workflow").version("0.2.0");
45
+ program.name("arc402").description("ARC-402 CLI aligned to canonical-capability discovery → negotiate → hire → remediate → dispute workflow").version("0.3.2");
44
46
  registerConfigCommands(program);
45
47
  registerHandshakeCommand(program);
46
48
  registerAgentCommands(program);
@@ -70,6 +72,8 @@ registerContractInteractionCommands(program);
70
72
  registerWatchtowerCommands(program);
71
73
  registerColdStartCommands(program);
72
74
  registerMigrateCommands(program);
75
+ registerFeedCommand(program);
76
+ registerArenaCommands(program);
73
77
  program.addCommand(reputation);
74
78
  program.addCommand(policy);
75
79
  program.parse(process.argv);