@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,117 @@
1
+ /**
2
+ * Provider - Return type of provide() function
3
+ *
4
+ * Provides control and observability for a running service provider.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+
9
+ import { Job } from '../level1/types/Job';
10
+
11
+ /**
12
+ * Provider status
13
+ */
14
+ export type ProviderStatus = 'starting' | 'running' | 'paused' | 'stopped';
15
+
16
+ /**
17
+ * Provider statistics
18
+ */
19
+ export interface ProviderStats {
20
+ jobsCompleted: number;
21
+ jobsFailed: number;
22
+ totalEarned: number;
23
+ averageJobTime: number;
24
+ }
25
+
26
+ /**
27
+ * Provider balance
28
+ */
29
+ export interface ProviderBalance {
30
+ eth: string;
31
+ usdc: string;
32
+ }
33
+
34
+ /**
35
+ * Provider interface
36
+ *
37
+ * Returned by provide() to control the provider lifecycle.
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const provider = provide('echo', async (job) => job.input);
42
+ *
43
+ * // Monitor events
44
+ * provider.on('job:received', (job) => {
45
+ * console.log(`Received job: ${job.id}`);
46
+ * });
47
+ *
48
+ * provider.on('payment:received', (amount) => {
49
+ * console.log(`Earned ${amount} USDC`);
50
+ * });
51
+ *
52
+ * // Control lifecycle
53
+ * provider.pause(); // Stop accepting new jobs
54
+ * provider.resume(); // Resume
55
+ * await provider.stop(); // Graceful shutdown
56
+ *
57
+ * // Check statistics
58
+ * console.log(`Completed: ${provider.stats.jobsCompleted}`);
59
+ * console.log(`Earned: $${provider.stats.totalEarned}`);
60
+ * ```
61
+ */
62
+ export interface Provider {
63
+ /**
64
+ * Current status
65
+ */
66
+ status: ProviderStatus;
67
+
68
+ /**
69
+ * Provider's Ethereum address
70
+ */
71
+ address: string;
72
+
73
+ /**
74
+ * Balance information
75
+ */
76
+ balance: ProviderBalance;
77
+
78
+ /**
79
+ * Pause the provider
80
+ *
81
+ * Stops accepting new jobs but keeps running jobs active.
82
+ */
83
+ pause(): void;
84
+
85
+ /**
86
+ * Resume the provider
87
+ *
88
+ * Resumes accepting new jobs after pause.
89
+ */
90
+ resume(): void;
91
+
92
+ /**
93
+ * Stop the provider
94
+ *
95
+ * Gracefully shuts down, waiting for active jobs to complete.
96
+ */
97
+ stop(): Promise<void>;
98
+
99
+ /**
100
+ * Register event listener
101
+ *
102
+ * Supported events:
103
+ * - 'job:received': (job: Job) => void
104
+ * - 'job:completed': (job: Job, result: any) => void
105
+ * - 'job:failed': (job: Job, error: Error) => void
106
+ * - 'payment:received': (amount: number) => void
107
+ */
108
+ on(event: 'job:received', handler: (job: Job) => void): void;
109
+ on(event: 'job:completed', handler: (job: Job, result: any) => void): void;
110
+ on(event: 'job:failed', handler: (job: Job, error: Error) => void): void;
111
+ on(event: 'payment:received', handler: (amount: number) => void): void;
112
+
113
+ /**
114
+ * Statistics
115
+ */
116
+ stats: ProviderStats;
117
+ }
@@ -0,0 +1,131 @@
1
+ /**
2
+ * ServiceDirectory - Hardcoded provider mapping for MVP
3
+ *
4
+ * In MVP, we use hardcoded service-to-provider mapping.
5
+ * In V2+, this will be replaced by on-chain AgentRegistry queries.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ import { validateServiceName, isValidAddress } from '../utils/security';
11
+
12
+ /**
13
+ * In-memory service directory
14
+ *
15
+ * Maps service names to provider addresses.
16
+ * This is a singleton that can be updated by provide() calls.
17
+ *
18
+ * SECURITY FIXES:
19
+ * - H-5: Address validation to prevent poisoning
20
+ * - H-2: Service name validation
21
+ */
22
+ class ServiceDirectory {
23
+ /**
24
+ * Service -> Provider address mapping
25
+ */
26
+ private directory = new Map<string, Set<string>>();
27
+
28
+ /**
29
+ * Register a provider for a service
30
+ *
31
+ * SECURITY FIX (H-5): Validate address format before registration
32
+ * SECURITY FIX (H-2): Validate service name
33
+ *
34
+ * @param service - Service name
35
+ * @param provider - Provider address
36
+ * @throws Error if service name or provider address is invalid
37
+ */
38
+ register(service: string, provider: string): void {
39
+ // SECURITY FIX (H-2): Validate service name
40
+ const validatedService = validateServiceName(service);
41
+
42
+ // SECURITY FIX (H-5): Validate Ethereum address format
43
+ if (!isValidAddress(provider)) {
44
+ throw new Error(
45
+ `Invalid provider address: "${provider}". Must be a valid Ethereum address (0x followed by 40 hex characters).`
46
+ );
47
+ }
48
+
49
+ if (!this.directory.has(validatedService)) {
50
+ this.directory.set(validatedService, new Set());
51
+ }
52
+
53
+ this.directory.get(validatedService)!.add(provider);
54
+ }
55
+
56
+ /**
57
+ * Unregister a provider from a service
58
+ *
59
+ * SECURITY FIX (H-5): Validate address format
60
+ * SECURITY FIX (H-2): Validate service name
61
+ *
62
+ * @param service - Service name
63
+ * @param provider - Provider address
64
+ */
65
+ unregister(service: string, provider: string): void {
66
+ // SECURITY FIX (H-2): Validate service name
67
+ const validatedService = validateServiceName(service);
68
+
69
+ // SECURITY FIX (H-5): Validate address format
70
+ if (!isValidAddress(provider)) {
71
+ throw new Error(`Invalid provider address: "${provider}"`);
72
+ }
73
+
74
+ const providers = this.directory.get(validatedService);
75
+ if (providers) {
76
+ providers.delete(provider);
77
+ if (providers.size === 0) {
78
+ this.directory.delete(validatedService);
79
+ }
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Find providers for a service
85
+ *
86
+ * SECURITY FIX (H-2): Validate service name
87
+ *
88
+ * @param service - Service name
89
+ * @returns Array of provider addresses
90
+ */
91
+ findProviders(service: string): string[] {
92
+ // SECURITY FIX (H-2): Validate service name
93
+ try {
94
+ const validatedService = validateServiceName(service);
95
+ const providers = this.directory.get(validatedService);
96
+ return providers ? Array.from(providers) : [];
97
+ } catch (error) {
98
+ // If service name is invalid, return empty array instead of throwing
99
+ // This allows graceful degradation in search scenarios
100
+ return [];
101
+ }
102
+ }
103
+
104
+ /**
105
+ * Get all registered services
106
+ *
107
+ * @returns Array of service names
108
+ */
109
+ getServices(): string[] {
110
+ return Array.from(this.directory.keys());
111
+ }
112
+
113
+ /**
114
+ * Clear all registrations
115
+ */
116
+ clear(): void {
117
+ this.directory.clear();
118
+ }
119
+
120
+ /**
121
+ * Get directory size (for debugging)
122
+ */
123
+ get size(): number {
124
+ return this.directory.size;
125
+ }
126
+ }
127
+
128
+ /**
129
+ * Singleton instance
130
+ */
131
+ export const serviceDirectory = new ServiceDirectory();
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Basic API - Simple service provision and requests
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+
7
+ export { provide } from './provide';
8
+ export { request } from './request';
9
+ export { Provider, ProviderStatus, ProviderStats, ProviderBalance } from './Provider';
10
+ export { serviceDirectory } from './ServiceDirectory';
@@ -0,0 +1,131 @@
1
+ /**
2
+ * provide() - Basic API for service providers
3
+ *
4
+ * The simplest way to provide a service on AGIRAILS.
5
+ * Just write a function, and AGIRAILS handles the rest.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ import { Agent } from '../level1/Agent';
11
+ import { JobHandler } from '../level1/types/Job';
12
+ import { ProvideOptions } from '../level1/types/Options';
13
+ import { Provider } from './Provider';
14
+ import { serviceDirectory } from './ServiceDirectory';
15
+
16
+ /**
17
+ * Provide a service
18
+ *
19
+ * This is the simplest way to provide a service on AGIRAILS.
20
+ * You provide a service name and a handler function, and AGIRAILS
21
+ * takes care of wallet management, transactions, and payments.
22
+ *
23
+ * @param service - Service name (e.g., 'translation', 'echo')
24
+ * @param handler - Job handler function
25
+ * @param options - Optional configuration
26
+ * @returns Provider interface for lifecycle control
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // Simplest example
31
+ * provide('echo', async (job) => {
32
+ * return job.input;
33
+ * });
34
+ *
35
+ * // With filtering
36
+ * provide('translation', async (job) => {
37
+ * const { text, from, to } = job.input;
38
+ * return { translated: await translate(text, from, to) };
39
+ * }, {
40
+ * filter: { minBudget: 5 },
41
+ * network: 'testnet'
42
+ * });
43
+ *
44
+ * // With events
45
+ * const provider = provide('image-gen', async (job) => {
46
+ * return { imageUrl: await generateImage(job.input.prompt) };
47
+ * });
48
+ *
49
+ * provider.on('payment:received', (amount) => {
50
+ * console.log(`Earned ${amount} USDC!`);
51
+ * });
52
+ * ```
53
+ */
54
+ export function provide(
55
+ service: string,
56
+ handler: JobHandler,
57
+ options?: ProvideOptions
58
+ ): Provider {
59
+ // Create an Agent instance under the hood
60
+ const agent = new Agent({
61
+ name: `Provider:${service}`,
62
+ description: `Auto-generated provider for ${service}`,
63
+ network: options?.network || 'mock',
64
+ wallet: options?.wallet,
65
+ stateDirectory: options?.stateDirectory,
66
+ rpcUrl: options?.rpcUrl,
67
+ behavior: {
68
+ autoAccept: options?.autoAccept ?? true,
69
+ },
70
+ });
71
+
72
+ // Register the service with filter options
73
+ agent.provide(
74
+ {
75
+ name: service,
76
+ filter: options?.filter,
77
+ },
78
+ handler
79
+ );
80
+
81
+ // Start the agent immediately (async)
82
+ agent.start().then(() => {
83
+ // Register in service directory after agent has started and has an address
84
+ serviceDirectory.register(service, agent.address);
85
+ }).catch((error) => {
86
+ console.error(`Failed to start provider for ${service}:`, error);
87
+ });
88
+
89
+ // Return Provider interface (adapter over Agent)
90
+ const provider: Provider = {
91
+ get status() {
92
+ return agent.status as any;
93
+ },
94
+
95
+ get address() {
96
+ return agent.address;
97
+ },
98
+
99
+ get balance() {
100
+ return agent.balance;
101
+ },
102
+
103
+ pause() {
104
+ agent.pause();
105
+ },
106
+
107
+ resume() {
108
+ agent.resume();
109
+ },
110
+
111
+ async stop() {
112
+ await agent.stop();
113
+ serviceDirectory.unregister(service, agent.address);
114
+ },
115
+
116
+ on(event: any, handler: any) {
117
+ agent.on(event, handler);
118
+ },
119
+
120
+ get stats() {
121
+ return {
122
+ jobsCompleted: agent.stats.jobsCompleted,
123
+ jobsFailed: agent.stats.jobsFailed,
124
+ totalEarned: agent.stats.totalEarned,
125
+ averageJobTime: agent.stats.averageJobTime,
126
+ };
127
+ },
128
+ };
129
+
130
+ return provider;
131
+ }