arc402-cli 0.9.19 → 0.10.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.
Files changed (359) hide show
  1. package/README.md +41 -2
  2. package/dist/abis.d.ts +1 -0
  3. package/dist/abis.d.ts.map +1 -1
  4. package/dist/abis.js +45 -14
  5. package/dist/abis.js.map +1 -1
  6. package/dist/bundler.d.ts +1 -1
  7. package/dist/bundler.d.ts.map +1 -1
  8. package/dist/bundler.js +61 -27
  9. package/dist/bundler.js.map +1 -1
  10. package/dist/client.d.ts +1 -1
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/client.js +9 -5
  13. package/dist/client.js.map +1 -1
  14. package/dist/coinbase-smart-wallet.js +4 -1
  15. package/dist/coinbase-smart-wallet.js.map +1 -1
  16. package/dist/commands/accept.js +28 -25
  17. package/dist/commands/accept.js.map +1 -1
  18. package/dist/commands/agent-handshake.js +18 -15
  19. package/dist/commands/agent-handshake.js.map +1 -1
  20. package/dist/commands/agent.js +104 -98
  21. package/dist/commands/agent.js.map +1 -1
  22. package/dist/commands/agreements.js +98 -62
  23. package/dist/commands/agreements.js.map +1 -1
  24. package/dist/commands/arbitrator.js +81 -45
  25. package/dist/commands/arbitrator.js.map +1 -1
  26. package/dist/commands/arena-handshake.d.ts.map +1 -1
  27. package/dist/commands/arena-handshake.js +35 -53
  28. package/dist/commands/arena-handshake.js.map +1 -1
  29. package/dist/commands/arena.js +18 -12
  30. package/dist/commands/arena.js.map +1 -1
  31. package/dist/commands/backup.js +36 -30
  32. package/dist/commands/backup.js.map +1 -1
  33. package/dist/commands/cancel.js +18 -15
  34. package/dist/commands/cancel.js.map +1 -1
  35. package/dist/commands/channel.js +81 -45
  36. package/dist/commands/channel.js.map +1 -1
  37. package/dist/commands/coldstart.js +34 -31
  38. package/dist/commands/coldstart.js.map +1 -1
  39. package/dist/commands/compute.d.ts +14 -0
  40. package/dist/commands/compute.d.ts.map +1 -0
  41. package/dist/commands/compute.js +466 -0
  42. package/dist/commands/compute.js.map +1 -0
  43. package/dist/commands/config.js +30 -24
  44. package/dist/commands/config.js.map +1 -1
  45. package/dist/commands/contract-interaction.js +15 -12
  46. package/dist/commands/contract-interaction.js.map +1 -1
  47. package/dist/commands/daemon.d.ts.map +1 -1
  48. package/dist/commands/daemon.js +135 -98
  49. package/dist/commands/daemon.js.map +1 -1
  50. package/dist/commands/deliver.js +76 -37
  51. package/dist/commands/deliver.js.map +1 -1
  52. package/dist/commands/discover.js +27 -24
  53. package/dist/commands/discover.js.map +1 -1
  54. package/dist/commands/dispute.js +110 -104
  55. package/dist/commands/dispute.js.map +1 -1
  56. package/dist/commands/doctor.js +55 -16
  57. package/dist/commands/doctor.js.map +1 -1
  58. package/dist/commands/endpoint.js +95 -56
  59. package/dist/commands/endpoint.js.map +1 -1
  60. package/dist/commands/feed.js +18 -11
  61. package/dist/commands/feed.js.map +1 -1
  62. package/dist/commands/hire.js +40 -37
  63. package/dist/commands/hire.js.map +1 -1
  64. package/dist/commands/migrate.js +33 -30
  65. package/dist/commands/migrate.js.map +1 -1
  66. package/dist/commands/negotiate.d.ts.map +1 -1
  67. package/dist/commands/negotiate.js +36 -34
  68. package/dist/commands/negotiate.js.map +1 -1
  69. package/dist/commands/openshell.js +104 -68
  70. package/dist/commands/openshell.js.map +1 -1
  71. package/dist/commands/owner.js +20 -17
  72. package/dist/commands/owner.js.map +1 -1
  73. package/dist/commands/policy.js +43 -41
  74. package/dist/commands/policy.js.map +1 -1
  75. package/dist/commands/relay.d.ts.map +1 -1
  76. package/dist/commands/relay.js +51 -18
  77. package/dist/commands/relay.js.map +1 -1
  78. package/dist/commands/remediate.js +23 -20
  79. package/dist/commands/remediate.js.map +1 -1
  80. package/dist/commands/reputation.js +27 -25
  81. package/dist/commands/reputation.js.map +1 -1
  82. package/dist/commands/setup.js +104 -65
  83. package/dist/commands/setup.js.map +1 -1
  84. package/dist/commands/trust.js +20 -17
  85. package/dist/commands/trust.js.map +1 -1
  86. package/dist/commands/verify.js +21 -18
  87. package/dist/commands/verify.js.map +1 -1
  88. package/dist/commands/wallet.d.ts.map +1 -1
  89. package/dist/commands/wallet.js +645 -679
  90. package/dist/commands/wallet.js.map +1 -1
  91. package/dist/commands/watch.js +36 -33
  92. package/dist/commands/watch.js.map +1 -1
  93. package/dist/commands/watchtower.js +73 -37
  94. package/dist/commands/watchtower.js.map +1 -1
  95. package/dist/commands/workroom.d.ts.map +1 -1
  96. package/dist/commands/workroom.js +282 -143
  97. package/dist/commands/workroom.js.map +1 -1
  98. package/dist/config.d.ts +3 -0
  99. package/dist/config.d.ts.map +1 -1
  100. package/dist/config.js +71 -22
  101. package/dist/config.js.map +1 -1
  102. package/dist/daemon/compute-metering.d.ts +61 -0
  103. package/dist/daemon/compute-metering.d.ts.map +1 -0
  104. package/dist/daemon/compute-metering.js +299 -0
  105. package/dist/daemon/compute-metering.js.map +1 -0
  106. package/dist/daemon/compute-session.d.ts +100 -0
  107. package/dist/daemon/compute-session.d.ts.map +1 -0
  108. package/dist/daemon/compute-session.js +231 -0
  109. package/dist/daemon/compute-session.js.map +1 -0
  110. package/dist/daemon/config.d.ts +19 -1
  111. package/dist/daemon/config.d.ts.map +1 -1
  112. package/dist/daemon/config.js +90 -16
  113. package/dist/daemon/config.js.map +1 -1
  114. package/dist/daemon/credentials.d.ts +24 -0
  115. package/dist/daemon/credentials.d.ts.map +1 -0
  116. package/dist/daemon/credentials.js +80 -0
  117. package/dist/daemon/credentials.js.map +1 -0
  118. package/dist/daemon/delivery-client.d.ts +35 -0
  119. package/dist/daemon/delivery-client.d.ts.map +1 -0
  120. package/dist/daemon/delivery-client.js +231 -0
  121. package/dist/daemon/delivery-client.js.map +1 -0
  122. package/dist/daemon/file-delivery.d.ts +98 -0
  123. package/dist/daemon/file-delivery.d.ts.map +1 -0
  124. package/dist/daemon/file-delivery.js +461 -0
  125. package/dist/daemon/file-delivery.js.map +1 -0
  126. package/dist/daemon/hire-listener.d.ts +3 -3
  127. package/dist/daemon/hire-listener.d.ts.map +1 -1
  128. package/dist/daemon/hire-listener.js +47 -13
  129. package/dist/daemon/hire-listener.js.map +1 -1
  130. package/dist/daemon/index.d.ts +2 -1
  131. package/dist/daemon/index.d.ts.map +1 -1
  132. package/dist/daemon/index.js +526 -53
  133. package/dist/daemon/index.js.map +1 -1
  134. package/dist/daemon/job-lifecycle.d.ts +1 -1
  135. package/dist/daemon/job-lifecycle.d.ts.map +1 -1
  136. package/dist/daemon/job-lifecycle.js +51 -11
  137. package/dist/daemon/job-lifecycle.js.map +1 -1
  138. package/dist/daemon/notify.d.ts +1 -1
  139. package/dist/daemon/notify.d.ts.map +1 -1
  140. package/dist/daemon/notify.js +53 -19
  141. package/dist/daemon/notify.js.map +1 -1
  142. package/dist/daemon/token-metering.js +47 -8
  143. package/dist/daemon/token-metering.js.map +1 -1
  144. package/dist/daemon/userops.d.ts +2 -2
  145. package/dist/daemon/userops.d.ts.map +1 -1
  146. package/dist/daemon/userops.js +27 -23
  147. package/dist/daemon/userops.js.map +1 -1
  148. package/dist/daemon/wallet-monitor.d.ts +1 -1
  149. package/dist/daemon/wallet-monitor.d.ts.map +1 -1
  150. package/dist/daemon/wallet-monitor.js +12 -8
  151. package/dist/daemon/wallet-monitor.js.map +1 -1
  152. package/dist/daemon/worker-executor.d.ts +71 -0
  153. package/dist/daemon/worker-executor.d.ts.map +1 -0
  154. package/dist/daemon/worker-executor.js +382 -0
  155. package/dist/daemon/worker-executor.js.map +1 -0
  156. package/dist/drain-v4.js +64 -26
  157. package/dist/drain-v4.js.map +1 -1
  158. package/dist/endpoint-config.js +63 -20
  159. package/dist/endpoint-config.js.map +1 -1
  160. package/dist/endpoint-notify.d.ts.map +1 -1
  161. package/dist/endpoint-notify.js +49 -15
  162. package/dist/endpoint-notify.js.map +1 -1
  163. package/dist/index.js +50 -18
  164. package/dist/index.js.map +1 -1
  165. package/dist/openshell-runtime.d.ts.map +1 -1
  166. package/dist/openshell-runtime.js +82 -38
  167. package/dist/openshell-runtime.js.map +1 -1
  168. package/dist/program.d.ts.map +1 -1
  169. package/dist/program.js +85 -78
  170. package/dist/program.js.map +1 -1
  171. package/dist/repl.js +31 -25
  172. package/dist/repl.js.map +1 -1
  173. package/dist/signing.js +6 -3
  174. package/dist/signing.js.map +1 -1
  175. package/dist/telegram-notify.js +40 -3
  176. package/dist/telegram-notify.js.map +1 -1
  177. package/dist/tui/App.d.ts.map +1 -1
  178. package/dist/tui/App.js +56 -89
  179. package/dist/tui/App.js.map +1 -1
  180. package/dist/tui/Footer.js +7 -4
  181. package/dist/tui/Footer.js.map +1 -1
  182. package/dist/tui/Header.d.ts +1 -1
  183. package/dist/tui/Header.d.ts.map +1 -1
  184. package/dist/tui/Header.js +14 -9
  185. package/dist/tui/Header.js.map +1 -1
  186. package/dist/tui/InputLine.d.ts +2 -1
  187. package/dist/tui/InputLine.d.ts.map +1 -1
  188. package/dist/tui/InputLine.js +47 -97
  189. package/dist/tui/InputLine.js.map +1 -1
  190. package/dist/tui/Viewport.d.ts +1 -2
  191. package/dist/tui/Viewport.d.ts.map +1 -1
  192. package/dist/tui/Viewport.js +26 -6
  193. package/dist/tui/Viewport.js.map +1 -1
  194. package/dist/tui/WalletConnectPairing.js +19 -16
  195. package/dist/tui/WalletConnectPairing.js.map +1 -1
  196. package/dist/tui/components/Button.js +9 -6
  197. package/dist/tui/components/Button.js.map +1 -1
  198. package/dist/tui/components/CeremonyView.js +8 -5
  199. package/dist/tui/components/CeremonyView.js.map +1 -1
  200. package/dist/tui/components/CompletionDropdown.js +9 -6
  201. package/dist/tui/components/CompletionDropdown.js.map +1 -1
  202. package/dist/tui/components/ConfirmPrompt.js +8 -5
  203. package/dist/tui/components/ConfirmPrompt.js.map +1 -1
  204. package/dist/tui/components/CustomTextInput.js +14 -11
  205. package/dist/tui/components/CustomTextInput.js.map +1 -1
  206. package/dist/tui/components/InteractiveTable.js +12 -9
  207. package/dist/tui/components/InteractiveTable.js.map +1 -1
  208. package/dist/tui/components/StepSpinner.js +13 -10
  209. package/dist/tui/components/StepSpinner.js.map +1 -1
  210. package/dist/tui/components/Toast.js +12 -8
  211. package/dist/tui/components/Toast.js.map +1 -1
  212. package/dist/tui/index.d.ts.map +1 -1
  213. package/dist/tui/index.js +21 -28
  214. package/dist/tui/index.js.map +1 -1
  215. package/dist/tui/useChat.js +19 -13
  216. package/dist/tui/useChat.js.map +1 -1
  217. package/dist/tui/useCommand.d.ts +2 -3
  218. package/dist/tui/useCommand.d.ts.map +1 -1
  219. package/dist/tui/useCommand.js +24 -100
  220. package/dist/tui/useCommand.js.map +1 -1
  221. package/dist/tui/useNotifications.js +8 -5
  222. package/dist/tui/useNotifications.js.map +1 -1
  223. package/dist/tui/useScroll.d.ts.map +1 -1
  224. package/dist/tui/useScroll.js +12 -15
  225. package/dist/tui/useScroll.js.map +1 -1
  226. package/dist/ui/banner.d.ts +0 -12
  227. package/dist/ui/banner.d.ts.map +1 -1
  228. package/dist/ui/banner.js +19 -35
  229. package/dist/ui/banner.js.map +1 -1
  230. package/dist/ui/colors.js +19 -13
  231. package/dist/ui/colors.js.map +1 -1
  232. package/dist/ui/format.js +14 -6
  233. package/dist/ui/format.js.map +1 -1
  234. package/dist/ui/qr-render.js +11 -4
  235. package/dist/ui/qr-render.js.map +1 -1
  236. package/dist/ui/rpc-fallback.js +11 -6
  237. package/dist/ui/rpc-fallback.js.map +1 -1
  238. package/dist/ui/spinner.js +12 -6
  239. package/dist/ui/spinner.js.map +1 -1
  240. package/dist/ui/tree.js +6 -3
  241. package/dist/ui/tree.js.map +1 -1
  242. package/dist/utils/format.js +41 -27
  243. package/dist/utils/format.js.map +1 -1
  244. package/dist/utils/hash.js +42 -4
  245. package/dist/utils/hash.js.map +1 -1
  246. package/dist/utils/time.js +6 -2
  247. package/dist/utils/time.js.map +1 -1
  248. package/dist/wallet-router.d.ts +1 -1
  249. package/dist/wallet-router.d.ts.map +1 -1
  250. package/dist/wallet-router.js +19 -12
  251. package/dist/wallet-router.js.map +1 -1
  252. package/dist/walletconnect-session.d.ts +1 -1
  253. package/dist/walletconnect-session.d.ts.map +1 -1
  254. package/dist/walletconnect-session.js +11 -6
  255. package/dist/walletconnect-session.js.map +1 -1
  256. package/dist/walletconnect.d.ts +5 -6
  257. package/dist/walletconnect.d.ts.map +1 -1
  258. package/dist/walletconnect.js +35 -32
  259. package/dist/walletconnect.js.map +1 -1
  260. package/package.json +11 -10
  261. package/INK6-UX-SPEC.md +0 -446
  262. package/MIGRATION-SPEC.md +0 -108
  263. package/TUI-SPEC.md +0 -214
  264. package/scripts/authorize-machine-key.ts +0 -43
  265. package/scripts/drain-wallet.ts +0 -149
  266. package/scripts/execute-spend-only.ts +0 -81
  267. package/scripts/register-agent-userop.ts +0 -186
  268. package/src/abis.ts +0 -187
  269. package/src/bundler.ts +0 -235
  270. package/src/client.ts +0 -36
  271. package/src/coinbase-smart-wallet.ts +0 -51
  272. package/src/commands/accept.ts +0 -64
  273. package/src/commands/agent-handshake.ts +0 -72
  274. package/src/commands/agent.ts +0 -691
  275. package/src/commands/agreements.ts +0 -350
  276. package/src/commands/arbitrator.ts +0 -180
  277. package/src/commands/arena-handshake.ts +0 -274
  278. package/src/commands/arena.ts +0 -122
  279. package/src/commands/backup.ts +0 -117
  280. package/src/commands/cancel.ts +0 -35
  281. package/src/commands/channel.ts +0 -218
  282. package/src/commands/coldstart.ts +0 -165
  283. package/src/commands/config.ts +0 -68
  284. package/src/commands/contract-interaction.ts +0 -166
  285. package/src/commands/daemon.ts +0 -1054
  286. package/src/commands/deliver.ts +0 -148
  287. package/src/commands/discover.ts +0 -350
  288. package/src/commands/dispute.ts +0 -375
  289. package/src/commands/doctor.ts +0 -172
  290. package/src/commands/endpoint.ts +0 -620
  291. package/src/commands/feed.ts +0 -229
  292. package/src/commands/hire.ts +0 -245
  293. package/src/commands/migrate.ts +0 -177
  294. package/src/commands/negotiate.ts +0 -272
  295. package/src/commands/openshell.ts +0 -1055
  296. package/src/commands/owner.ts +0 -35
  297. package/src/commands/policy.ts +0 -263
  298. package/src/commands/relay.ts +0 -277
  299. package/src/commands/remediate.ts +0 -24
  300. package/src/commands/reputation.ts +0 -79
  301. package/src/commands/setup.ts +0 -343
  302. package/src/commands/trust.ts +0 -27
  303. package/src/commands/verify.ts +0 -91
  304. package/src/commands/wallet.ts +0 -3548
  305. package/src/commands/watch.ts +0 -220
  306. package/src/commands/watchtower.ts +0 -248
  307. package/src/commands/workroom.ts +0 -963
  308. package/src/config.ts +0 -220
  309. package/src/daemon/config.ts +0 -344
  310. package/src/daemon/hire-listener.ts +0 -226
  311. package/src/daemon/index.ts +0 -1089
  312. package/src/daemon/job-lifecycle.ts +0 -215
  313. package/src/daemon/notify.ts +0 -297
  314. package/src/daemon/token-metering.ts +0 -183
  315. package/src/daemon/userops.ts +0 -119
  316. package/src/daemon/wallet-monitor.ts +0 -90
  317. package/src/drain-v4.ts +0 -159
  318. package/src/endpoint-config.ts +0 -83
  319. package/src/endpoint-notify.ts +0 -134
  320. package/src/index.ts +0 -74
  321. package/src/openshell-runtime.ts +0 -281
  322. package/src/program.ts +0 -88
  323. package/src/repl.ts +0 -178
  324. package/src/signing.ts +0 -28
  325. package/src/telegram-notify.ts +0 -88
  326. package/src/tui/App.tsx +0 -263
  327. package/src/tui/Footer.tsx +0 -18
  328. package/src/tui/Header.tsx +0 -45
  329. package/src/tui/InputLine.tsx +0 -243
  330. package/src/tui/Viewport.tsx +0 -51
  331. package/src/tui/WalletConnectPairing.tsx +0 -114
  332. package/src/tui/components/Button.tsx +0 -38
  333. package/src/tui/components/CeremonyView.tsx +0 -39
  334. package/src/tui/components/CompletionDropdown.tsx +0 -56
  335. package/src/tui/components/ConfirmPrompt.tsx +0 -36
  336. package/src/tui/components/CustomTextInput.tsx +0 -132
  337. package/src/tui/components/InteractiveTable.tsx +0 -106
  338. package/src/tui/components/StepSpinner.tsx +0 -84
  339. package/src/tui/components/Toast.tsx +0 -59
  340. package/src/tui/index.tsx +0 -90
  341. package/src/tui/useChat.ts +0 -103
  342. package/src/tui/useCommand.ts +0 -238
  343. package/src/tui/useNotifications.ts +0 -28
  344. package/src/tui/useScroll.ts +0 -69
  345. package/src/ui/banner.ts +0 -78
  346. package/src/ui/colors.ts +0 -30
  347. package/src/ui/format.ts +0 -78
  348. package/src/ui/qr-render.ts +0 -92
  349. package/src/ui/rpc-fallback.ts +0 -59
  350. package/src/ui/spinner.ts +0 -56
  351. package/src/ui/tree.ts +0 -16
  352. package/src/utils/format.ts +0 -48
  353. package/src/utils/hash.ts +0 -5
  354. package/src/utils/time.ts +0 -15
  355. package/src/wallet-router.ts +0 -178
  356. package/src/walletconnect-session.ts +0 -27
  357. package/src/walletconnect.ts +0 -309
  358. package/test/time.test.js +0 -11
  359. package/tsconfig.json +0 -33
@@ -1,33 +1,36 @@
1
- import { ethers } from "ethers";
2
- import { loadConfig } from "../config.js";
3
- import { requireSigner } from "../client.js";
4
- import { c } from "../ui/colors.js";
5
- import { renderTree } from "../ui/tree.js";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerHandshakeCommand = registerHandshakeCommand;
4
+ const ethers_1 = require("ethers");
5
+ const config_1 = require("../config");
6
+ const client_1 = require("../client");
7
+ const colors_1 = require("../ui/colors");
8
+ const tree_1 = require("../ui/tree");
6
9
  // Challenge-response: both agents sign a shared nonce with their agent key
7
10
  // and verify each other against AgentRegistry
8
11
  const AGENT_REGISTRY_ABI = [
9
12
  "function isRegistered(address wallet) view returns (bool)",
10
13
  "function getAgent(address wallet) view returns (tuple(address wallet, string endpoint, string serviceType, bool active, uint256 registeredAt))",
11
14
  ];
12
- export function registerHandshakeCommand(program) {
15
+ function registerHandshakeCommand(program) {
13
16
  program
14
17
  .command("handshake <agentAddress>")
15
18
  .description("Mutual challenge-response authentication with another ARC-402 agent. Verifies both parties are registered before any negotiation begins.")
16
19
  .option("--json", "Output as machine-parseable JSON")
17
20
  .action(async (agentAddress, opts) => {
18
- const config = loadConfig();
19
- const { signer, provider } = await requireSigner(config);
21
+ const config = (0, config_1.loadConfig)();
22
+ const { signer, provider } = await (0, client_1.requireSigner)(config);
20
23
  const myAddress = await signer.getAddress();
21
24
  // Generate shared challenge nonce
22
- const challengeNonce = ethers.hexlify(ethers.randomBytes(32));
25
+ const challengeNonce = ethers_1.ethers.hexlify(ethers_1.ethers.randomBytes(32));
23
26
  const timestamp = Math.floor(Date.now() / 1000);
24
27
  // Sign: keccak256(HANDSHAKE + myAddress + theirAddress + challengeNonce + timestamp)
25
- const digest = ethers.solidityPackedKeccak256(["string", "address", "address", "bytes32", "uint256"], ["HANDSHAKE", myAddress, agentAddress, challengeNonce, timestamp]);
26
- const mySig = await signer.signMessage(ethers.getBytes(digest));
28
+ const digest = ethers_1.ethers.solidityPackedKeccak256(["string", "address", "address", "bytes32", "uint256"], ["HANDSHAKE", myAddress, agentAddress, challengeNonce, timestamp]);
29
+ const mySig = await signer.signMessage(ethers_1.ethers.getBytes(digest));
27
30
  // Fetch their endpoint from AgentRegistry to send challenge
28
31
  if (!config.agentRegistryAddress)
29
32
  throw new Error("agentRegistryAddress not configured");
30
- const registry = new ethers.Contract(config.agentRegistryAddress, AGENT_REGISTRY_ABI, provider);
33
+ const registry = new ethers_1.ethers.Contract(config.agentRegistryAddress, AGENT_REGISTRY_ABI, provider);
31
34
  const myRegistered = await registry.isRegistered(myAddress);
32
35
  if (!myRegistered)
33
36
  throw new Error(`Your wallet ${myAddress} is not registered in AgentRegistry`);
@@ -49,13 +52,13 @@ export function registerHandshakeCommand(program) {
49
52
  console.log(JSON.stringify(challenge));
50
53
  }
51
54
  else {
52
- console.log('\n ' + c.mark + c.white(' Handshake'));
53
- renderTree([
55
+ console.log('\n ' + colors_1.c.mark + colors_1.c.white(' Handshake'));
56
+ (0, tree_1.renderTree)([
54
57
  { label: 'Your identity', value: `${myAddress} (registered)` },
55
58
  { label: 'Their identity', value: `${agentAddress} (registered, active)` },
56
59
  { label: 'Their endpoint', value: theirAgent.endpoint, last: true },
57
60
  ]);
58
- console.log('\n ' + c.dim('Signed challenge (send to their endpoint to complete handshake):'));
61
+ console.log('\n ' + colors_1.c.dim('Signed challenge (send to their endpoint to complete handshake):'));
59
62
  console.log(JSON.stringify(challenge, null, 2));
60
63
  }
61
64
  });
@@ -1 +1 @@
1
- {"version":3,"file":"agent-handshake.js","sourceRoot":"","sources":["../../src/commands/agent-handshake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-handshake.js","sourceRoot":"","sources":["../../src/commands/agent-handshake.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,33 @@
1
- import { AgentRegistryClient } from "@arc402/sdk";
2
- import { buildMetadata, uploadMetadata, decodeMetadata } from "@arc402/sdk";
3
- import { ethers } from "ethers";
4
- import { loadConfig, NETWORK_DEFAULTS } from "../config.js";
5
- import { requireSigner } from "../client.js";
6
- import { formatDate, getTrustTier } from "../utils/format.js";
7
- import { AGENT_REGISTRY_ABI } from "../abis.js";
8
- import { executeContractWriteViaWallet } from "../wallet-router.js";
9
- import { getClient } from "../client.js";
10
- import prompts from "prompts";
11
- import chalk from "chalk";
12
- import { startSpinner } from "../ui/spinner.js";
13
- import { renderTree } from "../ui/tree.js";
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.registerAgentCommands = registerAgentCommands;
7
+ const sdk_1 = require("@arc402/sdk");
8
+ const sdk_2 = require("@arc402/sdk");
9
+ const ethers_1 = require("ethers");
10
+ const config_1 = require("../config");
11
+ const client_1 = require("../client");
12
+ const format_1 = require("../utils/format");
13
+ const abis_1 = require("../abis");
14
+ const wallet_router_1 = require("../wallet-router");
15
+ const client_2 = require("../client");
16
+ const prompts_1 = __importDefault(require("prompts"));
17
+ const chalk_1 = __importDefault(require("chalk"));
18
+ const spinner_1 = require("../ui/spinner");
19
+ const tree_1 = require("../ui/tree");
14
20
  // ─── helpers ──────────────────────────────────────────────────────────────────
15
21
  /** Resolve the real AgentRegistry address (agentRegistryV2Address > NETWORK_DEFAULTS fallback). */
16
22
  function getAgentRegistryAddress(config) {
17
23
  const addr = config.agentRegistryV2Address ??
18
- NETWORK_DEFAULTS[config.network]?.agentRegistryV2Address;
24
+ config_1.NETWORK_DEFAULTS[config.network]?.agentRegistryV2Address;
19
25
  if (!addr)
20
26
  throw new Error("agentRegistryV2Address missing in config — run `arc402 config set agentRegistryV2Address <address>`");
21
27
  return addr;
22
28
  }
23
29
  // ─── commands ─────────────────────────────────────────────────────────────────
24
- export function registerAgentCommands(program) {
30
+ function registerAgentCommands(program) {
25
31
  const agent = program
26
32
  .command("agent")
27
33
  .description("Agent registry operations");
@@ -37,7 +43,7 @@ export function registerAgentCommands(program) {
37
43
  .option("--claim-subdomain <subdomain>", "Claim a <subdomain>.arc402.xyz after registration (launch default: host-managed public ingress outside the sandbox)")
38
44
  .option("--tunnel-target <url>", "Host ingress target URL for the claimed subdomain (required with --claim-subdomain)")
39
45
  .action(async (opts) => {
40
- const config = loadConfig();
46
+ const config = (0, config_1.loadConfig)();
41
47
  const registryAddress = getAgentRegistryAddress(config);
42
48
  let metadataUri = opts.metadataUri ?? "";
43
49
  if (opts.setMetadata) {
@@ -47,16 +53,16 @@ export function registerAgentCommands(program) {
47
53
  ? opts.capability.split(",").map((v) => v.trim())
48
54
  : [];
49
55
  if (opts.endpoint) {
50
- console.log(chalk.dim(`ℹ Registering public endpoint: ${opts.endpoint}`));
51
- console.log(chalk.dim(" This publishes discovery / ingress metadata only. Sandbox outbound access remains controlled separately by OpenShell policy."));
56
+ console.log(chalk_1.default.dim(`ℹ Registering public endpoint: ${opts.endpoint}`));
57
+ console.log(chalk_1.default.dim(" This publishes discovery / ingress metadata only. Sandbox outbound access remains controlled separately by OpenShell policy."));
52
58
  }
53
59
  if (config.walletContractAddress) {
54
60
  // ── wallet contract path (machine key signs, wallet is msg.sender) ──
55
61
  // Pre-flight: check machine key is authorized (J5-03)
56
62
  if (config.privateKey) {
57
- const machineKeyAddr = new ethers.Wallet(config.privateKey).address;
58
- const { provider: agentProvider } = await getClient(config);
59
- const mkCheck = new ethers.Contract(config.walletContractAddress, ["function authorizedMachineKeys(address) external view returns (bool)"], agentProvider);
63
+ const machineKeyAddr = new ethers_1.ethers.Wallet(config.privateKey).address;
64
+ const { provider: agentProvider } = await (0, client_2.getClient)(config);
65
+ const mkCheck = new ethers_1.ethers.Contract(config.walletContractAddress, ["function authorizedMachineKeys(address) external view returns (bool)"], agentProvider);
60
66
  let isAuthorized = true;
61
67
  try {
62
68
  isAuthorized = await mkCheck.authorizedMachineKeys(machineKeyAddr);
@@ -69,18 +75,18 @@ export function registerAgentCommands(program) {
69
75
  }
70
76
  }
71
77
  console.log(`Registering via ARC402Wallet: ${config.walletContractAddress}`);
72
- const { signer, provider: regProvider } = await requireSigner(config);
78
+ const { signer, provider: regProvider } = await (0, client_1.requireSigner)(config);
73
79
  {
74
80
  const walletBalance = await regProvider.getBalance(config.walletContractAddress);
75
- if (walletBalance < ethers.parseEther("0.0001")) {
76
- console.warn(chalk.yellow(`⚠️ Low wallet balance: ${ethers.formatEther(walletBalance)} ETH. Registration may fail due to insufficient gas. Fund your wallet with at least 0.0001 ETH first.`));
81
+ if (walletBalance < ethers_1.ethers.parseEther("0.0001")) {
82
+ console.warn(chalk_1.default.yellow(`⚠️ Low wallet balance: ${ethers_1.ethers.formatEther(walletBalance)} ETH. Registration may fail due to insufficient gas. Fund your wallet with at least 0.0001 ETH first.`));
77
83
  }
78
84
  }
79
- const regSpinner = startSpinner("Registering agent...");
80
- const tx = await executeContractWriteViaWallet(config.walletContractAddress, signer, registryAddress, AGENT_REGISTRY_ABI, "register", [opts.name, capabilities, opts.serviceType, opts.endpoint ?? "", metadataUri]);
85
+ const regSpinner = (0, spinner_1.startSpinner)("Registering agent...");
86
+ const tx = await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, registryAddress, abis_1.AGENT_REGISTRY_ABI, "register", [opts.name, capabilities, opts.serviceType, opts.endpoint ?? "", metadataUri]);
81
87
  const receipt = await tx.wait();
82
88
  regSpinner.succeed("Registered in AgentRegistry");
83
- renderTree([
89
+ (0, tree_1.renderTree)([
84
90
  { label: "Wallet", value: config.walletContractAddress },
85
91
  { label: "Tx", value: receipt?.hash ?? "", last: !metadataUri },
86
92
  ...(metadataUri ? [{ label: "Metadata", value: metadataUri, last: true }] : []),
@@ -88,29 +94,29 @@ export function registerAgentCommands(program) {
88
94
  }
89
95
  else {
90
96
  // ── EOA fallback ──
91
- console.warn(chalk.yellow("⚠ No walletContractAddress in config — registering from EOA key (msg.sender = hot key)."));
92
- const { signer, address: regAddress, provider: regProvider } = await requireSigner(config);
97
+ console.warn(chalk_1.default.yellow("⚠ No walletContractAddress in config — registering from EOA key (msg.sender = hot key)."));
98
+ const { signer, address: regAddress, provider: regProvider } = await (0, client_1.requireSigner)(config);
93
99
  {
94
100
  const walletBalance = await regProvider.getBalance(regAddress);
95
- if (walletBalance < ethers.parseEther("0.0001")) {
96
- console.warn(chalk.yellow(`⚠️ Low wallet balance: ${ethers.formatEther(walletBalance)} ETH. Registration may fail due to insufficient gas. Fund your wallet with at least 0.0001 ETH first.`));
101
+ if (walletBalance < ethers_1.ethers.parseEther("0.0001")) {
102
+ console.warn(chalk_1.default.yellow(`⚠️ Low wallet balance: ${ethers_1.ethers.formatEther(walletBalance)} ETH. Registration may fail due to insufficient gas. Fund your wallet with at least 0.0001 ETH first.`));
97
103
  }
98
104
  }
99
- const client = new AgentRegistryClient(registryAddress, signer);
100
- const eoaSpinner = startSpinner("Registering agent...");
105
+ const client = new sdk_1.AgentRegistryClient(registryAddress, signer);
106
+ const eoaSpinner = (0, spinner_1.startSpinner)("Registering agent...");
101
107
  await client.register({ name: opts.name, serviceType: opts.serviceType, capabilities, endpoint: opts.endpoint ?? "", metadataURI: metadataUri });
102
108
  eoaSpinner.succeed("Registered in AgentRegistry");
103
109
  if (metadataUri) {
104
- renderTree([{ label: "Metadata", value: metadataUri, last: true }]);
110
+ (0, tree_1.renderTree)([{ label: "Metadata", value: metadataUri, last: true }]);
105
111
  }
106
112
  }
107
113
  // ── optional subdomain claim ──────────────────────────────────────────
108
114
  if (opts.claimSubdomain) {
109
115
  if (!opts.tunnelTarget) {
110
- console.error(chalk.red("--tunnel-target <url> is required with --claim-subdomain"));
116
+ console.error(chalk_1.default.red("--tunnel-target <url> is required with --claim-subdomain"));
111
117
  process.exit(1);
112
118
  }
113
- const walletAddress = config.walletContractAddress ?? new ethers.Wallet(config.privateKey).address;
119
+ const walletAddress = config.walletContractAddress ?? new ethers_1.ethers.Wallet(config.privateKey).address;
114
120
  await claimSubdomain(opts.claimSubdomain, walletAddress, opts.tunnelTarget);
115
121
  }
116
122
  });
@@ -123,21 +129,21 @@ export function registerAgentCommands(program) {
123
129
  .option("--endpoint <url>", "Endpoint", "")
124
130
  .option("--metadata-uri <uri>", "Metadata URI", "")
125
131
  .action(async (opts) => {
126
- const config = loadConfig();
132
+ const config = (0, config_1.loadConfig)();
127
133
  const registryAddress = getAgentRegistryAddress(config);
128
134
  const capabilities = opts.capability
129
135
  ? opts.capability.split(",").map((v) => v.trim())
130
136
  : [];
131
137
  if (config.walletContractAddress) {
132
- const { signer } = await requireSigner(config);
133
- const tx = await executeContractWriteViaWallet(config.walletContractAddress, signer, registryAddress, AGENT_REGISTRY_ABI, "update", [opts.name, capabilities, opts.serviceType, opts.endpoint ?? "", opts.metadataUri ?? ""]);
138
+ const { signer } = await (0, client_1.requireSigner)(config);
139
+ const tx = await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, registryAddress, abis_1.AGENT_REGISTRY_ABI, "update", [opts.name, capabilities, opts.serviceType, opts.endpoint ?? "", opts.metadataUri ?? ""]);
134
140
  const receipt = await tx.wait();
135
- console.log(chalk.green(`✓ Agent updated`));
141
+ console.log(chalk_1.default.green(`✓ Agent updated`));
136
142
  console.log(` Tx: ${receipt?.hash}`);
137
143
  }
138
144
  else {
139
- const { signer } = await requireSigner(config);
140
- const client = new AgentRegistryClient(registryAddress, signer);
145
+ const { signer } = await (0, client_1.requireSigner)(config);
146
+ const client = new sdk_1.AgentRegistryClient(registryAddress, signer);
141
147
  await client.update({ name: opts.name, serviceType: opts.serviceType, capabilities, endpoint: opts.endpoint, metadataURI: opts.metadataUri });
142
148
  console.log("updated");
143
149
  }
@@ -148,8 +154,8 @@ export function registerAgentCommands(program) {
148
154
  .description("Claim <subdomain>.arc402.xyz for this wallet (wallet must be registered in AgentRegistry)")
149
155
  .requiredOption("--tunnel-target <url>", "Tunnel target URL (must start with https://)")
150
156
  .action(async (subdomain, opts) => {
151
- const config = loadConfig();
152
- const walletAddress = config.walletContractAddress ?? new ethers.Wallet(config.privateKey).address;
157
+ const config = (0, config_1.loadConfig)();
158
+ const walletAddress = config.walletContractAddress ?? new ethers_1.ethers.Wallet(config.privateKey).address;
153
159
  await claimSubdomain(subdomain, walletAddress, opts.tunnelTarget);
154
160
  });
155
161
  // ─── transfer-subdomain ──────────────────────────────────────────────────────
@@ -161,10 +167,10 @@ export function registerAgentCommands(program) {
161
167
  const normalized = subdomain.toLowerCase();
162
168
  let newWallet;
163
169
  try {
164
- newWallet = ethers.getAddress(opts.newWallet);
170
+ newWallet = ethers_1.ethers.getAddress(opts.newWallet);
165
171
  }
166
172
  catch {
167
- console.error(chalk.red(`Invalid address: ${opts.newWallet}`));
173
+ console.error(chalk_1.default.red(`Invalid address: ${opts.newWallet}`));
168
174
  process.exit(1);
169
175
  }
170
176
  console.log(`\nTransferring subdomain: ${normalized}.arc402.xyz`);
@@ -177,10 +183,10 @@ export function registerAgentCommands(program) {
177
183
  });
178
184
  const body = await res.json();
179
185
  if (!res.ok) {
180
- console.error(chalk.red(`\n✗ Transfer failed (${res.status}): ${body["error"] ?? JSON.stringify(body)}`));
186
+ console.error(chalk_1.default.red(`\n✗ Transfer failed (${res.status}): ${body["error"] ?? JSON.stringify(body)}`));
181
187
  process.exit(1);
182
188
  }
183
- console.log(chalk.green(`\n✓ Subdomain transferred: ${body["subdomain"]}`));
189
+ console.log(chalk_1.default.green(`\n✓ Subdomain transferred: ${body["subdomain"]}`));
184
190
  console.log(` New owner: ${body["newWalletAddress"]}`);
185
191
  });
186
192
  // ─── set-metadata ───────────────────────────────────────────────────────────
@@ -188,10 +194,10 @@ export function registerAgentCommands(program) {
188
194
  .command("set-metadata")
189
195
  .description("Interactively build and upload ARC-402 agent metadata, then update the registry")
190
196
  .action(async () => {
191
- const config = loadConfig();
197
+ const config = (0, config_1.loadConfig)();
192
198
  const registryAddress = getAgentRegistryAddress(config);
193
- const { signer, address } = await requireSigner(config);
194
- const client = new AgentRegistryClient(registryAddress, signer);
199
+ const { signer, address } = await (0, client_1.requireSigner)(config);
200
+ const client = new sdk_1.AgentRegistryClient(registryAddress, signer);
195
201
  // Resolve the on-chain identity (wallet contract or EOA)
196
202
  const agentAddress = config.walletContractAddress ?? address;
197
203
  let existingName = "";
@@ -216,15 +222,15 @@ export function registerAgentCommands(program) {
216
222
  }
217
223
  catch { /* not yet registered */ }
218
224
  if (config.walletContractAddress) {
219
- const tx = await executeContractWriteViaWallet(config.walletContractAddress, signer, registryAddress, AGENT_REGISTRY_ABI, "update", [name, existingCaps, serviceType, endpoint, uri]);
225
+ const tx = await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, registryAddress, abis_1.AGENT_REGISTRY_ABI, "update", [name, existingCaps, serviceType, endpoint, uri]);
220
226
  const receipt = await tx.wait();
221
- console.log(chalk.green("✓ Metadata URI saved to registry"));
227
+ console.log(chalk_1.default.green("✓ Metadata URI saved to registry"));
222
228
  console.log(` ${uri}`);
223
229
  console.log(` Tx: ${receipt?.hash}`);
224
230
  }
225
231
  else {
226
232
  await client.update({ name, serviceType, capabilities: existingCaps, endpoint, metadataURI: uri });
227
- console.log(chalk.green("✓ Metadata URI saved to registry"));
233
+ console.log(chalk_1.default.green("✓ Metadata URI saved to registry"));
228
234
  console.log(` ${uri}`);
229
235
  }
230
236
  });
@@ -233,25 +239,25 @@ export function registerAgentCommands(program) {
233
239
  .command("show-metadata <address>")
234
240
  .description("Fetch and display metadata for any registered agent")
235
241
  .action(async (address) => {
236
- const config = loadConfig();
242
+ const config = (0, config_1.loadConfig)();
237
243
  const registryAddress = getAgentRegistryAddress(config);
238
- const { provider } = await getClient(config);
239
- const client = new AgentRegistryClient(registryAddress, provider);
244
+ const { provider } = await (0, client_2.getClient)(config);
245
+ const client = new sdk_1.AgentRegistryClient(registryAddress, provider);
240
246
  const info = await client.getAgent(address);
241
247
  if (!info.metadataURI) {
242
- console.log(chalk.yellow("No metadata URI set for this agent."));
248
+ console.log(chalk_1.default.yellow("No metadata URI set for this agent."));
243
249
  return;
244
250
  }
245
- console.log(chalk.dim(`Fetching metadata from: ${info.metadataURI}\n`));
251
+ console.log(chalk_1.default.dim(`Fetching metadata from: ${info.metadataURI}\n`));
246
252
  let meta;
247
253
  try {
248
- meta = await decodeMetadata(info.metadataURI);
254
+ meta = await (0, sdk_2.decodeMetadata)(info.metadataURI);
249
255
  }
250
256
  catch (err) {
251
- console.error(chalk.red(`Failed to fetch or parse metadata: ${err instanceof Error ? err.message : String(err)}`));
257
+ console.error(chalk_1.default.red(`Failed to fetch or parse metadata: ${err instanceof Error ? err.message : String(err)}`));
252
258
  return;
253
259
  }
254
- console.log(chalk.bold("Agent Metadata") + chalk.dim(` (${meta.schema})`));
260
+ console.log(chalk_1.default.bold("Agent Metadata") + chalk_1.default.dim(` (${meta.schema})`));
255
261
  if (meta.name)
256
262
  console.log(` name: ${meta.name}`);
257
263
  if (meta.description)
@@ -300,10 +306,10 @@ export function registerAgentCommands(program) {
300
306
  .command("deactivate")
301
307
  .description("Deactivate your agent registration (preserves history/trust)")
302
308
  .action(async () => {
303
- const config = loadConfig();
309
+ const config = (0, config_1.loadConfig)();
304
310
  const registryAddress = getAgentRegistryAddress(config);
305
- const { signer } = await requireSigner(config);
306
- const client = new AgentRegistryClient(registryAddress, signer);
311
+ const { signer } = await (0, client_1.requireSigner)(config);
312
+ const client = new sdk_1.AgentRegistryClient(registryAddress, signer);
307
313
  await client.deactivate();
308
314
  console.log("agent deactivated");
309
315
  });
@@ -311,10 +317,10 @@ export function registerAgentCommands(program) {
311
317
  .command("reactivate")
312
318
  .description("Reactivate your agent registration")
313
319
  .action(async () => {
314
- const config = loadConfig();
320
+ const config = (0, config_1.loadConfig)();
315
321
  const registryAddress = getAgentRegistryAddress(config);
316
- const { signer } = await requireSigner(config);
317
- const client = new AgentRegistryClient(registryAddress, signer);
322
+ const { signer } = await (0, client_1.requireSigner)(config);
323
+ const client = new sdk_1.AgentRegistryClient(registryAddress, signer);
318
324
  await client.reactivate();
319
325
  console.log("agent reactivated");
320
326
  });
@@ -324,10 +330,10 @@ export function registerAgentCommands(program) {
324
330
  .description("Submit self-reported heartbeat data")
325
331
  .option("--latency-ms <n>", "Observed latency", "0")
326
332
  .action(async (opts) => {
327
- const config = loadConfig();
333
+ const config = (0, config_1.loadConfig)();
328
334
  const registryAddress = getAgentRegistryAddress(config);
329
- const { signer } = await requireSigner(config);
330
- const client = new AgentRegistryClient(registryAddress, signer);
335
+ const { signer } = await (0, client_1.requireSigner)(config);
336
+ const client = new sdk_1.AgentRegistryClient(registryAddress, signer);
331
337
  await client.submitHeartbeat(Number(opts.latencyMs));
332
338
  console.log("heartbeat submitted");
333
339
  });
@@ -337,10 +343,10 @@ export function registerAgentCommands(program) {
337
343
  .requiredOption("--interval <seconds>")
338
344
  .requiredOption("--grace <seconds>")
339
345
  .action(async (opts) => {
340
- const config = loadConfig();
346
+ const config = (0, config_1.loadConfig)();
341
347
  const registryAddress = getAgentRegistryAddress(config);
342
- const { signer } = await requireSigner(config);
343
- const client = new AgentRegistryClient(registryAddress, signer);
348
+ const { signer } = await (0, client_1.requireSigner)(config);
349
+ const client = new sdk_1.AgentRegistryClient(registryAddress, signer);
344
350
  await client.setHeartbeatPolicy(Number(opts.interval), Number(opts.grace));
345
351
  console.log("heartbeat policy updated");
346
352
  });
@@ -349,10 +355,10 @@ export function registerAgentCommands(program) {
349
355
  .command("info <address>")
350
356
  .option("--json")
351
357
  .action(async (address, opts) => {
352
- const config = loadConfig();
358
+ const config = (0, config_1.loadConfig)();
353
359
  const registryAddress = getAgentRegistryAddress(config);
354
- const { provider } = await getClient(config);
355
- const client = new AgentRegistryClient(registryAddress, provider);
360
+ const { provider } = await (0, client_2.getClient)(config);
361
+ const client = new sdk_1.AgentRegistryClient(registryAddress, provider);
356
362
  const [info, ops] = await Promise.all([
357
363
  client.getAgent(address),
358
364
  client.getOperationalMetrics(address),
@@ -367,13 +373,13 @@ export function registerAgentCommands(program) {
367
373
  operational: Object.fromEntries(Object.entries(ops).map(([k, v]) => [k, Number(v)])),
368
374
  }, null, 2));
369
375
  }
370
- console.log(`${info.name} ${info.wallet}\nservice=${info.serviceType}\ntrust=${Number(info.trustScore ?? 0n)} (${getTrustTier(Number(info.trustScore ?? 0n))})\nregistered=${formatDate(Number(info.registeredAt))}\nheartbeatCount=${Number(ops.heartbeatCount)} uptimeScore=${Number(ops.uptimeScore)} responseScore=${Number(ops.responseScore)}`);
376
+ console.log(`${info.name} ${info.wallet}\nservice=${info.serviceType}\ntrust=${Number(info.trustScore ?? 0n)} (${(0, format_1.getTrustTier)(Number(info.trustScore ?? 0n))})\nregistered=${(0, format_1.formatDate)(Number(info.registeredAt))}\nheartbeatCount=${Number(ops.heartbeatCount)} uptimeScore=${Number(ops.uptimeScore)} responseScore=${Number(ops.responseScore)}`);
371
377
  });
372
378
  agent
373
379
  .command("me")
374
380
  .action(async () => {
375
- const config = loadConfig();
376
- const address = config.walletContractAddress ?? (await getClient(config)).address;
381
+ const config = (0, config_1.loadConfig)();
382
+ const address = config.walletContractAddress ?? (await (0, client_2.getClient)(config)).address;
377
383
  if (!address)
378
384
  throw new Error("No wallet configured");
379
385
  await program.parseAsync([process.argv[0], process.argv[1], "agent", "info", address], { from: "user" });
@@ -417,7 +423,7 @@ export function registerAgentCommands(program) {
417
423
  console.log(JSON.stringify({ error: "Agent not registered", address }));
418
424
  }
419
425
  else {
420
- console.log(chalk.red(`Agent not registered: ${address}`));
426
+ console.log(chalk_1.default.red(`Agent not registered: ${address}`));
421
427
  }
422
428
  process.exit(1);
423
429
  }
@@ -471,14 +477,14 @@ export function registerAgentCommands(program) {
471
477
  const vouchedFor = data["vouchedFor"] ?? [];
472
478
  const vouchedBy = data["vouchedBy"] ?? [];
473
479
  const line = "═".repeat(43);
474
- console.log(chalk.bold(line));
475
- console.log(` ${chalk.bold(agentData["name"] || "(unnamed)")}`);
480
+ console.log(chalk_1.default.bold(line));
481
+ console.log(` ${chalk_1.default.bold(agentData["name"] || "(unnamed)")}`);
476
482
  console.log(` ${agentData["id"]}`);
477
- console.log(chalk.bold(line));
483
+ console.log(chalk_1.default.bold(line));
478
484
  console.log();
479
485
  console.log(` Service Type: ${agentData["serviceType"]}`);
480
- console.log(` Endpoint: ${agentData["endpoint"] || chalk.dim("(none)")}`);
481
- console.log(` Status: ${agentData["active"] ? chalk.green("✅ Active") : chalk.red("❌ Inactive")}`);
486
+ console.log(` Endpoint: ${agentData["endpoint"] || chalk_1.default.dim("(none)")}`);
487
+ console.log(` Status: ${agentData["active"] ? chalk_1.default.green("✅ Active") : chalk_1.default.red("❌ Inactive")}`);
482
488
  console.log(` Trust Score: ${trustScore}`);
483
489
  console.log();
484
490
  if (caps.length > 0) {
@@ -517,7 +523,7 @@ export function registerAgentCommands(program) {
517
523
  console.log(JSON.stringify({ error: "Subgraph unavailable", details: msg }));
518
524
  }
519
525
  else {
520
- console.error(chalk.red(`Subgraph unavailable: ${msg}`));
526
+ console.error(chalk_1.default.red(`Subgraph unavailable: ${msg}`));
521
527
  }
522
528
  process.exit(1);
523
529
  }
@@ -558,15 +564,15 @@ async function claimSubdomain(subdomain, walletAddress, tunnelTarget) {
558
564
  });
559
565
  const body = await res.json();
560
566
  if (!res.ok) {
561
- console.error(chalk.red(`✗ Subdomain claim failed (${res.status}): ${body["error"] ?? JSON.stringify(body)}`));
567
+ console.error(chalk_1.default.red(`✗ Subdomain claim failed (${res.status}): ${body["error"] ?? JSON.stringify(body)}`));
562
568
  process.exit(1);
563
569
  }
564
- console.log(chalk.green(`✓ Subdomain claimed: ${body["subdomain"]}`));
570
+ console.log(chalk_1.default.green(`✓ Subdomain claimed: ${body["subdomain"]}`));
565
571
  }
566
572
  // ─── metadata wizard ──────────────────────────────────────────────────────────
567
573
  async function runSetMetadataWizard(defaultName, defaultCapabilities) {
568
- console.log(chalk.bold("\nARC-402 Agent Metadata Wizard\n"));
569
- const answers = await prompts([
574
+ console.log(chalk_1.default.bold("\nARC-402 Agent Metadata Wizard\n"));
575
+ const answers = await (0, prompts_1.default)([
570
576
  { type: "text", name: "name", message: "Agent name:", initial: defaultName },
571
577
  { type: "text", name: "description", message: "Short description (what does this agent do?):" },
572
578
  { type: "text", name: "capabilities", message: "Capabilities (comma-separated, e.g. legal.patent-analysis.us.v1):", initial: defaultCapabilities.join(", ") },
@@ -578,13 +584,13 @@ async function runSetMetadataWizard(defaultName, defaultCapabilities) {
578
584
  { type: "confirm", name: "envLeakProtection", message: "Does this agent have env/key leak protection in its instructions?", initial: false },
579
585
  ]);
580
586
  if (!answers.name) {
581
- console.log(chalk.dim("Cancelled."));
587
+ console.log(chalk_1.default.dim("Cancelled."));
582
588
  return "";
583
589
  }
584
590
  const capabilities = answers.capabilities
585
591
  ? answers.capabilities.split(",").map((v) => v.trim()).filter(Boolean)
586
592
  : [];
587
- const meta = buildMetadata({
593
+ const meta = (0, sdk_2.buildMetadata)({
588
594
  name: answers.name || undefined,
589
595
  description: answers.description || undefined,
590
596
  capabilities: capabilities.length ? capabilities : undefined,
@@ -601,14 +607,14 @@ async function runSetMetadataWizard(defaultName, defaultCapabilities) {
601
607
  });
602
608
  const pinataJwt = process.env["PINATA_JWT"];
603
609
  if (!pinataJwt) {
604
- console.log(chalk.dim("\nNo PINATA_JWT env var found — metadata will be stored as a data URI."));
605
- console.log(chalk.dim("To pin to IPFS: export PINATA_JWT=<your-jwt> and re-run.\n"));
610
+ console.log(chalk_1.default.dim("\nNo PINATA_JWT env var found — metadata will be stored as a data URI."));
611
+ console.log(chalk_1.default.dim("To pin to IPFS: export PINATA_JWT=<your-jwt> and re-run.\n"));
606
612
  }
607
613
  else {
608
- console.log(chalk.dim("\nUploading to IPFS via Pinata…"));
614
+ console.log(chalk_1.default.dim("\nUploading to IPFS via Pinata…"));
609
615
  }
610
- const uri = await uploadMetadata(meta, pinataJwt);
611
- console.log(chalk.green(`✓ Metadata URI: ${uri}`));
616
+ const uri = await (0, sdk_2.uploadMetadata)(meta, pinataJwt);
617
+ console.log(chalk_1.default.green(`✓ Metadata URI: ${uri}`));
612
618
  return uri;
613
619
  }
614
620
  //# sourceMappingURL=agent.js.map