arc402-cli 0.9.18 → 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 (358) 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.js +48 -9
  161. package/dist/endpoint-notify.js.map +1 -1
  162. package/dist/index.js +50 -18
  163. package/dist/index.js.map +1 -1
  164. package/dist/openshell-runtime.d.ts.map +1 -1
  165. package/dist/openshell-runtime.js +82 -38
  166. package/dist/openshell-runtime.js.map +1 -1
  167. package/dist/program.d.ts.map +1 -1
  168. package/dist/program.js +85 -78
  169. package/dist/program.js.map +1 -1
  170. package/dist/repl.js +31 -25
  171. package/dist/repl.js.map +1 -1
  172. package/dist/signing.js +6 -3
  173. package/dist/signing.js.map +1 -1
  174. package/dist/telegram-notify.js +40 -3
  175. package/dist/telegram-notify.js.map +1 -1
  176. package/dist/tui/App.d.ts.map +1 -1
  177. package/dist/tui/App.js +56 -89
  178. package/dist/tui/App.js.map +1 -1
  179. package/dist/tui/Footer.js +7 -4
  180. package/dist/tui/Footer.js.map +1 -1
  181. package/dist/tui/Header.d.ts +1 -1
  182. package/dist/tui/Header.d.ts.map +1 -1
  183. package/dist/tui/Header.js +14 -9
  184. package/dist/tui/Header.js.map +1 -1
  185. package/dist/tui/InputLine.d.ts +2 -1
  186. package/dist/tui/InputLine.d.ts.map +1 -1
  187. package/dist/tui/InputLine.js +47 -97
  188. package/dist/tui/InputLine.js.map +1 -1
  189. package/dist/tui/Viewport.d.ts +1 -2
  190. package/dist/tui/Viewport.d.ts.map +1 -1
  191. package/dist/tui/Viewport.js +26 -6
  192. package/dist/tui/Viewport.js.map +1 -1
  193. package/dist/tui/WalletConnectPairing.js +19 -16
  194. package/dist/tui/WalletConnectPairing.js.map +1 -1
  195. package/dist/tui/components/Button.js +9 -6
  196. package/dist/tui/components/Button.js.map +1 -1
  197. package/dist/tui/components/CeremonyView.js +8 -5
  198. package/dist/tui/components/CeremonyView.js.map +1 -1
  199. package/dist/tui/components/CompletionDropdown.js +9 -6
  200. package/dist/tui/components/CompletionDropdown.js.map +1 -1
  201. package/dist/tui/components/ConfirmPrompt.js +8 -5
  202. package/dist/tui/components/ConfirmPrompt.js.map +1 -1
  203. package/dist/tui/components/CustomTextInput.js +14 -11
  204. package/dist/tui/components/CustomTextInput.js.map +1 -1
  205. package/dist/tui/components/InteractiveTable.js +12 -9
  206. package/dist/tui/components/InteractiveTable.js.map +1 -1
  207. package/dist/tui/components/StepSpinner.js +13 -10
  208. package/dist/tui/components/StepSpinner.js.map +1 -1
  209. package/dist/tui/components/Toast.js +12 -8
  210. package/dist/tui/components/Toast.js.map +1 -1
  211. package/dist/tui/index.d.ts.map +1 -1
  212. package/dist/tui/index.js +21 -28
  213. package/dist/tui/index.js.map +1 -1
  214. package/dist/tui/useChat.js +19 -13
  215. package/dist/tui/useChat.js.map +1 -1
  216. package/dist/tui/useCommand.d.ts +2 -3
  217. package/dist/tui/useCommand.d.ts.map +1 -1
  218. package/dist/tui/useCommand.js +24 -100
  219. package/dist/tui/useCommand.js.map +1 -1
  220. package/dist/tui/useNotifications.js +8 -5
  221. package/dist/tui/useNotifications.js.map +1 -1
  222. package/dist/tui/useScroll.d.ts.map +1 -1
  223. package/dist/tui/useScroll.js +12 -15
  224. package/dist/tui/useScroll.js.map +1 -1
  225. package/dist/ui/banner.d.ts +0 -12
  226. package/dist/ui/banner.d.ts.map +1 -1
  227. package/dist/ui/banner.js +19 -35
  228. package/dist/ui/banner.js.map +1 -1
  229. package/dist/ui/colors.js +19 -13
  230. package/dist/ui/colors.js.map +1 -1
  231. package/dist/ui/format.js +14 -6
  232. package/dist/ui/format.js.map +1 -1
  233. package/dist/ui/qr-render.js +11 -4
  234. package/dist/ui/qr-render.js.map +1 -1
  235. package/dist/ui/rpc-fallback.js +11 -6
  236. package/dist/ui/rpc-fallback.js.map +1 -1
  237. package/dist/ui/spinner.js +12 -6
  238. package/dist/ui/spinner.js.map +1 -1
  239. package/dist/ui/tree.js +6 -3
  240. package/dist/ui/tree.js.map +1 -1
  241. package/dist/utils/format.js +41 -27
  242. package/dist/utils/format.js.map +1 -1
  243. package/dist/utils/hash.js +42 -4
  244. package/dist/utils/hash.js.map +1 -1
  245. package/dist/utils/time.js +6 -2
  246. package/dist/utils/time.js.map +1 -1
  247. package/dist/wallet-router.d.ts +1 -1
  248. package/dist/wallet-router.d.ts.map +1 -1
  249. package/dist/wallet-router.js +19 -12
  250. package/dist/wallet-router.js.map +1 -1
  251. package/dist/walletconnect-session.d.ts +1 -1
  252. package/dist/walletconnect-session.d.ts.map +1 -1
  253. package/dist/walletconnect-session.js +11 -6
  254. package/dist/walletconnect-session.js.map +1 -1
  255. package/dist/walletconnect.d.ts +5 -6
  256. package/dist/walletconnect.d.ts.map +1 -1
  257. package/dist/walletconnect.js +35 -32
  258. package/dist/walletconnect.js.map +1 -1
  259. package/package.json +11 -10
  260. package/INK6-UX-SPEC.md +0 -446
  261. package/MIGRATION-SPEC.md +0 -108
  262. package/TUI-SPEC.md +0 -214
  263. package/scripts/authorize-machine-key.ts +0 -43
  264. package/scripts/drain-wallet.ts +0 -149
  265. package/scripts/execute-spend-only.ts +0 -81
  266. package/scripts/register-agent-userop.ts +0 -186
  267. package/src/abis.ts +0 -187
  268. package/src/bundler.ts +0 -235
  269. package/src/client.ts +0 -36
  270. package/src/coinbase-smart-wallet.ts +0 -51
  271. package/src/commands/accept.ts +0 -64
  272. package/src/commands/agent-handshake.ts +0 -72
  273. package/src/commands/agent.ts +0 -691
  274. package/src/commands/agreements.ts +0 -350
  275. package/src/commands/arbitrator.ts +0 -180
  276. package/src/commands/arena-handshake.ts +0 -274
  277. package/src/commands/arena.ts +0 -122
  278. package/src/commands/backup.ts +0 -117
  279. package/src/commands/cancel.ts +0 -35
  280. package/src/commands/channel.ts +0 -218
  281. package/src/commands/coldstart.ts +0 -165
  282. package/src/commands/config.ts +0 -68
  283. package/src/commands/contract-interaction.ts +0 -166
  284. package/src/commands/daemon.ts +0 -1054
  285. package/src/commands/deliver.ts +0 -148
  286. package/src/commands/discover.ts +0 -350
  287. package/src/commands/dispute.ts +0 -375
  288. package/src/commands/doctor.ts +0 -172
  289. package/src/commands/endpoint.ts +0 -620
  290. package/src/commands/feed.ts +0 -229
  291. package/src/commands/hire.ts +0 -245
  292. package/src/commands/migrate.ts +0 -177
  293. package/src/commands/negotiate.ts +0 -272
  294. package/src/commands/openshell.ts +0 -1055
  295. package/src/commands/owner.ts +0 -35
  296. package/src/commands/policy.ts +0 -263
  297. package/src/commands/relay.ts +0 -277
  298. package/src/commands/remediate.ts +0 -24
  299. package/src/commands/reputation.ts +0 -79
  300. package/src/commands/setup.ts +0 -343
  301. package/src/commands/trust.ts +0 -27
  302. package/src/commands/verify.ts +0 -91
  303. package/src/commands/wallet.ts +0 -3548
  304. package/src/commands/watch.ts +0 -220
  305. package/src/commands/watchtower.ts +0 -248
  306. package/src/commands/workroom.ts +0 -963
  307. package/src/config.ts +0 -220
  308. package/src/daemon/config.ts +0 -344
  309. package/src/daemon/hire-listener.ts +0 -226
  310. package/src/daemon/index.ts +0 -1089
  311. package/src/daemon/job-lifecycle.ts +0 -215
  312. package/src/daemon/notify.ts +0 -297
  313. package/src/daemon/token-metering.ts +0 -183
  314. package/src/daemon/userops.ts +0 -119
  315. package/src/daemon/wallet-monitor.ts +0 -90
  316. package/src/drain-v4.ts +0 -159
  317. package/src/endpoint-config.ts +0 -83
  318. package/src/endpoint-notify.ts +0 -129
  319. package/src/index.ts +0 -74
  320. package/src/openshell-runtime.ts +0 -281
  321. package/src/program.ts +0 -88
  322. package/src/repl.ts +0 -178
  323. package/src/signing.ts +0 -28
  324. package/src/telegram-notify.ts +0 -88
  325. package/src/tui/App.tsx +0 -263
  326. package/src/tui/Footer.tsx +0 -18
  327. package/src/tui/Header.tsx +0 -45
  328. package/src/tui/InputLine.tsx +0 -243
  329. package/src/tui/Viewport.tsx +0 -51
  330. package/src/tui/WalletConnectPairing.tsx +0 -114
  331. package/src/tui/components/Button.tsx +0 -38
  332. package/src/tui/components/CeremonyView.tsx +0 -39
  333. package/src/tui/components/CompletionDropdown.tsx +0 -56
  334. package/src/tui/components/ConfirmPrompt.tsx +0 -36
  335. package/src/tui/components/CustomTextInput.tsx +0 -132
  336. package/src/tui/components/InteractiveTable.tsx +0 -106
  337. package/src/tui/components/StepSpinner.tsx +0 -84
  338. package/src/tui/components/Toast.tsx +0 -59
  339. package/src/tui/index.tsx +0 -90
  340. package/src/tui/useChat.ts +0 -103
  341. package/src/tui/useCommand.ts +0 -238
  342. package/src/tui/useNotifications.ts +0 -28
  343. package/src/tui/useScroll.ts +0 -69
  344. package/src/ui/banner.ts +0 -78
  345. package/src/ui/colors.ts +0 -30
  346. package/src/ui/format.ts +0 -78
  347. package/src/ui/qr-render.ts +0 -92
  348. package/src/ui/rpc-fallback.ts +0 -59
  349. package/src/ui/spinner.ts +0 -56
  350. package/src/ui/tree.ts +0 -16
  351. package/src/utils/format.ts +0 -48
  352. package/src/utils/hash.ts +0 -5
  353. package/src/utils/time.ts +0 -15
  354. package/src/wallet-router.ts +0 -178
  355. package/src/walletconnect-session.ts +0 -27
  356. package/src/walletconnect.ts +0 -309
  357. package/test/time.test.js +0 -11
  358. 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