@agirails/sdk 2.0.1-beta → 2.0.2

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 (405) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +116 -108
  3. package/bin/actp +10 -0
  4. package/dist/ACTPClient.d.ts +456 -33
  5. package/dist/ACTPClient.d.ts.map +1 -1
  6. package/dist/ACTPClient.js +477 -93
  7. package/dist/ACTPClient.js.map +1 -1
  8. package/dist/abi/AgentRegistry.json +782 -0
  9. package/dist/abi/EscrowVault.json +106 -38
  10. package/dist/abi/IdentityRegistry.json +316 -0
  11. package/dist/adapters/BaseAdapter.d.ts +231 -0
  12. package/dist/adapters/BaseAdapter.d.ts.map +1 -0
  13. package/dist/adapters/BaseAdapter.js +393 -0
  14. package/dist/adapters/BaseAdapter.js.map +1 -0
  15. package/dist/adapters/BeginnerAdapter.d.ts +152 -0
  16. package/dist/adapters/BeginnerAdapter.d.ts.map +1 -0
  17. package/dist/adapters/BeginnerAdapter.js +168 -0
  18. package/dist/adapters/BeginnerAdapter.js.map +1 -0
  19. package/dist/adapters/IntermediateAdapter.d.ts +211 -0
  20. package/dist/adapters/IntermediateAdapter.d.ts.map +1 -0
  21. package/dist/adapters/IntermediateAdapter.js +260 -0
  22. package/dist/adapters/IntermediateAdapter.js.map +1 -0
  23. package/dist/adapters/index.d.ts +15 -0
  24. package/dist/adapters/index.d.ts.map +1 -0
  25. package/dist/adapters/index.js +26 -0
  26. package/dist/adapters/index.js.map +1 -0
  27. package/dist/builders/DeliveryProofBuilder.d.ts +60 -1
  28. package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
  29. package/dist/builders/DeliveryProofBuilder.js +81 -5
  30. package/dist/builders/DeliveryProofBuilder.js.map +1 -1
  31. package/dist/builders/QuoteBuilder.d.ts +101 -0
  32. package/dist/builders/QuoteBuilder.d.ts.map +1 -1
  33. package/dist/builders/QuoteBuilder.js +120 -3
  34. package/dist/builders/QuoteBuilder.js.map +1 -1
  35. package/dist/builders/index.d.ts +4 -0
  36. package/dist/builders/index.d.ts.map +1 -1
  37. package/dist/builders/index.js +4 -0
  38. package/dist/builders/index.js.map +1 -1
  39. package/dist/cli/commands/balance.d.ts +13 -0
  40. package/dist/cli/commands/balance.d.ts.map +1 -0
  41. package/dist/cli/commands/balance.js +89 -0
  42. package/dist/cli/commands/balance.js.map +1 -0
  43. package/dist/cli/commands/batch.d.ts +24 -0
  44. package/dist/cli/commands/batch.d.ts.map +1 -0
  45. package/dist/cli/commands/batch.js +424 -0
  46. package/dist/cli/commands/batch.js.map +1 -0
  47. package/dist/cli/commands/config.d.ts +13 -0
  48. package/dist/cli/commands/config.d.ts.map +1 -0
  49. package/dist/cli/commands/config.js +192 -0
  50. package/dist/cli/commands/config.js.map +1 -0
  51. package/dist/cli/commands/init.d.ts +19 -0
  52. package/dist/cli/commands/init.d.ts.map +1 -0
  53. package/dist/cli/commands/init.js +143 -0
  54. package/dist/cli/commands/init.js.map +1 -0
  55. package/dist/cli/commands/mint.d.ts +13 -0
  56. package/dist/cli/commands/mint.d.ts.map +1 -0
  57. package/dist/cli/commands/mint.js +91 -0
  58. package/dist/cli/commands/mint.js.map +1 -0
  59. package/dist/cli/commands/pay.d.ts +18 -0
  60. package/dist/cli/commands/pay.d.ts.map +1 -0
  61. package/dist/cli/commands/pay.js +87 -0
  62. package/dist/cli/commands/pay.js.map +1 -0
  63. package/dist/cli/commands/simulate.d.ts +32 -0
  64. package/dist/cli/commands/simulate.d.ts.map +1 -0
  65. package/dist/cli/commands/simulate.js +290 -0
  66. package/dist/cli/commands/simulate.js.map +1 -0
  67. package/dist/cli/commands/time.d.ts +29 -0
  68. package/dist/cli/commands/time.d.ts.map +1 -0
  69. package/dist/cli/commands/time.js +252 -0
  70. package/dist/cli/commands/time.js.map +1 -0
  71. package/dist/cli/commands/tx.d.ts +16 -0
  72. package/dist/cli/commands/tx.d.ts.map +1 -0
  73. package/dist/cli/commands/tx.js +379 -0
  74. package/dist/cli/commands/tx.js.map +1 -0
  75. package/dist/cli/commands/watch.d.ts +20 -0
  76. package/dist/cli/commands/watch.d.ts.map +1 -0
  77. package/dist/cli/commands/watch.js +160 -0
  78. package/dist/cli/commands/watch.js.map +1 -0
  79. package/dist/cli/index.d.ts +17 -0
  80. package/dist/cli/index.d.ts.map +1 -0
  81. package/dist/cli/index.js +104 -0
  82. package/dist/cli/index.js.map +1 -0
  83. package/dist/cli/utils/client.d.ts +70 -0
  84. package/dist/cli/utils/client.d.ts.map +1 -0
  85. package/dist/cli/utils/client.js +240 -0
  86. package/dist/cli/utils/client.js.map +1 -0
  87. package/dist/cli/utils/config.d.ts +91 -0
  88. package/dist/cli/utils/config.d.ts.map +1 -0
  89. package/dist/cli/utils/config.js +240 -0
  90. package/dist/cli/utils/config.js.map +1 -0
  91. package/dist/cli/utils/output.d.ts +174 -0
  92. package/dist/cli/utils/output.d.ts.map +1 -0
  93. package/dist/cli/utils/output.js +380 -0
  94. package/dist/cli/utils/output.js.map +1 -0
  95. package/dist/config/networks.d.ts +28 -0
  96. package/dist/config/networks.d.ts.map +1 -1
  97. package/dist/config/networks.js +60 -12
  98. package/dist/config/networks.js.map +1 -1
  99. package/dist/errors/index.d.ts +165 -2
  100. package/dist/errors/index.d.ts.map +1 -1
  101. package/dist/errors/index.js +260 -2
  102. package/dist/errors/index.js.map +1 -1
  103. package/dist/index.d.ts +61 -13
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +141 -36
  106. package/dist/index.js.map +1 -1
  107. package/dist/level0/Provider.d.ts +106 -0
  108. package/dist/level0/Provider.d.ts.map +1 -0
  109. package/dist/level0/Provider.js +10 -0
  110. package/dist/level0/Provider.js.map +1 -0
  111. package/dist/level0/ServiceDirectory.d.ts +74 -0
  112. package/dist/level0/ServiceDirectory.d.ts.map +1 -0
  113. package/dist/level0/ServiceDirectory.js +122 -0
  114. package/dist/level0/ServiceDirectory.js.map +1 -0
  115. package/dist/level0/index.d.ts +10 -0
  116. package/dist/level0/index.d.ts.map +1 -0
  117. package/dist/level0/index.js +15 -0
  118. package/dist/level0/index.js.map +1 -0
  119. package/dist/level0/provide.d.ts +51 -0
  120. package/dist/level0/provide.d.ts.map +1 -0
  121. package/dist/level0/provide.js +113 -0
  122. package/dist/level0/provide.js.map +1 -0
  123. package/dist/level0/request.d.ts +53 -0
  124. package/dist/level0/request.d.ts.map +1 -0
  125. package/dist/level0/request.js +462 -0
  126. package/dist/level0/request.js.map +1 -0
  127. package/dist/level1/Agent.d.ts +472 -0
  128. package/dist/level1/Agent.d.ts.map +1 -0
  129. package/dist/level1/Agent.js +1091 -0
  130. package/dist/level1/Agent.js.map +1 -0
  131. package/dist/level1/index.d.ts +10 -0
  132. package/dist/level1/index.d.ts.map +1 -0
  133. package/dist/level1/index.js +30 -0
  134. package/dist/level1/index.js.map +1 -0
  135. package/dist/level1/pricing/PriceCalculator.d.ts +62 -0
  136. package/dist/level1/pricing/PriceCalculator.d.ts.map +1 -0
  137. package/dist/level1/pricing/PriceCalculator.js +237 -0
  138. package/dist/level1/pricing/PriceCalculator.js.map +1 -0
  139. package/dist/level1/pricing/PricingStrategy.d.ts +179 -0
  140. package/dist/level1/pricing/PricingStrategy.d.ts.map +1 -0
  141. package/dist/level1/pricing/PricingStrategy.js +11 -0
  142. package/dist/level1/pricing/PricingStrategy.js.map +1 -0
  143. package/dist/level1/types/Job.d.ts +166 -0
  144. package/dist/level1/types/Job.d.ts.map +1 -0
  145. package/dist/level1/types/Job.js +11 -0
  146. package/dist/level1/types/Job.js.map +1 -0
  147. package/dist/level1/types/Options.d.ts +258 -0
  148. package/dist/level1/types/Options.d.ts.map +1 -0
  149. package/dist/level1/types/Options.js +8 -0
  150. package/dist/level1/types/Options.js.map +1 -0
  151. package/dist/level1/types/index.d.ts +8 -0
  152. package/dist/level1/types/index.d.ts.map +1 -0
  153. package/dist/level1/types/index.js +8 -0
  154. package/dist/level1/types/index.js.map +1 -0
  155. package/dist/protocol/ACTPKernel.d.ts +229 -2
  156. package/dist/protocol/ACTPKernel.d.ts.map +1 -1
  157. package/dist/protocol/ACTPKernel.js +367 -33
  158. package/dist/protocol/ACTPKernel.js.map +1 -1
  159. package/dist/protocol/AgentRegistry.d.ts +177 -0
  160. package/dist/protocol/AgentRegistry.d.ts.map +1 -0
  161. package/dist/protocol/AgentRegistry.js +449 -0
  162. package/dist/protocol/AgentRegistry.js.map +1 -0
  163. package/dist/protocol/DIDManager.d.ts +289 -0
  164. package/dist/protocol/DIDManager.d.ts.map +1 -0
  165. package/dist/protocol/DIDManager.js +481 -0
  166. package/dist/protocol/DIDManager.js.map +1 -0
  167. package/dist/protocol/DIDResolver.d.ts +236 -0
  168. package/dist/protocol/DIDResolver.d.ts.map +1 -0
  169. package/dist/protocol/DIDResolver.js +495 -0
  170. package/dist/protocol/DIDResolver.js.map +1 -0
  171. package/dist/protocol/EASHelper.d.ts +57 -2
  172. package/dist/protocol/EASHelper.d.ts.map +1 -1
  173. package/dist/protocol/EASHelper.js +230 -37
  174. package/dist/protocol/EASHelper.js.map +1 -1
  175. package/dist/protocol/EscrowVault.d.ts +93 -2
  176. package/dist/protocol/EscrowVault.d.ts.map +1 -1
  177. package/dist/protocol/EscrowVault.js +122 -33
  178. package/dist/protocol/EscrowVault.js.map +1 -1
  179. package/dist/protocol/EventMonitor.d.ts +45 -1
  180. package/dist/protocol/EventMonitor.d.ts.map +1 -1
  181. package/dist/protocol/EventMonitor.js +64 -8
  182. package/dist/protocol/EventMonitor.js.map +1 -1
  183. package/dist/protocol/MessageSigner.d.ts +116 -2
  184. package/dist/protocol/MessageSigner.d.ts.map +1 -1
  185. package/dist/protocol/MessageSigner.js +215 -9
  186. package/dist/protocol/MessageSigner.js.map +1 -1
  187. package/dist/protocol/ProofGenerator.d.ts +93 -0
  188. package/dist/protocol/ProofGenerator.d.ts.map +1 -1
  189. package/dist/protocol/ProofGenerator.js +194 -9
  190. package/dist/protocol/ProofGenerator.js.map +1 -1
  191. package/dist/protocol/QuoteBuilder.d.ts +8 -0
  192. package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
  193. package/dist/protocol/QuoteBuilder.js +8 -0
  194. package/dist/protocol/QuoteBuilder.js.map +1 -1
  195. package/dist/runtime/BlockchainRuntime.d.ts +360 -0
  196. package/dist/runtime/BlockchainRuntime.d.ts.map +1 -0
  197. package/dist/runtime/BlockchainRuntime.js +767 -0
  198. package/dist/runtime/BlockchainRuntime.js.map +1 -0
  199. package/dist/runtime/IACTPRuntime.d.ts +271 -0
  200. package/dist/runtime/IACTPRuntime.d.ts.map +1 -0
  201. package/dist/runtime/IACTPRuntime.js +15 -0
  202. package/dist/runtime/IACTPRuntime.js.map +1 -0
  203. package/dist/runtime/MockRuntime.d.ts +445 -0
  204. package/dist/runtime/MockRuntime.d.ts.map +1 -0
  205. package/dist/runtime/MockRuntime.js +1065 -0
  206. package/dist/runtime/MockRuntime.js.map +1 -0
  207. package/dist/runtime/MockStateManager.d.ts +233 -0
  208. package/dist/runtime/MockStateManager.d.ts.map +1 -0
  209. package/dist/runtime/MockStateManager.js +533 -0
  210. package/dist/runtime/MockStateManager.js.map +1 -0
  211. package/dist/runtime/index.d.ts +14 -0
  212. package/dist/runtime/index.d.ts.map +1 -0
  213. package/dist/runtime/index.js +42 -0
  214. package/dist/runtime/index.js.map +1 -0
  215. package/dist/runtime/types/MockState.d.ts +167 -0
  216. package/dist/runtime/types/MockState.d.ts.map +1 -0
  217. package/dist/runtime/types/MockState.js +43 -0
  218. package/dist/runtime/types/MockState.js.map +1 -0
  219. package/dist/types/agent.d.ts +76 -0
  220. package/dist/types/agent.d.ts.map +1 -0
  221. package/dist/types/agent.js +8 -0
  222. package/dist/types/agent.js.map +1 -0
  223. package/dist/types/did.d.ts +192 -0
  224. package/dist/types/did.d.ts.map +1 -0
  225. package/dist/types/did.js +38 -0
  226. package/dist/types/did.js.map +1 -0
  227. package/dist/types/eip712.d.ts +34 -0
  228. package/dist/types/eip712.d.ts.map +1 -1
  229. package/dist/types/eip712.js +31 -5
  230. package/dist/types/eip712.js.map +1 -1
  231. package/dist/types/escrow.d.ts +17 -10
  232. package/dist/types/escrow.d.ts.map +1 -1
  233. package/dist/types/index.d.ts +5 -0
  234. package/dist/types/index.d.ts.map +1 -1
  235. package/dist/types/index.js +8 -0
  236. package/dist/types/index.js.map +1 -1
  237. package/dist/types/message.d.ts +32 -0
  238. package/dist/types/message.d.ts.map +1 -1
  239. package/dist/types/message.js +4 -0
  240. package/dist/types/message.js.map +1 -1
  241. package/dist/types/state.d.ts +28 -0
  242. package/dist/types/state.d.ts.map +1 -1
  243. package/dist/types/state.js +37 -6
  244. package/dist/types/state.js.map +1 -1
  245. package/dist/types/transaction.d.ts +17 -0
  246. package/dist/types/transaction.d.ts.map +1 -1
  247. package/dist/utils/ErrorRecoveryGuide.d.ts +125 -0
  248. package/dist/utils/ErrorRecoveryGuide.d.ts.map +1 -0
  249. package/dist/utils/ErrorRecoveryGuide.js +579 -0
  250. package/dist/utils/ErrorRecoveryGuide.js.map +1 -0
  251. package/dist/utils/Helpers.d.ts +453 -0
  252. package/dist/utils/Helpers.d.ts.map +1 -0
  253. package/dist/utils/Helpers.js +623 -0
  254. package/dist/utils/Helpers.js.map +1 -0
  255. package/dist/utils/IPFSClient.d.ts +113 -0
  256. package/dist/utils/IPFSClient.d.ts.map +1 -1
  257. package/dist/utils/IPFSClient.js +128 -7
  258. package/dist/utils/IPFSClient.js.map +1 -1
  259. package/dist/utils/Logger.d.ts +195 -0
  260. package/dist/utils/Logger.d.ts.map +1 -0
  261. package/dist/utils/Logger.js +382 -0
  262. package/dist/utils/Logger.js.map +1 -0
  263. package/dist/utils/NonceManager.d.ts +234 -1
  264. package/dist/utils/NonceManager.d.ts.map +1 -1
  265. package/dist/utils/NonceManager.js +372 -7
  266. package/dist/utils/NonceManager.js.map +1 -1
  267. package/dist/utils/RateLimiter.d.ts +253 -0
  268. package/dist/utils/RateLimiter.d.ts.map +1 -0
  269. package/dist/utils/RateLimiter.js +424 -0
  270. package/dist/utils/RateLimiter.js.map +1 -0
  271. package/dist/utils/ReceivedNonceTracker.d.ts +175 -0
  272. package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
  273. package/dist/utils/ReceivedNonceTracker.js +261 -5
  274. package/dist/utils/ReceivedNonceTracker.js.map +1 -1
  275. package/dist/utils/SDKLifecycle.d.ts +156 -0
  276. package/dist/utils/SDKLifecycle.d.ts.map +1 -0
  277. package/dist/utils/SDKLifecycle.js +347 -0
  278. package/dist/utils/SDKLifecycle.js.map +1 -0
  279. package/dist/utils/SecureNonce.d.ts +57 -0
  280. package/dist/utils/SecureNonce.d.ts.map +1 -0
  281. package/dist/utils/SecureNonce.js +80 -0
  282. package/dist/utils/SecureNonce.js.map +1 -0
  283. package/dist/utils/Semaphore.d.ts +123 -0
  284. package/dist/utils/Semaphore.d.ts.map +1 -0
  285. package/dist/utils/Semaphore.js +247 -0
  286. package/dist/utils/Semaphore.js.map +1 -0
  287. package/dist/utils/UsedAttestationTracker.d.ts +167 -0
  288. package/dist/utils/UsedAttestationTracker.d.ts.map +1 -0
  289. package/dist/utils/UsedAttestationTracker.js +309 -0
  290. package/dist/utils/UsedAttestationTracker.js.map +1 -0
  291. package/dist/utils/canonicalJson.d.ts +22 -0
  292. package/dist/utils/canonicalJson.d.ts.map +1 -1
  293. package/dist/utils/canonicalJson.js +26 -3
  294. package/dist/utils/canonicalJson.js.map +1 -1
  295. package/dist/utils/computeTypeHash.d.ts +14 -0
  296. package/dist/utils/computeTypeHash.d.ts.map +1 -1
  297. package/dist/utils/computeTypeHash.js +19 -2
  298. package/dist/utils/computeTypeHash.js.map +1 -1
  299. package/dist/utils/fsSafe.d.ts +14 -0
  300. package/dist/utils/fsSafe.d.ts.map +1 -0
  301. package/dist/utils/fsSafe.js +89 -0
  302. package/dist/utils/fsSafe.js.map +1 -0
  303. package/dist/utils/index.d.ts +15 -0
  304. package/dist/utils/index.d.ts.map +1 -0
  305. package/dist/utils/index.js +51 -0
  306. package/dist/utils/index.js.map +1 -0
  307. package/dist/utils/security.d.ts +147 -0
  308. package/dist/utils/security.d.ts.map +1 -0
  309. package/dist/utils/security.js +391 -0
  310. package/dist/utils/security.js.map +1 -0
  311. package/dist/utils/validation.d.ts +40 -0
  312. package/dist/utils/validation.d.ts.map +1 -1
  313. package/dist/utils/validation.js +184 -7
  314. package/dist/utils/validation.js.map +1 -1
  315. package/package.json +54 -37
  316. package/src/ACTPClient.ts +692 -178
  317. package/src/abi/AgentRegistry.json +782 -0
  318. package/src/abi/EscrowVault.json +106 -38
  319. package/src/abi/IdentityRegistry.json +316 -0
  320. package/src/adapters/BaseAdapter.ts +473 -0
  321. package/src/adapters/BeginnerAdapter.ts +232 -0
  322. package/src/adapters/IntermediateAdapter.ts +316 -0
  323. package/src/adapters/index.ts +25 -0
  324. package/src/builders/DeliveryProofBuilder.ts +3 -2
  325. package/src/cli/commands/balance.ts +110 -0
  326. package/src/cli/commands/batch.ts +487 -0
  327. package/src/cli/commands/config.ts +231 -0
  328. package/src/cli/commands/init.ts +161 -0
  329. package/src/cli/commands/mint.ts +116 -0
  330. package/src/cli/commands/pay.ts +113 -0
  331. package/src/cli/commands/simulate.ts +345 -0
  332. package/src/cli/commands/time.ts +303 -0
  333. package/src/cli/commands/tx.ts +448 -0
  334. package/src/cli/commands/watch.ts +211 -0
  335. package/src/cli/index.ts +116 -0
  336. package/src/cli/utils/client.ts +249 -0
  337. package/src/cli/utils/config.ts +282 -0
  338. package/src/cli/utils/output.ts +465 -0
  339. package/src/config/networks.ts +32 -9
  340. package/src/errors/index.ts +298 -1
  341. package/src/index.ts +207 -71
  342. package/src/level0/Provider.ts +117 -0
  343. package/src/level0/ServiceDirectory.ts +131 -0
  344. package/src/level0/index.ts +10 -0
  345. package/src/level0/provide.ts +131 -0
  346. package/src/level0/request.ts +494 -0
  347. package/src/level1/Agent.ts +1432 -0
  348. package/src/level1/index.ts +10 -0
  349. package/src/level1/pricing/PriceCalculator.ts +255 -0
  350. package/src/level1/pricing/PricingStrategy.ts +198 -0
  351. package/src/level1/types/Job.ts +179 -0
  352. package/src/level1/types/Options.ts +291 -0
  353. package/src/level1/types/index.ts +8 -0
  354. package/src/protocol/ACTPKernel.ts +175 -23
  355. package/src/protocol/AgentRegistry.ts +559 -0
  356. package/src/protocol/DIDManager.ts +629 -0
  357. package/src/protocol/DIDResolver.ts +554 -0
  358. package/src/protocol/EASHelper.ts +230 -46
  359. package/src/protocol/EscrowVault.ts +68 -50
  360. package/src/protocol/EventMonitor.ts +44 -15
  361. package/src/protocol/MessageSigner.ts +193 -13
  362. package/src/protocol/ProofGenerator.ts +223 -4
  363. package/src/runtime/BlockchainRuntime.ts +993 -0
  364. package/src/runtime/IACTPRuntime.ts +284 -0
  365. package/src/runtime/MockRuntime.ts +1244 -0
  366. package/src/runtime/MockStateManager.ts +576 -0
  367. package/src/runtime/index.ts +25 -0
  368. package/src/runtime/types/MockState.ts +227 -0
  369. package/src/types/agent.ts +79 -0
  370. package/src/types/did.ts +223 -0
  371. package/src/types/escrow.ts +12 -11
  372. package/src/types/index.ts +5 -1
  373. package/src/types/state.ts +12 -3
  374. package/src/types/transaction.ts +4 -1
  375. package/src/utils/ErrorRecoveryGuide.ts +675 -0
  376. package/src/utils/Helpers.ts +688 -0
  377. package/src/utils/IPFSClient.ts +122 -5
  378. package/src/utils/Logger.ts +484 -0
  379. package/src/utils/NonceManager.ts +305 -8
  380. package/src/utils/RateLimiter.ts +534 -0
  381. package/src/utils/ReceivedNonceTracker.ts +170 -0
  382. package/src/utils/SDKLifecycle.ts +416 -0
  383. package/src/utils/SecureNonce.ts +78 -0
  384. package/src/utils/Semaphore.ts +276 -0
  385. package/src/utils/UsedAttestationTracker.ts +387 -0
  386. package/src/utils/fsSafe.ts +75 -0
  387. package/src/utils/index.ts +80 -0
  388. package/src/utils/security.ts +418 -0
  389. package/src/utils/validation.ts +164 -0
  390. package/src/__tests__/ProofGenerator.test.ts +0 -124
  391. package/src/__tests__/QuoteBuilder.test.ts +0 -516
  392. package/src/__tests__/StateMachine.test.ts +0 -82
  393. package/src/__tests__/builders/DeliveryProofBuilder.test.ts +0 -581
  394. package/src/__tests__/integration/ACTPClient.test.ts +0 -263
  395. package/src/__tests__/integration.test.ts +0 -289
  396. package/src/__tests__/protocol/EASHelper.test.ts +0 -472
  397. package/src/__tests__/protocol/EventMonitor.test.ts +0 -382
  398. package/src/__tests__/security/ACTPKernel.security.test.ts +0 -1167
  399. package/src/__tests__/security/EscrowVault.security.test.ts +0 -570
  400. package/src/__tests__/security/MessageSigner.security.test.ts +0 -286
  401. package/src/__tests__/security/NonceReplay.security.test.ts +0 -501
  402. package/src/__tests__/security/validation.security.test.ts +0 -376
  403. package/src/__tests__/utils/IPFSClient.test.ts +0 -262
  404. package/src/__tests__/utils/NonceManager.test.ts +0 -205
  405. package/src/__tests__/utils/canonicalJson.test.ts +0 -153
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * ACTP CLI - Agent Commerce Transaction Protocol Command Line Interface
5
+ *
6
+ * The ACTP CLI is designed for AI agents - not humans clicking buttons.
7
+ * Key differentiators:
8
+ *
9
+ * 1. **Machine-readable output**: JSON by default for scripting
10
+ * 2. **Pipe-friendly**: Commands output just what you need
11
+ * 3. **Structured exit codes**: 0=success, 1=error, 2=pending
12
+ * 4. **Agent-first features**: watch, simulate, batch
13
+ *
14
+ * @module cli
15
+ * @see https://docs.agirails.io/cli
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const commander_1 = require("commander");
19
+ const fs_1 = require("fs");
20
+ const path_1 = require("path");
21
+ // Read version from package.json (works in both src and dist)
22
+ function getVersion() {
23
+ try {
24
+ // Try dist location first (when running compiled)
25
+ const distPath = (0, path_1.join)(__dirname, '../../package.json');
26
+ const pkg = JSON.parse((0, fs_1.readFileSync)(distPath, 'utf-8'));
27
+ return pkg.version;
28
+ }
29
+ catch {
30
+ try {
31
+ // Fallback to src location (when running ts-node)
32
+ const srcPath = (0, path_1.join)(__dirname, '../../../package.json');
33
+ const pkg = JSON.parse((0, fs_1.readFileSync)(srcPath, 'utf-8'));
34
+ return pkg.version;
35
+ }
36
+ catch {
37
+ return '0.0.0'; // Fallback if package.json not found
38
+ }
39
+ }
40
+ }
41
+ // Import commands
42
+ const init_1 = require("./commands/init");
43
+ const pay_1 = require("./commands/pay");
44
+ const tx_1 = require("./commands/tx");
45
+ const balance_1 = require("./commands/balance");
46
+ const mint_1 = require("./commands/mint");
47
+ const config_1 = require("./commands/config");
48
+ const watch_1 = require("./commands/watch");
49
+ const simulate_1 = require("./commands/simulate");
50
+ const batch_1 = require("./commands/batch");
51
+ const time_1 = require("./commands/time");
52
+ // ============================================================================
53
+ // Program Setup
54
+ // ============================================================================
55
+ const program = new commander_1.Command();
56
+ program
57
+ .name('actp')
58
+ .description('ACTP CLI - Agent Commerce Transaction Protocol\n\n' +
59
+ 'The payment layer for AI agents. Create escrow-backed transactions,\n' +
60
+ 'track state changes, and settle payments programmatically.\n\n' +
61
+ 'Quick Start:\n' +
62
+ ' $ actp init Initialize in current directory\n' +
63
+ ' $ actp pay 0xProvider 100 Create a payment\n' +
64
+ ' $ actp tx status <txId> Check transaction status\n\n' +
65
+ 'Output Modes:\n' +
66
+ ' --json Machine-readable JSON output\n' +
67
+ ' --quiet Minimal output (just the essential value)')
68
+ .version(getVersion(), '-v, --version', 'Output the version number')
69
+ .helpOption('-h, --help', 'Display help for command');
70
+ // ============================================================================
71
+ // Register Commands
72
+ // ============================================================================
73
+ // Core commands (most used)
74
+ program.addCommand((0, init_1.createInitCommand)());
75
+ program.addCommand((0, pay_1.createPayCommand)());
76
+ program.addCommand((0, tx_1.createTxCommand)());
77
+ program.addCommand((0, balance_1.createBalanceCommand)());
78
+ program.addCommand((0, mint_1.createMintCommand)());
79
+ program.addCommand((0, config_1.createConfigCommand)());
80
+ // Agent-first features
81
+ program.addCommand((0, watch_1.createWatchCommand)());
82
+ program.addCommand((0, simulate_1.createSimulateCommand)());
83
+ program.addCommand((0, batch_1.createBatchCommand)());
84
+ // Mock mode utilities
85
+ program.addCommand((0, time_1.createTimeCommand)());
86
+ // ============================================================================
87
+ // Error Handling
88
+ // ============================================================================
89
+ // Handle unknown commands
90
+ program.on('command:*', (operands) => {
91
+ console.error(`Error: Unknown command '${operands[0]}'`);
92
+ console.error('');
93
+ console.error('Run "actp --help" for available commands.');
94
+ process.exit(1);
95
+ });
96
+ // ============================================================================
97
+ // Parse & Execute
98
+ // ============================================================================
99
+ program.parse(process.argv);
100
+ // If no arguments, show help
101
+ if (process.argv.length === 2) {
102
+ program.outputHelp();
103
+ }
104
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * SDK Client Factory for CLI
3
+ *
4
+ * Creates and manages ACTPClient instances based on CLI configuration.
5
+ * Handles mode-specific initialization and error mapping.
6
+ *
7
+ * SECURITY: Error messages are sanitized to prevent information disclosure.
8
+ *
9
+ * @module cli/utils/client
10
+ */
11
+ import { ACTPClient } from '../../ACTPClient';
12
+ /**
13
+ * Create an ACTPClient instance from CLI configuration
14
+ *
15
+ * Reads configuration from .actp/config.json and creates
16
+ * an appropriate client instance for the configured mode.
17
+ *
18
+ * @param projectRoot - Project root directory (defaults to cwd)
19
+ * @returns Initialized ACTPClient
20
+ * @throws Error if config invalid or client creation fails
21
+ */
22
+ export declare function createClient(projectRoot?: string): Promise<ACTPClient>;
23
+ /**
24
+ * Error codes for CLI errors
25
+ */
26
+ export declare const ErrorCode: {
27
+ readonly NOT_INITIALIZED: "NOT_INITIALIZED";
28
+ readonly CONFIG_CORRUPTED: "CONFIG_CORRUPTED";
29
+ readonly INVALID_CONFIG: "INVALID_CONFIG";
30
+ readonly INVALID_ADDRESS: "INVALID_ADDRESS";
31
+ readonly INVALID_AMOUNT: "INVALID_AMOUNT";
32
+ readonly INVALID_DEADLINE: "INVALID_DEADLINE";
33
+ readonly INVALID_TX_ID: "INVALID_TX_ID";
34
+ readonly TX_NOT_FOUND: "TX_NOT_FOUND";
35
+ readonly INVALID_STATE_TRANSITION: "INVALID_STATE_TRANSITION";
36
+ readonly INSUFFICIENT_BALANCE: "INSUFFICIENT_BALANCE";
37
+ readonly DEADLINE_PASSED: "DEADLINE_PASSED";
38
+ readonly DISPUTE_WINDOW_ACTIVE: "DISPUTE_WINDOW_ACTIVE";
39
+ readonly FILE_LOCK_ERROR: "FILE_LOCK_ERROR";
40
+ readonly NETWORK_ERROR: "NETWORK_ERROR";
41
+ readonly UNKNOWN_ERROR: "UNKNOWN_ERROR";
42
+ };
43
+ export type ErrorCodeValue = (typeof ErrorCode)[keyof typeof ErrorCode];
44
+ /**
45
+ * Structured CLI error with code and details
46
+ */
47
+ export interface StructuredError {
48
+ code: ErrorCodeValue;
49
+ message: string;
50
+ details?: Record<string, unknown>;
51
+ }
52
+ /**
53
+ * Map SDK errors to CLI-friendly structured errors.
54
+ *
55
+ * SECURITY: Sanitizes paths and stack traces to prevent information disclosure.
56
+ */
57
+ export declare function mapError(error: unknown): StructuredError;
58
+ /**
59
+ * Validate transaction ID format
60
+ */
61
+ export declare function isValidTxId(txId: string): boolean;
62
+ /**
63
+ * Format address for display (truncate middle)
64
+ */
65
+ export declare function formatAddress(address: string, length?: number): string;
66
+ /**
67
+ * Format transaction ID for display (truncate)
68
+ */
69
+ export declare function formatTxId(txId: string, length?: number): string;
70
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AA4BhE;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,CAAC,CAgBrB;AAMD;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;CAuBZ,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAsGxD;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,MAAM,CAK1E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAEnE"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ /**
3
+ * SDK Client Factory for CLI
4
+ *
5
+ * Creates and manages ACTPClient instances based on CLI configuration.
6
+ * Handles mode-specific initialization and error mapping.
7
+ *
8
+ * SECURITY: Error messages are sanitized to prevent information disclosure.
9
+ *
10
+ * @module cli/utils/client
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.formatTxId = exports.formatAddress = exports.isValidTxId = exports.mapError = exports.ErrorCode = exports.createClient = void 0;
37
+ const os = __importStar(require("os"));
38
+ const ACTPClient_1 = require("../../ACTPClient");
39
+ const config_1 = require("./config");
40
+ // ============================================================================
41
+ // Security: Path Sanitization
42
+ // ============================================================================
43
+ /**
44
+ * Sanitize a file path for safe display in error messages.
45
+ *
46
+ * SECURITY: Replaces home directory with ~ to prevent disclosure of:
47
+ * - Full home directory paths
48
+ * - Usernames embedded in paths
49
+ * - System-specific directory structures
50
+ *
51
+ * @param fullPath - The full file path to sanitize
52
+ * @returns Sanitized path safe for display
53
+ */
54
+ function sanitizePath(fullPath) {
55
+ const home = os.homedir();
56
+ // Replace home directory with ~ to avoid disclosing username/path
57
+ return fullPath.replace(home, '~');
58
+ }
59
+ // ============================================================================
60
+ // Client Factory
61
+ // ============================================================================
62
+ /**
63
+ * Create an ACTPClient instance from CLI configuration
64
+ *
65
+ * Reads configuration from .actp/config.json and creates
66
+ * an appropriate client instance for the configured mode.
67
+ *
68
+ * @param projectRoot - Project root directory (defaults to cwd)
69
+ * @returns Initialized ACTPClient
70
+ * @throws Error if config invalid or client creation fails
71
+ */
72
+ async function createClient(projectRoot = process.cwd()) {
73
+ // Load configuration
74
+ const config = (0, config_1.loadConfig)(projectRoot);
75
+ // Validate config for the mode
76
+ (0, config_1.validateConfigForMode)(config);
77
+ // Build client config
78
+ const clientConfig = {
79
+ mode: config.mode,
80
+ requesterAddress: config.address,
81
+ stateDirectory: projectRoot,
82
+ };
83
+ // Create and return client
84
+ return ACTPClient_1.ACTPClient.create(clientConfig);
85
+ }
86
+ exports.createClient = createClient;
87
+ // ============================================================================
88
+ // Error Mapping
89
+ // ============================================================================
90
+ /**
91
+ * Error codes for CLI errors
92
+ */
93
+ exports.ErrorCode = {
94
+ // Configuration errors
95
+ NOT_INITIALIZED: 'NOT_INITIALIZED',
96
+ CONFIG_CORRUPTED: 'CONFIG_CORRUPTED',
97
+ INVALID_CONFIG: 'INVALID_CONFIG',
98
+ // Input validation errors
99
+ INVALID_ADDRESS: 'INVALID_ADDRESS',
100
+ INVALID_AMOUNT: 'INVALID_AMOUNT',
101
+ INVALID_DEADLINE: 'INVALID_DEADLINE',
102
+ INVALID_TX_ID: 'INVALID_TX_ID',
103
+ // Transaction errors
104
+ TX_NOT_FOUND: 'TX_NOT_FOUND',
105
+ INVALID_STATE_TRANSITION: 'INVALID_STATE_TRANSITION',
106
+ INSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',
107
+ DEADLINE_PASSED: 'DEADLINE_PASSED',
108
+ DISPUTE_WINDOW_ACTIVE: 'DISPUTE_WINDOW_ACTIVE',
109
+ // System errors
110
+ FILE_LOCK_ERROR: 'FILE_LOCK_ERROR',
111
+ NETWORK_ERROR: 'NETWORK_ERROR',
112
+ UNKNOWN_ERROR: 'UNKNOWN_ERROR',
113
+ };
114
+ /**
115
+ * Map SDK errors to CLI-friendly structured errors.
116
+ *
117
+ * SECURITY: Sanitizes paths and stack traces to prevent information disclosure.
118
+ */
119
+ function mapError(error) {
120
+ const err = error;
121
+ // Sanitize the message to remove full paths
122
+ const rawMessage = err?.message || String(error);
123
+ const message = sanitizePath(rawMessage);
124
+ // Configuration errors
125
+ if (message.includes('not initialized') || message.includes('actp init')) {
126
+ return {
127
+ code: exports.ErrorCode.NOT_INITIALIZED,
128
+ message: 'ACTP not initialized. Run "actp init" first.',
129
+ };
130
+ }
131
+ if (message.includes('Config file corrupted')) {
132
+ return {
133
+ code: exports.ErrorCode.CONFIG_CORRUPTED,
134
+ message: 'Configuration file is corrupted.',
135
+ details: { suggestion: 'Run "actp init --force" to reinitialize.' },
136
+ };
137
+ }
138
+ // Transaction errors (from SDK error classes)
139
+ if (err?.name === 'TransactionNotFoundError' || message.includes('Transaction not found')) {
140
+ const txIdMatch = message.match(/Transaction not found: (0x[a-fA-F0-9]+)/);
141
+ return {
142
+ code: exports.ErrorCode.TX_NOT_FOUND,
143
+ message: 'Transaction not found.',
144
+ details: txIdMatch ? { txId: txIdMatch[1] } : undefined,
145
+ };
146
+ }
147
+ if (err?.name === 'InvalidStateTransitionError' || message.includes('Invalid state transition')) {
148
+ return {
149
+ code: exports.ErrorCode.INVALID_STATE_TRANSITION,
150
+ message: 'Invalid state transition.',
151
+ // SECURITY: Don't expose original message which may contain sensitive info
152
+ };
153
+ }
154
+ if (err?.name === 'InsufficientBalanceError' || message.includes('Insufficient balance')) {
155
+ return {
156
+ code: exports.ErrorCode.INSUFFICIENT_BALANCE,
157
+ message: 'Insufficient balance for this operation.',
158
+ // SECURITY: Don't expose balance details
159
+ };
160
+ }
161
+ if (err?.name === 'DeadlinePassedError' || message.includes('Deadline passed')) {
162
+ return {
163
+ code: exports.ErrorCode.DEADLINE_PASSED,
164
+ message: 'Transaction deadline has passed.',
165
+ };
166
+ }
167
+ if (err?.name === 'DisputeWindowActiveError' || message.includes('Dispute window')) {
168
+ return {
169
+ code: exports.ErrorCode.DISPUTE_WINDOW_ACTIVE,
170
+ message: 'Dispute window is still active.',
171
+ // SECURITY: Don't expose window timing details
172
+ };
173
+ }
174
+ // Validation errors
175
+ if (err?.name === 'ValidationError') {
176
+ if (message.includes('address')) {
177
+ return {
178
+ code: exports.ErrorCode.INVALID_ADDRESS,
179
+ message: sanitizePath(message),
180
+ };
181
+ }
182
+ if (message.includes('amount') || message.includes('Amount')) {
183
+ return {
184
+ code: exports.ErrorCode.INVALID_AMOUNT,
185
+ message: sanitizePath(message),
186
+ };
187
+ }
188
+ if (message.includes('deadline') || message.includes('Deadline')) {
189
+ return {
190
+ code: exports.ErrorCode.INVALID_DEADLINE,
191
+ message: sanitizePath(message),
192
+ };
193
+ }
194
+ }
195
+ // Lock errors
196
+ if (message.includes('lock') || message.includes('ELOCKED')) {
197
+ return {
198
+ code: exports.ErrorCode.FILE_LOCK_ERROR,
199
+ message: 'Could not acquire lock. Another process may be using ACTP.',
200
+ details: { suggestion: 'Wait a moment and try again.' },
201
+ };
202
+ }
203
+ // Default: unknown error
204
+ // SECURITY: Do NOT include stack traces in production - they reveal internal paths
205
+ return {
206
+ code: exports.ErrorCode.UNKNOWN_ERROR,
207
+ message: sanitizePath(message) || 'An unknown error occurred.',
208
+ // SECURITY FIX: Stack traces removed to prevent information disclosure
209
+ // In development mode, errors can be logged separately if needed
210
+ };
211
+ }
212
+ exports.mapError = mapError;
213
+ // ============================================================================
214
+ // Utilities
215
+ // ============================================================================
216
+ /**
217
+ * Validate transaction ID format
218
+ */
219
+ function isValidTxId(txId) {
220
+ return /^0x[a-fA-F0-9]{64}$/.test(txId);
221
+ }
222
+ exports.isValidTxId = isValidTxId;
223
+ /**
224
+ * Format address for display (truncate middle)
225
+ */
226
+ function formatAddress(address, length = 10) {
227
+ if (address.length <= length * 2 + 2) {
228
+ return address;
229
+ }
230
+ return `${address.slice(0, length + 2)}...${address.slice(-length)}`;
231
+ }
232
+ exports.formatAddress = formatAddress;
233
+ /**
234
+ * Format transaction ID for display (truncate)
235
+ */
236
+ function formatTxId(txId, length = 8) {
237
+ return `${txId.slice(0, length + 2)}...`;
238
+ }
239
+ exports.formatTxId = formatTxId;
240
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/cli/utils/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * CLI Configuration Management
3
+ *
4
+ * Handles reading/writing CLI configuration stored in .actp/config.json.
5
+ * Supports mock, testnet, and mainnet modes with mode-specific validation.
6
+ *
7
+ * @module cli/utils/config
8
+ */
9
+ /**
10
+ * CLI operating mode
11
+ */
12
+ export type CLIMode = 'mock' | 'testnet' | 'mainnet';
13
+ /**
14
+ * CLI configuration stored in .actp/config.json
15
+ */
16
+ export interface CLIConfig {
17
+ /** Operating mode */
18
+ mode: CLIMode;
19
+ /** User's Ethereum address */
20
+ address: string;
21
+ /** Optional: Private key for testnet/mainnet mode */
22
+ privateKey?: string;
23
+ /** Optional: RPC URL override */
24
+ rpcUrl?: string;
25
+ /** Configuration version for migrations */
26
+ version: string;
27
+ }
28
+ /**
29
+ * Default configuration values
30
+ */
31
+ export declare const CONFIG_DEFAULTS: CLIConfig;
32
+ /**
33
+ * Get the .actp directory path
34
+ */
35
+ export declare function getActpDir(projectRoot?: string): string;
36
+ /**
37
+ * Get the config.json path
38
+ */
39
+ export declare function getConfigPath(projectRoot?: string): string;
40
+ /**
41
+ * Check if ACTP is initialized in the current directory
42
+ */
43
+ export declare function isInitialized(projectRoot?: string): boolean;
44
+ /**
45
+ * Load configuration from disk
46
+ *
47
+ * SECURITY: Warns about private key storage in config file.
48
+ *
49
+ * @throws Error if config doesn't exist or is corrupted
50
+ */
51
+ export declare function loadConfig(projectRoot?: string): CLIConfig;
52
+ /**
53
+ * Save configuration to disk
54
+ *
55
+ * Creates .actp directory if it doesn't exist.
56
+ * Uses atomic write (temp file + rename).
57
+ */
58
+ export declare function saveConfig(config: CLIConfig, projectRoot?: string): void;
59
+ /**
60
+ * Update specific config values
61
+ *
62
+ * Loads existing config, merges updates, and saves.
63
+ */
64
+ export declare function updateConfig(updates: Partial<CLIConfig>, projectRoot?: string): CLIConfig;
65
+ /**
66
+ * Get a specific config value
67
+ */
68
+ export declare function getConfigValue<K extends keyof CLIConfig>(key: K, projectRoot?: string): CLIConfig[K];
69
+ /**
70
+ * Set a specific config value
71
+ */
72
+ export declare function setConfigValue<K extends keyof CLIConfig>(key: K, value: CLIConfig[K], projectRoot?: string): void;
73
+ /**
74
+ * Validate Ethereum address format
75
+ */
76
+ export declare function validateAddress(address: string): boolean;
77
+ /**
78
+ * Validate private key format (64 hex chars, optionally with 0x prefix)
79
+ */
80
+ export declare function validatePrivateKey(key: string): boolean;
81
+ /**
82
+ * Validate config for the specified mode
83
+ *
84
+ * @throws Error if config is invalid for the mode
85
+ */
86
+ export declare function validateConfigForMode(config: CLIConfig): void;
87
+ /**
88
+ * Add .actp to .gitignore if not already present
89
+ */
90
+ export declare function addToGitignore(projectRoot?: string): void;
91
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,IAAI,EAAE,OAAO,CAAC;IAEd,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAI7B,CAAC;AAMF;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEzE;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,SAAS,CAuCzE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,EACjB,WAAW,GAAE,MAAsB,GAClC,IAAI,CA0BN;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,EAC3B,WAAW,GAAE,MAAsB,GAClC,SAAS,CAKX;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EACtD,GAAG,EAAE,CAAC,EACN,WAAW,GAAE,MAAsB,GAClC,SAAS,CAAC,CAAC,CAAC,CAGd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EACtD,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,WAAW,GAAE,MAAsB,GAClC,IAAI,CAEN;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyB7D;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,GAAE,MAAsB,GAAG,IAAI,CAqBxE"}