@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,10 +0,0 @@
1
- /**
2
- * Standard API - Agent-based interface
3
- *
4
- * @packageDocumentation
5
- */
6
-
7
- export { Agent, AgentConfig, AgentStatus, AgentStats, AgentBalance, ServiceConfig } from './Agent';
8
- export * from './types';
9
- export * from './pricing/PricingStrategy';
10
- export { calculatePrice, DEFAULT_PRICING_STRATEGY } from './pricing/PriceCalculator';
@@ -1,255 +0,0 @@
1
- /**
2
- * PriceCalculator - Calculate prices based on cost + margin model
3
- *
4
- * Implements the pricing logic for AGIRAILS agents to automatically
5
- * calculate service prices and decide whether to accept jobs.
6
- *
7
- * @packageDocumentation
8
- */
9
-
10
- import { PricingStrategy, PriceCalculation } from './PricingStrategy';
11
- import { Job } from '../types/Job';
12
-
13
- /**
14
- * Calculate price for a job based on pricing strategy
15
- *
16
- * This function calculates the total cost (base + per-unit), applies the
17
- * desired profit margin, enforces min/max bounds, and determines whether
18
- * to accept, counter-offer, or reject the job.
19
- *
20
- * @param strategy - Pricing strategy configuration
21
- * @param job - Job to calculate price for
22
- * @returns Price calculation result with decision
23
- *
24
- * @example
25
- * ```typescript
26
- * const strategy: PricingStrategy = {
27
- * cost: {
28
- * base: 0.50,
29
- * perUnit: { unit: 'word', rate: 0.005 }
30
- * },
31
- * margin: 0.40, // 40% profit margin
32
- * minimum: 0.05,
33
- * maximum: 10000
34
- * };
35
- *
36
- * const job: Job = {
37
- * id: '0x1234',
38
- * service: 'translation',
39
- * input: { text: 'Hello world' }, // 2 words
40
- * budget: 10,
41
- * deadline: new Date(),
42
- * requester: '0xRequester',
43
- * metadata: {}
44
- * };
45
- *
46
- * const calc = calculatePrice(strategy, job);
47
- * // calc.cost = 0.50 + (2 * 0.005) = 0.51
48
- * // calc.price = 0.51 / (1 - 0.40) = 0.85
49
- * // calc.profit = 0.85 - 0.51 = 0.34
50
- * // calc.marginPercent = 0.34 / 0.85 = 0.40 (40%)
51
- * // calc.decision = 'accept' (budget $10 >= price $0.85)
52
- * ```
53
- */
54
- export function calculatePrice(strategy: PricingStrategy, job: Job): PriceCalculation {
55
- // Calculate base cost
56
- const baseCost = strategy.cost.base ?? 0;
57
-
58
- // Calculate per-unit cost
59
- let unitCost = 0;
60
- let units: number | undefined;
61
- if (strategy.cost.perUnit) {
62
- units = estimateUnits(job, strategy.cost.perUnit.unit);
63
- unitCost = units * strategy.cost.perUnit.rate;
64
- }
65
-
66
- // Calculate API cost (future enhancement, not in MVP)
67
- let apiCost: number | undefined;
68
- if (strategy.cost.api) {
69
- apiCost = estimateApiCost(strategy.cost.api, job);
70
- // Add API cost to total cost
71
- }
72
-
73
- // Total cost = base + per-unit + api
74
- const totalCost = baseCost + unitCost + (apiCost ?? 0);
75
-
76
- // Apply margin: price = cost / (1 - margin)
77
- // Example: cost=$10, margin=40% → price = $10 / 0.6 = $16.67
78
- const margin = Math.max(0, Math.min(1, strategy.margin)); // Clamp to [0, 1]
79
- let price = totalCost / (1 - margin);
80
-
81
- // Enforce min/max bounds
82
- const minimum = strategy.minimum ?? 0.05; // ACTP protocol minimum
83
- const maximum = strategy.maximum ?? 10000;
84
- price = Math.max(minimum, Math.min(maximum, price));
85
-
86
- // Calculate actual profit and margin
87
- const profit = price - totalCost;
88
- const marginPercent = price > 0 ? profit / price : 0;
89
-
90
- // Decide whether to accept the job based on budget
91
- let decision: 'accept' | 'counter-offer' | 'reject';
92
- let reason: string;
93
-
94
- if (job.budget >= price) {
95
- // Budget meets or exceeds our price - accept immediately
96
- decision = 'accept';
97
- reason = `Budget $${job.budget.toFixed(2)} >= price $${price.toFixed(2)}`;
98
- } else if (job.budget >= totalCost) {
99
- // Budget is below price but above cost (reduced profit)
100
- // Use behavior configuration to decide
101
- const belowPriceBehavior = strategy.behavior?.belowPrice ?? 'counter-offer';
102
- decision = belowPriceBehavior;
103
- reason = `Budget $${job.budget.toFixed(2)} below price $${price.toFixed(2)} but above cost $${totalCost.toFixed(2)}`;
104
- } else {
105
- // Budget is below cost (would lose money)
106
- // Use behavior configuration to decide
107
- const belowCostBehavior = strategy.behavior?.belowCost ?? 'reject';
108
- decision = belowCostBehavior;
109
- reason = `Budget $${job.budget.toFixed(2)} below cost $${totalCost.toFixed(2)} (would lose money)`;
110
- }
111
-
112
- return {
113
- cost: totalCost,
114
- price,
115
- profit,
116
- marginPercent,
117
- decision,
118
- reason,
119
- breakdown: {
120
- baseCost,
121
- unitCost,
122
- units,
123
- apiCost,
124
- },
125
- };
126
- }
127
-
128
- /**
129
- * Estimate number of units in job input
130
- *
131
- * Supports different unit types (word, token, etc.) and extracts
132
- * the relevant data from the job input.
133
- *
134
- * @param job - Job to estimate units for
135
- * @param unit - Unit type (word, token, image, etc.)
136
- * @returns Estimated number of units
137
- *
138
- * @internal
139
- */
140
- function estimateUnits(job: Job, unit: string): number {
141
- const input = job.input;
142
-
143
- switch (unit.toLowerCase()) {
144
- case 'word':
145
- // Count words in text field
146
- if (typeof input?.text === 'string') {
147
- return input.text.split(/\s+/).filter((word: string) => word.length > 0).length;
148
- }
149
- // Fallback: count words in JSON string
150
- return JSON.stringify(input).split(/\s+/).length;
151
-
152
- case 'token':
153
- // Rough estimate: 1 token ≈ 4 characters
154
- if (typeof input?.text === 'string') {
155
- return Math.ceil(input.text.length / 4);
156
- }
157
- return Math.ceil(JSON.stringify(input).length / 4);
158
-
159
- case 'character':
160
- case 'char':
161
- // Count characters
162
- if (typeof input?.text === 'string') {
163
- return input.text.length;
164
- }
165
- return JSON.stringify(input).length;
166
-
167
- case 'image':
168
- case 'img':
169
- // Count number of images
170
- if (Array.isArray(input?.images)) {
171
- return input.images.length;
172
- }
173
- if (input?.image || input?.imageUrl) {
174
- return 1;
175
- }
176
- return 1; // Default to 1 image
177
-
178
- case 'minute':
179
- case 'min':
180
- // Duration in minutes
181
- if (typeof input?.duration === 'number') {
182
- return input.duration;
183
- }
184
- if (typeof input?.durationMinutes === 'number') {
185
- return input.durationMinutes;
186
- }
187
- return 1; // Default to 1 minute
188
-
189
- case 'request':
190
- case 'job':
191
- // Flat per-request pricing
192
- return 1;
193
-
194
- default:
195
- // Unknown unit type - default to 1
196
- return 1;
197
- }
198
- }
199
-
200
- /**
201
- * Estimate API cost for a job
202
- *
203
- * MVP: Returns 0 for all APIs (placeholder for future implementation)
204
- *
205
- * Future implementation will include pricing for:
206
- * - openai:gpt-4-turbo
207
- * - openai:gpt-3.5-turbo
208
- * - anthropic:claude-3-sonnet
209
- * - anthropic:claude-3-haiku
210
- *
211
- * @param api - API identifier (e.g., 'openai:gpt-4-turbo')
212
- * @param job - Job to estimate cost for
213
- * @returns Estimated API cost in USDC
214
- *
215
- * @internal
216
- */
217
- function estimateApiCost(api: string, job: Job): number {
218
- // MVP: Returns 0 (API costs tracked externally by agent)
219
- // V2: Integrate with OpenAI/Anthropic pricing APIs
220
-
221
- // Example V2 implementation:
222
- // const [provider, model] = api.split(':');
223
- // if (provider === 'openai') {
224
- // const inputTokens = estimateUnits(job, 'token');
225
- // const pricing = {
226
- // 'gpt-4-turbo': { input: 0.01 / 1000, output: 0.03 / 1000 },
227
- // 'gpt-3.5-turbo': { input: 0.0005 / 1000, output: 0.0015 / 1000 }
228
- // };
229
- // return inputTokens * pricing[model].input * 2; // Assume 2x for output
230
- // }
231
-
232
- return 0;
233
- }
234
-
235
- /**
236
- * Default pricing strategy
237
- *
238
- * Provides a sensible default for services that don't specify pricing.
239
- * - Base cost: $0.05 (ACTP minimum)
240
- * - Margin: 40% (healthy profit margin)
241
- * - Behavior: Counter-offer when below price, reject when below cost
242
- */
243
- export const DEFAULT_PRICING_STRATEGY: PricingStrategy = {
244
- cost: {
245
- base: 0.05, // ACTP protocol minimum
246
- },
247
- margin: 0.4, // 40% profit margin
248
- minimum: 0.05,
249
- maximum: 10000,
250
- behavior: {
251
- belowPrice: 'counter-offer',
252
- belowCost: 'reject',
253
- maxNegotiationRounds: 3,
254
- },
255
- };
@@ -1,198 +0,0 @@
1
- /**
2
- * PricingStrategy - Cost + Margin pricing model
3
- *
4
- * Allows agents to define their costs and desired profit margin.
5
- * SDK automatically calculates prices and decides whether to accept jobs.
6
- *
7
- * @packageDocumentation
8
- */
9
-
10
- /**
11
- * Cost configuration for a service
12
- */
13
- export interface ServiceCost {
14
- /**
15
- * Fixed base cost per job (USDC)
16
- *
17
- * @example
18
- * base: 0.50 // $0.50 per job regardless of input size
19
- */
20
- base?: number;
21
-
22
- /**
23
- * Per-unit cost
24
- *
25
- * Allows pricing based on input size (words, tokens, images, etc.)
26
- *
27
- * @example
28
- * ```typescript
29
- * perUnit: {
30
- * unit: 'word',
31
- * rate: 0.005 // $0.005 per word
32
- * }
33
- * // For 1000-word translation: cost = 0.50 (base) + 1000 * 0.005 = $5.50
34
- * ```
35
- */
36
- perUnit?: {
37
- /**
38
- * Unit type (word, token, image, minute, request, etc.)
39
- */
40
- unit: string;
41
-
42
- /**
43
- * Cost per unit (USDC)
44
- */
45
- rate: number;
46
- };
47
-
48
- /**
49
- * API cost auto-calculation
50
- *
51
- * Automatically calculate costs based on known API pricing.
52
- * SDK knows the costs for common APIs (OpenAI, Anthropic, etc.)
53
- *
54
- * @example
55
- * ```typescript
56
- * api: 'openai:gpt-4-turbo'
57
- * // SDK automatically calculates cost based on input tokens
58
- * ```
59
- *
60
- * Supported APIs (MVP):
61
- * - 'openai:gpt-4-turbo'
62
- * - 'openai:gpt-3.5-turbo'
63
- * - 'anthropic:claude-3-sonnet'
64
- * - 'anthropic:claude-3-haiku'
65
- */
66
- api?: string;
67
- }
68
-
69
- /**
70
- * Pricing behavior when job budget is below calculated price
71
- */
72
- export type BelowPriceBehavior = 'reject' | 'counter-offer';
73
-
74
- /**
75
- * Pricing behavior when job budget is below cost (would lose money)
76
- */
77
- export type BelowCostBehavior = 'reject' | 'counter-offer';
78
-
79
- /**
80
- * Pricing strategy configuration
81
- */
82
- export interface PricingStrategy {
83
- /**
84
- * Cost configuration
85
- */
86
- cost: ServiceCost;
87
-
88
- /**
89
- * Desired profit margin (0.0 - 1.0)
90
- *
91
- * This is the percentage of profit you want to make on top of your costs.
92
- *
93
- * @example
94
- * margin: 0.40 // 40% profit margin
95
- *
96
- * // If cost is $10, price will be:
97
- * // price = cost / (1 - margin) = $10 / 0.6 = $16.67
98
- * // profit = $16.67 - $10 = $6.67 (40% of $16.67)
99
- */
100
- margin: number;
101
-
102
- /**
103
- * Minimum price in USDC
104
- *
105
- * Even if calculated price is lower, never accept less than this.
106
- *
107
- * @default 0.05 (ACTP protocol minimum)
108
- */
109
- minimum?: number;
110
-
111
- /**
112
- * Maximum price in USDC
113
- *
114
- * Never charge more than this, even if calculated price is higher.
115
- *
116
- * @default 10000
117
- */
118
- maximum?: number;
119
-
120
- /**
121
- * Pricing behavior configuration
122
- */
123
- behavior?: {
124
- /**
125
- * What to do when job budget is below calculated price but above cost
126
- *
127
- * - 'reject': Reject the job immediately
128
- * - 'counter-offer': Respond with QUOTED state with your price
129
- *
130
- * @default 'counter-offer'
131
- */
132
- belowPrice?: BelowPriceBehavior;
133
-
134
- /**
135
- * What to do when job budget is below cost (would lose money)
136
- *
137
- * - 'reject': Reject the job immediately (recommended)
138
- * - 'counter-offer': Respond with QUOTED state with your price
139
- *
140
- * @default 'reject'
141
- */
142
- belowCost?: BelowCostBehavior;
143
-
144
- /**
145
- * Maximum negotiation rounds
146
- *
147
- * How many times to counter-offer before giving up.
148
- *
149
- * @default 3
150
- */
151
- maxNegotiationRounds?: number;
152
- };
153
- }
154
-
155
- /**
156
- * Price calculation result
157
- */
158
- export interface PriceCalculation {
159
- /**
160
- * Total cost (USDC)
161
- */
162
- cost: number;
163
-
164
- /**
165
- * Calculated price with margin (USDC)
166
- */
167
- price: number;
168
-
169
- /**
170
- * Profit amount (USDC)
171
- */
172
- profit: number;
173
-
174
- /**
175
- * Profit margin percentage (0.0 - 1.0)
176
- */
177
- marginPercent: number;
178
-
179
- /**
180
- * Decision: should we accept the job at the offered budget?
181
- */
182
- decision: 'accept' | 'counter-offer' | 'reject';
183
-
184
- /**
185
- * Reason for decision
186
- */
187
- reason: string;
188
-
189
- /**
190
- * Breakdown of cost calculation (for debugging)
191
- */
192
- breakdown: {
193
- baseCost: number;
194
- unitCost: number;
195
- units?: number;
196
- apiCost?: number;
197
- };
198
- }
@@ -1,179 +0,0 @@
1
- /**
2
- * Job - Represents a work request from requester to provider
3
- *
4
- * This is the core data structure passed to service handlers
5
- * in the Basic and Standard APIs.
6
- *
7
- * @packageDocumentation
8
- */
9
-
10
- /**
11
- * Job interface - work request data
12
- *
13
- * @example
14
- * ```typescript
15
- * const job: Job = {
16
- * id: '0x1234...abcd',
17
- * service: 'translation',
18
- * input: { text: 'Hello', from: 'en', to: 'de' },
19
- * budget: 10,
20
- * deadline: new Date('2025-12-14T12:00:00Z'),
21
- * requester: '0xRequester...',
22
- * metadata: { priority: 'high' }
23
- * }
24
- * ```
25
- */
26
- export interface Job {
27
- /**
28
- * Unique job identifier (transaction ID from ACTP protocol)
29
- */
30
- id: string;
31
-
32
- /**
33
- * Service type being requested (e.g., 'translation', 'echo', 'image-gen')
34
- */
35
- service: string;
36
-
37
- /**
38
- * Input data for the service (service-specific)
39
- *
40
- * This is the data the requester wants processed.
41
- * Structure depends on the service type.
42
- */
43
- input: any;
44
-
45
- /**
46
- * Budget in USDC (decimal format, e.g., 10 = $10.00)
47
- *
48
- * This is the maximum amount the requester is willing to pay.
49
- */
50
- budget: number;
51
-
52
- /**
53
- * Deadline by which work must be completed
54
- */
55
- deadline: Date;
56
-
57
- /**
58
- * Ethereum address of the requester
59
- */
60
- requester: string;
61
-
62
- /**
63
- * Additional metadata (optional, service-specific)
64
- */
65
- metadata: Record<string, any>;
66
- }
67
-
68
- /**
69
- * Job handler function type
70
- *
71
- * This is the function signature providers must implement.
72
- *
73
- * @param job - The job to process
74
- * @param context - Job execution context
75
- * @returns Promise resolving to job result (service-specific)
76
- *
77
- * @example
78
- * ```typescript
79
- * const handler: JobHandler = async (job, ctx) => {
80
- * ctx.progress(50, 'Processing...');
81
- * const result = await doWork(job.input);
82
- * ctx.progress(100, 'Done!');
83
- * return result;
84
- * };
85
- * ```
86
- */
87
- export type JobHandler = (job: Job, context: JobContext) => Promise<any>;
88
-
89
- /**
90
- * JobContext - Execution context passed to job handlers
91
- *
92
- * Provides utilities for progress reporting, logging, state management,
93
- * and cancellation handling.
94
- */
95
- export interface JobContext {
96
- /**
97
- * Reference to the Agent instance processing this job
98
- */
99
- agent: any; // Will be typed as Agent once implemented
100
-
101
- /**
102
- * Report job progress
103
- *
104
- * @param percent - Progress percentage (0-100)
105
- * @param message - Optional progress message
106
- *
107
- * @example
108
- * ```typescript
109
- * ctx.progress(25, 'Downloaded input file');
110
- * ctx.progress(50, 'Processing data');
111
- * ctx.progress(100, 'Complete!');
112
- * ```
113
- */
114
- progress(percent: number, message?: string): void;
115
-
116
- /**
117
- * Logging utilities
118
- */
119
- log: {
120
- debug(message: string, meta?: any): void;
121
- info(message: string, meta?: any): void;
122
- warn(message: string, meta?: any): void;
123
- error(message: string, meta?: any): void;
124
- };
125
-
126
- /**
127
- * Job-scoped state storage
128
- *
129
- * Allows handlers to store intermediate state that persists
130
- * across async operations (e.g., for resumable jobs).
131
- *
132
- * @example
133
- * ```typescript
134
- * // Store checkpoint
135
- * ctx.state.set('lastProcessedIndex', 42);
136
- *
137
- * // Retrieve checkpoint
138
- * const lastIndex = ctx.state.get<number>('lastProcessedIndex') || 0;
139
- * ```
140
- */
141
- state: {
142
- get<T>(key: string): T | undefined;
143
- set<T>(key: string, value: T): void;
144
- };
145
-
146
- /**
147
- * Whether the job has been cancelled
148
- *
149
- * Handlers should check this periodically for long-running jobs
150
- * and exit gracefully if true.
151
- *
152
- * @example
153
- * ```typescript
154
- * for (let i = 0; i < items.length; i++) {
155
- * if (ctx.cancelled) {
156
- * throw new Error('Job cancelled by requester');
157
- * }
158
- * await processItem(items[i]);
159
- * }
160
- * ```
161
- */
162
- cancelled: boolean;
163
-
164
- /**
165
- * Register cancellation handler
166
- *
167
- * Called when the job is cancelled, allowing cleanup.
168
- *
169
- * @example
170
- * ```typescript
171
- * const stream = openFileStream();
172
- * ctx.onCancel(() => {
173
- * stream.close();
174
- * console.log('Cleaned up resources');
175
- * });
176
- * ```
177
- */
178
- onCancel(handler: () => void): void;
179
- }