@agirails/sdk 2.0.0 → 2.0.1-beta

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/README.md +108 -116
  2. package/dist/ACTPClient.d.ts +33 -456
  3. package/dist/ACTPClient.d.ts.map +1 -1
  4. package/dist/ACTPClient.js +93 -477
  5. package/dist/ACTPClient.js.map +1 -1
  6. package/dist/abi/EscrowVault.json +38 -106
  7. package/dist/builders/DeliveryProofBuilder.d.ts +1 -60
  8. package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
  9. package/dist/builders/DeliveryProofBuilder.js +5 -81
  10. package/dist/builders/DeliveryProofBuilder.js.map +1 -1
  11. package/dist/builders/QuoteBuilder.d.ts +0 -101
  12. package/dist/builders/QuoteBuilder.d.ts.map +1 -1
  13. package/dist/builders/QuoteBuilder.js +3 -120
  14. package/dist/builders/QuoteBuilder.js.map +1 -1
  15. package/dist/builders/index.d.ts +0 -4
  16. package/dist/builders/index.d.ts.map +1 -1
  17. package/dist/builders/index.js +0 -4
  18. package/dist/builders/index.js.map +1 -1
  19. package/dist/config/networks.d.ts +0 -28
  20. package/dist/config/networks.d.ts.map +1 -1
  21. package/dist/config/networks.js +12 -60
  22. package/dist/config/networks.js.map +1 -1
  23. package/dist/errors/index.d.ts +2 -165
  24. package/dist/errors/index.d.ts.map +1 -1
  25. package/dist/errors/index.js +2 -260
  26. package/dist/errors/index.js.map +1 -1
  27. package/dist/index.d.ts +13 -61
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +36 -141
  30. package/dist/index.js.map +1 -1
  31. package/dist/protocol/ACTPKernel.d.ts +2 -229
  32. package/dist/protocol/ACTPKernel.d.ts.map +1 -1
  33. package/dist/protocol/ACTPKernel.js +33 -367
  34. package/dist/protocol/ACTPKernel.js.map +1 -1
  35. package/dist/protocol/EASHelper.d.ts +2 -57
  36. package/dist/protocol/EASHelper.d.ts.map +1 -1
  37. package/dist/protocol/EASHelper.js +37 -230
  38. package/dist/protocol/EASHelper.js.map +1 -1
  39. package/dist/protocol/EscrowVault.d.ts +2 -93
  40. package/dist/protocol/EscrowVault.d.ts.map +1 -1
  41. package/dist/protocol/EscrowVault.js +33 -122
  42. package/dist/protocol/EscrowVault.js.map +1 -1
  43. package/dist/protocol/EventMonitor.d.ts +1 -45
  44. package/dist/protocol/EventMonitor.d.ts.map +1 -1
  45. package/dist/protocol/EventMonitor.js +8 -64
  46. package/dist/protocol/EventMonitor.js.map +1 -1
  47. package/dist/protocol/MessageSigner.d.ts +2 -116
  48. package/dist/protocol/MessageSigner.d.ts.map +1 -1
  49. package/dist/protocol/MessageSigner.js +9 -215
  50. package/dist/protocol/MessageSigner.js.map +1 -1
  51. package/dist/protocol/ProofGenerator.d.ts +0 -93
  52. package/dist/protocol/ProofGenerator.d.ts.map +1 -1
  53. package/dist/protocol/ProofGenerator.js +9 -194
  54. package/dist/protocol/ProofGenerator.js.map +1 -1
  55. package/dist/protocol/QuoteBuilder.d.ts +0 -8
  56. package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
  57. package/dist/protocol/QuoteBuilder.js +0 -8
  58. package/dist/protocol/QuoteBuilder.js.map +1 -1
  59. package/dist/types/eip712.d.ts +0 -34
  60. package/dist/types/eip712.d.ts.map +1 -1
  61. package/dist/types/eip712.js +5 -31
  62. package/dist/types/eip712.js.map +1 -1
  63. package/dist/types/escrow.d.ts +10 -17
  64. package/dist/types/escrow.d.ts.map +1 -1
  65. package/dist/types/index.d.ts +0 -5
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/index.js +0 -8
  68. package/dist/types/index.js.map +1 -1
  69. package/dist/types/message.d.ts +0 -32
  70. package/dist/types/message.d.ts.map +1 -1
  71. package/dist/types/message.js +0 -4
  72. package/dist/types/message.js.map +1 -1
  73. package/dist/types/state.d.ts +0 -28
  74. package/dist/types/state.d.ts.map +1 -1
  75. package/dist/types/state.js +6 -37
  76. package/dist/types/state.js.map +1 -1
  77. package/dist/types/transaction.d.ts +0 -17
  78. package/dist/types/transaction.d.ts.map +1 -1
  79. package/dist/utils/IPFSClient.d.ts +0 -113
  80. package/dist/utils/IPFSClient.d.ts.map +1 -1
  81. package/dist/utils/IPFSClient.js +7 -128
  82. package/dist/utils/IPFSClient.js.map +1 -1
  83. package/dist/utils/NonceManager.d.ts +1 -234
  84. package/dist/utils/NonceManager.d.ts.map +1 -1
  85. package/dist/utils/NonceManager.js +7 -372
  86. package/dist/utils/NonceManager.js.map +1 -1
  87. package/dist/utils/ReceivedNonceTracker.d.ts +0 -175
  88. package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
  89. package/dist/utils/ReceivedNonceTracker.js +5 -261
  90. package/dist/utils/ReceivedNonceTracker.js.map +1 -1
  91. package/dist/utils/canonicalJson.d.ts +0 -22
  92. package/dist/utils/canonicalJson.d.ts.map +1 -1
  93. package/dist/utils/canonicalJson.js +3 -26
  94. package/dist/utils/canonicalJson.js.map +1 -1
  95. package/dist/utils/computeTypeHash.d.ts +0 -14
  96. package/dist/utils/computeTypeHash.d.ts.map +1 -1
  97. package/dist/utils/computeTypeHash.js +2 -19
  98. package/dist/utils/computeTypeHash.js.map +1 -1
  99. package/dist/utils/validation.d.ts +0 -40
  100. package/dist/utils/validation.d.ts.map +1 -1
  101. package/dist/utils/validation.js +7 -184
  102. package/dist/utils/validation.js.map +1 -1
  103. package/package.json +37 -54
  104. package/src/ACTPClient.ts +178 -692
  105. package/src/__tests__/ProofGenerator.test.ts +124 -0
  106. package/src/__tests__/QuoteBuilder.test.ts +516 -0
  107. package/src/__tests__/StateMachine.test.ts +82 -0
  108. package/src/__tests__/builders/DeliveryProofBuilder.test.ts +581 -0
  109. package/src/__tests__/integration/ACTPClient.test.ts +263 -0
  110. package/src/__tests__/integration.test.ts +289 -0
  111. package/src/__tests__/protocol/EASHelper.test.ts +472 -0
  112. package/src/__tests__/protocol/EventMonitor.test.ts +382 -0
  113. package/src/__tests__/security/ACTPKernel.security.test.ts +1167 -0
  114. package/src/__tests__/security/EscrowVault.security.test.ts +570 -0
  115. package/src/__tests__/security/MessageSigner.security.test.ts +286 -0
  116. package/src/__tests__/security/NonceReplay.security.test.ts +501 -0
  117. package/src/__tests__/security/validation.security.test.ts +376 -0
  118. package/src/__tests__/utils/IPFSClient.test.ts +262 -0
  119. package/src/__tests__/utils/NonceManager.test.ts +205 -0
  120. package/src/__tests__/utils/canonicalJson.test.ts +153 -0
  121. package/src/abi/EscrowVault.json +38 -106
  122. package/src/builders/DeliveryProofBuilder.ts +2 -3
  123. package/src/config/networks.ts +9 -32
  124. package/src/errors/index.ts +1 -298
  125. package/src/index.ts +71 -207
  126. package/src/protocol/ACTPKernel.ts +23 -175
  127. package/src/protocol/EASHelper.ts +46 -230
  128. package/src/protocol/EscrowVault.ts +50 -68
  129. package/src/protocol/EventMonitor.ts +15 -44
  130. package/src/protocol/MessageSigner.ts +13 -193
  131. package/src/protocol/ProofGenerator.ts +4 -223
  132. package/src/types/escrow.ts +11 -12
  133. package/src/types/index.ts +1 -5
  134. package/src/types/state.ts +3 -12
  135. package/src/types/transaction.ts +1 -4
  136. package/src/utils/IPFSClient.ts +5 -122
  137. package/src/utils/NonceManager.ts +8 -305
  138. package/src/utils/ReceivedNonceTracker.ts +0 -170
  139. package/src/utils/validation.ts +0 -164
  140. package/LICENSE +0 -190
  141. package/bin/actp +0 -10
  142. package/dist/abi/AgentRegistry.json +0 -782
  143. package/dist/abi/IdentityRegistry.json +0 -316
  144. package/dist/adapters/BaseAdapter.d.ts +0 -231
  145. package/dist/adapters/BaseAdapter.d.ts.map +0 -1
  146. package/dist/adapters/BaseAdapter.js +0 -393
  147. package/dist/adapters/BaseAdapter.js.map +0 -1
  148. package/dist/adapters/BeginnerAdapter.d.ts +0 -152
  149. package/dist/adapters/BeginnerAdapter.d.ts.map +0 -1
  150. package/dist/adapters/BeginnerAdapter.js +0 -168
  151. package/dist/adapters/BeginnerAdapter.js.map +0 -1
  152. package/dist/adapters/IntermediateAdapter.d.ts +0 -211
  153. package/dist/adapters/IntermediateAdapter.d.ts.map +0 -1
  154. package/dist/adapters/IntermediateAdapter.js +0 -260
  155. package/dist/adapters/IntermediateAdapter.js.map +0 -1
  156. package/dist/adapters/index.d.ts +0 -15
  157. package/dist/adapters/index.d.ts.map +0 -1
  158. package/dist/adapters/index.js +0 -26
  159. package/dist/adapters/index.js.map +0 -1
  160. package/dist/cli/commands/balance.d.ts +0 -13
  161. package/dist/cli/commands/balance.d.ts.map +0 -1
  162. package/dist/cli/commands/balance.js +0 -89
  163. package/dist/cli/commands/balance.js.map +0 -1
  164. package/dist/cli/commands/batch.d.ts +0 -24
  165. package/dist/cli/commands/batch.d.ts.map +0 -1
  166. package/dist/cli/commands/batch.js +0 -424
  167. package/dist/cli/commands/batch.js.map +0 -1
  168. package/dist/cli/commands/config.d.ts +0 -13
  169. package/dist/cli/commands/config.d.ts.map +0 -1
  170. package/dist/cli/commands/config.js +0 -192
  171. package/dist/cli/commands/config.js.map +0 -1
  172. package/dist/cli/commands/init.d.ts +0 -19
  173. package/dist/cli/commands/init.d.ts.map +0 -1
  174. package/dist/cli/commands/init.js +0 -143
  175. package/dist/cli/commands/init.js.map +0 -1
  176. package/dist/cli/commands/mint.d.ts +0 -13
  177. package/dist/cli/commands/mint.d.ts.map +0 -1
  178. package/dist/cli/commands/mint.js +0 -91
  179. package/dist/cli/commands/mint.js.map +0 -1
  180. package/dist/cli/commands/pay.d.ts +0 -18
  181. package/dist/cli/commands/pay.d.ts.map +0 -1
  182. package/dist/cli/commands/pay.js +0 -87
  183. package/dist/cli/commands/pay.js.map +0 -1
  184. package/dist/cli/commands/simulate.d.ts +0 -32
  185. package/dist/cli/commands/simulate.d.ts.map +0 -1
  186. package/dist/cli/commands/simulate.js +0 -290
  187. package/dist/cli/commands/simulate.js.map +0 -1
  188. package/dist/cli/commands/time.d.ts +0 -29
  189. package/dist/cli/commands/time.d.ts.map +0 -1
  190. package/dist/cli/commands/time.js +0 -252
  191. package/dist/cli/commands/time.js.map +0 -1
  192. package/dist/cli/commands/tx.d.ts +0 -16
  193. package/dist/cli/commands/tx.d.ts.map +0 -1
  194. package/dist/cli/commands/tx.js +0 -379
  195. package/dist/cli/commands/tx.js.map +0 -1
  196. package/dist/cli/commands/watch.d.ts +0 -20
  197. package/dist/cli/commands/watch.d.ts.map +0 -1
  198. package/dist/cli/commands/watch.js +0 -160
  199. package/dist/cli/commands/watch.js.map +0 -1
  200. package/dist/cli/index.d.ts +0 -17
  201. package/dist/cli/index.d.ts.map +0 -1
  202. package/dist/cli/index.js +0 -104
  203. package/dist/cli/index.js.map +0 -1
  204. package/dist/cli/utils/client.d.ts +0 -70
  205. package/dist/cli/utils/client.d.ts.map +0 -1
  206. package/dist/cli/utils/client.js +0 -240
  207. package/dist/cli/utils/client.js.map +0 -1
  208. package/dist/cli/utils/config.d.ts +0 -91
  209. package/dist/cli/utils/config.d.ts.map +0 -1
  210. package/dist/cli/utils/config.js +0 -240
  211. package/dist/cli/utils/config.js.map +0 -1
  212. package/dist/cli/utils/output.d.ts +0 -174
  213. package/dist/cli/utils/output.d.ts.map +0 -1
  214. package/dist/cli/utils/output.js +0 -380
  215. package/dist/cli/utils/output.js.map +0 -1
  216. package/dist/level0/Provider.d.ts +0 -106
  217. package/dist/level0/Provider.d.ts.map +0 -1
  218. package/dist/level0/Provider.js +0 -10
  219. package/dist/level0/Provider.js.map +0 -1
  220. package/dist/level0/ServiceDirectory.d.ts +0 -74
  221. package/dist/level0/ServiceDirectory.d.ts.map +0 -1
  222. package/dist/level0/ServiceDirectory.js +0 -122
  223. package/dist/level0/ServiceDirectory.js.map +0 -1
  224. package/dist/level0/index.d.ts +0 -10
  225. package/dist/level0/index.d.ts.map +0 -1
  226. package/dist/level0/index.js +0 -15
  227. package/dist/level0/index.js.map +0 -1
  228. package/dist/level0/provide.d.ts +0 -51
  229. package/dist/level0/provide.d.ts.map +0 -1
  230. package/dist/level0/provide.js +0 -113
  231. package/dist/level0/provide.js.map +0 -1
  232. package/dist/level0/request.d.ts +0 -53
  233. package/dist/level0/request.d.ts.map +0 -1
  234. package/dist/level0/request.js +0 -462
  235. package/dist/level0/request.js.map +0 -1
  236. package/dist/level1/Agent.d.ts +0 -472
  237. package/dist/level1/Agent.d.ts.map +0 -1
  238. package/dist/level1/Agent.js +0 -1091
  239. package/dist/level1/Agent.js.map +0 -1
  240. package/dist/level1/index.d.ts +0 -10
  241. package/dist/level1/index.d.ts.map +0 -1
  242. package/dist/level1/index.js +0 -30
  243. package/dist/level1/index.js.map +0 -1
  244. package/dist/level1/pricing/PriceCalculator.d.ts +0 -62
  245. package/dist/level1/pricing/PriceCalculator.d.ts.map +0 -1
  246. package/dist/level1/pricing/PriceCalculator.js +0 -237
  247. package/dist/level1/pricing/PriceCalculator.js.map +0 -1
  248. package/dist/level1/pricing/PricingStrategy.d.ts +0 -179
  249. package/dist/level1/pricing/PricingStrategy.d.ts.map +0 -1
  250. package/dist/level1/pricing/PricingStrategy.js +0 -11
  251. package/dist/level1/pricing/PricingStrategy.js.map +0 -1
  252. package/dist/level1/types/Job.d.ts +0 -166
  253. package/dist/level1/types/Job.d.ts.map +0 -1
  254. package/dist/level1/types/Job.js +0 -11
  255. package/dist/level1/types/Job.js.map +0 -1
  256. package/dist/level1/types/Options.d.ts +0 -258
  257. package/dist/level1/types/Options.d.ts.map +0 -1
  258. package/dist/level1/types/Options.js +0 -8
  259. package/dist/level1/types/Options.js.map +0 -1
  260. package/dist/level1/types/index.d.ts +0 -8
  261. package/dist/level1/types/index.d.ts.map +0 -1
  262. package/dist/level1/types/index.js +0 -8
  263. package/dist/level1/types/index.js.map +0 -1
  264. package/dist/protocol/AgentRegistry.d.ts +0 -177
  265. package/dist/protocol/AgentRegistry.d.ts.map +0 -1
  266. package/dist/protocol/AgentRegistry.js +0 -449
  267. package/dist/protocol/AgentRegistry.js.map +0 -1
  268. package/dist/protocol/DIDManager.d.ts +0 -289
  269. package/dist/protocol/DIDManager.d.ts.map +0 -1
  270. package/dist/protocol/DIDManager.js +0 -481
  271. package/dist/protocol/DIDManager.js.map +0 -1
  272. package/dist/protocol/DIDResolver.d.ts +0 -236
  273. package/dist/protocol/DIDResolver.d.ts.map +0 -1
  274. package/dist/protocol/DIDResolver.js +0 -495
  275. package/dist/protocol/DIDResolver.js.map +0 -1
  276. package/dist/runtime/BlockchainRuntime.d.ts +0 -360
  277. package/dist/runtime/BlockchainRuntime.d.ts.map +0 -1
  278. package/dist/runtime/BlockchainRuntime.js +0 -767
  279. package/dist/runtime/BlockchainRuntime.js.map +0 -1
  280. package/dist/runtime/IACTPRuntime.d.ts +0 -271
  281. package/dist/runtime/IACTPRuntime.d.ts.map +0 -1
  282. package/dist/runtime/IACTPRuntime.js +0 -15
  283. package/dist/runtime/IACTPRuntime.js.map +0 -1
  284. package/dist/runtime/MockRuntime.d.ts +0 -445
  285. package/dist/runtime/MockRuntime.d.ts.map +0 -1
  286. package/dist/runtime/MockRuntime.js +0 -1065
  287. package/dist/runtime/MockRuntime.js.map +0 -1
  288. package/dist/runtime/MockStateManager.d.ts +0 -233
  289. package/dist/runtime/MockStateManager.d.ts.map +0 -1
  290. package/dist/runtime/MockStateManager.js +0 -533
  291. package/dist/runtime/MockStateManager.js.map +0 -1
  292. package/dist/runtime/index.d.ts +0 -14
  293. package/dist/runtime/index.d.ts.map +0 -1
  294. package/dist/runtime/index.js +0 -42
  295. package/dist/runtime/index.js.map +0 -1
  296. package/dist/runtime/types/MockState.d.ts +0 -167
  297. package/dist/runtime/types/MockState.d.ts.map +0 -1
  298. package/dist/runtime/types/MockState.js +0 -43
  299. package/dist/runtime/types/MockState.js.map +0 -1
  300. package/dist/types/agent.d.ts +0 -76
  301. package/dist/types/agent.d.ts.map +0 -1
  302. package/dist/types/agent.js +0 -8
  303. package/dist/types/agent.js.map +0 -1
  304. package/dist/types/did.d.ts +0 -192
  305. package/dist/types/did.d.ts.map +0 -1
  306. package/dist/types/did.js +0 -38
  307. package/dist/types/did.js.map +0 -1
  308. package/dist/utils/ErrorRecoveryGuide.d.ts +0 -125
  309. package/dist/utils/ErrorRecoveryGuide.d.ts.map +0 -1
  310. package/dist/utils/ErrorRecoveryGuide.js +0 -579
  311. package/dist/utils/ErrorRecoveryGuide.js.map +0 -1
  312. package/dist/utils/Helpers.d.ts +0 -453
  313. package/dist/utils/Helpers.d.ts.map +0 -1
  314. package/dist/utils/Helpers.js +0 -623
  315. package/dist/utils/Helpers.js.map +0 -1
  316. package/dist/utils/Logger.d.ts +0 -195
  317. package/dist/utils/Logger.d.ts.map +0 -1
  318. package/dist/utils/Logger.js +0 -382
  319. package/dist/utils/Logger.js.map +0 -1
  320. package/dist/utils/RateLimiter.d.ts +0 -253
  321. package/dist/utils/RateLimiter.d.ts.map +0 -1
  322. package/dist/utils/RateLimiter.js +0 -424
  323. package/dist/utils/RateLimiter.js.map +0 -1
  324. package/dist/utils/SDKLifecycle.d.ts +0 -156
  325. package/dist/utils/SDKLifecycle.d.ts.map +0 -1
  326. package/dist/utils/SDKLifecycle.js +0 -347
  327. package/dist/utils/SDKLifecycle.js.map +0 -1
  328. package/dist/utils/SecureNonce.d.ts +0 -57
  329. package/dist/utils/SecureNonce.d.ts.map +0 -1
  330. package/dist/utils/SecureNonce.js +0 -80
  331. package/dist/utils/SecureNonce.js.map +0 -1
  332. package/dist/utils/Semaphore.d.ts +0 -123
  333. package/dist/utils/Semaphore.d.ts.map +0 -1
  334. package/dist/utils/Semaphore.js +0 -247
  335. package/dist/utils/Semaphore.js.map +0 -1
  336. package/dist/utils/UsedAttestationTracker.d.ts +0 -167
  337. package/dist/utils/UsedAttestationTracker.d.ts.map +0 -1
  338. package/dist/utils/UsedAttestationTracker.js +0 -309
  339. package/dist/utils/UsedAttestationTracker.js.map +0 -1
  340. package/dist/utils/fsSafe.d.ts +0 -14
  341. package/dist/utils/fsSafe.d.ts.map +0 -1
  342. package/dist/utils/fsSafe.js +0 -89
  343. package/dist/utils/fsSafe.js.map +0 -1
  344. package/dist/utils/index.d.ts +0 -15
  345. package/dist/utils/index.d.ts.map +0 -1
  346. package/dist/utils/index.js +0 -51
  347. package/dist/utils/index.js.map +0 -1
  348. package/dist/utils/security.d.ts +0 -147
  349. package/dist/utils/security.d.ts.map +0 -1
  350. package/dist/utils/security.js +0 -391
  351. package/dist/utils/security.js.map +0 -1
  352. package/src/abi/AgentRegistry.json +0 -782
  353. package/src/abi/IdentityRegistry.json +0 -316
  354. package/src/adapters/BaseAdapter.ts +0 -473
  355. package/src/adapters/BeginnerAdapter.ts +0 -232
  356. package/src/adapters/IntermediateAdapter.ts +0 -316
  357. package/src/adapters/index.ts +0 -25
  358. package/src/cli/commands/balance.ts +0 -110
  359. package/src/cli/commands/batch.ts +0 -487
  360. package/src/cli/commands/config.ts +0 -231
  361. package/src/cli/commands/init.ts +0 -161
  362. package/src/cli/commands/mint.ts +0 -116
  363. package/src/cli/commands/pay.ts +0 -113
  364. package/src/cli/commands/simulate.ts +0 -345
  365. package/src/cli/commands/time.ts +0 -303
  366. package/src/cli/commands/tx.ts +0 -448
  367. package/src/cli/commands/watch.ts +0 -211
  368. package/src/cli/index.ts +0 -116
  369. package/src/cli/utils/client.ts +0 -249
  370. package/src/cli/utils/config.ts +0 -282
  371. package/src/cli/utils/output.ts +0 -465
  372. package/src/level0/Provider.ts +0 -117
  373. package/src/level0/ServiceDirectory.ts +0 -131
  374. package/src/level0/index.ts +0 -10
  375. package/src/level0/provide.ts +0 -131
  376. package/src/level0/request.ts +0 -494
  377. package/src/level1/Agent.ts +0 -1432
  378. package/src/level1/index.ts +0 -10
  379. package/src/level1/pricing/PriceCalculator.ts +0 -255
  380. package/src/level1/pricing/PricingStrategy.ts +0 -198
  381. package/src/level1/types/Job.ts +0 -179
  382. package/src/level1/types/Options.ts +0 -291
  383. package/src/level1/types/index.ts +0 -8
  384. package/src/protocol/AgentRegistry.ts +0 -559
  385. package/src/protocol/DIDManager.ts +0 -629
  386. package/src/protocol/DIDResolver.ts +0 -554
  387. package/src/runtime/BlockchainRuntime.ts +0 -993
  388. package/src/runtime/IACTPRuntime.ts +0 -284
  389. package/src/runtime/MockRuntime.ts +0 -1244
  390. package/src/runtime/MockStateManager.ts +0 -576
  391. package/src/runtime/index.ts +0 -25
  392. package/src/runtime/types/MockState.ts +0 -227
  393. package/src/types/agent.ts +0 -79
  394. package/src/types/did.ts +0 -223
  395. package/src/utils/ErrorRecoveryGuide.ts +0 -675
  396. package/src/utils/Helpers.ts +0 -688
  397. package/src/utils/Logger.ts +0 -484
  398. package/src/utils/RateLimiter.ts +0 -534
  399. package/src/utils/SDKLifecycle.ts +0 -416
  400. package/src/utils/SecureNonce.ts +0 -78
  401. package/src/utils/Semaphore.ts +0 -276
  402. package/src/utils/UsedAttestationTracker.ts +0 -387
  403. package/src/utils/fsSafe.ts +0 -75
  404. package/src/utils/index.ts +0 -80
  405. package/src/utils/security.ts +0 -418
@@ -1,122 +0,0 @@
1
- "use strict";
2
- /**
3
- * ServiceDirectory - Hardcoded provider mapping for MVP
4
- *
5
- * In MVP, we use hardcoded service-to-provider mapping.
6
- * In V2+, this will be replaced by on-chain AgentRegistry queries.
7
- *
8
- * @packageDocumentation
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.serviceDirectory = void 0;
12
- const security_1 = require("../utils/security");
13
- /**
14
- * In-memory service directory
15
- *
16
- * Maps service names to provider addresses.
17
- * This is a singleton that can be updated by provide() calls.
18
- *
19
- * SECURITY FIXES:
20
- * - H-5: Address validation to prevent poisoning
21
- * - H-2: Service name validation
22
- */
23
- class ServiceDirectory {
24
- constructor() {
25
- /**
26
- * Service -> Provider address mapping
27
- */
28
- this.directory = new Map();
29
- }
30
- /**
31
- * Register a provider for a service
32
- *
33
- * SECURITY FIX (H-5): Validate address format before registration
34
- * SECURITY FIX (H-2): Validate service name
35
- *
36
- * @param service - Service name
37
- * @param provider - Provider address
38
- * @throws Error if service name or provider address is invalid
39
- */
40
- register(service, provider) {
41
- // SECURITY FIX (H-2): Validate service name
42
- const validatedService = (0, security_1.validateServiceName)(service);
43
- // SECURITY FIX (H-5): Validate Ethereum address format
44
- if (!(0, security_1.isValidAddress)(provider)) {
45
- throw new Error(`Invalid provider address: "${provider}". Must be a valid Ethereum address (0x followed by 40 hex characters).`);
46
- }
47
- if (!this.directory.has(validatedService)) {
48
- this.directory.set(validatedService, new Set());
49
- }
50
- this.directory.get(validatedService).add(provider);
51
- }
52
- /**
53
- * Unregister a provider from a service
54
- *
55
- * SECURITY FIX (H-5): Validate address format
56
- * SECURITY FIX (H-2): Validate service name
57
- *
58
- * @param service - Service name
59
- * @param provider - Provider address
60
- */
61
- unregister(service, provider) {
62
- // SECURITY FIX (H-2): Validate service name
63
- const validatedService = (0, security_1.validateServiceName)(service);
64
- // SECURITY FIX (H-5): Validate address format
65
- if (!(0, security_1.isValidAddress)(provider)) {
66
- throw new Error(`Invalid provider address: "${provider}"`);
67
- }
68
- const providers = this.directory.get(validatedService);
69
- if (providers) {
70
- providers.delete(provider);
71
- if (providers.size === 0) {
72
- this.directory.delete(validatedService);
73
- }
74
- }
75
- }
76
- /**
77
- * Find providers for a service
78
- *
79
- * SECURITY FIX (H-2): Validate service name
80
- *
81
- * @param service - Service name
82
- * @returns Array of provider addresses
83
- */
84
- findProviders(service) {
85
- // SECURITY FIX (H-2): Validate service name
86
- try {
87
- const validatedService = (0, security_1.validateServiceName)(service);
88
- const providers = this.directory.get(validatedService);
89
- return providers ? Array.from(providers) : [];
90
- }
91
- catch (error) {
92
- // If service name is invalid, return empty array instead of throwing
93
- // This allows graceful degradation in search scenarios
94
- return [];
95
- }
96
- }
97
- /**
98
- * Get all registered services
99
- *
100
- * @returns Array of service names
101
- */
102
- getServices() {
103
- return Array.from(this.directory.keys());
104
- }
105
- /**
106
- * Clear all registrations
107
- */
108
- clear() {
109
- this.directory.clear();
110
- }
111
- /**
112
- * Get directory size (for debugging)
113
- */
114
- get size() {
115
- return this.directory.size;
116
- }
117
- }
118
- /**
119
- * Singleton instance
120
- */
121
- exports.serviceDirectory = new ServiceDirectory();
122
- //# sourceMappingURL=ServiceDirectory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceDirectory.js","sourceRoot":"","sources":["../../src/level0/ServiceDirectory.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,gDAAwE;AAExE;;;;;;;;;GASG;AACH,MAAM,gBAAgB;IAAtB;QACE;;WAEG;QACK,cAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IAoGrD,CAAC;IAlGC;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAe,EAAE,QAAgB;QACxC,4CAA4C;QAC5C,MAAM,gBAAgB,GAAG,IAAA,8BAAmB,EAAC,OAAO,CAAC,CAAC;QAEtD,uDAAuD;QACvD,IAAI,CAAC,IAAA,yBAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,yEAAyE,CAChH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAe,EAAE,QAAgB;QAC1C,4CAA4C;QAC5C,MAAM,gBAAgB,GAAG,IAAA,8BAAmB,EAAC,OAAO,CAAC,CAAC;QAEtD,8CAA8C;QAC9C,IAAI,CAAC,IAAA,yBAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,GAAG,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,OAAe;QAC3B,4CAA4C;QAC5C,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAA,8BAAmB,EAAC,OAAO,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACvD,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,uDAAuD;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACU,QAAA,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Basic API - Simple service provision and requests
3
- *
4
- * @packageDocumentation
5
- */
6
- export { provide } from './provide';
7
- export { request } from './request';
8
- export { Provider, ProviderStatus, ProviderStats, ProviderBalance } from './Provider';
9
- export { serviceDirectory } from './ServiceDirectory';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/level0/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- /**
3
- * Basic API - Simple service provision and requests
4
- *
5
- * @packageDocumentation
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.serviceDirectory = exports.request = exports.provide = void 0;
9
- var provide_1 = require("./provide");
10
- Object.defineProperty(exports, "provide", { enumerable: true, get: function () { return provide_1.provide; } });
11
- var request_1 = require("./request");
12
- Object.defineProperty(exports, "request", { enumerable: true, get: function () { return request_1.request; } });
13
- var ServiceDirectory_1 = require("./ServiceDirectory");
14
- Object.defineProperty(exports, "serviceDirectory", { enumerable: true, get: function () { return ServiceDirectory_1.serviceDirectory; } });
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/level0/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA"}
@@ -1,51 +0,0 @@
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
- import { JobHandler } from '../level1/types/Job';
10
- import { ProvideOptions } from '../level1/types/Options';
11
- import { Provider } from './Provider';
12
- /**
13
- * Provide a service
14
- *
15
- * This is the simplest way to provide a service on AGIRAILS.
16
- * You provide a service name and a handler function, and AGIRAILS
17
- * takes care of wallet management, transactions, and payments.
18
- *
19
- * @param service - Service name (e.g., 'translation', 'echo')
20
- * @param handler - Job handler function
21
- * @param options - Optional configuration
22
- * @returns Provider interface for lifecycle control
23
- *
24
- * @example
25
- * ```typescript
26
- * // Simplest example
27
- * provide('echo', async (job) => {
28
- * return job.input;
29
- * });
30
- *
31
- * // With filtering
32
- * provide('translation', async (job) => {
33
- * const { text, from, to } = job.input;
34
- * return { translated: await translate(text, from, to) };
35
- * }, {
36
- * filter: { minBudget: 5 },
37
- * network: 'testnet'
38
- * });
39
- *
40
- * // With events
41
- * const provider = provide('image-gen', async (job) => {
42
- * return { imageUrl: await generateImage(job.input.prompt) };
43
- * });
44
- *
45
- * provider.on('payment:received', (amount) => {
46
- * console.log(`Earned ${amount} USDC!`);
47
- * });
48
- * ```
49
- */
50
- export declare function provide(service: string, handler: JobHandler, options?: ProvideOptions): Provider;
51
- //# sourceMappingURL=provide.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provide.d.ts","sourceRoot":"","sources":["../../src/level0/provide.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,cAAc,GACvB,QAAQ,CAyEV"}
@@ -1,113 +0,0 @@
1
- "use strict";
2
- /**
3
- * provide() - Basic API for service providers
4
- *
5
- * The simplest way to provide a service on AGIRAILS.
6
- * Just write a function, and AGIRAILS handles the rest.
7
- *
8
- * @packageDocumentation
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.provide = void 0;
12
- const Agent_1 = require("../level1/Agent");
13
- const ServiceDirectory_1 = require("./ServiceDirectory");
14
- /**
15
- * Provide a service
16
- *
17
- * This is the simplest way to provide a service on AGIRAILS.
18
- * You provide a service name and a handler function, and AGIRAILS
19
- * takes care of wallet management, transactions, and payments.
20
- *
21
- * @param service - Service name (e.g., 'translation', 'echo')
22
- * @param handler - Job handler function
23
- * @param options - Optional configuration
24
- * @returns Provider interface for lifecycle control
25
- *
26
- * @example
27
- * ```typescript
28
- * // Simplest example
29
- * provide('echo', async (job) => {
30
- * return job.input;
31
- * });
32
- *
33
- * // With filtering
34
- * provide('translation', async (job) => {
35
- * const { text, from, to } = job.input;
36
- * return { translated: await translate(text, from, to) };
37
- * }, {
38
- * filter: { minBudget: 5 },
39
- * network: 'testnet'
40
- * });
41
- *
42
- * // With events
43
- * const provider = provide('image-gen', async (job) => {
44
- * return { imageUrl: await generateImage(job.input.prompt) };
45
- * });
46
- *
47
- * provider.on('payment:received', (amount) => {
48
- * console.log(`Earned ${amount} USDC!`);
49
- * });
50
- * ```
51
- */
52
- function provide(service, handler, options) {
53
- // Create an Agent instance under the hood
54
- const agent = new Agent_1.Agent({
55
- name: `Provider:${service}`,
56
- description: `Auto-generated provider for ${service}`,
57
- network: options?.network || 'mock',
58
- wallet: options?.wallet,
59
- stateDirectory: options?.stateDirectory,
60
- rpcUrl: options?.rpcUrl,
61
- behavior: {
62
- autoAccept: options?.autoAccept ?? true,
63
- },
64
- });
65
- // Register the service with filter options
66
- agent.provide({
67
- name: service,
68
- filter: options?.filter,
69
- }, handler);
70
- // Start the agent immediately (async)
71
- agent.start().then(() => {
72
- // Register in service directory after agent has started and has an address
73
- ServiceDirectory_1.serviceDirectory.register(service, agent.address);
74
- }).catch((error) => {
75
- console.error(`Failed to start provider for ${service}:`, error);
76
- });
77
- // Return Provider interface (adapter over Agent)
78
- const provider = {
79
- get status() {
80
- return agent.status;
81
- },
82
- get address() {
83
- return agent.address;
84
- },
85
- get balance() {
86
- return agent.balance;
87
- },
88
- pause() {
89
- agent.pause();
90
- },
91
- resume() {
92
- agent.resume();
93
- },
94
- async stop() {
95
- await agent.stop();
96
- ServiceDirectory_1.serviceDirectory.unregister(service, agent.address);
97
- },
98
- on(event, handler) {
99
- agent.on(event, handler);
100
- },
101
- get stats() {
102
- return {
103
- jobsCompleted: agent.stats.jobsCompleted,
104
- jobsFailed: agent.stats.jobsFailed,
105
- totalEarned: agent.stats.totalEarned,
106
- averageJobTime: agent.stats.averageJobTime,
107
- };
108
- },
109
- };
110
- return provider;
111
- }
112
- exports.provide = provide;
113
- //# sourceMappingURL=provide.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provide.js","sourceRoot":"","sources":["../../src/level0/provide.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,2CAAwC;AAIxC,yDAAsD;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,SAAgB,OAAO,CACrB,OAAe,EACf,OAAmB,EACnB,OAAwB;IAExB,0CAA0C;IAC1C,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC;QACtB,IAAI,EAAE,YAAY,OAAO,EAAE;QAC3B,WAAW,EAAE,+BAA+B,OAAO,EAAE;QACrD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,MAAM;QACnC,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,cAAc,EAAE,OAAO,EAAE,cAAc;QACvC,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,QAAQ,EAAE;YACR,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI;SACxC;KACF,CAAC,CAAC;IAEH,2CAA2C;IAC3C,KAAK,CAAC,OAAO,CACX;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,EACD,OAAO,CACR,CAAC;IAEF,sCAAsC;IACtC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACtB,2EAA2E;QAC3E,mCAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,MAAM,QAAQ,GAAa;QACzB,IAAI,MAAM;YACR,OAAO,KAAK,CAAC,MAAa,CAAC;QAC7B,CAAC;QAED,IAAI,OAAO;YACT,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QAED,IAAI,OAAO;YACT,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QAED,KAAK;YACH,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAED,MAAM;YACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,IAAI;YACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,mCAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,EAAE,CAAC,KAAU,EAAE,OAAY;YACzB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,KAAK;YACP,OAAO;gBACL,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa;gBACxC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU;gBAClC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;gBACpC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc;aAC3C,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AA7ED,0BA6EC"}
@@ -1,53 +0,0 @@
1
- /**
2
- * request() - Basic API for service requesters
3
- *
4
- * The simplest way to request a service from AGIRAILS.
5
- * Specify what you need and your budget, and AGIRAILS finds a provider.
6
- *
7
- * @packageDocumentation
8
- */
9
- import { RequestOptions, RequestResult } from '../level1/types/Options';
10
- /**
11
- * Request a service
12
- *
13
- * This is the simplest way to request a service on AGIRAILS.
14
- * Specify the service name, input data, and budget, and AGIRAILS
15
- * handles finding a provider, creating the transaction, and delivering the result.
16
- *
17
- * @param service - Service name (e.g., 'translation', 'echo')
18
- * @param options - Request options (input, budget, etc.)
19
- * @returns Promise resolving to request result
20
- *
21
- * @throws {NoProviderFoundError} If no provider is found for the service
22
- * @throws {TimeoutError} If provider doesn't respond within timeout
23
- * @throws {ProviderRejectedError} If provider rejects the job
24
- * @throws {DeliveryFailedError} If provider fails to deliver result
25
- *
26
- * @example
27
- * ```typescript
28
- * // Simplest example
29
- * const { result } = await request('echo', {
30
- * input: 'Hello, AGIRAILS!',
31
- * budget: 1
32
- * });
33
- * console.log(result); // 'Hello, AGIRAILS!'
34
- *
35
- * // With progress callback
36
- * const { result } = await request('translation', {
37
- * input: { text: 'Hello', from: 'en', to: 'de' },
38
- * budget: 5,
39
- * onProgress: (status) => {
40
- * console.log(`${status.state}: ${status.progress}%`);
41
- * }
42
- * });
43
- *
44
- * // With specific provider
45
- * const { result } = await request('image-gen', {
46
- * input: { prompt: 'A beautiful sunset' },
47
- * budget: 10,
48
- * provider: '0x1234...abcd'
49
- * });
50
- * ```
51
- */
52
- export declare function request(service: string, options: RequestOptions): Promise<RequestResult>;
53
- //# sourceMappingURL=request.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/level0/request.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAOxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CAoSxB"}