arc402-cli 0.3.4 → 0.4.1

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.
Files changed (145) hide show
  1. package/dist/commands/accept.d.ts.map +1 -1
  2. package/dist/commands/accept.js +17 -7
  3. package/dist/commands/accept.js.map +1 -1
  4. package/dist/commands/agent-handshake.d.ts.map +1 -1
  5. package/dist/commands/agent-handshake.js +9 -4
  6. package/dist/commands/agent-handshake.js.map +1 -1
  7. package/dist/commands/agent.d.ts.map +1 -1
  8. package/dist/commands/agent.js +14 -8
  9. package/dist/commands/agent.js.map +1 -1
  10. package/dist/commands/agreements.d.ts.map +1 -1
  11. package/dist/commands/agreements.js +51 -26
  12. package/dist/commands/agreements.js.map +1 -1
  13. package/dist/commands/arbitrator.d.ts.map +1 -1
  14. package/dist/commands/arbitrator.js +77 -20
  15. package/dist/commands/arbitrator.js.map +1 -1
  16. package/dist/commands/arena-handshake.d.ts.map +1 -1
  17. package/dist/commands/arena-handshake.js +14 -11
  18. package/dist/commands/arena-handshake.js.map +1 -1
  19. package/dist/commands/arena.d.ts.map +1 -1
  20. package/dist/commands/arena.js +4 -3
  21. package/dist/commands/arena.js.map +1 -1
  22. package/dist/commands/cancel.d.ts.map +1 -1
  23. package/dist/commands/cancel.js +20 -10
  24. package/dist/commands/cancel.js.map +1 -1
  25. package/dist/commands/channel.d.ts.map +1 -1
  26. package/dist/commands/channel.js +27 -17
  27. package/dist/commands/channel.js.map +1 -1
  28. package/dist/commands/coldstart.d.ts.map +1 -1
  29. package/dist/commands/coldstart.js +33 -22
  30. package/dist/commands/coldstart.js.map +1 -1
  31. package/dist/commands/config.d.ts.map +1 -1
  32. package/dist/commands/config.js +34 -17
  33. package/dist/commands/config.js.map +1 -1
  34. package/dist/commands/daemon.d.ts.map +1 -1
  35. package/dist/commands/daemon.js +44 -37
  36. package/dist/commands/daemon.js.map +1 -1
  37. package/dist/commands/deliver.d.ts.map +1 -1
  38. package/dist/commands/deliver.js +16 -3
  39. package/dist/commands/deliver.js.map +1 -1
  40. package/dist/commands/discover.d.ts.map +1 -1
  41. package/dist/commands/discover.js +2 -0
  42. package/dist/commands/discover.js.map +1 -1
  43. package/dist/commands/dispute.d.ts.map +1 -1
  44. package/dist/commands/dispute.js +11 -10
  45. package/dist/commands/dispute.js.map +1 -1
  46. package/dist/commands/endpoint.d.ts.map +1 -1
  47. package/dist/commands/endpoint.js +4 -3
  48. package/dist/commands/endpoint.js.map +1 -1
  49. package/dist/commands/feed.d.ts.map +1 -1
  50. package/dist/commands/feed.js.map +1 -1
  51. package/dist/commands/hire.d.ts.map +1 -1
  52. package/dist/commands/hire.js +15 -2
  53. package/dist/commands/hire.js.map +1 -1
  54. package/dist/commands/migrate.d.ts.map +1 -1
  55. package/dist/commands/migrate.js +29 -29
  56. package/dist/commands/migrate.js.map +1 -1
  57. package/dist/commands/negotiate.d.ts.map +1 -1
  58. package/dist/commands/negotiate.js +8 -7
  59. package/dist/commands/negotiate.js.map +1 -1
  60. package/dist/commands/openshell.d.ts.map +1 -1
  61. package/dist/commands/openshell.js +6 -5
  62. package/dist/commands/openshell.js.map +1 -1
  63. package/dist/commands/owner.d.ts.map +1 -1
  64. package/dist/commands/owner.js +7 -2
  65. package/dist/commands/owner.js.map +1 -1
  66. package/dist/commands/policy.d.ts.map +1 -1
  67. package/dist/commands/policy.js +22 -10
  68. package/dist/commands/policy.js.map +1 -1
  69. package/dist/commands/relay.d.ts.map +1 -1
  70. package/dist/commands/relay.js +6 -5
  71. package/dist/commands/relay.js.map +1 -1
  72. package/dist/commands/remediate.d.ts.map +1 -1
  73. package/dist/commands/remediate.js +3 -2
  74. package/dist/commands/remediate.js.map +1 -1
  75. package/dist/commands/reputation.d.ts.map +1 -1
  76. package/dist/commands/reputation.js +12 -5
  77. package/dist/commands/reputation.js.map +1 -1
  78. package/dist/commands/trust.d.ts.map +1 -1
  79. package/dist/commands/trust.js +16 -1
  80. package/dist/commands/trust.js.map +1 -1
  81. package/dist/commands/verify.d.ts.map +1 -1
  82. package/dist/commands/verify.js +6 -4
  83. package/dist/commands/verify.js.map +1 -1
  84. package/dist/commands/wallet.d.ts.map +1 -1
  85. package/dist/commands/wallet.js +217 -170
  86. package/dist/commands/wallet.js.map +1 -1
  87. package/dist/commands/watch.d.ts +3 -0
  88. package/dist/commands/watch.d.ts.map +1 -0
  89. package/dist/commands/watch.js +23 -0
  90. package/dist/commands/watch.js.map +1 -0
  91. package/dist/commands/watchtower.d.ts.map +1 -1
  92. package/dist/commands/watchtower.js +30 -13
  93. package/dist/commands/watchtower.js.map +1 -1
  94. package/dist/commands/workroom.d.ts.map +1 -1
  95. package/dist/commands/workroom.js +123 -95
  96. package/dist/commands/workroom.js.map +1 -1
  97. package/dist/config.d.ts.map +1 -1
  98. package/dist/config.js +16 -2
  99. package/dist/config.js.map +1 -1
  100. package/dist/index.js +73 -38
  101. package/dist/index.js.map +1 -1
  102. package/dist/ui/banner.d.ts.map +1 -1
  103. package/dist/ui/banner.js +4 -2
  104. package/dist/ui/banner.js.map +1 -1
  105. package/dist/ui/tree.d.ts +7 -0
  106. package/dist/ui/tree.d.ts.map +1 -0
  107. package/dist/ui/tree.js +13 -0
  108. package/dist/ui/tree.js.map +1 -0
  109. package/package.json +1 -1
  110. package/src/commands/accept.ts +19 -10
  111. package/src/commands/agent-handshake.ts +9 -4
  112. package/src/commands/agent.ts +15 -6
  113. package/src/commands/agreements.ts +51 -25
  114. package/src/commands/arbitrator.ts +71 -20
  115. package/src/commands/arena-handshake.ts +15 -8
  116. package/src/commands/arena.ts +4 -3
  117. package/src/commands/cancel.ts +19 -10
  118. package/src/commands/channel.ts +27 -17
  119. package/src/commands/coldstart.ts +29 -20
  120. package/src/commands/config.ts +34 -17
  121. package/src/commands/daemon.ts +45 -38
  122. package/src/commands/deliver.ts +16 -3
  123. package/src/commands/discover.ts +2 -0
  124. package/src/commands/dispute.ts +12 -10
  125. package/src/commands/endpoint.ts +4 -3
  126. package/src/commands/feed.ts +1 -0
  127. package/src/commands/hire.ts +17 -2
  128. package/src/commands/migrate.ts +28 -26
  129. package/src/commands/negotiate.ts +8 -7
  130. package/src/commands/openshell.ts +7 -5
  131. package/src/commands/owner.ts +7 -2
  132. package/src/commands/policy.ts +21 -10
  133. package/src/commands/relay.ts +6 -5
  134. package/src/commands/remediate.ts +4 -2
  135. package/src/commands/reputation.ts +13 -5
  136. package/src/commands/trust.ts +13 -1
  137. package/src/commands/verify.ts +7 -4
  138. package/src/commands/wallet.ts +218 -170
  139. package/src/commands/watch.ts +23 -0
  140. package/src/commands/watchtower.ts +29 -13
  141. package/src/commands/workroom.ts +121 -95
  142. package/src/config.ts +16 -2
  143. package/src/index.ts +43 -3
  144. package/src/ui/banner.ts +5 -2
  145. package/src/ui/tree.ts +16 -0
package/src/index.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
+ import fs from "fs";
4
+ import path from "path";
5
+ import os from "os";
3
6
  import { registerAcceptCommand } from "./commands/accept";
4
7
  import { registerAgentCommands } from "./commands/agent";
5
8
  import { registerAgreementsCommands } from "./commands/agreements";
@@ -32,14 +35,48 @@ import { registerColdStartCommands } from "./commands/coldstart";
32
35
  import { registerMigrateCommands } from "./commands/migrate";
33
36
  import { registerFeedCommand } from "./commands/feed";
34
37
  import { registerArenaCommands } from "./commands/arena";
38
+ import { registerWatchCommand } from "./commands/watch";
35
39
  import reputation from "./commands/reputation.js";
36
40
  import policy from "./commands/policy.js";
41
+ import { BannerConfig } from "./ui/banner";
37
42
 
38
43
  // Show banner when invoked with no arguments
39
44
  if (process.argv.length <= 2) {
40
- renderBanner();
41
- process.exit(0);
42
- }
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
+ })();
79
+ } else {
43
80
 
44
81
  const program = new Command();
45
82
  program.name("arc402").description("ARC-402 CLI aligned to canonical-capability discovery → negotiate → hire → remediate → dispute workflow").version(require("../package.json").version);
@@ -74,6 +111,9 @@ registerColdStartCommands(program);
74
111
  registerMigrateCommands(program);
75
112
  registerFeedCommand(program);
76
113
  registerArenaCommands(program);
114
+ registerWatchCommand(program);
77
115
  program.addCommand(reputation);
78
116
  program.addCommand(policy);
79
117
  program.parse(process.argv);
118
+
119
+ } // end else (has arguments)
package/src/ui/banner.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import chalk from "chalk";
2
2
 
3
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
4
+ const _pkg = require("../../package.json") as { version: string };
5
+
3
6
  const ART = `
4
7
  ██████╗ ██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗
5
8
  ██╔══██╗██╔══██╗██╔════╝ ██║ ██║██╔═══██╗╚════██╗
@@ -19,7 +22,7 @@ export interface BannerConfig {
19
22
  export function renderBanner(config?: BannerConfig): void {
20
23
  console.log(chalk.cyan(ART));
21
24
  console.log();
22
- console.log(" " + chalk.dim("agent-to-agent arcing · v0.1.0"));
25
+ console.log(" " + chalk.dim(`agent-to-agent arcing · v${_pkg.version}`));
23
26
  console.log(" " + SEPARATOR);
24
27
 
25
28
  if (config) {
@@ -36,6 +39,6 @@ export function renderBanner(config?: BannerConfig): void {
36
39
  }
37
40
 
38
41
  console.log();
39
- console.log(` ${chalk.dim("Type 'arc help' to get started")}`);
42
+ console.log(` ${chalk.dim("Type 'arc402 help' to get started")}`);
40
43
  console.log();
41
44
  }
package/src/ui/tree.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { c } from "./colors";
2
+
3
+ export interface TreeItem {
4
+ label: string;
5
+ value: string;
6
+ last?: boolean;
7
+ }
8
+
9
+ export function renderTree(items: TreeItem[]): void {
10
+ items.forEach((item, i) => {
11
+ const isLast = item.last ?? (i === items.length - 1);
12
+ const branch = isLast ? "└" : "├";
13
+ const paddedLabel = item.label.padEnd(10);
14
+ console.log(` ${c.dim(branch)} ${c.dim(paddedLabel)} ${c.white(item.value)}`);
15
+ });
16
+ }