envoy-pay 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/LICENSE +200 -0
  3. package/README.md +529 -0
  4. package/dist/cjs/adapters/base.js +174 -0
  5. package/dist/cjs/adapters/base.js.map +1 -0
  6. package/dist/cjs/adapters/evm.js +339 -0
  7. package/dist/cjs/adapters/evm.js.map +1 -0
  8. package/dist/cjs/adapters/index.js +15 -0
  9. package/dist/cjs/adapters/index.js.map +1 -0
  10. package/dist/cjs/adapters/ows.js +204 -0
  11. package/dist/cjs/adapters/ows.js.map +1 -0
  12. package/dist/cjs/adapters/solana.js +210 -0
  13. package/dist/cjs/adapters/solana.js.map +1 -0
  14. package/dist/cjs/adapters/stellar.js +173 -0
  15. package/dist/cjs/adapters/stellar.js.map +1 -0
  16. package/dist/cjs/adapters/stripe.js +338 -0
  17. package/dist/cjs/adapters/stripe.js.map +1 -0
  18. package/dist/cjs/adapters/types.js +3 -0
  19. package/dist/cjs/adapters/types.js.map +1 -0
  20. package/dist/cjs/client.js +309 -0
  21. package/dist/cjs/client.js.map +1 -0
  22. package/dist/cjs/contracts/abis/EnvoyFacilitator.js +197 -0
  23. package/dist/cjs/contracts/abis/EnvoyFacilitator.js.map +1 -0
  24. package/dist/cjs/contracts/addresses.js +42 -0
  25. package/dist/cjs/contracts/addresses.js.map +1 -0
  26. package/dist/cjs/contracts/facilitator.js +225 -0
  27. package/dist/cjs/contracts/facilitator.js.map +1 -0
  28. package/dist/cjs/contracts/index.js +21 -0
  29. package/dist/cjs/contracts/index.js.map +1 -0
  30. package/dist/cjs/facilitator/facilitator-service.js +305 -0
  31. package/dist/cjs/facilitator/facilitator-service.js.map +1 -0
  32. package/dist/cjs/facilitator/fee-calculator.js +134 -0
  33. package/dist/cjs/facilitator/fee-calculator.js.map +1 -0
  34. package/dist/cjs/facilitator/index.js +12 -0
  35. package/dist/cjs/facilitator/index.js.map +1 -0
  36. package/dist/cjs/facilitator/types.js +99 -0
  37. package/dist/cjs/facilitator/types.js.map +1 -0
  38. package/dist/cjs/identity/agent-card.js +143 -0
  39. package/dist/cjs/identity/agent-card.js.map +1 -0
  40. package/dist/cjs/identity/agent-identity.js +166 -0
  41. package/dist/cjs/identity/agent-identity.js.map +1 -0
  42. package/dist/cjs/identity/did-resolver.js +149 -0
  43. package/dist/cjs/identity/did-resolver.js.map +1 -0
  44. package/dist/cjs/identity/erc8004/abis.js +218 -0
  45. package/dist/cjs/identity/erc8004/abis.js.map +1 -0
  46. package/dist/cjs/identity/erc8004/identity.js +268 -0
  47. package/dist/cjs/identity/erc8004/identity.js.map +1 -0
  48. package/dist/cjs/identity/erc8004/index.js +36 -0
  49. package/dist/cjs/identity/erc8004/index.js.map +1 -0
  50. package/dist/cjs/identity/erc8004/reputation.js +110 -0
  51. package/dist/cjs/identity/erc8004/reputation.js.map +1 -0
  52. package/dist/cjs/identity/erc8004/types.js +3 -0
  53. package/dist/cjs/identity/erc8004/types.js.map +1 -0
  54. package/dist/cjs/identity/index.js +61 -0
  55. package/dist/cjs/identity/index.js.map +1 -0
  56. package/dist/cjs/identity/owner-registry.js +140 -0
  57. package/dist/cjs/identity/owner-registry.js.map +1 -0
  58. package/dist/cjs/identity/reputation.js +193 -0
  59. package/dist/cjs/identity/reputation.js.map +1 -0
  60. package/dist/cjs/identity/types.js +16 -0
  61. package/dist/cjs/identity/types.js.map +1 -0
  62. package/dist/cjs/index.js +72 -0
  63. package/dist/cjs/index.js.map +1 -0
  64. package/dist/cjs/logger.js +7 -0
  65. package/dist/cjs/logger.js.map +1 -0
  66. package/dist/cjs/monitor/evm-watcher.js +165 -0
  67. package/dist/cjs/monitor/evm-watcher.js.map +1 -0
  68. package/dist/cjs/monitor/index.js +32 -0
  69. package/dist/cjs/monitor/index.js.map +1 -0
  70. package/dist/cjs/monitor/multi-watcher.js +94 -0
  71. package/dist/cjs/monitor/multi-watcher.js.map +1 -0
  72. package/dist/cjs/monitor/solana-watcher.js +172 -0
  73. package/dist/cjs/monitor/solana-watcher.js.map +1 -0
  74. package/dist/cjs/monitor/stellar-watcher.js +125 -0
  75. package/dist/cjs/monitor/stellar-watcher.js.map +1 -0
  76. package/dist/cjs/mpp.js +187 -0
  77. package/dist/cjs/mpp.js.map +1 -0
  78. package/dist/cjs/policy.js +71 -0
  79. package/dist/cjs/policy.js.map +1 -0
  80. package/dist/cjs/providers/bridge.js +323 -0
  81. package/dist/cjs/providers/bridge.js.map +1 -0
  82. package/dist/cjs/providers/onchainos.js +210 -0
  83. package/dist/cjs/providers/onchainos.js.map +1 -0
  84. package/dist/cjs/requests/eip681.js +77 -0
  85. package/dist/cjs/requests/eip681.js.map +1 -0
  86. package/dist/cjs/requests/index.js +18 -0
  87. package/dist/cjs/requests/index.js.map +1 -0
  88. package/dist/cjs/requests/sep7.js +61 -0
  89. package/dist/cjs/requests/sep7.js.map +1 -0
  90. package/dist/cjs/requests/solana-pay.js +51 -0
  91. package/dist/cjs/requests/solana-pay.js.map +1 -0
  92. package/dist/cjs/requests/universal.js +40 -0
  93. package/dist/cjs/requests/universal.js.map +1 -0
  94. package/dist/cjs/server/index.js +35 -0
  95. package/dist/cjs/server/index.js.map +1 -0
  96. package/dist/cjs/server/mpp-gate.js +118 -0
  97. package/dist/cjs/server/mpp-gate.js.map +1 -0
  98. package/dist/cjs/server/payment-gate.js +92 -0
  99. package/dist/cjs/server/payment-gate.js.map +1 -0
  100. package/dist/cjs/server/receipt.js +52 -0
  101. package/dist/cjs/server/receipt.js.map +1 -0
  102. package/dist/cjs/server/webhook.js +122 -0
  103. package/dist/cjs/server/webhook.js.map +1 -0
  104. package/dist/cjs/server/x402-gate.js +103 -0
  105. package/dist/cjs/server/x402-gate.js.map +1 -0
  106. package/dist/cjs/solana.js +14 -0
  107. package/dist/cjs/solana.js.map +1 -0
  108. package/dist/cjs/stellar.js +14 -0
  109. package/dist/cjs/stellar.js.map +1 -0
  110. package/dist/cjs/wallet/balance-aggregator.js +149 -0
  111. package/dist/cjs/wallet/balance-aggregator.js.map +1 -0
  112. package/dist/cjs/wallet/chain-router.js +254 -0
  113. package/dist/cjs/wallet/chain-router.js.map +1 -0
  114. package/dist/cjs/wallet/index.js +15 -0
  115. package/dist/cjs/wallet/index.js.map +1 -0
  116. package/dist/cjs/wallet/intent-resolver.js +145 -0
  117. package/dist/cjs/wallet/intent-resolver.js.map +1 -0
  118. package/dist/cjs/wallet/session-manager.js +170 -0
  119. package/dist/cjs/wallet/session-manager.js.map +1 -0
  120. package/dist/cjs/wallet/types.js +14 -0
  121. package/dist/cjs/wallet/types.js.map +1 -0
  122. package/dist/cjs/wallet/unified-wallet.js +253 -0
  123. package/dist/cjs/wallet/unified-wallet.js.map +1 -0
  124. package/dist/esm/adapters/base.js +170 -0
  125. package/dist/esm/adapters/base.js.map +1 -0
  126. package/dist/esm/adapters/evm.js +334 -0
  127. package/dist/esm/adapters/evm.js.map +1 -0
  128. package/dist/esm/adapters/index.js +6 -0
  129. package/dist/esm/adapters/index.js.map +1 -0
  130. package/dist/esm/adapters/ows.js +194 -0
  131. package/dist/esm/adapters/ows.js.map +1 -0
  132. package/dist/esm/adapters/solana.js +206 -0
  133. package/dist/esm/adapters/solana.js.map +1 -0
  134. package/dist/esm/adapters/stellar.js +136 -0
  135. package/dist/esm/adapters/stellar.js.map +1 -0
  136. package/dist/esm/adapters/stripe.js +334 -0
  137. package/dist/esm/adapters/stripe.js.map +1 -0
  138. package/dist/esm/adapters/types.js +2 -0
  139. package/dist/esm/adapters/types.js.map +1 -0
  140. package/dist/esm/client.js +302 -0
  141. package/dist/esm/client.js.map +1 -0
  142. package/dist/esm/contracts/abis/EnvoyFacilitator.js +194 -0
  143. package/dist/esm/contracts/abis/EnvoyFacilitator.js.map +1 -0
  144. package/dist/esm/contracts/addresses.js +38 -0
  145. package/dist/esm/contracts/addresses.js.map +1 -0
  146. package/dist/esm/contracts/facilitator.js +218 -0
  147. package/dist/esm/contracts/facilitator.js.map +1 -0
  148. package/dist/esm/contracts/index.js +8 -0
  149. package/dist/esm/contracts/index.js.map +1 -0
  150. package/dist/esm/facilitator/facilitator-service.js +301 -0
  151. package/dist/esm/facilitator/facilitator-service.js.map +1 -0
  152. package/dist/esm/facilitator/fee-calculator.js +130 -0
  153. package/dist/esm/facilitator/fee-calculator.js.map +1 -0
  154. package/dist/esm/facilitator/index.js +5 -0
  155. package/dist/esm/facilitator/index.js.map +1 -0
  156. package/dist/esm/facilitator/types.js +96 -0
  157. package/dist/esm/facilitator/types.js.map +1 -0
  158. package/dist/esm/identity/agent-card.js +139 -0
  159. package/dist/esm/identity/agent-card.js.map +1 -0
  160. package/dist/esm/identity/agent-identity.js +162 -0
  161. package/dist/esm/identity/agent-identity.js.map +1 -0
  162. package/dist/esm/identity/did-resolver.js +145 -0
  163. package/dist/esm/identity/did-resolver.js.map +1 -0
  164. package/dist/esm/identity/erc8004/abis.js +215 -0
  165. package/dist/esm/identity/erc8004/abis.js.map +1 -0
  166. package/dist/esm/identity/erc8004/identity.js +250 -0
  167. package/dist/esm/identity/erc8004/identity.js.map +1 -0
  168. package/dist/esm/identity/erc8004/index.js +13 -0
  169. package/dist/esm/identity/erc8004/index.js.map +1 -0
  170. package/dist/esm/identity/erc8004/reputation.js +105 -0
  171. package/dist/esm/identity/erc8004/reputation.js.map +1 -0
  172. package/dist/esm/identity/erc8004/types.js +2 -0
  173. package/dist/esm/identity/erc8004/types.js.map +1 -0
  174. package/dist/esm/identity/index.js +19 -0
  175. package/dist/esm/identity/index.js.map +1 -0
  176. package/dist/esm/identity/owner-registry.js +136 -0
  177. package/dist/esm/identity/owner-registry.js.map +1 -0
  178. package/dist/esm/identity/reputation.js +189 -0
  179. package/dist/esm/identity/reputation.js.map +1 -0
  180. package/dist/esm/identity/types.js +15 -0
  181. package/dist/esm/identity/types.js.map +1 -0
  182. package/dist/esm/index.js +37 -0
  183. package/dist/esm/index.js.map +1 -0
  184. package/dist/esm/logger.js +3 -0
  185. package/dist/esm/logger.js.map +1 -0
  186. package/dist/esm/monitor/evm-watcher.js +162 -0
  187. package/dist/esm/monitor/evm-watcher.js.map +1 -0
  188. package/dist/esm/monitor/index.js +25 -0
  189. package/dist/esm/monitor/index.js.map +1 -0
  190. package/dist/esm/monitor/multi-watcher.js +91 -0
  191. package/dist/esm/monitor/multi-watcher.js.map +1 -0
  192. package/dist/esm/monitor/solana-watcher.js +169 -0
  193. package/dist/esm/monitor/solana-watcher.js.map +1 -0
  194. package/dist/esm/monitor/stellar-watcher.js +122 -0
  195. package/dist/esm/monitor/stellar-watcher.js.map +1 -0
  196. package/dist/esm/mpp.js +175 -0
  197. package/dist/esm/mpp.js.map +1 -0
  198. package/dist/esm/policy.js +67 -0
  199. package/dist/esm/policy.js.map +1 -0
  200. package/dist/esm/providers/bridge.js +319 -0
  201. package/dist/esm/providers/bridge.js.map +1 -0
  202. package/dist/esm/providers/onchainos.js +172 -0
  203. package/dist/esm/providers/onchainos.js.map +1 -0
  204. package/dist/esm/requests/eip681.js +74 -0
  205. package/dist/esm/requests/eip681.js.map +1 -0
  206. package/dist/esm/requests/index.js +11 -0
  207. package/dist/esm/requests/index.js.map +1 -0
  208. package/dist/esm/requests/sep7.js +58 -0
  209. package/dist/esm/requests/sep7.js.map +1 -0
  210. package/dist/esm/requests/solana-pay.js +48 -0
  211. package/dist/esm/requests/solana-pay.js.map +1 -0
  212. package/dist/esm/requests/universal.js +37 -0
  213. package/dist/esm/requests/universal.js.map +1 -0
  214. package/dist/esm/server/index.js +27 -0
  215. package/dist/esm/server/index.js.map +1 -0
  216. package/dist/esm/server/mpp-gate.js +115 -0
  217. package/dist/esm/server/mpp-gate.js.map +1 -0
  218. package/dist/esm/server/payment-gate.js +89 -0
  219. package/dist/esm/server/payment-gate.js.map +1 -0
  220. package/dist/esm/server/receipt.js +48 -0
  221. package/dist/esm/server/receipt.js.map +1 -0
  222. package/dist/esm/server/webhook.js +119 -0
  223. package/dist/esm/server/webhook.js.map +1 -0
  224. package/dist/esm/server/x402-gate.js +100 -0
  225. package/dist/esm/server/x402-gate.js.map +1 -0
  226. package/dist/esm/solana.js +8 -0
  227. package/dist/esm/solana.js.map +1 -0
  228. package/dist/esm/stellar.js +8 -0
  229. package/dist/esm/stellar.js.map +1 -0
  230. package/dist/esm/wallet/balance-aggregator.js +145 -0
  231. package/dist/esm/wallet/balance-aggregator.js.map +1 -0
  232. package/dist/esm/wallet/chain-router.js +250 -0
  233. package/dist/esm/wallet/chain-router.js.map +1 -0
  234. package/dist/esm/wallet/index.js +7 -0
  235. package/dist/esm/wallet/index.js.map +1 -0
  236. package/dist/esm/wallet/intent-resolver.js +141 -0
  237. package/dist/esm/wallet/intent-resolver.js.map +1 -0
  238. package/dist/esm/wallet/session-manager.js +166 -0
  239. package/dist/esm/wallet/session-manager.js.map +1 -0
  240. package/dist/esm/wallet/types.js +13 -0
  241. package/dist/esm/wallet/types.js.map +1 -0
  242. package/dist/esm/wallet/unified-wallet.js +249 -0
  243. package/dist/esm/wallet/unified-wallet.js.map +1 -0
  244. package/dist/types/adapters/base.d.ts +53 -0
  245. package/dist/types/adapters/base.d.ts.map +1 -0
  246. package/dist/types/adapters/evm.d.ts +93 -0
  247. package/dist/types/adapters/evm.d.ts.map +1 -0
  248. package/dist/types/adapters/index.d.ts +7 -0
  249. package/dist/types/adapters/index.d.ts.map +1 -0
  250. package/dist/types/adapters/ows.d.ts +123 -0
  251. package/dist/types/adapters/ows.d.ts.map +1 -0
  252. package/dist/types/adapters/solana.d.ts +77 -0
  253. package/dist/types/adapters/solana.d.ts.map +1 -0
  254. package/dist/types/adapters/stellar.d.ts +67 -0
  255. package/dist/types/adapters/stellar.d.ts.map +1 -0
  256. package/dist/types/adapters/stripe.d.ts +206 -0
  257. package/dist/types/adapters/stripe.d.ts.map +1 -0
  258. package/dist/types/adapters/types.d.ts +110 -0
  259. package/dist/types/adapters/types.d.ts.map +1 -0
  260. package/dist/types/client.d.ts +89 -0
  261. package/dist/types/client.d.ts.map +1 -0
  262. package/dist/types/contracts/abis/EnvoyFacilitator.d.ts +296 -0
  263. package/dist/types/contracts/abis/EnvoyFacilitator.d.ts.map +1 -0
  264. package/dist/types/contracts/addresses.d.ts +24 -0
  265. package/dist/types/contracts/addresses.d.ts.map +1 -0
  266. package/dist/types/contracts/facilitator.d.ts +172 -0
  267. package/dist/types/contracts/facilitator.d.ts.map +1 -0
  268. package/dist/types/contracts/index.d.ts +6 -0
  269. package/dist/types/contracts/index.d.ts.map +1 -0
  270. package/dist/types/facilitator/facilitator-service.d.ts +69 -0
  271. package/dist/types/facilitator/facilitator-service.d.ts.map +1 -0
  272. package/dist/types/facilitator/fee-calculator.d.ts +48 -0
  273. package/dist/types/facilitator/fee-calculator.d.ts.map +1 -0
  274. package/dist/types/facilitator/index.d.ts +5 -0
  275. package/dist/types/facilitator/index.d.ts.map +1 -0
  276. package/dist/types/facilitator/types.d.ts +221 -0
  277. package/dist/types/facilitator/types.d.ts.map +1 -0
  278. package/dist/types/identity/agent-card.d.ts +83 -0
  279. package/dist/types/identity/agent-card.d.ts.map +1 -0
  280. package/dist/types/identity/agent-identity.d.ts +102 -0
  281. package/dist/types/identity/agent-identity.d.ts.map +1 -0
  282. package/dist/types/identity/did-resolver.d.ts +70 -0
  283. package/dist/types/identity/did-resolver.d.ts.map +1 -0
  284. package/dist/types/identity/erc8004/abis.d.ts +336 -0
  285. package/dist/types/identity/erc8004/abis.d.ts.map +1 -0
  286. package/dist/types/identity/erc8004/identity.d.ts +109 -0
  287. package/dist/types/identity/erc8004/identity.d.ts.map +1 -0
  288. package/dist/types/identity/erc8004/index.d.ts +15 -0
  289. package/dist/types/identity/erc8004/index.d.ts.map +1 -0
  290. package/dist/types/identity/erc8004/reputation.d.ts +52 -0
  291. package/dist/types/identity/erc8004/reputation.d.ts.map +1 -0
  292. package/dist/types/identity/erc8004/types.d.ts +31 -0
  293. package/dist/types/identity/erc8004/types.d.ts.map +1 -0
  294. package/dist/types/identity/index.d.ts +10 -0
  295. package/dist/types/identity/index.d.ts.map +1 -0
  296. package/dist/types/identity/owner-registry.d.ts +68 -0
  297. package/dist/types/identity/owner-registry.d.ts.map +1 -0
  298. package/dist/types/identity/reputation.d.ts +66 -0
  299. package/dist/types/identity/reputation.d.ts.map +1 -0
  300. package/dist/types/identity/types.d.ts +182 -0
  301. package/dist/types/identity/types.d.ts.map +1 -0
  302. package/dist/types/index.d.ts +17 -0
  303. package/dist/types/index.d.ts.map +1 -0
  304. package/dist/types/logger.d.ts +10 -0
  305. package/dist/types/logger.d.ts.map +1 -0
  306. package/dist/types/monitor/evm-watcher.d.ts +40 -0
  307. package/dist/types/monitor/evm-watcher.d.ts.map +1 -0
  308. package/dist/types/monitor/index.d.ts +25 -0
  309. package/dist/types/monitor/index.d.ts.map +1 -0
  310. package/dist/types/monitor/multi-watcher.d.ts +48 -0
  311. package/dist/types/monitor/multi-watcher.d.ts.map +1 -0
  312. package/dist/types/monitor/solana-watcher.d.ts +36 -0
  313. package/dist/types/monitor/solana-watcher.d.ts.map +1 -0
  314. package/dist/types/monitor/stellar-watcher.d.ts +34 -0
  315. package/dist/types/monitor/stellar-watcher.d.ts.map +1 -0
  316. package/dist/types/mpp.d.ts +153 -0
  317. package/dist/types/mpp.d.ts.map +1 -0
  318. package/dist/types/policy.d.ts +40 -0
  319. package/dist/types/policy.d.ts.map +1 -0
  320. package/dist/types/providers/bridge.d.ts +162 -0
  321. package/dist/types/providers/bridge.d.ts.map +1 -0
  322. package/dist/types/providers/onchainos.d.ts +128 -0
  323. package/dist/types/providers/onchainos.d.ts.map +1 -0
  324. package/dist/types/requests/eip681.d.ts +51 -0
  325. package/dist/types/requests/eip681.d.ts.map +1 -0
  326. package/dist/types/requests/index.d.ts +11 -0
  327. package/dist/types/requests/index.d.ts.map +1 -0
  328. package/dist/types/requests/sep7.d.ts +56 -0
  329. package/dist/types/requests/sep7.d.ts.map +1 -0
  330. package/dist/types/requests/solana-pay.d.ts +50 -0
  331. package/dist/types/requests/solana-pay.d.ts.map +1 -0
  332. package/dist/types/requests/universal.d.ts +28 -0
  333. package/dist/types/requests/universal.d.ts.map +1 -0
  334. package/dist/types/server/index.d.ts +27 -0
  335. package/dist/types/server/index.d.ts.map +1 -0
  336. package/dist/types/server/mpp-gate.d.ts +66 -0
  337. package/dist/types/server/mpp-gate.d.ts.map +1 -0
  338. package/dist/types/server/payment-gate.d.ts +33 -0
  339. package/dist/types/server/payment-gate.d.ts.map +1 -0
  340. package/dist/types/server/receipt.d.ts +52 -0
  341. package/dist/types/server/receipt.d.ts.map +1 -0
  342. package/dist/types/server/webhook.d.ts +46 -0
  343. package/dist/types/server/webhook.d.ts.map +1 -0
  344. package/dist/types/server/x402-gate.d.ts +70 -0
  345. package/dist/types/server/x402-gate.d.ts.map +1 -0
  346. package/dist/types/solana.d.ts +7 -0
  347. package/dist/types/solana.d.ts.map +1 -0
  348. package/dist/types/stellar.d.ts +7 -0
  349. package/dist/types/stellar.d.ts.map +1 -0
  350. package/dist/types/wallet/balance-aggregator.d.ts +51 -0
  351. package/dist/types/wallet/balance-aggregator.d.ts.map +1 -0
  352. package/dist/types/wallet/chain-router.d.ts +44 -0
  353. package/dist/types/wallet/chain-router.d.ts.map +1 -0
  354. package/dist/types/wallet/index.d.ts +7 -0
  355. package/dist/types/wallet/index.d.ts.map +1 -0
  356. package/dist/types/wallet/intent-resolver.d.ts +39 -0
  357. package/dist/types/wallet/intent-resolver.d.ts.map +1 -0
  358. package/dist/types/wallet/session-manager.d.ts +57 -0
  359. package/dist/types/wallet/session-manager.d.ts.map +1 -0
  360. package/dist/types/wallet/types.d.ts +161 -0
  361. package/dist/types/wallet/types.d.ts.map +1 -0
  362. package/dist/types/wallet/unified-wallet.d.ts +122 -0
  363. package/dist/types/wallet/unified-wallet.d.ts.map +1 -0
  364. package/package.json +194 -0
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * AgentCard — Capability and metadata registry for AI agents.
4
+ *
5
+ * Implements the ERC-8004 Identity Registry concept: each agent has
6
+ * a structured card describing its capabilities, service endpoints,
7
+ * owner, and multi-chain addresses.
8
+ *
9
+ * AgentCards are portable — they can be serialized to JSON and stored
10
+ * on IPFS, or registered on-chain as NFT metadata (ERC-721).
11
+ *
12
+ * @see ERC-8004 — Identity Registry (NFT-based agent IDs)
13
+ * @see Google A2A Protocol — AgentCard discovery
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AgentCard = void 0;
17
+ class AgentCard {
18
+ data;
19
+ createdAt;
20
+ updatedAt;
21
+ constructor(data) {
22
+ this.validateCard(data);
23
+ this.data = { ...data };
24
+ this.createdAt = new Date();
25
+ this.updatedAt = new Date();
26
+ }
27
+ // ═══ Getters ══════════════════════════════════════════════════════
28
+ get name() { return this.data.name; }
29
+ get version() { return this.data.version; }
30
+ get description() { return this.data.description; }
31
+ get capabilities() { return [...this.data.capabilities]; }
32
+ get owner() { return this.data.owner; }
33
+ get endpoints() { return this.data.endpoints ? { ...this.data.endpoints } : undefined; }
34
+ get addresses() { return this.data.addresses ? [...this.data.addresses] : undefined; }
35
+ get tags() { return this.data.tags ? [...this.data.tags] : []; }
36
+ get iconUrl() { return this.data.iconUrl; }
37
+ // ═══ Capability Checks ════════════════════════════════════════════
38
+ /**
39
+ * Check if this agent has a specific capability.
40
+ */
41
+ hasCapability(capability) {
42
+ return this.data.capabilities.includes(capability.toLowerCase());
43
+ }
44
+ /**
45
+ * Check if this agent has ALL of the specified capabilities.
46
+ */
47
+ hasAllCapabilities(capabilities) {
48
+ return capabilities.every((c) => this.hasCapability(c));
49
+ }
50
+ /**
51
+ * Check if this agent has ANY of the specified capabilities.
52
+ */
53
+ hasAnyCapability(capabilities) {
54
+ return capabilities.some((c) => this.hasCapability(c));
55
+ }
56
+ // ═══ Updates ══════════════════════════════════════════════════════
57
+ /**
58
+ * Add a capability to the agent card.
59
+ */
60
+ addCapability(capability) {
61
+ const lower = capability.toLowerCase();
62
+ if (!this.data.capabilities.includes(lower)) {
63
+ this.data.capabilities.push(lower);
64
+ this.updatedAt = new Date();
65
+ }
66
+ }
67
+ /**
68
+ * Remove a capability from the agent card.
69
+ */
70
+ removeCapability(capability) {
71
+ const lower = capability.toLowerCase();
72
+ const index = this.data.capabilities.indexOf(lower);
73
+ if (index === -1)
74
+ return false;
75
+ this.data.capabilities.splice(index, 1);
76
+ this.updatedAt = new Date();
77
+ return true;
78
+ }
79
+ /**
80
+ * Update a service endpoint.
81
+ */
82
+ setEndpoint(type, url) {
83
+ if (!this.data.endpoints) {
84
+ this.data.endpoints = {};
85
+ }
86
+ this.data.endpoints[type] = url;
87
+ this.updatedAt = new Date();
88
+ }
89
+ /**
90
+ * Add a chain address to the agent card.
91
+ */
92
+ addAddress(chain, caip2Id, address) {
93
+ if (!this.data.addresses) {
94
+ this.data.addresses = [];
95
+ }
96
+ // Don't add duplicates
97
+ const exists = this.data.addresses.some((a) => a.caip2Id === caip2Id && a.address === address);
98
+ if (!exists) {
99
+ this.data.addresses.push({ chain, caip2Id, address });
100
+ this.updatedAt = new Date();
101
+ }
102
+ }
103
+ // ═══ Serialization ════════════════════════════════════════════════
104
+ /**
105
+ * Serialize to JSON (for IPFS, on-chain storage, etc.)
106
+ */
107
+ toJSON() {
108
+ return {
109
+ ...this.data,
110
+ createdAt: this.createdAt.toISOString(),
111
+ updatedAt: this.updatedAt.toISOString(),
112
+ };
113
+ }
114
+ /**
115
+ * Create an AgentCard from JSON.
116
+ */
117
+ static fromJSON(json) {
118
+ return new AgentCard(json);
119
+ }
120
+ /**
121
+ * Get the raw data.
122
+ */
123
+ getData() {
124
+ return { ...this.data };
125
+ }
126
+ // ═══ Validation ═══════════════════════════════════════════════════
127
+ validateCard(data) {
128
+ if (!data.name || data.name.trim().length === 0) {
129
+ throw new Error('Agent name is required');
130
+ }
131
+ if (!data.version || !/^\d+\.\d+\.\d+/.test(data.version)) {
132
+ throw new Error('Agent version must be semver (e.g., "1.0.0")');
133
+ }
134
+ if (!data.capabilities || data.capabilities.length === 0) {
135
+ throw new Error('Agent must have at least one capability');
136
+ }
137
+ if (!data.owner || data.owner.trim().length === 0) {
138
+ throw new Error('Agent owner address is required');
139
+ }
140
+ }
141
+ }
142
+ exports.AgentCard = AgentCard;
143
+ //# sourceMappingURL=agent-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-card.js","sourceRoot":"","sources":["../../../src/identity/agent-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ /**
3
+ * AgentIdentity — Main facade for the identity layer.
4
+ *
5
+ * Orchestrates DIDResolver, AgentCard, Reputation, and OwnerRegistry
6
+ * into a single, cohesive interface. This is the primary object that
7
+ * agents and the EnvoyClient interact with.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const identity = new AgentIdentity({
12
+ * metadata: {
13
+ * name: 'Trading Bot Alpha',
14
+ * version: '1.0.0',
15
+ * capabilities: ['trade', 'analyze'],
16
+ * owner: '0xOwner...',
17
+ * },
18
+ * signerAddress: '0xAgent...',
19
+ * signerChainId: 'eip155:8453',
20
+ * });
21
+ *
22
+ * // Other agents can verify:
23
+ * const score = identity.getReputationScore();
24
+ * const canTrust = identity.meetsThreshold(70);
25
+ * ```
26
+ */
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.AgentIdentity = void 0;
29
+ const did_resolver_1 = require("./did-resolver");
30
+ const agent_card_1 = require("./agent-card");
31
+ const reputation_1 = require("./reputation");
32
+ const owner_registry_1 = require("./owner-registry");
33
+ class AgentIdentity {
34
+ /** The agent's DID. */
35
+ did;
36
+ /** The agent's DID Document. */
37
+ didDocument;
38
+ /** The agent's card (capabilities, metadata). */
39
+ card;
40
+ /** Shared modules (can be used across multiple agents). */
41
+ didResolver;
42
+ reputation;
43
+ ownerRegistry;
44
+ log;
45
+ constructor(options) {
46
+ this.log = options.logger ?? (() => { });
47
+ // Initialize modules
48
+ this.didResolver = new did_resolver_1.DIDResolver();
49
+ this.reputation = new reputation_1.Reputation();
50
+ this.ownerRegistry = new owner_registry_1.OwnerRegistry();
51
+ // Create agent card
52
+ this.card = new agent_card_1.AgentCard(options.metadata);
53
+ // Register DID
54
+ const { did, document } = this.didResolver.create(options.signerAddress, options.signerChainId, options.metadata);
55
+ this.did = did;
56
+ this.didDocument = document;
57
+ // Register ownership
58
+ this.ownerRegistry.register(this.did, options.metadata.owner, 'supervised');
59
+ this.log(`[Identity] 🆔 Agent identity created: ${this.did}`);
60
+ this.log(`[Identity] 🏷️ Name: ${options.metadata.name} v${options.metadata.version}`);
61
+ this.log(`[Identity] 🎯 Capabilities: ${options.metadata.capabilities.join(', ')}`);
62
+ }
63
+ // ═══ Identity API ═════════════════════════════════════════════════
64
+ /**
65
+ * Get the agent's DID string.
66
+ */
67
+ getDID() {
68
+ return this.did;
69
+ }
70
+ /**
71
+ * Get the agent's card data.
72
+ */
73
+ getCard() {
74
+ return this.card.getData();
75
+ }
76
+ /**
77
+ * Check if this agent has a specific capability.
78
+ */
79
+ hasCapability(capability) {
80
+ return this.card.hasCapability(capability);
81
+ }
82
+ // ═══ Reputation API ═══════════════════════════════════════════════
83
+ /**
84
+ * Get this agent's reputation score (0-100).
85
+ */
86
+ getReputationScore() {
87
+ return this.reputation.getScore(this.did);
88
+ }
89
+ /**
90
+ * Get this agent's full reputation profile.
91
+ */
92
+ getReputationProfile() {
93
+ return this.reputation.getProfile(this.did);
94
+ }
95
+ /**
96
+ * Check if this agent meets a minimum trust threshold.
97
+ */
98
+ meetsThreshold(minScore) {
99
+ return this.reputation.meetsThreshold(this.did, minScore);
100
+ }
101
+ /**
102
+ * Create a reputation attestation for ANOTHER agent.
103
+ */
104
+ attestAgent(options) {
105
+ this.log(`[Identity] ⭐ Attesting ${options.subject}: ${options.score}/100 (${options.category})`);
106
+ return this.reputation.attest(this.didDocument.controller, options);
107
+ }
108
+ // ═══ Ownership API ════════════════════════════════════════════════
109
+ /**
110
+ * Get this agent's owner.
111
+ */
112
+ getOwner() {
113
+ return this.ownerRegistry.getOwner(this.did);
114
+ }
115
+ /**
116
+ * Get this agent's delegation level.
117
+ */
118
+ getDelegationLevel() {
119
+ return this.ownerRegistry.getDelegationLevel(this.did);
120
+ }
121
+ /**
122
+ * Check if this agent can transact (not readonly).
123
+ */
124
+ canTransact() {
125
+ return this.ownerRegistry.canTransact(this.did);
126
+ }
127
+ // ═══ Resolution API (for discovering other agents) ════════════════
128
+ /**
129
+ * Resolve another agent's identity by DID.
130
+ */
131
+ resolveAgent(agentDid, options) {
132
+ const didDoc = this.didResolver.resolve(agentDid);
133
+ if (!didDoc)
134
+ return null;
135
+ const includeRep = options?.includeReputation ?? true;
136
+ const includeOwner = options?.includeOwnership ?? true;
137
+ // We don't have the card in this context — return a minimal version
138
+ const resolved = {
139
+ did: didDoc,
140
+ card: {
141
+ name: 'Unknown',
142
+ version: '0.0.0',
143
+ capabilities: [],
144
+ owner: didDoc.controller,
145
+ },
146
+ reputation: includeRep ? this.reputation.getProfile(agentDid) : undefined,
147
+ ownership: includeOwner ? this.ownerRegistry.getOwner(agentDid) ?? undefined : undefined,
148
+ };
149
+ return resolved;
150
+ }
151
+ // ═══ Serialization ════════════════════════════════════════════════
152
+ /**
153
+ * Export the full identity as a portable JSON object.
154
+ */
155
+ toJSON() {
156
+ return {
157
+ did: this.did,
158
+ didDocument: this.didDocument,
159
+ card: this.card.toJSON(),
160
+ reputation: this.reputation.getProfile(this.did),
161
+ ownership: this.ownerRegistry.getOwner(this.did),
162
+ };
163
+ }
164
+ }
165
+ exports.AgentIdentity = AgentIdentity;
166
+ //# sourceMappingURL=agent-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-identity.js","sourceRoot":"","sources":["../../../src/identity/agent-identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ /**
3
+ * DIDResolver — W3C Decentralized Identifier resolution for envoy agents.
4
+ *
5
+ * Implements a custom DID method `did:asg:agent:<chain>:<address>` that
6
+ * resolves to a DID Document containing the agent's public keys,
7
+ * service endpoints, and ownership information.
8
+ *
9
+ * Format: did:asg:agent:<caip2-chain>:<address>
10
+ * @example "did:asg:agent:eip155:8453:0x1234abcd..."
11
+ * @example "did:asg:agent:stellar:pubnet:GABC..."
12
+ * @example "did:asg:agent:solana:mainnet:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp..."
13
+ *
14
+ * @see https://www.w3.org/TR/did-core/
15
+ * @see ERC-8004 — Identity Registry
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DIDResolver = void 0;
19
+ class DIDResolver {
20
+ /** In-memory registry (production: on-chain or IPFS). */
21
+ registry = new Map();
22
+ /**
23
+ * Create a DID for an agent.
24
+ *
25
+ * @param address - The agent's primary address
26
+ * @param chainId - CAIP-2 chain identifier
27
+ * @param card - Agent card metadata
28
+ * @returns The generated DID and DID Document
29
+ */
30
+ create(address, chainId, card) {
31
+ const did = this.buildDID(address, chainId);
32
+ const verificationMethod = {
33
+ id: `${did}#key-1`,
34
+ type: this.getKeyType(chainId),
35
+ controller: did,
36
+ publicKeyMultibase: this.addressToMultibase(address),
37
+ };
38
+ const services = [];
39
+ if (card.endpoints?.a2a) {
40
+ services.push({
41
+ id: `${did}#a2a`,
42
+ type: 'A2AEndpoint',
43
+ serviceEndpoint: card.endpoints.a2a,
44
+ });
45
+ }
46
+ if (card.endpoints?.mcp) {
47
+ services.push({
48
+ id: `${did}#mcp`,
49
+ type: 'MCPEndpoint',
50
+ serviceEndpoint: card.endpoints.mcp,
51
+ });
52
+ }
53
+ if (card.endpoints?.payment) {
54
+ services.push({
55
+ id: `${did}#payment`,
56
+ type: 'PaymentEndpoint',
57
+ serviceEndpoint: card.endpoints.payment,
58
+ });
59
+ }
60
+ const document = {
61
+ id: did,
62
+ controller: card.owner,
63
+ verificationMethod: [verificationMethod],
64
+ service: services,
65
+ created: new Date(),
66
+ updated: new Date(),
67
+ };
68
+ this.registry.set(did, document);
69
+ return { did, document };
70
+ }
71
+ /**
72
+ * Resolve a DID to its DID Document.
73
+ */
74
+ resolve(did) {
75
+ return this.registry.get(did) ?? null;
76
+ }
77
+ /**
78
+ * Parse a DID string into its components.
79
+ */
80
+ parse(did) {
81
+ const parts = did.split(':');
82
+ // did:asg:agent:<chainType>:<chainId>:<address>
83
+ // Minimum: did:asg:agent:chain:address = 5 parts
84
+ if (parts.length < 5 || parts[0] !== 'did' || parts[1] !== 'asg') {
85
+ return null;
86
+ }
87
+ const method = parts[1]; // "asg"
88
+ const submethod = parts[2]; // "agent"
89
+ // Chain can be multi-part (e.g., "eip155:8453")
90
+ // Address is always the last part
91
+ const address = parts[parts.length - 1];
92
+ const chain = parts.slice(3, parts.length - 1).join(':');
93
+ return { method, submethod, chain, address };
94
+ }
95
+ /**
96
+ * Validate that a DID string is well-formed.
97
+ */
98
+ validate(did) {
99
+ const parsed = this.parse(did);
100
+ if (!parsed)
101
+ return false;
102
+ return (parsed.method === 'asg' &&
103
+ parsed.submethod === 'agent' &&
104
+ parsed.chain.length > 0 &&
105
+ parsed.address.length > 0);
106
+ }
107
+ /**
108
+ * Update a DID Document's service endpoints.
109
+ */
110
+ updateServices(did, services) {
111
+ const doc = this.registry.get(did);
112
+ if (!doc)
113
+ return false;
114
+ doc.service = services;
115
+ doc.updated = new Date();
116
+ return true;
117
+ }
118
+ /**
119
+ * Deactivate (delete) a DID Document.
120
+ */
121
+ deactivate(did) {
122
+ return this.registry.delete(did);
123
+ }
124
+ /**
125
+ * List all registered DIDs.
126
+ */
127
+ listAll() {
128
+ return Array.from(this.registry.keys());
129
+ }
130
+ // ─── Internal ──────────────────────────────────────────────────────
131
+ buildDID(address, chainId) {
132
+ return `did:asg:agent:${chainId}:${address}`;
133
+ }
134
+ getKeyType(chainId) {
135
+ if (chainId.startsWith('eip155'))
136
+ return 'EcdsaSecp256k1VerificationKey2019';
137
+ if (chainId.startsWith('stellar'))
138
+ return 'Ed25519VerificationKey2020';
139
+ if (chainId.startsWith('solana'))
140
+ return 'Ed25519VerificationKey2020';
141
+ return 'JsonWebKey2020';
142
+ }
143
+ addressToMultibase(address) {
144
+ // Multibase-encode the address (simplified: just prefix with 'z' for base58btc)
145
+ return `z${address}`;
146
+ }
147
+ }
148
+ exports.DIDResolver = DIDResolver;
149
+ //# sourceMappingURL=did-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-resolver.js","sourceRoot":"","sources":["../../../src/identity/did-resolver.ts"],"names":[],"mappings":"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"}