safehands-pharos 1.4.0 → 2.6.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 (571) hide show
  1. package/.agents/policies/default.json +15 -0
  2. package/.env.example +81 -64
  3. package/README.md +301 -333
  4. package/SECURITY.md +112 -0
  5. package/SKILL.md +59 -0
  6. package/contracts/SafeHandsAttestation.sol +182 -0
  7. package/contracts/SafeHandsRegistry.sol +149 -0
  8. package/dist/agent/SafeHandsGuardianAgent.d.ts +39 -0
  9. package/dist/agent/SafeHandsGuardianAgent.d.ts.map +1 -0
  10. package/dist/agent/SafeHandsGuardianAgent.js +98 -0
  11. package/dist/agent/SafeHandsGuardianAgent.js.map +1 -0
  12. package/dist/agent/agentDecisionFormatter.d.ts +43 -0
  13. package/dist/agent/agentDecisionFormatter.d.ts.map +1 -0
  14. package/dist/agent/agentDecisionFormatter.js +96 -0
  15. package/dist/agent/agentDecisionFormatter.js.map +1 -0
  16. package/dist/agent/agentEnrich.d.ts +28 -0
  17. package/dist/agent/agentEnrich.d.ts.map +1 -0
  18. package/dist/agent/agentEnrich.js +99 -0
  19. package/dist/agent/agentEnrich.js.map +1 -0
  20. package/dist/agent/agentIntentClassifier.d.ts +44 -0
  21. package/dist/agent/agentIntentClassifier.d.ts.map +1 -0
  22. package/dist/agent/agentIntentClassifier.js +77 -0
  23. package/dist/agent/agentIntentClassifier.js.map +1 -0
  24. package/dist/agent/agentPolicyResolver.d.ts +44 -0
  25. package/dist/agent/agentPolicyResolver.d.ts.map +1 -0
  26. package/dist/agent/agentPolicyResolver.js +94 -0
  27. package/dist/agent/agentPolicyResolver.js.map +1 -0
  28. package/dist/agent/agentRuntime.d.ts +12 -0
  29. package/dist/agent/agentRuntime.d.ts.map +1 -0
  30. package/dist/agent/agentRuntime.js +31 -0
  31. package/dist/agent/agentRuntime.js.map +1 -0
  32. package/dist/agent/agentToolRouter.d.ts +24 -0
  33. package/dist/agent/agentToolRouter.d.ts.map +1 -0
  34. package/dist/agent/agentToolRouter.js +89 -0
  35. package/dist/agent/agentToolRouter.js.map +1 -0
  36. package/dist/agent/guardianOperator.d.ts +35 -0
  37. package/dist/agent/guardianOperator.d.ts.map +1 -0
  38. package/dist/agent/guardianOperator.js +65 -0
  39. package/dist/agent/guardianOperator.js.map +1 -0
  40. package/dist/agent/index.d.ts +8 -0
  41. package/dist/agent/index.d.ts.map +1 -0
  42. package/dist/agent/index.js +14 -0
  43. package/dist/agent/index.js.map +1 -0
  44. package/dist/api/activityRoutes.d.ts +70 -0
  45. package/dist/api/activityRoutes.d.ts.map +1 -0
  46. package/dist/api/activityRoutes.js +100 -0
  47. package/dist/api/activityRoutes.js.map +1 -0
  48. package/dist/api/agentRoutes.d.ts +16 -0
  49. package/dist/api/agentRoutes.d.ts.map +1 -0
  50. package/dist/api/agentRoutes.js +37 -0
  51. package/dist/api/agentRoutes.js.map +1 -0
  52. package/dist/api/broadcastRoutes.d.ts +34 -0
  53. package/dist/api/broadcastRoutes.d.ts.map +1 -0
  54. package/dist/api/broadcastRoutes.js +147 -0
  55. package/dist/api/broadcastRoutes.js.map +1 -0
  56. package/dist/api/consolePage.d.ts +2 -0
  57. package/dist/api/consolePage.d.ts.map +1 -0
  58. package/dist/api/consolePage.js +206 -0
  59. package/dist/api/consolePage.js.map +1 -0
  60. package/dist/api/httpHardening.d.ts +75 -0
  61. package/dist/api/httpHardening.d.ts.map +1 -0
  62. package/dist/api/httpHardening.js +122 -0
  63. package/dist/api/httpHardening.js.map +1 -0
  64. package/dist/api/indexerRoutes.d.ts +46 -0
  65. package/dist/api/indexerRoutes.d.ts.map +1 -0
  66. package/dist/api/indexerRoutes.js +75 -0
  67. package/dist/api/indexerRoutes.js.map +1 -0
  68. package/dist/api/paidRoutes.d.ts +8 -0
  69. package/dist/api/paidRoutes.d.ts.map +1 -0
  70. package/dist/api/paidRoutes.js +175 -0
  71. package/dist/api/paidRoutes.js.map +1 -0
  72. package/dist/api/prepareRoutes.d.ts +58 -0
  73. package/dist/api/prepareRoutes.d.ts.map +1 -0
  74. package/dist/api/prepareRoutes.js +90 -0
  75. package/dist/api/prepareRoutes.js.map +1 -0
  76. package/dist/api/response.d.ts +39 -0
  77. package/dist/api/response.d.ts.map +1 -0
  78. package/dist/api/response.js +53 -0
  79. package/dist/api/response.js.map +1 -0
  80. package/dist/api/routes.d.ts +175 -0
  81. package/dist/api/routes.d.ts.map +1 -0
  82. package/dist/api/routes.js +276 -0
  83. package/dist/api/routes.js.map +1 -0
  84. package/dist/api/schemas.d.ts +147 -0
  85. package/dist/api/schemas.d.ts.map +1 -0
  86. package/dist/api/schemas.js +81 -0
  87. package/dist/api/schemas.js.map +1 -0
  88. package/dist/api/server.d.ts +11 -0
  89. package/dist/api/server.d.ts.map +1 -0
  90. package/dist/api/server.js +505 -0
  91. package/dist/api/server.js.map +1 -0
  92. package/dist/api/toolRoutes.d.ts +14 -0
  93. package/dist/api/toolRoutes.d.ts.map +1 -0
  94. package/dist/api/toolRoutes.js +138 -0
  95. package/dist/api/toolRoutes.js.map +1 -0
  96. package/dist/api/walletPrepareRoutes.d.ts +74 -0
  97. package/dist/api/walletPrepareRoutes.d.ts.map +1 -0
  98. package/dist/api/walletPrepareRoutes.js +127 -0
  99. package/dist/api/walletPrepareRoutes.js.map +1 -0
  100. package/dist/api/x402Gate.d.ts +51 -0
  101. package/dist/api/x402Gate.d.ts.map +1 -0
  102. package/dist/api/x402Gate.js +184 -0
  103. package/dist/api/x402Gate.js.map +1 -0
  104. package/dist/cli.d.ts +5 -5
  105. package/dist/cli.d.ts.map +1 -1
  106. package/dist/cli.js +154 -124
  107. package/dist/cli.js.map +1 -1
  108. package/dist/data/ecosystemRegistry.data.d.ts +3 -0
  109. package/dist/data/ecosystemRegistry.data.d.ts.map +1 -0
  110. package/dist/data/ecosystemRegistry.data.js +582 -0
  111. package/dist/data/ecosystemRegistry.data.js.map +1 -0
  112. package/dist/demo.d.ts +1 -1
  113. package/dist/demo.d.ts.map +1 -1
  114. package/dist/demo.js +206 -171
  115. package/dist/demo.js.map +1 -1
  116. package/dist/index.d.ts +2 -2
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +249 -164
  119. package/dist/index.js.map +1 -1
  120. package/dist/init.d.ts +1 -1
  121. package/dist/init.d.ts.map +1 -1
  122. package/dist/init.js +127 -65
  123. package/dist/init.js.map +1 -1
  124. package/dist/lib/analysis/approval.d.ts +29 -0
  125. package/dist/lib/analysis/approval.d.ts.map +1 -0
  126. package/dist/lib/analysis/approval.js +162 -0
  127. package/dist/lib/analysis/approval.js.map +1 -0
  128. package/dist/lib/analysis/calldata.d.ts +60 -0
  129. package/dist/lib/analysis/calldata.d.ts.map +1 -0
  130. package/dist/lib/analysis/calldata.js +349 -0
  131. package/dist/lib/analysis/calldata.js.map +1 -0
  132. package/dist/lib/analysis/contractIntel.d.ts +65 -0
  133. package/dist/lib/analysis/contractIntel.d.ts.map +1 -0
  134. package/dist/lib/analysis/contractIntel.js +320 -0
  135. package/dist/lib/analysis/contractIntel.js.map +1 -0
  136. package/dist/lib/analysis/evm.d.ts +42 -0
  137. package/dist/lib/analysis/evm.d.ts.map +1 -0
  138. package/dist/lib/analysis/evm.js +185 -0
  139. package/dist/lib/analysis/evm.js.map +1 -0
  140. package/dist/lib/analysis/gas.d.ts +4 -0
  141. package/dist/lib/analysis/gas.d.ts.map +1 -0
  142. package/dist/lib/analysis/gas.js +13 -0
  143. package/dist/lib/analysis/gas.js.map +1 -0
  144. package/dist/lib/analysis/index.d.ts +11 -0
  145. package/dist/lib/analysis/index.d.ts.map +1 -0
  146. package/dist/lib/analysis/index.js +16 -0
  147. package/dist/lib/analysis/index.js.map +1 -0
  148. package/dist/lib/analysis/pharosTokens.d.ts +31 -0
  149. package/dist/lib/analysis/pharosTokens.d.ts.map +1 -0
  150. package/dist/lib/analysis/pharosTokens.js +78 -0
  151. package/dist/lib/analysis/pharosTokens.js.map +1 -0
  152. package/dist/lib/analysis/safeTx.d.ts +27 -0
  153. package/dist/lib/analysis/safeTx.d.ts.map +1 -0
  154. package/dist/lib/analysis/safeTx.js +118 -0
  155. package/dist/lib/analysis/safeTx.js.map +1 -0
  156. package/dist/lib/analysis/token.d.ts +21 -0
  157. package/dist/lib/analysis/token.d.ts.map +1 -0
  158. package/dist/lib/analysis/token.js +151 -0
  159. package/dist/lib/analysis/token.js.map +1 -0
  160. package/dist/lib/analysis/types.d.ts +49 -0
  161. package/dist/lib/analysis/types.d.ts.map +1 -0
  162. package/dist/lib/analysis/types.js +10 -0
  163. package/dist/lib/analysis/types.js.map +1 -0
  164. package/dist/lib/analysis/x402.d.ts +24 -0
  165. package/dist/lib/analysis/x402.d.ts.map +1 -0
  166. package/dist/lib/analysis/x402.js +60 -0
  167. package/dist/lib/analysis/x402.js.map +1 -0
  168. package/dist/lib/auditLog.d.ts +1 -0
  169. package/dist/lib/auditLog.d.ts.map +1 -1
  170. package/dist/lib/auditLog.js +0 -0
  171. package/dist/lib/auditLog.js.map +1 -1
  172. package/dist/lib/config.d.ts +77 -0
  173. package/dist/lib/config.d.ts.map +1 -0
  174. package/dist/lib/config.js +120 -0
  175. package/dist/lib/config.js.map +1 -0
  176. package/dist/lib/constants.d.ts +452 -291
  177. package/dist/lib/constants.d.ts.map +1 -1
  178. package/dist/lib/constants.js +509 -292
  179. package/dist/lib/constants.js.map +1 -1
  180. package/dist/lib/dodoApi.d.ts +101 -78
  181. package/dist/lib/dodoApi.d.ts.map +1 -1
  182. package/dist/lib/dodoApi.js +259 -196
  183. package/dist/lib/dodoApi.js.map +1 -1
  184. package/dist/lib/ecosystemRegistry.d.ts +116 -0
  185. package/dist/lib/ecosystemRegistry.d.ts.map +1 -0
  186. package/dist/lib/ecosystemRegistry.js +178 -0
  187. package/dist/lib/ecosystemRegistry.js.map +1 -0
  188. package/dist/lib/envLoader.d.ts +2 -0
  189. package/dist/lib/envLoader.d.ts.map +1 -0
  190. package/dist/lib/envLoader.js +65 -0
  191. package/dist/lib/envLoader.js.map +1 -0
  192. package/dist/lib/goldsky.d.ts +58 -0
  193. package/dist/lib/goldsky.d.ts.map +1 -0
  194. package/dist/lib/goldsky.js +275 -0
  195. package/dist/lib/goldsky.js.map +1 -0
  196. package/dist/lib/guardian/decision.d.ts +23 -0
  197. package/dist/lib/guardian/decision.d.ts.map +1 -0
  198. package/dist/lib/guardian/decision.js +40 -0
  199. package/dist/lib/guardian/decision.js.map +1 -0
  200. package/dist/lib/http.d.ts +13 -14
  201. package/dist/lib/http.d.ts.map +1 -1
  202. package/dist/lib/http.js +383 -118
  203. package/dist/lib/http.js.map +1 -1
  204. package/dist/lib/managedExecution.d.ts +19 -0
  205. package/dist/lib/managedExecution.d.ts.map +1 -0
  206. package/dist/lib/managedExecution.js +64 -0
  207. package/dist/lib/managedExecution.js.map +1 -0
  208. package/dist/lib/merkleBatcher.d.ts +23 -0
  209. package/dist/lib/merkleBatcher.d.ts.map +1 -0
  210. package/dist/lib/merkleBatcher.js +62 -0
  211. package/dist/lib/merkleBatcher.js.map +1 -0
  212. package/dist/lib/networks.d.ts +48 -0
  213. package/dist/lib/networks.d.ts.map +1 -0
  214. package/dist/lib/networks.js +103 -0
  215. package/dist/lib/networks.js.map +1 -0
  216. package/dist/lib/observability/accessContext.d.ts +29 -0
  217. package/dist/lib/observability/accessContext.d.ts.map +1 -0
  218. package/dist/lib/observability/accessContext.js +50 -0
  219. package/dist/lib/observability/accessContext.js.map +1 -0
  220. package/dist/lib/observability/activityStore.d.ts +70 -0
  221. package/dist/lib/observability/activityStore.d.ts.map +1 -0
  222. package/dist/lib/observability/activityStore.js +149 -0
  223. package/dist/lib/observability/activityStore.js.map +1 -0
  224. package/dist/lib/observability/apiKey.d.ts +55 -0
  225. package/dist/lib/observability/apiKey.d.ts.map +1 -0
  226. package/dist/lib/observability/apiKey.js +141 -0
  227. package/dist/lib/observability/apiKey.js.map +1 -0
  228. package/dist/lib/observability/logger.d.ts +30 -0
  229. package/dist/lib/observability/logger.d.ts.map +1 -0
  230. package/dist/lib/observability/logger.js +30 -0
  231. package/dist/lib/observability/logger.js.map +1 -0
  232. package/dist/lib/observability/quota.d.ts +33 -0
  233. package/dist/lib/observability/quota.d.ts.map +1 -0
  234. package/dist/lib/observability/quota.js +49 -0
  235. package/dist/lib/observability/quota.js.map +1 -0
  236. package/dist/lib/observability/requestId.d.ts +8 -0
  237. package/dist/lib/observability/requestId.d.ts.map +1 -0
  238. package/dist/lib/observability/requestId.js +24 -0
  239. package/dist/lib/observability/requestId.js.map +1 -0
  240. package/dist/lib/observability/sanitize.d.ts +77 -0
  241. package/dist/lib/observability/sanitize.d.ts.map +1 -0
  242. package/dist/lib/observability/sanitize.js +228 -0
  243. package/dist/lib/observability/sanitize.js.map +1 -0
  244. package/dist/lib/observability/scopes.d.ts +20 -0
  245. package/dist/lib/observability/scopes.d.ts.map +1 -0
  246. package/dist/lib/observability/scopes.js +77 -0
  247. package/dist/lib/observability/scopes.js.map +1 -0
  248. package/dist/lib/okxDexApi.d.ts +106 -0
  249. package/dist/lib/okxDexApi.d.ts.map +1 -0
  250. package/dist/lib/okxDexApi.js +221 -0
  251. package/dist/lib/okxDexApi.js.map +1 -0
  252. package/dist/lib/persistentJsonStore.d.ts +5 -0
  253. package/dist/lib/persistentJsonStore.d.ts.map +1 -0
  254. package/dist/lib/persistentJsonStore.js +39 -0
  255. package/dist/lib/persistentJsonStore.js.map +1 -0
  256. package/dist/lib/pharos/attestationPublisher.d.ts +50 -0
  257. package/dist/lib/pharos/attestationPublisher.d.ts.map +1 -0
  258. package/dist/lib/pharos/attestationPublisher.js +262 -0
  259. package/dist/lib/pharos/attestationPublisher.js.map +1 -0
  260. package/dist/lib/pharos/ecosystem.d.ts +52 -0
  261. package/dist/lib/pharos/ecosystem.d.ts.map +1 -0
  262. package/dist/lib/pharos/ecosystem.js +431 -0
  263. package/dist/lib/pharos/ecosystem.js.map +1 -0
  264. package/dist/lib/pharos/ecosystemEvidence.d.ts +53 -0
  265. package/dist/lib/pharos/ecosystemEvidence.d.ts.map +1 -0
  266. package/dist/lib/pharos/ecosystemEvidence.js +133 -0
  267. package/dist/lib/pharos/ecosystemEvidence.js.map +1 -0
  268. package/dist/lib/pharos/rpc.d.ts +44 -0
  269. package/dist/lib/pharos/rpc.d.ts.map +1 -0
  270. package/dist/lib/pharos/rpc.js +90 -0
  271. package/dist/lib/pharos/rpc.js.map +1 -0
  272. package/dist/lib/pharos/rpcEvidence.d.ts +49 -0
  273. package/dist/lib/pharos/rpcEvidence.d.ts.map +1 -0
  274. package/dist/lib/pharos/rpcEvidence.js +46 -0
  275. package/dist/lib/pharos/rpcEvidence.js.map +1 -0
  276. package/dist/lib/pharos/rpcMethods.d.ts +46 -0
  277. package/dist/lib/pharos/rpcMethods.d.ts.map +1 -0
  278. package/dist/lib/pharos/rpcMethods.js +176 -0
  279. package/dist/lib/pharos/rpcMethods.js.map +1 -0
  280. package/dist/lib/pharos/spvVerifier.d.ts +47 -0
  281. package/dist/lib/pharos/spvVerifier.d.ts.map +1 -0
  282. package/dist/lib/pharos/spvVerifier.js +105 -0
  283. package/dist/lib/pharos/spvVerifier.js.map +1 -0
  284. package/dist/lib/pharos/userSignedBroadcaster.d.ts +10 -0
  285. package/dist/lib/pharos/userSignedBroadcaster.d.ts.map +1 -0
  286. package/dist/lib/pharos/userSignedBroadcaster.js +50 -0
  287. package/dist/lib/pharos/userSignedBroadcaster.js.map +1 -0
  288. package/dist/lib/pharosClient.d.ts +53 -58
  289. package/dist/lib/pharosClient.d.ts.map +1 -1
  290. package/dist/lib/pharosClient.js +56 -63
  291. package/dist/lib/pharosClient.js.map +1 -1
  292. package/dist/lib/policy/actionPolicyEngine.d.ts +89 -53
  293. package/dist/lib/policy/actionPolicyEngine.d.ts.map +1 -1
  294. package/dist/lib/policy/actionPolicyEngine.js +373 -212
  295. package/dist/lib/policy/actionPolicyEngine.js.map +1 -1
  296. package/dist/lib/policy/agentPolicy.d.ts +29 -0
  297. package/dist/lib/policy/agentPolicy.d.ts.map +1 -0
  298. package/dist/lib/policy/agentPolicy.js +154 -0
  299. package/dist/lib/policy/agentPolicy.js.map +1 -0
  300. package/dist/lib/policy/policyPresets.d.ts +30 -0
  301. package/dist/lib/policy/policyPresets.d.ts.map +1 -0
  302. package/dist/lib/policy/policyPresets.js +124 -0
  303. package/dist/lib/policy/policyPresets.js.map +1 -0
  304. package/dist/lib/policy/writeExecutionGate.d.ts +23 -0
  305. package/dist/lib/policy/writeExecutionGate.d.ts.map +1 -0
  306. package/dist/lib/policy/writeExecutionGate.js +65 -0
  307. package/dist/lib/policy/writeExecutionGate.js.map +1 -0
  308. package/dist/lib/preparedTxStore.d.ts +21 -0
  309. package/dist/lib/preparedTxStore.d.ts.map +1 -0
  310. package/dist/lib/preparedTxStore.js +90 -0
  311. package/dist/lib/preparedTxStore.js.map +1 -0
  312. package/dist/lib/price/chainlinkPushProvider.d.ts +34 -0
  313. package/dist/lib/price/chainlinkPushProvider.d.ts.map +1 -0
  314. package/dist/lib/price/chainlinkPushProvider.js +36 -0
  315. package/dist/lib/price/chainlinkPushProvider.js.map +1 -0
  316. package/dist/lib/price/feedRegistry.d.ts +26 -0
  317. package/dist/lib/price/feedRegistry.d.ts.map +1 -0
  318. package/dist/lib/price/feedRegistry.js +67 -0
  319. package/dist/lib/price/feedRegistry.js.map +1 -0
  320. package/dist/lib/price/priceResolver.d.ts +35 -0
  321. package/dist/lib/price/priceResolver.d.ts.map +1 -0
  322. package/dist/lib/price/priceResolver.js +246 -0
  323. package/dist/lib/price/priceResolver.js.map +1 -0
  324. package/dist/lib/price/supraProvider.d.ts +9 -0
  325. package/dist/lib/price/supraProvider.d.ts.map +1 -0
  326. package/dist/lib/price/supraProvider.js +17 -0
  327. package/dist/lib/price/supraProvider.js.map +1 -0
  328. package/dist/lib/price/types.d.ts +67 -0
  329. package/dist/lib/price/types.d.ts.map +1 -0
  330. package/dist/lib/price/types.js +7 -0
  331. package/dist/lib/price/types.js.map +1 -0
  332. package/dist/lib/productionGuards.d.ts +16 -0
  333. package/dist/lib/productionGuards.d.ts.map +1 -0
  334. package/dist/lib/productionGuards.js +93 -0
  335. package/dist/lib/productionGuards.js.map +1 -0
  336. package/dist/lib/recipientSafety.d.ts +5 -0
  337. package/dist/lib/recipientSafety.d.ts.map +1 -0
  338. package/dist/lib/recipientSafety.js +28 -0
  339. package/dist/lib/recipientSafety.js.map +1 -0
  340. package/dist/lib/riskEngine.d.ts +45 -26
  341. package/dist/lib/riskEngine.d.ts.map +1 -1
  342. package/dist/lib/riskEngine.js +346 -283
  343. package/dist/lib/riskEngine.js.map +1 -1
  344. package/dist/lib/riskInclusion.d.ts +72 -0
  345. package/dist/lib/riskInclusion.d.ts.map +1 -0
  346. package/dist/lib/riskInclusion.js +252 -0
  347. package/dist/lib/riskInclusion.js.map +1 -0
  348. package/dist/lib/safeHandsRegistry.d.ts +32 -0
  349. package/dist/lib/safeHandsRegistry.d.ts.map +1 -0
  350. package/dist/lib/safeHandsRegistry.js +151 -0
  351. package/dist/lib/safeHandsRegistry.js.map +1 -0
  352. package/dist/lib/signer/index.d.ts +24 -24
  353. package/dist/lib/signer/index.d.ts.map +1 -1
  354. package/dist/lib/signer/index.js +110 -88
  355. package/dist/lib/signer/index.js.map +1 -1
  356. package/dist/lib/spendAccumulator.d.ts +24 -1
  357. package/dist/lib/spendAccumulator.d.ts.map +1 -1
  358. package/dist/lib/spendAccumulator.js +76 -6
  359. package/dist/lib/spendAccumulator.js.map +1 -1
  360. package/dist/lib/toolResponse.d.ts +30 -25
  361. package/dist/lib/toolResponse.d.ts.map +1 -1
  362. package/dist/lib/toolResponse.js +57 -53
  363. package/dist/lib/toolResponse.js.map +1 -1
  364. package/dist/lib/validation.d.ts +7 -0
  365. package/dist/lib/validation.d.ts.map +1 -0
  366. package/dist/lib/validation.js +62 -0
  367. package/dist/lib/validation.js.map +1 -0
  368. package/dist/lib/wallet/index.d.ts +33 -37
  369. package/dist/lib/wallet/index.d.ts.map +1 -1
  370. package/dist/lib/wallet/index.js +141 -128
  371. package/dist/lib/wallet/index.js.map +1 -1
  372. package/dist/lib/x402ReplayStore.d.ts +6 -0
  373. package/dist/lib/x402ReplayStore.d.ts.map +1 -0
  374. package/dist/lib/x402ReplayStore.js +79 -0
  375. package/dist/lib/x402ReplayStore.js.map +1 -0
  376. package/dist/safehands.zip +0 -0
  377. package/dist/sdk.d.ts +14 -0
  378. package/dist/sdk.d.ts.map +1 -0
  379. package/dist/sdk.js +25 -0
  380. package/dist/sdk.js.map +1 -0
  381. package/dist/tools/approveToken.d.ts +66 -45
  382. package/dist/tools/approveToken.d.ts.map +1 -1
  383. package/dist/tools/approveToken.js +152 -85
  384. package/dist/tools/approveToken.js.map +1 -1
  385. package/dist/tools/assessRisk.d.ts +66 -79
  386. package/dist/tools/assessRisk.d.ts.map +1 -1
  387. package/dist/tools/assessRisk.js +63 -104
  388. package/dist/tools/assessRisk.js.map +1 -1
  389. package/dist/tools/checkAllowance.d.ts +49 -43
  390. package/dist/tools/checkAllowance.d.ts.map +1 -1
  391. package/dist/tools/checkAllowance.js +78 -56
  392. package/dist/tools/checkAllowance.js.map +1 -1
  393. package/dist/tools/checkTokenSecurity.d.ts +103 -46
  394. package/dist/tools/checkTokenSecurity.d.ts.map +1 -1
  395. package/dist/tools/checkTokenSecurity.js +240 -95
  396. package/dist/tools/checkTokenSecurity.js.map +1 -1
  397. package/dist/tools/createAgentWallet.d.ts +30 -26
  398. package/dist/tools/createAgentWallet.d.ts.map +1 -1
  399. package/dist/tools/createAgentWallet.js +87 -58
  400. package/dist/tools/createAgentWallet.js.map +1 -1
  401. package/dist/tools/estimateGas.d.ts +84 -79
  402. package/dist/tools/estimateGas.d.ts.map +1 -1
  403. package/dist/tools/estimateGas.js +130 -124
  404. package/dist/tools/estimateGas.js.map +1 -1
  405. package/dist/tools/executeSwap.d.ts +109 -61
  406. package/dist/tools/executeSwap.d.ts.map +1 -1
  407. package/dist/tools/executeSwap.js +289 -141
  408. package/dist/tools/executeSwap.js.map +1 -1
  409. package/dist/tools/explainRisk.d.ts +29 -29
  410. package/dist/tools/explainRisk.d.ts.map +1 -1
  411. package/dist/tools/explainRisk.js +33 -32
  412. package/dist/tools/explainRisk.js.map +1 -1
  413. package/dist/tools/getAgentPolicy.d.ts +15 -0
  414. package/dist/tools/getAgentPolicy.d.ts.map +1 -0
  415. package/dist/tools/getAgentPolicy.js +16 -0
  416. package/dist/tools/getAgentPolicy.js.map +1 -0
  417. package/dist/tools/getAgentReputation.d.ts +31 -0
  418. package/dist/tools/getAgentReputation.d.ts.map +1 -0
  419. package/dist/tools/getAgentReputation.js +44 -0
  420. package/dist/tools/getAgentReputation.js.map +1 -0
  421. package/dist/tools/getAgentWallet.d.ts +21 -21
  422. package/dist/tools/getAgentWallet.d.ts.map +1 -1
  423. package/dist/tools/getAgentWallet.js +37 -27
  424. package/dist/tools/getAgentWallet.js.map +1 -1
  425. package/dist/tools/getAgentWalletBalance.d.ts +11 -11
  426. package/dist/tools/getAgentWalletBalance.d.ts.map +1 -1
  427. package/dist/tools/getAgentWalletBalance.js +102 -70
  428. package/dist/tools/getAgentWalletBalance.js.map +1 -1
  429. package/dist/tools/getExecutionHistory.d.ts +49 -49
  430. package/dist/tools/getExecutionHistory.d.ts.map +1 -1
  431. package/dist/tools/getExecutionHistory.js +148 -154
  432. package/dist/tools/getExecutionHistory.js.map +1 -1
  433. package/dist/tools/getGasPrice.d.ts +43 -43
  434. package/dist/tools/getGasPrice.d.ts.map +0 -0
  435. package/dist/tools/getGasPrice.js +59 -59
  436. package/dist/tools/getGasPrice.js.map +1 -1
  437. package/dist/tools/getPoolInfo.d.ts +75 -75
  438. package/dist/tools/getPoolInfo.d.ts.map +1 -1
  439. package/dist/tools/getPoolInfo.js +142 -137
  440. package/dist/tools/getPoolInfo.js.map +1 -1
  441. package/dist/tools/getSpvProof.d.ts +24 -0
  442. package/dist/tools/getSpvProof.d.ts.map +1 -0
  443. package/dist/tools/getSpvProof.js +64 -0
  444. package/dist/tools/getSpvProof.js.map +1 -0
  445. package/dist/tools/getTokenPrice.d.ts +56 -113
  446. package/dist/tools/getTokenPrice.d.ts.map +1 -1
  447. package/dist/tools/getTokenPrice.js +110 -117
  448. package/dist/tools/getTokenPrice.js.map +1 -1
  449. package/dist/tools/getTransactionStatus.d.ts +43 -43
  450. package/dist/tools/getTransactionStatus.d.ts.map +0 -0
  451. package/dist/tools/getTransactionStatus.js +59 -59
  452. package/dist/tools/getTransactionStatus.js.map +0 -0
  453. package/dist/tools/getWalletBalance.d.ts +103 -68
  454. package/dist/tools/getWalletBalance.d.ts.map +1 -1
  455. package/dist/tools/getWalletBalance.js +127 -87
  456. package/dist/tools/getWalletBalance.js.map +1 -1
  457. package/dist/tools/publishRiskScore.d.ts +85 -63
  458. package/dist/tools/publishRiskScore.d.ts.map +1 -1
  459. package/dist/tools/publishRiskScore.js +136 -88
  460. package/dist/tools/publishRiskScore.js.map +1 -1
  461. package/dist/tools/queryGoldsky.d.ts +20 -0
  462. package/dist/tools/queryGoldsky.d.ts.map +1 -0
  463. package/dist/tools/queryGoldsky.js +29 -0
  464. package/dist/tools/queryGoldsky.js.map +1 -0
  465. package/dist/tools/queryRiskRegistry.d.ts +38 -38
  466. package/dist/tools/queryRiskRegistry.d.ts.map +1 -1
  467. package/dist/tools/queryRiskRegistry.js +59 -55
  468. package/dist/tools/queryRiskRegistry.js.map +1 -1
  469. package/dist/tools/safehandsPreflightCheck.d.ts +92 -77
  470. package/dist/tools/safehandsPreflightCheck.d.ts.map +1 -1
  471. package/dist/tools/safehandsPreflightCheck.js +174 -47
  472. package/dist/tools/safehandsPreflightCheck.js.map +1 -1
  473. package/dist/tools/safehandsRiskReport.d.ts +96 -81
  474. package/dist/tools/safehandsRiskReport.d.ts.map +1 -1
  475. package/dist/tools/safehandsRiskReport.js +48 -28
  476. package/dist/tools/safehandsRiskReport.js.map +1 -1
  477. package/dist/tools/safehandsSafeExecute.d.ts +20 -20
  478. package/dist/tools/safehandsSafeExecute.d.ts.map +1 -1
  479. package/dist/tools/safehandsSafeExecute.js +164 -81
  480. package/dist/tools/safehandsSafeExecute.js.map +1 -1
  481. package/dist/tools/safehandsWalletHealth.d.ts +28 -14
  482. package/dist/tools/safehandsWalletHealth.d.ts.map +1 -1
  483. package/dist/tools/safehandsWalletHealth.js +145 -103
  484. package/dist/tools/safehandsWalletHealth.js.map +1 -1
  485. package/dist/tools/safehandsX402Preflight.d.ts +26 -26
  486. package/dist/tools/safehandsX402Preflight.d.ts.map +1 -1
  487. package/dist/tools/safehandsX402Preflight.js +86 -65
  488. package/dist/tools/safehandsX402Preflight.js.map +1 -1
  489. package/dist/tools/sendPayment.d.ts +63 -57
  490. package/dist/tools/sendPayment.d.ts.map +1 -1
  491. package/dist/tools/sendPayment.js +144 -117
  492. package/dist/tools/sendPayment.js.map +1 -1
  493. package/dist/tools/setAgentPolicy.d.ts +75 -0
  494. package/dist/tools/setAgentPolicy.d.ts.map +1 -0
  495. package/dist/tools/setAgentPolicy.js +80 -0
  496. package/dist/tools/setAgentPolicy.js.map +1 -0
  497. package/dist/tools/simulateTransaction.d.ts +64 -60
  498. package/dist/tools/simulateTransaction.d.ts.map +1 -1
  499. package/dist/tools/simulateTransaction.js +116 -83
  500. package/dist/tools/simulateTransaction.js.map +1 -1
  501. package/dist/tools/tokenRegistryStatus.d.ts +46 -26
  502. package/dist/tools/tokenRegistryStatus.d.ts.map +1 -1
  503. package/dist/tools/tokenRegistryStatus.js +126 -96
  504. package/dist/tools/tokenRegistryStatus.js.map +1 -1
  505. package/dist/tools/verifyRiskInclusion.d.ts +59 -0
  506. package/dist/tools/verifyRiskInclusion.d.ts.map +1 -0
  507. package/dist/tools/verifyRiskInclusion.js +40 -0
  508. package/dist/tools/verifyRiskInclusion.js.map +1 -0
  509. package/dist/tools/x402PayAndFetch.d.ts +87 -81
  510. package/dist/tools/x402PayAndFetch.d.ts.map +1 -1
  511. package/dist/tools/x402PayAndFetch.js +295 -152
  512. package/dist/tools/x402PayAndFetch.js.map +1 -1
  513. package/dist/worker.d.ts +3 -0
  514. package/dist/worker.d.ts.map +1 -0
  515. package/dist/worker.js +39 -0
  516. package/dist/worker.js.map +1 -0
  517. package/dist/x402Server.d.ts +1 -1
  518. package/dist/x402Server.d.ts.map +1 -1
  519. package/dist/x402Server.js +409 -252
  520. package/dist/x402Server.js.map +1 -1
  521. package/docs/REVIEWER_QUICKSTART.md +113 -0
  522. package/docs/SAFEHANDS_REVIEWER_DEMO_SCRIPT.md +228 -0
  523. package/package.json +130 -83
  524. package/contracts/RiskRegistry.json +0 -223
  525. package/contracts/RiskRegistry.sol +0 -58
  526. package/dist/lib/testDodoLive.d.ts +0 -2
  527. package/dist/lib/testDodoLive.d.ts.map +0 -1
  528. package/dist/lib/testDodoLive.js +0 -105
  529. package/dist/lib/testDodoLive.js.map +0 -1
  530. package/dist/lib/testLiveSafehands.d.ts +0 -2
  531. package/dist/lib/testLiveSafehands.d.ts.map +0 -1
  532. package/dist/lib/testLiveSafehands.js +0 -93
  533. package/dist/lib/testLiveSafehands.js.map +0 -1
  534. package/dist/lib/testRpc.d.ts +0 -2
  535. package/dist/lib/testRpc.d.ts.map +0 -1
  536. package/dist/lib/testRpc.js +0 -30
  537. package/dist/lib/testRpc.js.map +0 -1
  538. package/dist/lib/testRpcLive.d.ts +0 -2
  539. package/dist/lib/testRpcLive.d.ts.map +0 -1
  540. package/dist/lib/testRpcLive.js +0 -89
  541. package/dist/lib/testRpcLive.js.map +0 -1
  542. package/dist/lib/testTools.d.ts +0 -2
  543. package/dist/lib/testTools.d.ts.map +0 -1
  544. package/dist/lib/testTools.js +0 -398
  545. package/dist/lib/testTools.js.map +0 -1
  546. package/dist/lib/testX402Live.d.ts +0 -2
  547. package/dist/lib/testX402Live.d.ts.map +0 -1
  548. package/dist/lib/testX402Live.js +0 -160
  549. package/dist/lib/testX402Live.js.map +0 -1
  550. package/dist/scripts/checkDeploy.d.ts +0 -2
  551. package/dist/scripts/checkDeploy.d.ts.map +0 -1
  552. package/dist/scripts/checkDeploy.js +0 -25
  553. package/dist/scripts/checkDeploy.js.map +0 -1
  554. package/dist/scripts/deployRegistry.d.ts +0 -2
  555. package/dist/scripts/deployRegistry.d.ts.map +0 -1
  556. package/dist/scripts/deployRegistry.js +0 -101
  557. package/dist/scripts/deployRegistry.js.map +0 -1
  558. package/dist/scripts/testRegistry.d.ts +0 -2
  559. package/dist/scripts/testRegistry.d.ts.map +0 -1
  560. package/dist/scripts/testRegistry.js +0 -44
  561. package/dist/scripts/testRegistry.js.map +0 -1
  562. package/examples/dashboard/index.html +0 -337
  563. package/examples/pharos-skill-engine/SKILL.safehands.md +0 -85
  564. package/examples/pharos-skill-engine/assets/safehands/example-actions.json +0 -49
  565. package/examples/pharos-skill-engine/assets/safehands/policy-defaults.json +0 -11
  566. package/examples/pharos-skill-engine/references/safehands.md +0 -345
  567. package/examples/scenario-hack.ts +0 -38
  568. package/skill/SKILL.md +0 -133
  569. package/skill/assets/safehands/example-actions.json +0 -49
  570. package/skill/assets/safehands/policy-defaults.json +0 -11
  571. package/skill/references/safehands.md +0 -345
@@ -1,105 +1,64 @@
1
- // ─── Tool: assess_risk ─────────────────────────────────────────────────
2
- // Core risk assessment tool. Optional on-chain publishing uses SignerProvider
3
- // and never accepts or returns raw private keys.
4
- // ────────────────────────────────────────────────────────────────────────
5
- import { z } from "zod";
6
- import { assessRisk } from "../lib/riskEngine.js";
7
- import { createPharosWalletClientFromAccount, publicClient, getExplorerUrl } from "../lib/pharosClient.js";
8
- import { RISK_REGISTRY_ADDRESS, RISK_REGISTRY_ABI } from "../lib/constants.js";
9
- import { getSigner, isSignerFailure } from "../lib/signer/index.js";
10
- import { requireWriteToolsEnabled } from "../lib/toolResponse.js";
11
- export const assessRiskSchema = z.object({
12
- action: z.enum(["swap", "transfer"]),
13
- tokenIn: z.string().optional(),
14
- tokenOut: z.string().optional(),
15
- amount: z.string(),
16
- toAddress: z.string().optional(),
17
- walletAddress: z.string(),
18
- agentId: z.string().optional().describe("Managed testnet wallet agentId for optional registry publishing"),
19
- autoPublish: z.boolean().optional().default(false).describe("If true, publish to RiskRegistry through SignerProvider when write tools are enabled"),
20
- privateKey: z.string().optional().describe("Deprecated and ignored. Use SignerProvider via WALLET_MODE/agentId instead."),
21
- });
22
- export const assessRiskTool = {
23
- name: "assess_risk",
24
- description: "Evaluate risk of a planned on-chain action (swap or transfer). Returns 0-100 risk score with 5-dimension breakdown. " +
25
- "Optional RiskRegistry publishing uses SignerProvider when autoPublish=true.",
26
- inputSchema: assessRiskSchema,
27
- };
28
- export async function handleAssessRisk(raw) {
29
- const input = assessRiskSchema.parse(raw);
30
- if (input.action === "swap" && (!input.tokenIn || !input.tokenOut)) {
31
- throw new Error("Swap action requires both tokenIn and tokenOut");
32
- }
33
- if (input.action === "transfer" && !input.toAddress) {
34
- throw new Error("Transfer action requires toAddress");
35
- }
36
- const assessment = await assessRisk({
37
- action: input.action,
38
- tokenIn: input.tokenIn,
39
- tokenOut: input.tokenOut,
40
- amount: input.amount,
41
- toAddress: input.toAddress,
42
- walletAddress: input.walletAddress,
43
- });
44
- const result = { ...assessment };
45
- const wantsPublish = input.autoPublish || Boolean(input.privateKey);
46
- if (wantsPublish) {
47
- if (input.privateKey) {
48
- result.registryPublish = {
49
- published: false,
50
- error: "Direct privateKey input is deprecated and ignored. Use WALLET_MODE=managed-testnet with agentId or WALLET_MODE=env through SignerProvider.",
51
- };
52
- return result;
53
- }
54
- const writeGuard = requireWriteToolsEnabled("assess_risk_auto_publish");
55
- if (writeGuard) {
56
- result.registryPublish = { published: false, error: `${writeGuard.error.code}: ${writeGuard.error.message}` };
57
- return result;
58
- }
59
- const signer = await getSigner(input.agentId);
60
- if (isSignerFailure(signer)) {
61
- result.registryPublish = { published: false, error: `${signer.error.code}: ${signer.error.message}` };
62
- return result;
63
- }
64
- try {
65
- const wallet = createPharosWalletClientFromAccount(signer.account);
66
- const txHash = await wallet.writeContract({
67
- address: RISK_REGISTRY_ADDRESS,
68
- abi: RISK_REGISTRY_ABI,
69
- functionName: "publish",
70
- args: [
71
- input.walletAddress,
72
- BigInt(assessment.riskScore),
73
- assessment.riskLevel,
74
- assessment.recommendation,
75
- ],
76
- });
77
- const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
78
- if (receipt.status !== "success") {
79
- result.registryPublish = {
80
- published: false,
81
- txHash,
82
- explorerUrl: getExplorerUrl(txHash),
83
- error: "TX_REVERTED: transaction was mined but reverted. Ensure the calling wallet is authorized via RiskRegistry.setAuthorizedAgent() by the contract owner.",
84
- signerMode: signer.mode,
85
- };
86
- }
87
- else {
88
- result.registryPublish = {
89
- published: true,
90
- txHash,
91
- explorerUrl: getExplorerUrl(txHash),
92
- signerMode: signer.mode,
93
- };
94
- }
95
- }
96
- catch (err) {
97
- result.registryPublish = {
98
- published: false,
99
- error: `Registry publish failed: ${err.message}`,
100
- };
101
- }
102
- }
103
- return result;
104
- }
1
+ // ─── Tool: assess_risk ─────────────────────────────────────────────────
2
+ // Core risk assessment tool. Risk scoring / analysis ONLY — it never writes
3
+ // to any registry. To publish an attestation on-chain, use publish_risk_score
4
+ // (SafeHandsRegistry, gated by WRITE_TOOLS_ENABLED + signer + authorization).
5
+ // ────────────────────────────────────────────────────────────────────────
6
+ import { z } from "zod";
7
+ import { assessRisk } from "../lib/riskEngine.js";
8
+ import { fail, ok } from "../lib/toolResponse.js";
9
+ import { validatePositiveAmount, validateAddress } from "../lib/validation.js";
10
+ export const assessRiskSchema = z.object({
11
+ action: z.enum(["swap", "transfer"]),
12
+ tokenIn: z.string().optional(),
13
+ tokenOut: z.string().optional(),
14
+ amount: z.string(),
15
+ toAddress: z.string().optional(),
16
+ walletAddress: z.string(),
17
+ agentId: z.string().optional().describe("Optional agent identifier (informational only; assess_risk does not execute or publish)"),
18
+ privateKey: z.string().optional().describe("Deprecated and ignored. assess_risk never signs or publishes. Use publish_risk_score for on-chain attestation."),
19
+ }).strict();
20
+ export const assessRiskTool = {
21
+ name: "assess_risk",
22
+ description: "Evaluate risk of a planned on-chain action (swap or transfer). Returns 0-100 risk score with 5-dimension breakdown. " +
23
+ "Scoring and analysis only; does not publish on-chain. Use publish_risk_score to attest a result to SafeHandsRegistry.",
24
+ inputSchema: assessRiskSchema,
25
+ };
26
+ export async function handleAssessRisk(raw) {
27
+ let input;
28
+ try {
29
+ input = assessRiskSchema.parse(raw);
30
+ }
31
+ catch (err) {
32
+ const msg = err instanceof z.ZodError
33
+ ? err.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; ")
34
+ : String(err);
35
+ return fail("VALIDATION_ERROR", `assess_risk input validation failed: ${msg}`, false, "assess_risk");
36
+ }
37
+ const amtErr = validatePositiveAmount(input.amount, "amount");
38
+ if (amtErr)
39
+ return fail("VALIDATION_ERROR", amtErr, false, "assess_risk");
40
+ const addrErr = validateAddress(input.walletAddress, "walletAddress");
41
+ if (addrErr)
42
+ return fail("VALIDATION_ERROR", addrErr, false, "assess_risk");
43
+ if (input.action === "swap" && (!input.tokenIn || !input.tokenOut)) {
44
+ return fail("VALIDATION_ERROR", "Swap action requires both tokenIn and tokenOut.", false, "assess_risk");
45
+ }
46
+ if (input.action === "transfer") {
47
+ if (!input.toAddress) {
48
+ return fail("VALIDATION_ERROR", "Transfer action requires toAddress.", false, "assess_risk");
49
+ }
50
+ const toErr = validateAddress(input.toAddress, "toAddress");
51
+ if (toErr)
52
+ return fail("VALIDATION_ERROR", toErr, false, "assess_risk");
53
+ }
54
+ const assessment = await assessRisk({
55
+ action: input.action,
56
+ tokenIn: input.tokenIn,
57
+ tokenOut: input.tokenOut,
58
+ amount: input.amount,
59
+ toAddress: input.toAddress,
60
+ walletAddress: input.walletAddress,
61
+ });
62
+ return ok(assessment);
63
+ }
105
64
  //# sourceMappingURL=assessRisk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assessRisk.js","sourceRoot":"","sources":["../../src/tools/assessRisk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assessRisk.js","sourceRoot":"","sources":["../../src/tools/assessRisk.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,50 @@
1
- import { z } from "zod";
2
- export declare const checkAllowanceSchema: z.ZodObject<{
3
- walletAddress: z.ZodString;
4
- token: z.ZodEnum<["USDC", "USDT"]>;
5
- amount: z.ZodOptional<z.ZodString>;
6
- }, "strip", z.ZodTypeAny, {
7
- token: "USDC" | "USDT";
8
- walletAddress: string;
9
- amount?: string | undefined;
10
- }, {
11
- token: "USDC" | "USDT";
12
- walletAddress: string;
13
- amount?: string | undefined;
14
- }>;
15
- export type CheckAllowanceInput = z.input<typeof checkAllowanceSchema>;
16
- export declare const checkAllowanceTool: {
17
- name: string;
18
- description: string;
19
- inputSchema: z.ZodObject<{
20
- walletAddress: z.ZodString;
21
- token: z.ZodEnum<["USDC", "USDT"]>;
22
- amount: z.ZodOptional<z.ZodString>;
23
- }, "strip", z.ZodTypeAny, {
24
- token: "USDC" | "USDT";
25
- walletAddress: string;
26
- amount?: string | undefined;
27
- }, {
28
- token: "USDC" | "USDT";
29
- walletAddress: string;
30
- amount?: string | undefined;
31
- }>;
32
- };
33
- export declare function handleCheckAllowance(raw: CheckAllowanceInput): Promise<import("../lib/toolResponse.js").ToolSuccess<{
34
- token: "USDC" | "USDT";
35
- tokenAddress: "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5" | "0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8";
36
- walletAddress: string;
37
- spender: "0x4Cf317b8918FbE8A890c01eDAb7d548555Ac2cE9";
38
- allowance: string;
39
- allowanceRaw: string;
40
- isApproved: boolean;
41
- needsApproval: boolean;
42
- approvalNote: string;
43
- }>>;
1
+ import { z } from "zod";
2
+ export declare const checkAllowanceSchema: z.ZodObject<{
3
+ walletAddress: z.ZodString;
4
+ token: z.ZodEnum<["USDC", "USDT"]>;
5
+ amount: z.ZodOptional<z.ZodString>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ token: "USDC" | "USDT";
8
+ walletAddress: string;
9
+ amount?: string | undefined;
10
+ }, {
11
+ token: "USDC" | "USDT";
12
+ walletAddress: string;
13
+ amount?: string | undefined;
14
+ }>;
15
+ export type CheckAllowanceInput = z.input<typeof checkAllowanceSchema>;
16
+ export declare const checkAllowanceTool: {
17
+ name: string;
18
+ description: string;
19
+ inputSchema: z.ZodObject<{
20
+ walletAddress: z.ZodString;
21
+ token: z.ZodEnum<["USDC", "USDT"]>;
22
+ amount: z.ZodOptional<z.ZodString>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ token: "USDC" | "USDT";
25
+ walletAddress: string;
26
+ amount?: string | undefined;
27
+ }, {
28
+ token: "USDC" | "USDT";
29
+ walletAddress: string;
30
+ amount?: string | undefined;
31
+ }>;
32
+ };
33
+ export declare function handleCheckAllowance(raw: CheckAllowanceInput): Promise<import("../sdk.js").ToolFailure | import("../sdk.js").ToolSuccess<{
34
+ token: "USDC" | "USDT";
35
+ tokenAddress: `0x${string}`;
36
+ walletAddress: `0x${string}`;
37
+ spender: "0x4Cf317b8918FbE8A890c01eDAb7d548555Ac2cE9";
38
+ spenderRecognition: {
39
+ recognized: boolean;
40
+ label: string;
41
+ };
42
+ allowance: string;
43
+ allowanceRaw: string;
44
+ isApproved: boolean;
45
+ needsApproval: boolean;
46
+ approvalNote: string;
47
+ chainId: number;
48
+ environment: string;
49
+ }>>;
44
50
  //# sourceMappingURL=checkAllowance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkAllowance.d.ts","sourceRoot":"","sources":["../../src/tools/checkAllowance.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;CAK9B,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;IAyClE"}
1
+ {"version":3,"file":"checkAllowance.d.ts","sourceRoot":"","sources":["../../src/tools/checkAllowance.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;CAK9B,CAAC;AAaF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;;;;;;;IA2DlE"}
@@ -1,57 +1,79 @@
1
- // ─── Tool: check_allowance ─────────────────────────────────────────────
2
- // Checks ERC-20 token allowance for DODO_APPROVE_ADDRESS.
3
- // ────────────────────────────────────────────────────────────────────────
4
- import { z } from "zod";
5
- import { publicClient } from "../lib/pharosClient.js";
6
- import { DODO_APPROVE_ADDRESS, USDC_ADDRESS, USDT_ADDRESS, ERC20_ABI, } from "../lib/constants.js";
7
- import { formatUnits, parseUnits } from "viem";
8
- import { ok } from "../lib/toolResponse.js";
9
- export const checkAllowanceSchema = z.object({
10
- walletAddress: z.string().describe("Wallet address to check allowance for"),
11
- token: z.enum(["USDC", "USDT"]).describe("ERC-20 token to check"),
12
- amount: z.string().optional().describe("Human-readable swap/transfer amount to check against. When provided, needsApproval is exact (allowance < amount). When omitted, only checks allowance > 0."),
13
- });
14
- export const checkAllowanceTool = {
15
- name: "check_allowance",
16
- description: "Check ERC-20 token allowance granted to DODO_APPROVE_ADDRESS for swaps. Returns current allowance and whether approval is needed.",
17
- inputSchema: checkAllowanceSchema,
18
- };
19
- export async function handleCheckAllowance(raw) {
20
- const input = checkAllowanceSchema.parse(raw);
21
- const walletAddr = input.walletAddress;
22
- const tokenAddress = input.token === "USDC" ? USDC_ADDRESS : USDT_ADDRESS;
23
- const decimals = 6;
24
- const allowanceRaw = (await publicClient.readContract({
25
- address: tokenAddress,
26
- abi: ERC20_ABI,
27
- functionName: "allowance",
28
- args: [walletAddr, DODO_APPROVE_ADDRESS],
29
- }));
30
- const allowanceFormatted = formatUnits(allowanceRaw, decimals);
31
- let isApproved;
32
- let needsApproval;
33
- let approvalNote;
34
- if (input.amount !== undefined) {
35
- const requiredWei = parseUnits(input.amount, decimals);
36
- isApproved = allowanceRaw >= requiredWei;
37
- needsApproval = !isApproved;
38
- approvalNote = `Amount-aware: allowance ${allowanceFormatted} vs required ${input.amount}`;
39
- }
40
- else {
41
- isApproved = allowanceRaw > 0n;
42
- needsApproval = !isApproved;
43
- approvalNote = "Heuristic (no amount provided): any nonzero allowance counts as approved. Pass 'amount' for an exact check.";
44
- }
45
- return ok({
46
- token: input.token,
47
- tokenAddress,
48
- walletAddress: input.walletAddress,
49
- spender: DODO_APPROVE_ADDRESS,
50
- allowance: allowanceFormatted,
51
- allowanceRaw: allowanceRaw.toString(),
52
- isApproved,
53
- needsApproval,
54
- approvalNote,
55
- });
56
- }
1
+ // ─── Tool: check_allowance ─────────────────────────────────────────────
2
+ // Checks ERC-20 token allowance for DODO_APPROVE_ADDRESS.
3
+ // ────────────────────────────────────────────────────────────────────────
4
+ import { z } from "zod";
5
+ import { publicClient } from "../lib/pharosClient.js";
6
+ import { DODO_APPROVE_ADDRESS, ERC20_ABI, CHAIN_ID, PHAROS_ENVIRONMENT, activeTokenMap, activeTokenDecimals, } from "../lib/constants.js";
7
+ import { formatUnits, isAddress, parseUnits } from "viem";
8
+ import { ok, fail } from "../lib/toolResponse.js";
9
+ import { lookupCanonical } from "../lib/analysis/contractIntel.js";
10
+ export const checkAllowanceSchema = z.object({
11
+ walletAddress: z.string().describe("Wallet address to check allowance for"),
12
+ token: z.enum(["USDC", "USDT"]).describe("ERC-20 token to check"),
13
+ amount: z.string().optional().describe("Human-readable swap/transfer amount to check against. When provided, needsApproval is exact (allowance < amount). When omitted, only checks allowance > 0."),
14
+ });
15
+ export const checkAllowanceTool = {
16
+ name: "check_allowance",
17
+ description: "Check ERC-20 token allowance granted to DODO_APPROVE_ADDRESS for swaps. Returns current allowance and whether approval is needed.",
18
+ inputSchema: checkAllowanceSchema,
19
+ };
20
+ function resolveAllowanceToken(symbol) {
21
+ const map = activeTokenMap();
22
+ const decimalsMap = activeTokenDecimals();
23
+ const tokenAddress = map[symbol];
24
+ if (!tokenAddress)
25
+ return null;
26
+ return {
27
+ tokenAddress,
28
+ decimals: decimalsMap[symbol] ?? decimalsMap[tokenAddress.toLowerCase()] ?? 18,
29
+ };
30
+ }
31
+ export async function handleCheckAllowance(raw) {
32
+ const input = checkAllowanceSchema.parse(raw);
33
+ if (!isAddress(input.walletAddress)) {
34
+ return fail("INVALID_WALLET_ADDRESS", `Invalid wallet address: ${input.walletAddress}`, false, "check_allowance");
35
+ }
36
+ const resolved = resolveAllowanceToken(input.token);
37
+ if (!resolved) {
38
+ return fail("UNSUPPORTED_TOKEN", `${input.token} is not configured for ${PHAROS_ENVIRONMENT} (${CHAIN_ID}). No allowance query was made against a fallback/testnet address.`, false, "check_allowance");
39
+ }
40
+ const walletAddr = input.walletAddress;
41
+ const { tokenAddress, decimals } = resolved;
42
+ const allowanceRaw = (await publicClient.readContract({
43
+ address: tokenAddress,
44
+ abi: ERC20_ABI,
45
+ functionName: "allowance",
46
+ args: [walletAddr, DODO_APPROVE_ADDRESS],
47
+ }));
48
+ const allowanceFormatted = formatUnits(allowanceRaw, decimals);
49
+ let isApproved;
50
+ let needsApproval;
51
+ let approvalNote;
52
+ if (input.amount !== undefined) {
53
+ const requiredWei = parseUnits(input.amount, decimals);
54
+ isApproved = allowanceRaw >= requiredWei;
55
+ needsApproval = !isApproved;
56
+ approvalNote = `Amount-aware: allowance ${allowanceFormatted} vs required ${input.amount}`;
57
+ }
58
+ else {
59
+ isApproved = allowanceRaw > 0n;
60
+ needsApproval = !isApproved;
61
+ approvalNote = "Heuristic (no amount provided): any nonzero allowance counts as approved. Pass 'amount' for an exact check.";
62
+ }
63
+ const spenderCanonical = lookupCanonical(DODO_APPROVE_ADDRESS);
64
+ return ok({
65
+ token: input.token,
66
+ tokenAddress,
67
+ walletAddress: input.walletAddress,
68
+ spender: DODO_APPROVE_ADDRESS,
69
+ spenderRecognition: { recognized: Boolean(spenderCanonical), label: spenderCanonical?.label ?? "DODO/FaroSwap approve proxy (project-configured allowlist target; not registry-verified)" },
70
+ allowance: allowanceFormatted,
71
+ allowanceRaw: allowanceRaw.toString(),
72
+ isApproved,
73
+ needsApproval,
74
+ approvalNote,
75
+ chainId: CHAIN_ID,
76
+ environment: PHAROS_ENVIRONMENT,
77
+ });
78
+ }
57
79
  //# sourceMappingURL=checkAllowance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkAllowance.js","sourceRoot":"","sources":["../../src/tools/checkAllowance.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0DAA0D;AAC1D,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAQ,MAAM,wBAAwB,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC3E,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACjE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4JAA4J,CAAC;CACrM,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,mIAAmI;IACrI,WAAW,EAAE,oBAAoB;CAClC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAwB;IACjE,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,aAA8B,CAAC;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,CAAC;IAEnB,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;QACpD,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,UAAU,EAAE,oBAAoB,CAAC;KACzC,CAAC,CAAW,CAAC;IAEd,MAAM,kBAAkB,GAAG,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE/D,IAAI,UAAmB,CAAC;IACxB,IAAI,aAAsB,CAAC;IAC3B,IAAI,YAAoB,CAAC;IAEzB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,UAAU,GAAG,YAAY,IAAI,WAAW,CAAC;QACzC,aAAa,GAAG,CAAC,UAAU,CAAC;QAC5B,YAAY,GAAG,2BAA2B,kBAAkB,gBAAgB,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,YAAY,GAAG,EAAE,CAAC;QAC/B,aAAa,GAAG,CAAC,UAAU,CAAC;QAC5B,YAAY,GAAG,6GAA6G,CAAC;IAC/H,CAAC;IAED,OAAO,EAAE,CAAC;QACR,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY;QACZ,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,oBAAoB;QAC7B,SAAS,EAAE,kBAAkB;QAC7B,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;QACrC,UAAU;QACV,aAAa;QACb,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"checkAllowance.js","sourceRoot":"","sources":["../../src/tools/checkAllowance.ts"],"names":[],"mappings":"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"}
@@ -1,47 +1,104 @@
1
- import { z } from "zod";
2
- export declare const checkTokenSecuritySchema: z.ZodObject<{
3
- tokenAddress: z.ZodString;
4
- chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5
- }, "strip", z.ZodTypeAny, {
6
- tokenAddress: string;
7
- chainId: number;
8
- }, {
9
- tokenAddress: string;
10
- chainId?: number | undefined;
11
- }>;
12
- export type CheckTokenSecurityInput = z.input<typeof checkTokenSecuritySchema>;
13
- export declare const checkTokenSecurityTool: {
14
- name: string;
15
- description: string;
16
- inputSchema: z.ZodObject<{
17
- tokenAddress: z.ZodString;
18
- chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
19
- }, "strip", z.ZodTypeAny, {
20
- tokenAddress: string;
21
- chainId: number;
22
- }, {
23
- tokenAddress: string;
24
- chainId?: number | undefined;
25
- }>;
26
- };
27
- export declare function handleCheckTokenSecurity(raw: CheckTokenSecurityInput): Promise<import("../lib/toolResponse.js").ToolFailure | import("../lib/toolResponse.js").ToolSuccess<{
28
- chainId: number;
29
- environment: string;
30
- isMainnet: boolean;
31
- tokenAddress: `0x${string}`;
32
- securityProfile: {
33
- safetyScore: number;
34
- isHoneypot: boolean;
35
- buyTaxPercent: number;
36
- sellTaxPercent: number;
37
- isMintable: boolean;
38
- transferPausable: boolean;
39
- isProxy: boolean;
40
- ownerAddress: any;
41
- creatorAddress: any;
42
- };
43
- flags: string[];
44
- source: string;
45
- sourceStatus: string;
46
- }>>;
1
+ import { z } from "zod";
2
+ export declare const checkTokenSecuritySchema: z.ZodObject<{
3
+ tokenAddress: z.ZodString;
4
+ chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ chainId: number;
7
+ tokenAddress: string;
8
+ }, {
9
+ tokenAddress: string;
10
+ chainId?: number | undefined;
11
+ }>;
12
+ export type CheckTokenSecurityInput = z.input<typeof checkTokenSecuritySchema>;
13
+ export declare const checkTokenSecurityTool: {
14
+ name: string;
15
+ description: string;
16
+ inputSchema: z.ZodObject<{
17
+ tokenAddress: z.ZodString;
18
+ chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ chainId: number;
21
+ tokenAddress: string;
22
+ }, {
23
+ tokenAddress: string;
24
+ chainId?: number | undefined;
25
+ }>;
26
+ };
27
+ export interface GoplusTokenProfile {
28
+ /** Display-only identity metadata — never used in scoring or policy decisions. */
29
+ tokenName?: string;
30
+ tokenSymbol?: string;
31
+ isHoneypot: boolean;
32
+ buyTaxPercent: number;
33
+ sellTaxPercent: number;
34
+ isMintable: boolean;
35
+ transferPausable: boolean;
36
+ isProxy: boolean;
37
+ ownerAddress: string;
38
+ creatorAddress: string;
39
+ }
40
+ /**
41
+ * Parse a GoPlus token_security result entry into a normalized profile, or return
42
+ * `null` when the schema is unrecognized (the honeypot decision field is missing or
43
+ * not a boolean-ish value). Pure + synchronous so the fail-open guard is unit-testable
44
+ * with no network. Callers MUST treat null as "data unavailable" and fail closed.
45
+ */
46
+ export declare function interpretGoplusTokenResult(details: unknown): GoplusTokenProfile | null;
47
+ /**
48
+ * Best-effort, DISPLAY-ONLY token identity from GoPlus. Reads ONLY token_name /
49
+ * token_symbol and deliberately ignores the security schema: a payload that
50
+ * check_token_security fails closed on (e.g. is_honeypot missing) can still carry
51
+ * identity metadata. Never throws — returns {} on any timeout/network/parse failure.
52
+ * Unlike the security check (which keeps the stronger fetchGoplus retry path),
53
+ * this is optional enrichment: a single attempt with a short 3s timeout so it
54
+ * cannot make token_registry_status slow.
55
+ * MUST NOT be used for risk scoring, policy decisions, write gates, or
56
+ * allow/block logic; it does not verify anything about the token.
57
+ */
58
+ export declare function fetchGoplusTokenIdentity(tokenAddress: string, chainId?: number): Promise<{
59
+ tokenName?: string;
60
+ tokenSymbol?: string;
61
+ }>;
62
+ /**
63
+ * Network metadata for the tool response, derived from the ACTIVE network
64
+ * instead of a hardcoded `isMainnet: true` (which misreported on
65
+ * atlantic-testnet). Unknown chains report false. Pure + exported for tests.
66
+ */
67
+ export declare function tokenSecurityNetworkMetadata(chainId: number): {
68
+ chainId: number;
69
+ environment: string;
70
+ isMainnet: boolean;
71
+ };
72
+ export declare function handleCheckTokenSecurity(raw: CheckTokenSecurityInput): Promise<import("../sdk.js").ToolFailure | import("../sdk.js").ToolSuccess<{
73
+ tokenAddress: `0x${string}`;
74
+ tokenName: string | undefined;
75
+ tokenSymbol: string | undefined;
76
+ securityProfile: {
77
+ safetyScore: number;
78
+ isHoneypot: boolean;
79
+ buyTaxPercent: number;
80
+ sellTaxPercent: number;
81
+ isMintable: boolean;
82
+ transferPausable: boolean;
83
+ isProxy: boolean;
84
+ ownerAddress: string;
85
+ creatorAddress: string;
86
+ };
87
+ flags: string[];
88
+ source: string;
89
+ sourceStatus: string;
90
+ chainId: number;
91
+ environment: string;
92
+ isMainnet: boolean;
93
+ }>>;
94
+ export type TokenSecurityVerdict = "ok" | "review" | "block";
95
+ export interface TokenSecurityGateResult {
96
+ verdict: TokenSecurityVerdict;
97
+ /** Value to pass as evaluateActionPolicy input.tokenSecurityStatus. */
98
+ policyStatus: "ok" | "unknown" | "unavailable";
99
+ flags: string[];
100
+ safetyScore?: number;
101
+ detail?: string;
102
+ }
103
+ export declare function evaluateTokenSecurityGate(tokenAddress: string, chainId?: number): Promise<TokenSecurityGateResult>;
47
104
  //# sourceMappingURL=checkTokenSecurity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkTokenSecurity.d.ts","sourceRoot":"","sources":["../../src/tools/checkTokenSecurity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;CAKlC,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;IAkG1E"}
1
+ {"version":3,"file":"checkTokenSecurity.d.ts","sourceRoot":"","sources":["../../src/tools/checkTokenSecurity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;CAKlC,CAAC;AA+CF,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAiBtF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,OAAO,SAAW,GACjB,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0BvD;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,CAMA;AAED,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;aAXhE,MAAM;iBACF,MAAM;eACR,OAAO;IAuGnB;AAgBD,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,uEAAuE;IACvE,YAAY,EAAE,IAAI,GAAG,SAAS,GAAG,aAAa,CAAC;IAC/C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAUD,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,EACpB,OAAO,SAAW,GACjB,OAAO,CAAC,uBAAuB,CAAC,CA8BlC"}