arc402-cli 0.4.2 → 0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAU3E;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAUvF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAY3E;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAUvF"}
package/dist/client.js CHANGED
@@ -10,7 +10,9 @@ async function getClient(config) {
10
10
  const address = await signer.getAddress();
11
11
  return { provider, signer, address };
12
12
  }
13
- return { provider, signer: null, address: null };
13
+ // No private key use walletContractAddress for read-only operations
14
+ const address = config.walletContractAddress ?? null;
15
+ return { provider, signer: null, address };
14
16
  }
15
17
  async function requireSigner(config) {
16
18
  const { provider, signer } = await getClient(config);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;AASA,8BAUC;AAED,sCAYC;AAjCD,mCAAgC;AASzB,KAAK,UAAU,SAAS,CAAC,MAAoB;IAClD,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACnD,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,MAAoB;IAEpB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CACX,gFAAgF,CACjF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;AASA,8BAYC;AAED,sCAYC;AAnCD,mCAAgC;AASzB,KAAK,UAAU,SAAS,CAAC,MAAoB;IAClD,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;IAED,sEAAsE;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAAC;IACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,MAAoB;IAEpB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CACX,gFAAgF,CACjF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,GAAG,cAAc,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAKD,eAAO,MAAM,aAAa,cAAoB,CAAC;AAE/C,wBAAgB,UAAU,IAAI,YAAY,CAoBzC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAIrD;AAED,eAAO,MAAM,YAAY,eAAmC,CAAC;AAG7D,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAK1D;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CA4D5F,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,WAAwD,CAAC;AAE5G,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,GAAG,cAAc,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAKD,eAAO,MAAM,aAAa,cAAoB,CAAC;AAE/C,wBAAgB,UAAU,IAAI,YAAY,CA0BzC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAIrD;AAED,eAAO,MAAM,YAAY,eAAmC,CAAC;AAG7D,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAK1D;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CA4D5F,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,WAAwD,CAAC;AAE5G,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE5D"}
package/dist/config.js CHANGED
@@ -49,16 +49,22 @@ function loadConfig() {
49
49
  if (!fs.existsSync(CONFIG_PATH)) {
50
50
  // Auto-create with Base Mainnet defaults — zero friction
51
51
  const defaults = exports.NETWORK_DEFAULTS["base-mainnet"] ?? {};
52
+ const d = defaults;
52
53
  const autoConfig = {
53
54
  network: "base-mainnet",
54
55
  rpcUrl: defaults.rpcUrl ?? "https://mainnet.base.org",
55
- trustRegistryAddress: defaults.trustRegistryAddress ?? "",
56
56
  walletConnectProjectId: "455e9425343b9156fce1428250c9a54a",
57
- agentRegistryAddress: defaults.agentRegistryV2Address ?? defaults.agentRegistryAddress,
57
+ policyEngineAddress: defaults.policyEngineAddress,
58
+ trustRegistryAddress: defaults.trustRegistryAddress ?? "",
59
+ agentRegistryAddress: d.agentRegistryV2Address ?? defaults.agentRegistryAddress,
58
60
  serviceAgreementAddress: defaults.serviceAgreementAddress,
59
61
  reputationOracleAddress: defaults.reputationOracleAddress,
62
+ sponsorshipAttestationAddress: defaults.sponsorshipAttestationAddress,
60
63
  capabilityRegistryAddress: defaults.capabilityRegistryAddress,
61
64
  governanceAddress: defaults.governanceAddress,
65
+ walletFactoryAddress: defaults.walletFactoryAddress,
66
+ sessionChannelsAddress: defaults.sessionChannelsAddress,
67
+ disputeModuleAddress: defaults.disputeModuleAddress,
62
68
  };
63
69
  saveConfig(autoConfig);
64
70
  console.log(`◈ Config auto-created at ${CONFIG_PATH} (Base Mainnet)`);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,118 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
- const commander_1 = require("commander");
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
10
- const os_1 = __importDefault(require("os"));
11
- const accept_1 = require("./commands/accept");
12
- const agent_1 = require("./commands/agent");
13
- const agreements_1 = require("./commands/agreements");
14
- const arbitrator_1 = require("./commands/arbitrator");
15
- const cancel_1 = require("./commands/cancel");
16
- const channel_1 = require("./commands/channel");
17
- const config_1 = require("./commands/config");
18
- const deliver_1 = require("./commands/deliver");
19
- const discover_1 = require("./commands/discover");
20
- const endpoint_1 = require("./commands/endpoint");
21
- const dispute_1 = require("./commands/dispute");
22
- const hire_1 = require("./commands/hire");
23
- const agent_handshake_1 = require("./commands/agent-handshake");
24
- const negotiate_1 = require("./commands/negotiate");
25
- const relay_1 = require("./commands/relay");
26
- const remediate_1 = require("./commands/remediate");
27
- const daemon_1 = require("./commands/daemon");
28
- const openshell_1 = require("./commands/openshell");
29
- const workroom_1 = require("./commands/workroom");
30
- const arena_handshake_1 = require("./commands/arena-handshake");
31
- const trust_1 = require("./commands/trust");
32
- const wallet_1 = require("./commands/wallet");
33
- const banner_1 = require("./ui/banner");
34
- const owner_1 = require("./commands/owner");
35
- const setup_1 = require("./commands/setup");
36
- const verify_1 = require("./commands/verify");
37
- const contract_interaction_1 = require("./commands/contract-interaction");
38
- const watchtower_1 = require("./commands/watchtower");
39
- const coldstart_1 = require("./commands/coldstart");
40
- const migrate_1 = require("./commands/migrate");
41
- const feed_1 = require("./commands/feed");
42
- const arena_1 = require("./commands/arena");
43
- const watch_1 = require("./commands/watch");
44
- const reputation_js_1 = __importDefault(require("./commands/reputation.js"));
45
- const policy_js_1 = __importDefault(require("./commands/policy.js"));
46
- // Show banner when invoked with no arguments
4
+ const program_1 = require("./program");
5
+ const repl_1 = require("./repl");
47
6
  if (process.argv.length <= 2) {
48
- void (async () => {
49
- const CONFIG_PATH = path_1.default.join(os_1.default.homedir(), ".arc402", "config.json");
50
- let bannerCfg;
51
- if (fs_1.default.existsSync(CONFIG_PATH)) {
52
- try {
53
- const raw = JSON.parse(fs_1.default.readFileSync(CONFIG_PATH, "utf-8"));
54
- bannerCfg = { network: raw.network };
55
- if (raw.walletContractAddress) {
56
- const w = raw.walletContractAddress;
57
- bannerCfg.wallet = `${w.slice(0, 6)}...${w.slice(-4)}`;
58
- }
59
- if (raw.rpcUrl && raw.walletContractAddress) {
60
- try {
61
- // eslint-disable-next-line @typescript-eslint/no-var-requires
62
- const ethersLib = require("ethers");
63
- const provider = new ethersLib.ethers.JsonRpcProvider(raw.rpcUrl);
64
- const bal = await Promise.race([
65
- provider.getBalance(raw.walletContractAddress),
66
- new Promise((_, r) => setTimeout(() => r(new Error("timeout")), 2000)),
67
- ]);
68
- bannerCfg.balance = `${parseFloat(ethersLib.ethers.formatEther(bal)).toFixed(4)} ETH`;
69
- }
70
- catch { /* skip balance on error/timeout */ }
71
- }
72
- }
73
- catch { /* skip config info on parse error */ }
74
- }
75
- (0, banner_1.renderBanner)(bannerCfg);
76
- process.exit(0);
77
- })();
7
+ // No subcommand enter interactive REPL
8
+ void (0, repl_1.startREPL)();
78
9
  }
79
10
  else {
80
- const program = new commander_1.Command();
81
- program.name("arc402").description("ARC-402 CLI aligned to canonical-capability discovery → negotiate → hire → remediate → dispute workflow").version(require("../package.json").version);
82
- (0, config_1.registerConfigCommands)(program);
83
- (0, agent_handshake_1.registerHandshakeCommand)(program);
84
- (0, agent_1.registerAgentCommands)(program);
85
- (0, discover_1.registerDiscoverCommand)(program);
86
- (0, endpoint_1.registerEndpointCommands)(program);
87
- (0, negotiate_1.registerNegotiateCommands)(program);
88
- (0, hire_1.registerHireCommand)(program);
89
- (0, agreements_1.registerAgreementsCommands)(program);
90
- (0, accept_1.registerAcceptCommand)(program);
91
- (0, deliver_1.registerDeliverCommand)(program);
92
- (0, remediate_1.registerRemediateCommands)(program);
93
- (0, dispute_1.registerDisputeCommand)(program);
94
- (0, arbitrator_1.registerArbitratorCommand)(program);
95
- (0, cancel_1.registerCancelCommand)(program);
96
- (0, channel_1.registerChannelCommands)(program);
97
- (0, relay_1.registerRelayCommands)(program);
98
- (0, daemon_1.registerDaemonCommands)(program);
99
- (0, openshell_1.registerOpenShellCommands)(program);
100
- (0, workroom_1.registerWorkroomCommands)(program);
101
- (0, arena_handshake_1.registerArenaHandshakeCommands)(program);
102
- (0, trust_1.registerTrustCommand)(program);
103
- (0, wallet_1.registerWalletCommands)(program);
104
- (0, owner_1.registerOwnerCommands)(program);
105
- (0, setup_1.registerSetupCommands)(program);
106
- (0, verify_1.registerVerifyCommand)(program);
107
- (0, contract_interaction_1.registerContractInteractionCommands)(program);
108
- (0, watchtower_1.registerWatchtowerCommands)(program);
109
- (0, coldstart_1.registerColdStartCommands)(program);
110
- (0, migrate_1.registerMigrateCommands)(program);
111
- (0, feed_1.registerFeedCommand)(program);
112
- (0, arena_1.registerArenaCommands)(program);
113
- (0, watch_1.registerWatchCommand)(program);
114
- program.addCommand(reputation_js_1.default);
115
- program.addCommand(policy_js_1.default);
11
+ // One-shot mode arc402 wallet deploy still works as usual
12
+ const program = (0, program_1.createProgram)();
116
13
  program.parse(process.argv);
117
- } // end else (has arguments)
14
+ }
118
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAC1C,iCAAmC;AAEnC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAC7B,yCAAyC;IACzC,KAAK,IAAA,gBAAS,GAAE,CAAC;AACnB,CAAC;KAAM,CAAC;IACN,4DAA4D;IAC5D,MAAM,OAAO,GAAG,IAAA,uBAAa,GAAE,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createProgram(): Command;
3
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoCpC,wBAAgB,aAAa,IAAI,OAAO,CA8CvC"}
@@ -0,0 +1,85 @@
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.createProgram = createProgram;
7
+ const commander_1 = require("commander");
8
+ const accept_1 = require("./commands/accept");
9
+ const agent_1 = require("./commands/agent");
10
+ const agreements_1 = require("./commands/agreements");
11
+ const arbitrator_1 = require("./commands/arbitrator");
12
+ const cancel_1 = require("./commands/cancel");
13
+ const channel_1 = require("./commands/channel");
14
+ const config_1 = require("./commands/config");
15
+ const deliver_1 = require("./commands/deliver");
16
+ const discover_1 = require("./commands/discover");
17
+ const endpoint_1 = require("./commands/endpoint");
18
+ const dispute_1 = require("./commands/dispute");
19
+ const hire_1 = require("./commands/hire");
20
+ const agent_handshake_1 = require("./commands/agent-handshake");
21
+ const negotiate_1 = require("./commands/negotiate");
22
+ const relay_1 = require("./commands/relay");
23
+ const remediate_1 = require("./commands/remediate");
24
+ const daemon_1 = require("./commands/daemon");
25
+ const openshell_1 = require("./commands/openshell");
26
+ const workroom_1 = require("./commands/workroom");
27
+ const arena_handshake_1 = require("./commands/arena-handshake");
28
+ const trust_1 = require("./commands/trust");
29
+ const wallet_1 = require("./commands/wallet");
30
+ const owner_1 = require("./commands/owner");
31
+ const setup_1 = require("./commands/setup");
32
+ const verify_1 = require("./commands/verify");
33
+ const contract_interaction_1 = require("./commands/contract-interaction");
34
+ const watchtower_1 = require("./commands/watchtower");
35
+ const coldstart_1 = require("./commands/coldstart");
36
+ const migrate_1 = require("./commands/migrate");
37
+ const feed_1 = require("./commands/feed");
38
+ const arena_1 = require("./commands/arena");
39
+ const watch_1 = require("./commands/watch");
40
+ const reputation_js_1 = __importDefault(require("./commands/reputation.js"));
41
+ const policy_js_1 = __importDefault(require("./commands/policy.js"));
42
+ function createProgram() {
43
+ const program = new commander_1.Command();
44
+ program
45
+ .name("arc402")
46
+ .description("ARC-402 CLI aligned to canonical-capability discovery → negotiate → hire → remediate → dispute workflow")
47
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
48
+ .version(require("../package.json").version);
49
+ (0, config_1.registerConfigCommands)(program);
50
+ (0, agent_handshake_1.registerHandshakeCommand)(program);
51
+ (0, agent_1.registerAgentCommands)(program);
52
+ (0, discover_1.registerDiscoverCommand)(program);
53
+ (0, endpoint_1.registerEndpointCommands)(program);
54
+ (0, negotiate_1.registerNegotiateCommands)(program);
55
+ (0, hire_1.registerHireCommand)(program);
56
+ (0, agreements_1.registerAgreementsCommands)(program);
57
+ (0, accept_1.registerAcceptCommand)(program);
58
+ (0, deliver_1.registerDeliverCommand)(program);
59
+ (0, remediate_1.registerRemediateCommands)(program);
60
+ (0, dispute_1.registerDisputeCommand)(program);
61
+ (0, arbitrator_1.registerArbitratorCommand)(program);
62
+ (0, cancel_1.registerCancelCommand)(program);
63
+ (0, channel_1.registerChannelCommands)(program);
64
+ (0, relay_1.registerRelayCommands)(program);
65
+ (0, daemon_1.registerDaemonCommands)(program);
66
+ (0, openshell_1.registerOpenShellCommands)(program);
67
+ (0, workroom_1.registerWorkroomCommands)(program);
68
+ (0, arena_handshake_1.registerArenaHandshakeCommands)(program);
69
+ (0, trust_1.registerTrustCommand)(program);
70
+ (0, wallet_1.registerWalletCommands)(program);
71
+ (0, owner_1.registerOwnerCommands)(program);
72
+ (0, setup_1.registerSetupCommands)(program);
73
+ (0, verify_1.registerVerifyCommand)(program);
74
+ (0, contract_interaction_1.registerContractInteractionCommands)(program);
75
+ (0, watchtower_1.registerWatchtowerCommands)(program);
76
+ (0, coldstart_1.registerColdStartCommands)(program);
77
+ (0, migrate_1.registerMigrateCommands)(program);
78
+ (0, feed_1.registerFeedCommand)(program);
79
+ (0, arena_1.registerArenaCommands)(program);
80
+ (0, watch_1.registerWatchCommand)(program);
81
+ program.addCommand(reputation_js_1.default);
82
+ program.addCommand(policy_js_1.default);
83
+ return program;
84
+ }
85
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":";;;;;AAoCA,sCA8CC;AAlFD,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,4CAAyD;AACzD,4CAAyD;AACzD,8CAA0D;AAC1D,0EAAsF;AACtF,sDAAmE;AACnE,oDAAiE;AACjE,gDAA6D;AAC7D,0CAAsD;AACtD,4CAAyD;AACzD,4CAAwD;AACxD,6EAAkD;AAClD,qEAA0C;AAE1C,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CACV,yGAAyG,CAC1G;QACD,8DAA8D;SAC7D,OAAO,CAAE,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC,CAAC;IAExE,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,0CAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;IACnC,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAC;IACpC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;IACnC,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,sCAAyB,EAAC,OAAO,CAAC,CAAC;IACnC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;IACnC,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,gDAA8B,EAAC,OAAO,CAAC,CAAC;IACxC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,0DAAmC,EAAC,OAAO,CAAC,CAAC;IAC7C,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAC;IACpC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;IACnC,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,UAAU,CAAC,uBAAU,CAAC,CAAC;IAC/B,OAAO,CAAC,UAAU,CAAC,mBAAM,CAAC,CAAC;IAE3B,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/repl.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function startREPL(): Promise<void>;
2
+ //# sourceMappingURL=repl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AA0LA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA6I/C"}
package/dist/repl.js ADDED
@@ -0,0 +1,277 @@
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.startREPL = startREPL;
7
+ const node_readline_1 = __importDefault(require("node:readline"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const os_1 = __importDefault(require("os"));
12
+ const program_1 = require("./program");
13
+ const banner_1 = require("./ui/banner");
14
+ const colors_1 = require("./ui/colors");
15
+ // ─── Prompt ───────────────────────────────────────────────────────────────────
16
+ const PROMPT = chalk_1.default.cyanBright("◈") +
17
+ " " +
18
+ chalk_1.default.dim("arc402") +
19
+ " " +
20
+ chalk_1.default.white(">") +
21
+ " ";
22
+ // ─── Sentinel thrown to intercept process.exit() from commands ───────────────
23
+ class REPLExitSignal extends Error {
24
+ constructor(code = 0) {
25
+ super("repl-exit-signal");
26
+ this.code = code;
27
+ }
28
+ }
29
+ // ─── Config / banner helpers ──────────────────────────────────────────────────
30
+ const CONFIG_PATH = path_1.default.join(os_1.default.homedir(), ".arc402", "config.json");
31
+ async function loadBannerConfig() {
32
+ if (!fs_1.default.existsSync(CONFIG_PATH))
33
+ return undefined;
34
+ try {
35
+ const raw = JSON.parse(fs_1.default.readFileSync(CONFIG_PATH, "utf-8"));
36
+ const cfg = { network: raw.network };
37
+ if (raw.walletContractAddress) {
38
+ const w = raw.walletContractAddress;
39
+ cfg.wallet = `${w.slice(0, 6)}...${w.slice(-4)}`;
40
+ }
41
+ if (raw.rpcUrl && raw.walletContractAddress) {
42
+ try {
43
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
44
+ const ethersLib = require("ethers");
45
+ const provider = new ethersLib.ethers.JsonRpcProvider(raw.rpcUrl);
46
+ const bal = await Promise.race([
47
+ provider.getBalance(raw.walletContractAddress),
48
+ new Promise((_, r) => setTimeout(() => r(new Error("timeout")), 2000)),
49
+ ]);
50
+ cfg.balance = `${parseFloat(ethersLib.ethers.formatEther(bal)).toFixed(4)} ETH`;
51
+ }
52
+ catch {
53
+ /* skip balance on timeout */
54
+ }
55
+ }
56
+ return cfg;
57
+ }
58
+ catch {
59
+ return undefined;
60
+ }
61
+ }
62
+ // ─── Status dashboard ─────────────────────────────────────────────────────────
63
+ async function showStatus() {
64
+ console.log();
65
+ console.log(" " + chalk_1.default.cyanBright("◈") + " " + chalk_1.default.dim("─".repeat(45)));
66
+ if (!fs_1.default.existsSync(CONFIG_PATH)) {
67
+ console.log(chalk_1.default.dim(" No config found. Run 'config init' to get started."));
68
+ console.log();
69
+ return;
70
+ }
71
+ try {
72
+ const raw = JSON.parse(fs_1.default.readFileSync(CONFIG_PATH, "utf-8"));
73
+ if (raw.network)
74
+ console.log(` ${chalk_1.default.dim("Network")} ${chalk_1.default.white(raw.network)}`);
75
+ if (raw.walletContractAddress) {
76
+ const w = raw.walletContractAddress;
77
+ console.log(` ${chalk_1.default.dim("Wallet")} ${chalk_1.default.white(`${w.slice(0, 6)}...${w.slice(-4)}`)}`);
78
+ }
79
+ if (raw.rpcUrl && raw.walletContractAddress) {
80
+ try {
81
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
82
+ const ethersLib = require("ethers");
83
+ const provider = new ethersLib.ethers.JsonRpcProvider(raw.rpcUrl);
84
+ const bal = await Promise.race([
85
+ provider.getBalance(raw.walletContractAddress),
86
+ new Promise((_, r) => setTimeout(() => r(new Error("timeout")), 2000)),
87
+ ]);
88
+ console.log(` ${chalk_1.default.dim("Balance")} ${chalk_1.default.white(`${parseFloat(ethersLib.ethers.formatEther(bal)).toFixed(4)} ETH`)}`);
89
+ }
90
+ catch {
91
+ /* skip */
92
+ }
93
+ }
94
+ }
95
+ catch {
96
+ /* skip */
97
+ }
98
+ console.log();
99
+ }
100
+ // ─── Shell-style tokenizer (handles "quoted strings") ────────────────────────
101
+ function parseTokens(input) {
102
+ const tokens = [];
103
+ let current = "";
104
+ let inQuote = false;
105
+ let quoteChar = "";
106
+ for (const ch of input) {
107
+ if (inQuote) {
108
+ if (ch === quoteChar) {
109
+ inQuote = false;
110
+ }
111
+ else {
112
+ current += ch;
113
+ }
114
+ }
115
+ else if (ch === '"' || ch === "'") {
116
+ inQuote = true;
117
+ quoteChar = ch;
118
+ }
119
+ else if (ch === " ") {
120
+ if (current) {
121
+ tokens.push(current);
122
+ current = "";
123
+ }
124
+ }
125
+ else {
126
+ current += ch;
127
+ }
128
+ }
129
+ if (current)
130
+ tokens.push(current);
131
+ return tokens;
132
+ }
133
+ // ─── Tab completer ────────────────────────────────────────────────────────────
134
+ function buildCompleter(topCmds, subCmds) {
135
+ const specialCmds = ["help", "exit", "quit", "clear", "status"];
136
+ const allTop = [...specialCmds, ...topCmds];
137
+ return function completer(line) {
138
+ const trimmed = line.trimStart();
139
+ const spaceIdx = trimmed.indexOf(" ");
140
+ if (spaceIdx === -1) {
141
+ // Completing the first word (top-level command)
142
+ const hits = allTop.filter((cmd) => cmd.startsWith(trimmed));
143
+ return [hits.length ? hits : allTop, trimmed];
144
+ }
145
+ // Completing a subcommand
146
+ const parent = trimmed.slice(0, spaceIdx);
147
+ const rest = trimmed.slice(spaceIdx + 1);
148
+ const subs = subCmds.get(parent) ?? [];
149
+ const hits = subs.filter((s) => s.startsWith(rest));
150
+ return [
151
+ hits.map((s) => `${parent} ${s}`),
152
+ trimmed,
153
+ ];
154
+ };
155
+ }
156
+ // ─── REPL entry point ─────────────────────────────────────────────────────────
157
+ async function startREPL() {
158
+ // Show the banner
159
+ const bannerCfg = await loadBannerConfig();
160
+ (0, banner_1.renderBanner)(bannerCfg);
161
+ // Build a template program once just to extract command metadata for completions
162
+ const template = (0, program_1.createProgram)();
163
+ const topCmds = template.commands.map((cmd) => cmd.name());
164
+ const subCmds = new Map();
165
+ for (const cmd of template.commands) {
166
+ if (cmd.commands.length > 0) {
167
+ subCmds.set(cmd.name(), cmd.commands.map((s) => s.name()));
168
+ }
169
+ }
170
+ const rl = node_readline_1.default.createInterface({
171
+ input: process.stdin,
172
+ output: process.stdout,
173
+ prompt: PROMPT,
174
+ completer: buildCompleter(topCmds, subCmds),
175
+ terminal: true,
176
+ historySize: 200,
177
+ });
178
+ function goodbye() {
179
+ console.log("\n " + chalk_1.default.cyanBright("◈") + chalk_1.default.dim(" goodbye"));
180
+ }
181
+ rl.on("SIGINT", () => {
182
+ goodbye();
183
+ rl.close();
184
+ process.exit(0);
185
+ });
186
+ rl.on("close", () => {
187
+ goodbye();
188
+ process.exit(0);
189
+ });
190
+ rl.prompt();
191
+ // Process lines one at a time
192
+ for await (const line of rl) {
193
+ const input = line.trim();
194
+ if (!input) {
195
+ rl.prompt();
196
+ continue;
197
+ }
198
+ // ── Special built-in commands ──────────────────────────────────────────
199
+ if (input === "exit" || input === "quit") {
200
+ goodbye();
201
+ rl.close();
202
+ process.exit(0);
203
+ }
204
+ if (input === "clear") {
205
+ console.clear();
206
+ const cfg = await loadBannerConfig();
207
+ (0, banner_1.renderBanner)(cfg);
208
+ rl.prompt();
209
+ continue;
210
+ }
211
+ if (input === "status") {
212
+ await showStatus();
213
+ rl.prompt();
214
+ continue;
215
+ }
216
+ if (input === "help" || input === "help ") {
217
+ // Show the full commander help via the program
218
+ const prog = (0, program_1.createProgram)();
219
+ prog.exitOverride();
220
+ prog.configureOutput({
221
+ writeOut: (str) => process.stdout.write(str),
222
+ writeErr: (str) => process.stderr.write(str),
223
+ });
224
+ try {
225
+ await prog.parseAsync(["node", "arc402", "--help"]);
226
+ }
227
+ catch {
228
+ /* commander throws after printing help — ignore */
229
+ }
230
+ rl.prompt();
231
+ continue;
232
+ }
233
+ // ── Dispatch to commander ──────────────────────────────────────────────
234
+ const tokens = parseTokens(input);
235
+ const prog = (0, program_1.createProgram)();
236
+ prog.exitOverride();
237
+ prog.configureOutput({
238
+ writeOut: (str) => process.stdout.write(str),
239
+ writeErr: (str) => process.stderr.write(str),
240
+ });
241
+ // Intercept process.exit() so a command exiting doesn't kill the REPL
242
+ const origExit = process.exit;
243
+ process.exit = ((code) => {
244
+ throw new REPLExitSignal(code ?? 0);
245
+ });
246
+ try {
247
+ await prog.parseAsync(["node", "arc402", ...tokens]);
248
+ }
249
+ catch (err) {
250
+ if (err instanceof REPLExitSignal) {
251
+ // Command called process.exit() — normal, just continue the REPL
252
+ }
253
+ else {
254
+ const e = err;
255
+ if (e.code === "commander.helpDisplayed" ||
256
+ e.code === "commander.version") {
257
+ // Help / version output was already written — nothing to do
258
+ }
259
+ else if (e.code === "commander.unknownCommand") {
260
+ console.log(`\n ${colors_1.c.failure} ${chalk_1.default.red(`Unknown command: ${chalk_1.default.white(tokens[0])}`)}`);
261
+ console.log(chalk_1.default.dim(" Type 'help' for available commands\n"));
262
+ }
263
+ else if (e.code?.startsWith("commander.")) {
264
+ console.log(`\n ${colors_1.c.failure} ${chalk_1.default.red(e.message ?? String(err))}\n`);
265
+ }
266
+ else {
267
+ console.log(`\n ${colors_1.c.failure} ${chalk_1.default.red(e.message ?? String(err))}\n`);
268
+ }
269
+ }
270
+ }
271
+ finally {
272
+ process.exit = origExit;
273
+ }
274
+ rl.prompt();
275
+ }
276
+ }
277
+ //# sourceMappingURL=repl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arc402-cli",
3
- "version": "0.4.2",
3
+ "version": "0.5.0",
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"
package/src/client.ts CHANGED
@@ -16,7 +16,9 @@ export async function getClient(config: Arc402Config): Promise<Arc402Client> {
16
16
  return { provider, signer, address };
17
17
  }
18
18
 
19
- return { provider, signer: null, address: null };
19
+ // No private key use walletContractAddress for read-only operations
20
+ const address = config.walletContractAddress ?? null;
21
+ return { provider, signer: null, address };
20
22
  }
21
23
 
22
24
  export async function requireSigner(
package/src/config.ts CHANGED
@@ -57,16 +57,22 @@ export function loadConfig(): Arc402Config {
57
57
  if (!fs.existsSync(CONFIG_PATH)) {
58
58
  // Auto-create with Base Mainnet defaults — zero friction
59
59
  const defaults = NETWORK_DEFAULTS["base-mainnet"] ?? {};
60
+ const d = defaults as unknown as Record<string,string>;
60
61
  const autoConfig: Arc402Config = {
61
62
  network: "base-mainnet",
62
63
  rpcUrl: defaults.rpcUrl ?? "https://mainnet.base.org",
63
- trustRegistryAddress: defaults.trustRegistryAddress ?? "",
64
64
  walletConnectProjectId: "455e9425343b9156fce1428250c9a54a",
65
- agentRegistryAddress: (defaults as unknown as Record<string,string>).agentRegistryV2Address ?? defaults.agentRegistryAddress,
65
+ policyEngineAddress: defaults.policyEngineAddress,
66
+ trustRegistryAddress: defaults.trustRegistryAddress ?? "",
67
+ agentRegistryAddress: d.agentRegistryV2Address ?? defaults.agentRegistryAddress,
66
68
  serviceAgreementAddress: defaults.serviceAgreementAddress,
67
69
  reputationOracleAddress: defaults.reputationOracleAddress,
70
+ sponsorshipAttestationAddress: defaults.sponsorshipAttestationAddress,
68
71
  capabilityRegistryAddress: defaults.capabilityRegistryAddress,
69
72
  governanceAddress: defaults.governanceAddress,
73
+ walletFactoryAddress: defaults.walletFactoryAddress,
74
+ sessionChannelsAddress: defaults.sessionChannelsAddress,
75
+ disputeModuleAddress: defaults.disputeModuleAddress,
70
76
  };
71
77
  saveConfig(autoConfig);
72
78
  console.log(`◈ Config auto-created at ${CONFIG_PATH} (Base Mainnet)`);
package/src/index.ts CHANGED
@@ -1,119 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { Command } from "commander";
3
- import fs from "fs";
4
- import path from "path";
5
- import os from "os";
6
- import { registerAcceptCommand } from "./commands/accept";
7
- import { registerAgentCommands } from "./commands/agent";
8
- import { registerAgreementsCommands } from "./commands/agreements";
9
- import { registerArbitratorCommand } from "./commands/arbitrator";
10
- import { registerCancelCommand } from "./commands/cancel";
11
- import { registerChannelCommands } from "./commands/channel";
12
- import { registerConfigCommands } from "./commands/config";
13
- import { registerDeliverCommand } from "./commands/deliver";
14
- import { registerDiscoverCommand } from "./commands/discover";
15
- import { registerEndpointCommands } from "./commands/endpoint";
16
- import { registerDisputeCommand } from "./commands/dispute";
17
- import { registerHireCommand } from "./commands/hire";
18
- import { registerHandshakeCommand } from "./commands/agent-handshake";
19
- import { registerNegotiateCommands } from "./commands/negotiate";
20
- import { registerRelayCommands } from "./commands/relay";
21
- import { registerRemediateCommands } from "./commands/remediate";
22
- import { registerDaemonCommands } from "./commands/daemon";
23
- import { registerOpenShellCommands } from "./commands/openshell";
24
- import { registerWorkroomCommands } from "./commands/workroom";
25
- import { registerArenaHandshakeCommands } from "./commands/arena-handshake";
26
- import { registerTrustCommand } from "./commands/trust";
27
- import { registerWalletCommands } from "./commands/wallet";
28
- import { renderBanner } from "./ui/banner";
29
- import { registerOwnerCommands } from "./commands/owner";
30
- import { registerSetupCommands } from "./commands/setup";
31
- import { registerVerifyCommand } from "./commands/verify";
32
- import { registerContractInteractionCommands } from "./commands/contract-interaction";
33
- import { registerWatchtowerCommands } from "./commands/watchtower";
34
- import { registerColdStartCommands } from "./commands/coldstart";
35
- import { registerMigrateCommands } from "./commands/migrate";
36
- import { registerFeedCommand } from "./commands/feed";
37
- import { registerArenaCommands } from "./commands/arena";
38
- import { registerWatchCommand } from "./commands/watch";
39
- import reputation from "./commands/reputation.js";
40
- import policy from "./commands/policy.js";
41
- import { BannerConfig } from "./ui/banner";
2
+ import { createProgram } from "./program";
3
+ import { startREPL } from "./repl";
42
4
 
43
- // Show banner when invoked with no arguments
44
5
  if (process.argv.length <= 2) {
45
- void (async () => {
46
- const CONFIG_PATH = path.join(os.homedir(), ".arc402", "config.json");
47
- let bannerCfg: BannerConfig | undefined;
48
-
49
- if (fs.existsSync(CONFIG_PATH)) {
50
- try {
51
- const raw = JSON.parse(fs.readFileSync(CONFIG_PATH, "utf-8")) as {
52
- network?: string;
53
- walletContractAddress?: string;
54
- rpcUrl?: string;
55
- };
56
- bannerCfg = { network: raw.network };
57
- if (raw.walletContractAddress) {
58
- const w = raw.walletContractAddress;
59
- bannerCfg.wallet = `${w.slice(0, 6)}...${w.slice(-4)}`;
60
- }
61
- if (raw.rpcUrl && raw.walletContractAddress) {
62
- try {
63
- // eslint-disable-next-line @typescript-eslint/no-var-requires
64
- const ethersLib = require("ethers") as typeof import("ethers");
65
- const provider = new ethersLib.ethers.JsonRpcProvider(raw.rpcUrl);
66
- const bal = await Promise.race([
67
- provider.getBalance(raw.walletContractAddress),
68
- new Promise<never>((_, r) => setTimeout(() => r(new Error("timeout")), 2000)),
69
- ]);
70
- bannerCfg.balance = `${parseFloat(ethersLib.ethers.formatEther(bal)).toFixed(4)} ETH`;
71
- } catch { /* skip balance on error/timeout */ }
72
- }
73
- } catch { /* skip config info on parse error */ }
74
- }
75
-
76
- renderBanner(bannerCfg);
77
- process.exit(0);
78
- })();
6
+ // No subcommand enter interactive REPL
7
+ void startREPL();
79
8
  } else {
80
-
81
- const program = new Command();
82
- program.name("arc402").description("ARC-402 CLI aligned to canonical-capability discovery → negotiate → hire → remediate → dispute workflow").version(require("../package.json").version);
83
- registerConfigCommands(program);
84
- registerHandshakeCommand(program);
85
- registerAgentCommands(program);
86
- registerDiscoverCommand(program);
87
- registerEndpointCommands(program);
88
- registerNegotiateCommands(program);
89
- registerHireCommand(program);
90
- registerAgreementsCommands(program);
91
- registerAcceptCommand(program);
92
- registerDeliverCommand(program);
93
- registerRemediateCommands(program);
94
- registerDisputeCommand(program);
95
- registerArbitratorCommand(program);
96
- registerCancelCommand(program);
97
- registerChannelCommands(program);
98
- registerRelayCommands(program);
99
- registerDaemonCommands(program);
100
- registerOpenShellCommands(program);
101
- registerWorkroomCommands(program);
102
- registerArenaHandshakeCommands(program);
103
- registerTrustCommand(program);
104
- registerWalletCommands(program);
105
- registerOwnerCommands(program);
106
- registerSetupCommands(program);
107
- registerVerifyCommand(program);
108
- registerContractInteractionCommands(program);
109
- registerWatchtowerCommands(program);
110
- registerColdStartCommands(program);
111
- registerMigrateCommands(program);
112
- registerFeedCommand(program);
113
- registerArenaCommands(program);
114
- registerWatchCommand(program);
115
- program.addCommand(reputation);
116
- program.addCommand(policy);
117
- program.parse(process.argv);
118
-
119
- } // end else (has arguments)
9
+ // One-shot mode — arc402 wallet deploy still works as usual
10
+ const program = createProgram();
11
+ program.parse(process.argv);
12
+ }
package/src/program.ts ADDED
@@ -0,0 +1,83 @@
1
+ import { Command } from "commander";
2
+ import { registerAcceptCommand } from "./commands/accept";
3
+ import { registerAgentCommands } from "./commands/agent";
4
+ import { registerAgreementsCommands } from "./commands/agreements";
5
+ import { registerArbitratorCommand } from "./commands/arbitrator";
6
+ import { registerCancelCommand } from "./commands/cancel";
7
+ import { registerChannelCommands } from "./commands/channel";
8
+ import { registerConfigCommands } from "./commands/config";
9
+ import { registerDeliverCommand } from "./commands/deliver";
10
+ import { registerDiscoverCommand } from "./commands/discover";
11
+ import { registerEndpointCommands } from "./commands/endpoint";
12
+ import { registerDisputeCommand } from "./commands/dispute";
13
+ import { registerHireCommand } from "./commands/hire";
14
+ import { registerHandshakeCommand } from "./commands/agent-handshake";
15
+ import { registerNegotiateCommands } from "./commands/negotiate";
16
+ import { registerRelayCommands } from "./commands/relay";
17
+ import { registerRemediateCommands } from "./commands/remediate";
18
+ import { registerDaemonCommands } from "./commands/daemon";
19
+ import { registerOpenShellCommands } from "./commands/openshell";
20
+ import { registerWorkroomCommands } from "./commands/workroom";
21
+ import { registerArenaHandshakeCommands } from "./commands/arena-handshake";
22
+ import { registerTrustCommand } from "./commands/trust";
23
+ import { registerWalletCommands } from "./commands/wallet";
24
+ import { registerOwnerCommands } from "./commands/owner";
25
+ import { registerSetupCommands } from "./commands/setup";
26
+ import { registerVerifyCommand } from "./commands/verify";
27
+ import { registerContractInteractionCommands } from "./commands/contract-interaction";
28
+ import { registerWatchtowerCommands } from "./commands/watchtower";
29
+ import { registerColdStartCommands } from "./commands/coldstart";
30
+ import { registerMigrateCommands } from "./commands/migrate";
31
+ import { registerFeedCommand } from "./commands/feed";
32
+ import { registerArenaCommands } from "./commands/arena";
33
+ import { registerWatchCommand } from "./commands/watch";
34
+ import reputation from "./commands/reputation.js";
35
+ import policy from "./commands/policy.js";
36
+
37
+ export function createProgram(): Command {
38
+ const program = new Command();
39
+ program
40
+ .name("arc402")
41
+ .description(
42
+ "ARC-402 CLI aligned to canonical-capability discovery → negotiate → hire → remediate → dispute workflow"
43
+ )
44
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
45
+ .version((require("../package.json") as { version: string }).version);
46
+
47
+ registerConfigCommands(program);
48
+ registerHandshakeCommand(program);
49
+ registerAgentCommands(program);
50
+ registerDiscoverCommand(program);
51
+ registerEndpointCommands(program);
52
+ registerNegotiateCommands(program);
53
+ registerHireCommand(program);
54
+ registerAgreementsCommands(program);
55
+ registerAcceptCommand(program);
56
+ registerDeliverCommand(program);
57
+ registerRemediateCommands(program);
58
+ registerDisputeCommand(program);
59
+ registerArbitratorCommand(program);
60
+ registerCancelCommand(program);
61
+ registerChannelCommands(program);
62
+ registerRelayCommands(program);
63
+ registerDaemonCommands(program);
64
+ registerOpenShellCommands(program);
65
+ registerWorkroomCommands(program);
66
+ registerArenaHandshakeCommands(program);
67
+ registerTrustCommand(program);
68
+ registerWalletCommands(program);
69
+ registerOwnerCommands(program);
70
+ registerSetupCommands(program);
71
+ registerVerifyCommand(program);
72
+ registerContractInteractionCommands(program);
73
+ registerWatchtowerCommands(program);
74
+ registerColdStartCommands(program);
75
+ registerMigrateCommands(program);
76
+ registerFeedCommand(program);
77
+ registerArenaCommands(program);
78
+ registerWatchCommand(program);
79
+ program.addCommand(reputation);
80
+ program.addCommand(policy);
81
+
82
+ return program;
83
+ }
package/src/repl.ts ADDED
@@ -0,0 +1,328 @@
1
+ import readline from "node:readline";
2
+ import chalk from "chalk";
3
+ import fs from "fs";
4
+ import path from "path";
5
+ import os from "os";
6
+ import { createProgram } from "./program";
7
+ import { renderBanner, BannerConfig } from "./ui/banner";
8
+ import { c } from "./ui/colors";
9
+
10
+ // ─── Prompt ───────────────────────────────────────────────────────────────────
11
+
12
+ const PROMPT =
13
+ chalk.cyanBright("◈") +
14
+ " " +
15
+ chalk.dim("arc402") +
16
+ " " +
17
+ chalk.white(">") +
18
+ " ";
19
+
20
+ // ─── Sentinel thrown to intercept process.exit() from commands ───────────────
21
+
22
+ class REPLExitSignal extends Error {
23
+ constructor(public readonly code: number = 0) {
24
+ super("repl-exit-signal");
25
+ }
26
+ }
27
+
28
+ // ─── Config / banner helpers ──────────────────────────────────────────────────
29
+
30
+ const CONFIG_PATH = path.join(os.homedir(), ".arc402", "config.json");
31
+
32
+ async function loadBannerConfig(): Promise<BannerConfig | undefined> {
33
+ if (!fs.existsSync(CONFIG_PATH)) return undefined;
34
+ try {
35
+ const raw = JSON.parse(fs.readFileSync(CONFIG_PATH, "utf-8")) as {
36
+ network?: string;
37
+ walletContractAddress?: string;
38
+ rpcUrl?: string;
39
+ };
40
+ const cfg: BannerConfig = { network: raw.network };
41
+ if (raw.walletContractAddress) {
42
+ const w = raw.walletContractAddress;
43
+ cfg.wallet = `${w.slice(0, 6)}...${w.slice(-4)}`;
44
+ }
45
+ if (raw.rpcUrl && raw.walletContractAddress) {
46
+ try {
47
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
48
+ const ethersLib = require("ethers") as typeof import("ethers");
49
+ const provider = new ethersLib.ethers.JsonRpcProvider(raw.rpcUrl);
50
+ const bal = await Promise.race([
51
+ provider.getBalance(raw.walletContractAddress),
52
+ new Promise<never>((_, r) =>
53
+ setTimeout(() => r(new Error("timeout")), 2000)
54
+ ),
55
+ ]);
56
+ cfg.balance = `${parseFloat(
57
+ ethersLib.ethers.formatEther(bal)
58
+ ).toFixed(4)} ETH`;
59
+ } catch {
60
+ /* skip balance on timeout */
61
+ }
62
+ }
63
+ return cfg;
64
+ } catch {
65
+ return undefined;
66
+ }
67
+ }
68
+
69
+ // ─── Status dashboard ─────────────────────────────────────────────────────────
70
+
71
+ async function showStatus(): Promise<void> {
72
+ console.log();
73
+ console.log(
74
+ " " + chalk.cyanBright("◈") + " " + chalk.dim("─".repeat(45))
75
+ );
76
+ if (!fs.existsSync(CONFIG_PATH)) {
77
+ console.log(
78
+ chalk.dim(" No config found. Run 'config init' to get started.")
79
+ );
80
+ console.log();
81
+ return;
82
+ }
83
+ try {
84
+ const raw = JSON.parse(fs.readFileSync(CONFIG_PATH, "utf-8")) as {
85
+ network?: string;
86
+ walletContractAddress?: string;
87
+ rpcUrl?: string;
88
+ };
89
+ if (raw.network)
90
+ console.log(` ${chalk.dim("Network")} ${chalk.white(raw.network)}`);
91
+ if (raw.walletContractAddress) {
92
+ const w = raw.walletContractAddress;
93
+ console.log(
94
+ ` ${chalk.dim("Wallet")} ${chalk.white(`${w.slice(0, 6)}...${w.slice(-4)}`)}`
95
+ );
96
+ }
97
+ if (raw.rpcUrl && raw.walletContractAddress) {
98
+ try {
99
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
100
+ const ethersLib = require("ethers") as typeof import("ethers");
101
+ const provider = new ethersLib.ethers.JsonRpcProvider(raw.rpcUrl);
102
+ const bal = await Promise.race([
103
+ provider.getBalance(raw.walletContractAddress),
104
+ new Promise<never>((_, r) =>
105
+ setTimeout(() => r(new Error("timeout")), 2000)
106
+ ),
107
+ ]);
108
+ console.log(
109
+ ` ${chalk.dim("Balance")} ${chalk.white(
110
+ `${parseFloat(ethersLib.ethers.formatEther(bal)).toFixed(4)} ETH`
111
+ )}`
112
+ );
113
+ } catch {
114
+ /* skip */
115
+ }
116
+ }
117
+ } catch {
118
+ /* skip */
119
+ }
120
+ console.log();
121
+ }
122
+
123
+ // ─── Shell-style tokenizer (handles "quoted strings") ────────────────────────
124
+
125
+ function parseTokens(input: string): string[] {
126
+ const tokens: string[] = [];
127
+ let current = "";
128
+ let inQuote = false;
129
+ let quoteChar = "";
130
+
131
+ for (const ch of input) {
132
+ if (inQuote) {
133
+ if (ch === quoteChar) {
134
+ inQuote = false;
135
+ } else {
136
+ current += ch;
137
+ }
138
+ } else if (ch === '"' || ch === "'") {
139
+ inQuote = true;
140
+ quoteChar = ch;
141
+ } else if (ch === " ") {
142
+ if (current) {
143
+ tokens.push(current);
144
+ current = "";
145
+ }
146
+ } else {
147
+ current += ch;
148
+ }
149
+ }
150
+ if (current) tokens.push(current);
151
+ return tokens;
152
+ }
153
+
154
+ // ─── Tab completer ────────────────────────────────────────────────────────────
155
+
156
+ function buildCompleter(
157
+ topCmds: string[],
158
+ subCmds: Map<string, string[]>
159
+ ): readline.Completer {
160
+ const specialCmds = ["help", "exit", "quit", "clear", "status"];
161
+ const allTop = [...specialCmds, ...topCmds];
162
+
163
+ return function completer(line: string): [string[], string] {
164
+ const trimmed = line.trimStart();
165
+ const spaceIdx = trimmed.indexOf(" ");
166
+
167
+ if (spaceIdx === -1) {
168
+ // Completing the first word (top-level command)
169
+ const hits = allTop.filter((cmd) => cmd.startsWith(trimmed));
170
+ return [hits.length ? hits : allTop, trimmed];
171
+ }
172
+
173
+ // Completing a subcommand
174
+ const parent = trimmed.slice(0, spaceIdx);
175
+ const rest = trimmed.slice(spaceIdx + 1);
176
+ const subs = subCmds.get(parent) ?? [];
177
+ const hits = subs.filter((s) => s.startsWith(rest));
178
+ return [
179
+ hits.map((s) => `${parent} ${s}`),
180
+ trimmed,
181
+ ];
182
+ };
183
+ }
184
+
185
+ // ─── REPL entry point ─────────────────────────────────────────────────────────
186
+
187
+ export async function startREPL(): Promise<void> {
188
+ // Show the banner
189
+ const bannerCfg = await loadBannerConfig();
190
+ renderBanner(bannerCfg);
191
+
192
+ // Build a template program once just to extract command metadata for completions
193
+ const template = createProgram();
194
+ const topCmds = template.commands.map((cmd) => cmd.name());
195
+ const subCmds = new Map<string, string[]>();
196
+ for (const cmd of template.commands) {
197
+ if (cmd.commands.length > 0) {
198
+ subCmds.set(
199
+ cmd.name(),
200
+ cmd.commands.map((s) => s.name())
201
+ );
202
+ }
203
+ }
204
+
205
+ const rl = readline.createInterface({
206
+ input: process.stdin,
207
+ output: process.stdout,
208
+ prompt: PROMPT,
209
+ completer: buildCompleter(topCmds, subCmds),
210
+ terminal: true,
211
+ historySize: 200,
212
+ });
213
+
214
+ function goodbye(): void {
215
+ console.log(
216
+ "\n " + chalk.cyanBright("◈") + chalk.dim(" goodbye")
217
+ );
218
+ }
219
+
220
+ rl.on("SIGINT", () => {
221
+ goodbye();
222
+ rl.close();
223
+ process.exit(0);
224
+ });
225
+
226
+ rl.on("close", () => {
227
+ goodbye();
228
+ process.exit(0);
229
+ });
230
+
231
+ rl.prompt();
232
+
233
+ // Process lines one at a time
234
+ for await (const line of rl) {
235
+ const input = line.trim();
236
+
237
+ if (!input) {
238
+ rl.prompt();
239
+ continue;
240
+ }
241
+
242
+ // ── Special built-in commands ──────────────────────────────────────────
243
+
244
+ if (input === "exit" || input === "quit") {
245
+ goodbye();
246
+ rl.close();
247
+ process.exit(0);
248
+ }
249
+
250
+ if (input === "clear") {
251
+ console.clear();
252
+ const cfg = await loadBannerConfig();
253
+ renderBanner(cfg);
254
+ rl.prompt();
255
+ continue;
256
+ }
257
+
258
+ if (input === "status") {
259
+ await showStatus();
260
+ rl.prompt();
261
+ continue;
262
+ }
263
+
264
+ if (input === "help" || input === "help ") {
265
+ // Show the full commander help via the program
266
+ const prog = createProgram();
267
+ prog.exitOverride();
268
+ prog.configureOutput({
269
+ writeOut: (str) => process.stdout.write(str),
270
+ writeErr: (str) => process.stderr.write(str),
271
+ });
272
+ try {
273
+ await prog.parseAsync(["node", "arc402", "--help"]);
274
+ } catch {
275
+ /* commander throws after printing help — ignore */
276
+ }
277
+ rl.prompt();
278
+ continue;
279
+ }
280
+
281
+ // ── Dispatch to commander ──────────────────────────────────────────────
282
+
283
+ const tokens = parseTokens(input);
284
+ const prog = createProgram();
285
+ prog.exitOverride();
286
+ prog.configureOutput({
287
+ writeOut: (str) => process.stdout.write(str),
288
+ writeErr: (str) => process.stderr.write(str),
289
+ });
290
+
291
+ // Intercept process.exit() so a command exiting doesn't kill the REPL
292
+ const origExit = process.exit;
293
+ (process as NodeJS.Process).exit = ((code?: number) => {
294
+ throw new REPLExitSignal(code ?? 0);
295
+ }) as typeof process.exit;
296
+
297
+ try {
298
+ await prog.parseAsync(["node", "arc402", ...tokens]);
299
+ } catch (err) {
300
+ if (err instanceof REPLExitSignal) {
301
+ // Command called process.exit() — normal, just continue the REPL
302
+ } else {
303
+ const e = err as { code?: string; message?: string };
304
+ if (
305
+ e.code === "commander.helpDisplayed" ||
306
+ e.code === "commander.version"
307
+ ) {
308
+ // Help / version output was already written — nothing to do
309
+ } else if (e.code === "commander.unknownCommand") {
310
+ console.log(
311
+ `\n ${c.failure} ${chalk.red(`Unknown command: ${chalk.white(tokens[0])}`)}`
312
+ );
313
+ console.log(chalk.dim(" Type 'help' for available commands\n"));
314
+ } else if (e.code?.startsWith("commander.")) {
315
+ console.log(`\n ${c.failure} ${chalk.red(e.message ?? String(err))}\n`);
316
+ } else {
317
+ console.log(
318
+ `\n ${c.failure} ${chalk.red(e.message ?? String(err))}\n`
319
+ );
320
+ }
321
+ }
322
+ } finally {
323
+ (process as NodeJS.Process).exit = origExit;
324
+ }
325
+
326
+ rl.prompt();
327
+ }
328
+ }