arc402-cli 0.2.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/README.md +245 -0
- package/dist/abis.d.ts +19 -0
- package/dist/abis.d.ts.map +1 -0
- package/dist/abis.js +177 -0
- package/dist/abis.js.map +1 -0
- package/dist/bundler.d.ts +65 -0
- package/dist/bundler.d.ts.map +1 -0
- package/dist/bundler.js +181 -0
- package/dist/bundler.js.map +1 -0
- package/dist/client.d.ts +14 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +24 -0
- package/dist/client.js.map +1 -0
- package/dist/coinbase-smart-wallet.d.ts +28 -0
- package/dist/coinbase-smart-wallet.d.ts.map +1 -0
- package/dist/coinbase-smart-wallet.js +38 -0
- package/dist/coinbase-smart-wallet.js.map +1 -0
- package/dist/commands/accept.d.ts +3 -0
- package/dist/commands/accept.d.ts.map +1 -0
- package/dist/commands/accept.js +26 -0
- package/dist/commands/accept.js.map +1 -0
- package/dist/commands/agent-handshake.d.ts +3 -0
- package/dist/commands/agent-handshake.d.ts.map +1 -0
- package/dist/commands/agent-handshake.js +61 -0
- package/dist/commands/agent-handshake.js.map +1 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +417 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/agreements.d.ts +3 -0
- package/dist/commands/agreements.d.ts.map +1 -0
- package/dist/commands/agreements.js +344 -0
- package/dist/commands/agreements.js.map +1 -0
- package/dist/commands/arbitrator.d.ts +3 -0
- package/dist/commands/arbitrator.d.ts.map +1 -0
- package/dist/commands/arbitrator.js +157 -0
- package/dist/commands/arbitrator.js.map +1 -0
- package/dist/commands/arena-handshake.d.ts +3 -0
- package/dist/commands/arena-handshake.d.ts.map +1 -0
- package/dist/commands/arena-handshake.js +187 -0
- package/dist/commands/arena-handshake.js.map +1 -0
- package/dist/commands/cancel.d.ts +3 -0
- package/dist/commands/cancel.d.ts.map +1 -0
- package/dist/commands/cancel.js +30 -0
- package/dist/commands/cancel.js.map +1 -0
- package/dist/commands/channel.d.ts +3 -0
- package/dist/commands/channel.d.ts.map +1 -0
- package/dist/commands/channel.js +238 -0
- package/dist/commands/channel.js.map +1 -0
- package/dist/commands/coldstart.d.ts +3 -0
- package/dist/commands/coldstart.d.ts.map +1 -0
- package/dist/commands/coldstart.js +148 -0
- package/dist/commands/coldstart.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +40 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/contract-interaction.d.ts +3 -0
- package/dist/commands/contract-interaction.d.ts.map +1 -0
- package/dist/commands/contract-interaction.js +165 -0
- package/dist/commands/contract-interaction.js.map +1 -0
- package/dist/commands/daemon.d.ts +3 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +891 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/deliver.d.ts +3 -0
- package/dist/commands/deliver.d.ts.map +1 -0
- package/dist/commands/deliver.js +156 -0
- package/dist/commands/deliver.js.map +1 -0
- package/dist/commands/discover.d.ts +3 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +224 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/dispute.d.ts +3 -0
- package/dist/commands/dispute.d.ts.map +1 -0
- package/dist/commands/dispute.js +348 -0
- package/dist/commands/dispute.js.map +1 -0
- package/dist/commands/endpoint.d.ts +3 -0
- package/dist/commands/endpoint.d.ts.map +1 -0
- package/dist/commands/endpoint.js +604 -0
- package/dist/commands/endpoint.js.map +1 -0
- package/dist/commands/hire.d.ts +3 -0
- package/dist/commands/hire.d.ts.map +1 -0
- package/dist/commands/hire.js +189 -0
- package/dist/commands/hire.js.map +1 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +163 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/negotiate.d.ts +3 -0
- package/dist/commands/negotiate.d.ts.map +1 -0
- package/dist/commands/negotiate.js +247 -0
- package/dist/commands/negotiate.js.map +1 -0
- package/dist/commands/openshell.d.ts +3 -0
- package/dist/commands/openshell.d.ts.map +1 -0
- package/dist/commands/openshell.js +952 -0
- package/dist/commands/openshell.js.map +1 -0
- package/dist/commands/owner.d.ts +3 -0
- package/dist/commands/owner.d.ts.map +1 -0
- package/dist/commands/owner.js +32 -0
- package/dist/commands/owner.js.map +1 -0
- package/dist/commands/policy.d.ts +4 -0
- package/dist/commands/policy.d.ts.map +1 -0
- package/dist/commands/policy.js +248 -0
- package/dist/commands/policy.js.map +1 -0
- package/dist/commands/relay.d.ts +3 -0
- package/dist/commands/relay.d.ts.map +1 -0
- package/dist/commands/relay.js +279 -0
- package/dist/commands/relay.js.map +1 -0
- package/dist/commands/remediate.d.ts +3 -0
- package/dist/commands/remediate.d.ts.map +1 -0
- package/dist/commands/remediate.js +42 -0
- package/dist/commands/remediate.js.map +1 -0
- package/dist/commands/reputation.d.ts +4 -0
- package/dist/commands/reputation.d.ts.map +1 -0
- package/dist/commands/reputation.js +72 -0
- package/dist/commands/reputation.js.map +1 -0
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +332 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/trust.d.ts +3 -0
- package/dist/commands/trust.d.ts.map +1 -0
- package/dist/commands/trust.js +23 -0
- package/dist/commands/trust.js.map +1 -0
- package/dist/commands/verify.d.ts +3 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +88 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/wallet.d.ts +3 -0
- package/dist/commands/wallet.d.ts.map +1 -0
- package/dist/commands/wallet.js +2520 -0
- package/dist/commands/wallet.js.map +1 -0
- package/dist/commands/watchtower.d.ts +3 -0
- package/dist/commands/watchtower.d.ts.map +1 -0
- package/dist/commands/watchtower.js +238 -0
- package/dist/commands/watchtower.js.map +1 -0
- package/dist/commands/workroom.d.ts +3 -0
- package/dist/commands/workroom.d.ts.map +1 -0
- package/dist/commands/workroom.js +855 -0
- package/dist/commands/workroom.js.map +1 -0
- package/dist/config.d.ts +62 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +141 -0
- package/dist/config.js.map +1 -0
- package/dist/daemon/config.d.ts +74 -0
- package/dist/daemon/config.d.ts.map +1 -0
- package/dist/daemon/config.js +271 -0
- package/dist/daemon/config.js.map +1 -0
- package/dist/daemon/hire-listener.d.ts +31 -0
- package/dist/daemon/hire-listener.d.ts.map +1 -0
- package/dist/daemon/hire-listener.js +207 -0
- package/dist/daemon/hire-listener.js.map +1 -0
- package/dist/daemon/index.d.ts +29 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +535 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/job-lifecycle.d.ts +62 -0
- package/dist/daemon/job-lifecycle.d.ts.map +1 -0
- package/dist/daemon/job-lifecycle.js +201 -0
- package/dist/daemon/job-lifecycle.js.map +1 -0
- package/dist/daemon/notify.d.ts +22 -0
- package/dist/daemon/notify.d.ts.map +1 -0
- package/dist/daemon/notify.js +148 -0
- package/dist/daemon/notify.js.map +1 -0
- package/dist/daemon/token-metering.d.ts +42 -0
- package/dist/daemon/token-metering.d.ts.map +1 -0
- package/dist/daemon/token-metering.js +178 -0
- package/dist/daemon/token-metering.js.map +1 -0
- package/dist/daemon/userops.d.ts +21 -0
- package/dist/daemon/userops.d.ts.map +1 -0
- package/dist/daemon/userops.js +88 -0
- package/dist/daemon/userops.js.map +1 -0
- package/dist/daemon/wallet-monitor.d.ts +16 -0
- package/dist/daemon/wallet-monitor.d.ts.map +1 -0
- package/dist/daemon/wallet-monitor.js +57 -0
- package/dist/daemon/wallet-monitor.js.map +1 -0
- package/dist/drain-v4.d.ts +2 -0
- package/dist/drain-v4.d.ts.map +1 -0
- package/dist/drain-v4.js +167 -0
- package/dist/drain-v4.js.map +1 -0
- package/dist/endpoint-config.d.ts +36 -0
- package/dist/endpoint-config.d.ts.map +1 -0
- package/dist/endpoint-config.js +96 -0
- package/dist/endpoint-config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/openshell-runtime.d.ts +55 -0
- package/dist/openshell-runtime.d.ts.map +1 -0
- package/dist/openshell-runtime.js +268 -0
- package/dist/openshell-runtime.js.map +1 -0
- package/dist/signing.d.ts +2 -0
- package/dist/signing.d.ts.map +1 -0
- package/dist/signing.js +23 -0
- package/dist/signing.js.map +1 -0
- package/dist/telegram-notify.d.ts +23 -0
- package/dist/telegram-notify.d.ts.map +1 -0
- package/dist/telegram-notify.js +106 -0
- package/dist/telegram-notify.js.map +1 -0
- package/dist/ui/banner.d.ts +7 -0
- package/dist/ui/banner.d.ts.map +1 -0
- package/dist/ui/banner.js +37 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/colors.d.ts +14 -0
- package/dist/ui/colors.d.ts.map +1 -0
- package/dist/ui/colors.js +29 -0
- package/dist/ui/colors.js.map +1 -0
- package/dist/ui/format.d.ts +26 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +77 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/spinner.d.ts +8 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +43 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/utils/format.d.ts +10 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +61 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/hash.d.ts +3 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +43 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/time.d.ts +3 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +21 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/wallet-router.d.ts +25 -0
- package/dist/wallet-router.d.ts.map +1 -0
- package/dist/wallet-router.js +153 -0
- package/dist/wallet-router.js.map +1 -0
- package/dist/walletconnect-session.d.ts +12 -0
- package/dist/walletconnect-session.d.ts.map +1 -0
- package/dist/walletconnect-session.js +26 -0
- package/dist/walletconnect-session.js.map +1 -0
- package/dist/walletconnect.d.ts +46 -0
- package/dist/walletconnect.d.ts.map +1 -0
- package/dist/walletconnect.js +267 -0
- package/dist/walletconnect.js.map +1 -0
- package/package.json +38 -0
- package/scripts/authorize-machine-key.ts +43 -0
- package/scripts/drain-wallet.ts +149 -0
- package/scripts/execute-spend-only.ts +81 -0
- package/scripts/register-agent-userop.ts +186 -0
- package/src/abis.ts +187 -0
- package/src/bundler.ts +235 -0
- package/src/client.ts +34 -0
- package/src/coinbase-smart-wallet.ts +51 -0
- package/src/commands/accept.ts +25 -0
- package/src/commands/agent-handshake.ts +67 -0
- package/src/commands/agent.ts +458 -0
- package/src/commands/agreements.ts +324 -0
- package/src/commands/arbitrator.ts +129 -0
- package/src/commands/arena-handshake.ts +217 -0
- package/src/commands/cancel.ts +26 -0
- package/src/commands/channel.ts +208 -0
- package/src/commands/coldstart.ts +156 -0
- package/src/commands/config.ts +35 -0
- package/src/commands/contract-interaction.ts +166 -0
- package/src/commands/daemon.ts +971 -0
- package/src/commands/deliver.ts +116 -0
- package/src/commands/discover.ts +295 -0
- package/src/commands/dispute.ts +373 -0
- package/src/commands/endpoint.ts +619 -0
- package/src/commands/hire.ts +200 -0
- package/src/commands/migrate.ts +175 -0
- package/src/commands/negotiate.ts +270 -0
- package/src/commands/openshell.ts +1053 -0
- package/src/commands/owner.ts +30 -0
- package/src/commands/policy.ts +252 -0
- package/src/commands/relay.ts +272 -0
- package/src/commands/remediate.ts +22 -0
- package/src/commands/reputation.ts +71 -0
- package/src/commands/setup.ts +343 -0
- package/src/commands/trust.ts +15 -0
- package/src/commands/verify.ts +88 -0
- package/src/commands/wallet.ts +2892 -0
- package/src/commands/watchtower.ts +232 -0
- package/src/commands/workroom.ts +889 -0
- package/src/config.ts +153 -0
- package/src/daemon/config.ts +308 -0
- package/src/daemon/hire-listener.ts +226 -0
- package/src/daemon/index.ts +609 -0
- package/src/daemon/job-lifecycle.ts +215 -0
- package/src/daemon/notify.ts +157 -0
- package/src/daemon/token-metering.ts +183 -0
- package/src/daemon/userops.ts +119 -0
- package/src/daemon/wallet-monitor.ts +90 -0
- package/src/drain-v4.ts +159 -0
- package/src/endpoint-config.ts +83 -0
- package/src/index.ts +75 -0
- package/src/openshell-runtime.ts +277 -0
- package/src/signing.ts +28 -0
- package/src/telegram-notify.ts +88 -0
- package/src/ui/banner.ts +41 -0
- package/src/ui/colors.ts +30 -0
- package/src/ui/format.ts +77 -0
- package/src/ui/spinner.ts +46 -0
- package/src/utils/format.ts +48 -0
- package/src/utils/hash.ts +5 -0
- package/src/utils/time.ts +15 -0
- package/src/wallet-router.ts +178 -0
- package/src/walletconnect-session.ts +27 -0
- package/src/walletconnect.ts +294 -0
- package/test/time.test.js +11 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.registerRelayCommands = registerRelayCommands;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
const http = __importStar(require("http"));
|
|
41
|
+
const https = __importStar(require("https"));
|
|
42
|
+
const child_process_1 = require("child_process");
|
|
43
|
+
const PID_FILE = path.join(os.homedir(), ".arc402", "relay.pid");
|
|
44
|
+
// ─── HTTP helper (no external deps) ──────────────────────────────────────────
|
|
45
|
+
function relayRequest(relayUrl, method, urlPath, body) {
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
const parsed = new URL(urlPath, relayUrl);
|
|
48
|
+
const isHttps = parsed.protocol === "https:";
|
|
49
|
+
const mod = isHttps ? https : http;
|
|
50
|
+
const bodyStr = body ? JSON.stringify(body) : undefined;
|
|
51
|
+
const options = {
|
|
52
|
+
hostname: parsed.hostname,
|
|
53
|
+
port: parsed.port || (isHttps ? 443 : 80),
|
|
54
|
+
path: parsed.pathname + (parsed.search || ""),
|
|
55
|
+
method,
|
|
56
|
+
headers: {
|
|
57
|
+
"Content-Type": "application/json",
|
|
58
|
+
...(bodyStr ? { "Content-Length": String(Buffer.byteLength(bodyStr)) } : {}),
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
const req = mod.request(options, (res) => {
|
|
62
|
+
let raw = "";
|
|
63
|
+
res.on("data", (c) => { raw += c.toString(); });
|
|
64
|
+
res.on("end", () => {
|
|
65
|
+
try {
|
|
66
|
+
resolve({ status: res.statusCode ?? 0, data: JSON.parse(raw) });
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
resolve({ status: res.statusCode ?? 0, data: raw });
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
req.on("error", reject);
|
|
74
|
+
if (bodyStr)
|
|
75
|
+
req.write(bodyStr);
|
|
76
|
+
req.end();
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
// ─── Daemon loop (runs in-process when spawned with ARC402_RELAY_DAEMON=1) ───
|
|
80
|
+
async function runDaemonLoop(opts) {
|
|
81
|
+
let lastSeen = null;
|
|
82
|
+
const poll = async () => {
|
|
83
|
+
try {
|
|
84
|
+
const qs = `?address=${encodeURIComponent(opts.address)}` +
|
|
85
|
+
(lastSeen ? `&since=${encodeURIComponent(lastSeen)}` : "");
|
|
86
|
+
const result = await relayRequest(opts.relayUrl, "GET", `/poll${qs}`);
|
|
87
|
+
const data = result.data;
|
|
88
|
+
const messages = data.messages || [];
|
|
89
|
+
for (const msg of messages) {
|
|
90
|
+
lastSeen = msg.messageId;
|
|
91
|
+
// Spawn the handler script with message JSON on stdin
|
|
92
|
+
const child = (0, child_process_1.spawn)(opts.onMessage, [], {
|
|
93
|
+
stdio: ["pipe", "inherit", "inherit"],
|
|
94
|
+
shell: true,
|
|
95
|
+
});
|
|
96
|
+
child.stdin.write(JSON.stringify(msg));
|
|
97
|
+
child.stdin.end();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Silent retry — relay may be temporarily unreachable
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
// Initial poll immediately, then on interval
|
|
105
|
+
await poll();
|
|
106
|
+
setInterval(poll, opts.pollInterval);
|
|
107
|
+
// Keep process alive
|
|
108
|
+
process.stdin.resume();
|
|
109
|
+
}
|
|
110
|
+
// ─── Command registration ─────────────────────────────────────────────────────
|
|
111
|
+
function registerRelayCommands(program) {
|
|
112
|
+
const relay = program
|
|
113
|
+
.command("relay")
|
|
114
|
+
.description("Send and receive messages via an ARC-402 relay (Spec 21)");
|
|
115
|
+
// ── relay send ──────────────────────────────────────────────────────────────
|
|
116
|
+
relay
|
|
117
|
+
.command("send")
|
|
118
|
+
.description("Send a message to an address via the relay")
|
|
119
|
+
.requiredOption("--to <address>", "Recipient address")
|
|
120
|
+
.requiredOption("--payload <json>", "JSON payload string")
|
|
121
|
+
.requiredOption("--relay <url>", "Relay server URL")
|
|
122
|
+
.option("--json", "Machine-parseable output")
|
|
123
|
+
.action(async (opts) => {
|
|
124
|
+
let payload;
|
|
125
|
+
try {
|
|
126
|
+
payload = JSON.parse(opts.payload);
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
console.error("Error: --payload must be valid JSON");
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
const result = await relayRequest(opts.relay, "POST", "/send", {
|
|
133
|
+
to: opts.to,
|
|
134
|
+
payload,
|
|
135
|
+
});
|
|
136
|
+
if (result.status !== 200) {
|
|
137
|
+
console.error(`Relay error (${result.status}): ${JSON.stringify(result.data)}`);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
if (opts.json) {
|
|
141
|
+
console.log(JSON.stringify(result.data));
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
const d = result.data;
|
|
145
|
+
console.log(`Sent. messageId: ${d.messageId}`);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
// ── relay poll ──────────────────────────────────────────────────────────────
|
|
149
|
+
relay
|
|
150
|
+
.command("poll")
|
|
151
|
+
.description("Poll for messages addressed to an address")
|
|
152
|
+
.requiredOption("--address <address>", "Address to poll for")
|
|
153
|
+
.requiredOption("--relay <url>", "Relay server URL")
|
|
154
|
+
.option("--since <messageId>", "Only return messages after this messageId")
|
|
155
|
+
.option("--json", "Machine-parseable output")
|
|
156
|
+
.action(async (opts) => {
|
|
157
|
+
const qs = `?address=${encodeURIComponent(opts.address)}` +
|
|
158
|
+
(opts.since ? `&since=${encodeURIComponent(opts.since)}` : "");
|
|
159
|
+
const result = await relayRequest(opts.relay, "GET", `/poll${qs}`);
|
|
160
|
+
if (result.status !== 200) {
|
|
161
|
+
console.error(`Relay error (${result.status}): ${JSON.stringify(result.data)}`);
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
const data = result.data;
|
|
165
|
+
const messages = data.messages || [];
|
|
166
|
+
if (opts.json) {
|
|
167
|
+
console.log(JSON.stringify(data));
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (messages.length === 0) {
|
|
171
|
+
console.log("No messages.");
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
for (const msg of messages) {
|
|
175
|
+
const ts = new Date(msg.timestamp).toISOString();
|
|
176
|
+
console.log(`[${ts}] ${msg.messageId.slice(0, 12)}... from=${msg.from}`);
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
// ── relay daemon ────────────────────────────────────────────────────────────
|
|
180
|
+
const daemon = relay
|
|
181
|
+
.command("daemon")
|
|
182
|
+
.description("Persistent relay polling daemon");
|
|
183
|
+
daemon
|
|
184
|
+
.command("start")
|
|
185
|
+
.description("Start the relay daemon in the background")
|
|
186
|
+
.requiredOption("--relay <url>", "Relay server URL")
|
|
187
|
+
.requiredOption("--address <address>", "Address to poll for messages")
|
|
188
|
+
.requiredOption("--poll-interval <ms>", "Polling interval in milliseconds", "2000")
|
|
189
|
+
.requiredOption("--on-message <script>", "Script to invoke for each incoming message (receives JSON on stdin)")
|
|
190
|
+
.option("--json", "Machine-parseable output")
|
|
191
|
+
.action((opts) => {
|
|
192
|
+
// Check if already running
|
|
193
|
+
if (fs.existsSync(PID_FILE)) {
|
|
194
|
+
try {
|
|
195
|
+
const existingPid = parseInt(fs.readFileSync(PID_FILE, "utf8").trim(), 10);
|
|
196
|
+
process.kill(existingPid, 0); // Check if alive
|
|
197
|
+
console.error(`Daemon already running (PID ${existingPid}). Run 'arc402 relay daemon stop' first.`);
|
|
198
|
+
process.exit(1);
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
// PID file is stale — clean it up
|
|
202
|
+
fs.unlinkSync(PID_FILE);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// Spawn a detached child process
|
|
206
|
+
const child = (0, child_process_1.spawn)(process.execPath, [__filename], {
|
|
207
|
+
detached: true,
|
|
208
|
+
stdio: "ignore",
|
|
209
|
+
env: {
|
|
210
|
+
...process.env,
|
|
211
|
+
ARC402_RELAY_DAEMON: "1",
|
|
212
|
+
ARC402_RELAY_URL: opts.relay,
|
|
213
|
+
ARC402_RELAY_ADDRESS: opts.address,
|
|
214
|
+
ARC402_RELAY_INTERVAL: opts.pollInterval,
|
|
215
|
+
ARC402_RELAY_HANDLER: opts.onMessage,
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
child.unref();
|
|
219
|
+
fs.mkdirSync(path.dirname(PID_FILE), { recursive: true });
|
|
220
|
+
fs.writeFileSync(PID_FILE, String(child.pid), { mode: 0o600 });
|
|
221
|
+
if (opts.json) {
|
|
222
|
+
console.log(JSON.stringify({ started: true, pid: child.pid, pidFile: PID_FILE }));
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
console.log(`Daemon started (PID ${child.pid}). PID file: ${PID_FILE}`);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
daemon
|
|
229
|
+
.command("stop")
|
|
230
|
+
.description("Stop the relay daemon")
|
|
231
|
+
.option("--json", "Machine-parseable output")
|
|
232
|
+
.action((opts) => {
|
|
233
|
+
if (!fs.existsSync(PID_FILE)) {
|
|
234
|
+
if (opts.json) {
|
|
235
|
+
console.log(JSON.stringify({ stopped: false, reason: "no pid file" }));
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
console.log("No running daemon found (no PID file).");
|
|
239
|
+
}
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const pid = parseInt(fs.readFileSync(PID_FILE, "utf8").trim(), 10);
|
|
243
|
+
try {
|
|
244
|
+
process.kill(pid, "SIGTERM");
|
|
245
|
+
fs.unlinkSync(PID_FILE);
|
|
246
|
+
if (opts.json) {
|
|
247
|
+
console.log(JSON.stringify({ stopped: true, pid }));
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
console.log(`Daemon stopped (PID ${pid}).`);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
255
|
+
if (opts.json) {
|
|
256
|
+
console.log(JSON.stringify({ stopped: false, pid, error: msg }));
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
console.error(`Failed to stop daemon: ${msg}`);
|
|
260
|
+
// Clean up stale PID file
|
|
261
|
+
fs.unlinkSync(PID_FILE);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
// ─── Daemon entry point ───────────────────────────────────────────────────────
|
|
267
|
+
// When spawned as a background process via daemon start
|
|
268
|
+
if (process.env.ARC402_RELAY_DAEMON === "1") {
|
|
269
|
+
runDaemonLoop({
|
|
270
|
+
relayUrl: process.env.ARC402_RELAY_URL || "",
|
|
271
|
+
address: process.env.ARC402_RELAY_ADDRESS || "",
|
|
272
|
+
pollInterval: parseInt(process.env.ARC402_RELAY_INTERVAL || "2000", 10),
|
|
273
|
+
onMessage: process.env.ARC402_RELAY_HANDLER || "echo",
|
|
274
|
+
}).catch((err) => {
|
|
275
|
+
process.stderr.write(`Daemon error: ${err}\n`);
|
|
276
|
+
process.exit(1);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=relay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/commands/relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remediate.d.ts","sourceRoot":"","sources":["../../src/commands/remediate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAehE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerRemediateCommands = registerRemediateCommands;
|
|
4
|
+
const sdk_1 = require("@arc402/sdk");
|
|
5
|
+
const config_1 = require("../config");
|
|
6
|
+
const client_1 = require("../client");
|
|
7
|
+
const hash_1 = require("../utils/hash");
|
|
8
|
+
function registerRemediateCommands(program) {
|
|
9
|
+
const remediate = program.command("remediate").description("Negotiated remediation before formal dispute");
|
|
10
|
+
remediate.command("request <id>").requiredOption("--text <feedback>").option("--uri <uri>", "Structured feedback URI", "").option("--file <path>").option("--previous <hash>", "Previous transcript hash", "0x0000000000000000000000000000000000000000000000000000000000000000").action(async (id, opts) => {
|
|
11
|
+
const config = (0, config_1.loadConfig)();
|
|
12
|
+
if (!config.serviceAgreementAddress)
|
|
13
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
14
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
15
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
16
|
+
const hash = opts.file ? (0, hash_1.hashFile)(opts.file) : (0, hash_1.hashString)(opts.text);
|
|
17
|
+
await client.requestRevision(BigInt(id), hash, opts.uri, opts.previous);
|
|
18
|
+
console.log(`revision requested for ${id} transcriptSeed=${hash}`);
|
|
19
|
+
});
|
|
20
|
+
remediate.command("respond <id>").requiredOption("--type <type>", "revise|defend|counter|partial-settlement|human-review|escalate").requiredOption("--text <response>").option("--uri <uri>", "Structured response URI", "").option("--file <path>").option("--previous <hash>", "Previous transcript hash", "0x0000000000000000000000000000000000000000000000000000000000000000").option("--provider-payout <amount>", "Wei/token units for partial settlement", "0").action(async (id, opts) => {
|
|
21
|
+
const config = (0, config_1.loadConfig)();
|
|
22
|
+
if (!config.serviceAgreementAddress)
|
|
23
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
24
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
25
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
26
|
+
const map = { revise: sdk_1.ProviderResponseType.REVISE, defend: sdk_1.ProviderResponseType.DEFEND, counter: sdk_1.ProviderResponseType.COUNTER, 'partial-settlement': sdk_1.ProviderResponseType.PARTIAL_SETTLEMENT, 'human-review': sdk_1.ProviderResponseType.REQUEST_HUMAN_REVIEW, escalate: sdk_1.ProviderResponseType.ESCALATE };
|
|
27
|
+
const hash = opts.file ? (0, hash_1.hashFile)(opts.file) : (0, hash_1.hashString)(opts.text);
|
|
28
|
+
await client.respondToRevision(BigInt(id), map[String(opts.type)], hash, opts.uri, opts.previous, BigInt(opts.providerPayout));
|
|
29
|
+
console.log(`revision response recorded for ${id}`);
|
|
30
|
+
});
|
|
31
|
+
remediate.command("status <id>").option("--json").action(async (id, opts) => {
|
|
32
|
+
const config = (0, config_1.loadConfig)();
|
|
33
|
+
if (!config.serviceAgreementAddress)
|
|
34
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
35
|
+
const { provider } = await (0, client_1.getClient)(config);
|
|
36
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, provider);
|
|
37
|
+
const remediation = await client.getRemediationCase(BigInt(id));
|
|
38
|
+
const out = { remediation };
|
|
39
|
+
console.log(JSON.stringify(out, (_k, value) => typeof value === 'bigint' ? value.toString() : value, opts.json ? 2 : 2));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=remediate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remediate.js","sourceRoot":"","sources":["../../src/commands/remediate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reputation.d.ts","sourceRoot":"","sources":["../../src/commands/reputation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,QAAA,MAAM,UAAU,SAA2E,CAAC;AAgE5F,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const commander_1 = require("commander");
|
|
4
|
+
const sdk_1 = require("@arc402/sdk");
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
const config_1 = require("../config");
|
|
7
|
+
const client_1 = require("../client");
|
|
8
|
+
const reputation = new commander_1.Command("reputation").description("Network-wide reputation signals");
|
|
9
|
+
reputation
|
|
10
|
+
.command("warn <address>")
|
|
11
|
+
.description("Publish a WARN signal against an address (trust-weighted)")
|
|
12
|
+
.requiredOption("--reason <text>", "Reason for the warning")
|
|
13
|
+
.option("--json")
|
|
14
|
+
.action(async (address, opts) => {
|
|
15
|
+
const config = (0, config_1.loadConfig)();
|
|
16
|
+
if (!config.reputationOracleAddress) {
|
|
17
|
+
console.error("reputationOracleAddress not configured. Run `arc402 config set reputationOracleAddress <address>`.");
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
21
|
+
const oracle = new sdk_1.ReputationOracleClient(config.reputationOracleAddress, signer);
|
|
22
|
+
await oracle.publishSignal(address, sdk_1.ReputationSignalType.WARN, ethers_1.ethers.ZeroHash, opts.reason);
|
|
23
|
+
if (opts.json)
|
|
24
|
+
return console.log(JSON.stringify({ address, signal: "WARN", reason: opts.reason }, null, 2));
|
|
25
|
+
console.log(`WARN signal published against ${address}: "${opts.reason}"`);
|
|
26
|
+
});
|
|
27
|
+
reputation
|
|
28
|
+
.command("block <address>")
|
|
29
|
+
.description("Publish a BLOCK signal against an address (stronger than warn)")
|
|
30
|
+
.requiredOption("--reason <text>", "Reason for the block signal")
|
|
31
|
+
.option("--json")
|
|
32
|
+
.action(async (address, opts) => {
|
|
33
|
+
const config = (0, config_1.loadConfig)();
|
|
34
|
+
if (!config.reputationOracleAddress) {
|
|
35
|
+
console.error("reputationOracleAddress not configured. Run `arc402 config set reputationOracleAddress <address>`.");
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
39
|
+
const oracle = new sdk_1.ReputationOracleClient(config.reputationOracleAddress, signer);
|
|
40
|
+
await oracle.publishSignal(address, sdk_1.ReputationSignalType.BLOCK, ethers_1.ethers.ZeroHash, opts.reason);
|
|
41
|
+
if (opts.json)
|
|
42
|
+
return console.log(JSON.stringify({ address, signal: "BLOCK", reason: opts.reason }, null, 2));
|
|
43
|
+
console.log(`BLOCK signal published against ${address}: "${opts.reason}"`);
|
|
44
|
+
});
|
|
45
|
+
reputation
|
|
46
|
+
.command("check <address>")
|
|
47
|
+
.description("Query the ReputationOracle for endorsements, warnings, and blocks against an address")
|
|
48
|
+
.option("--json")
|
|
49
|
+
.action(async (address, opts) => {
|
|
50
|
+
const config = (0, config_1.loadConfig)();
|
|
51
|
+
if (!config.reputationOracleAddress) {
|
|
52
|
+
console.error("reputationOracleAddress not configured.");
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
const { provider } = await (0, client_1.getClient)(config);
|
|
56
|
+
const oracle = new sdk_1.ReputationOracleClient(config.reputationOracleAddress, provider);
|
|
57
|
+
const rep = await oracle.getReputation(address);
|
|
58
|
+
const payload = {
|
|
59
|
+
address,
|
|
60
|
+
endorsements: rep.endorsements.toString(),
|
|
61
|
+
warnings: rep.warnings.toString(),
|
|
62
|
+
blocks: rep.blocks.toString(),
|
|
63
|
+
weightedScore: rep.weightedScore.toString(),
|
|
64
|
+
};
|
|
65
|
+
if (opts.json)
|
|
66
|
+
return console.log(JSON.stringify(payload, null, 2));
|
|
67
|
+
console.log(`address=${address}`);
|
|
68
|
+
console.log(`endorsements=${rep.endorsements} warnings=${rep.warnings} blocks=${rep.blocks}`);
|
|
69
|
+
console.log(`weightedScore=${rep.weightedScore}`);
|
|
70
|
+
});
|
|
71
|
+
exports.default = reputation;
|
|
72
|
+
//# sourceMappingURL=reputation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reputation.js","sourceRoot":"","sources":["../../src/commands/reputation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsOpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgH5D"}
|