@quantulabs/8004-mcp 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 (243) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +370 -0
  3. package/dist/chains/evm/index.d.ts +2 -0
  4. package/dist/chains/evm/index.d.ts.map +1 -0
  5. package/dist/chains/evm/index.js +3 -0
  6. package/dist/chains/evm/index.js.map +1 -0
  7. package/dist/chains/evm/provider.d.ts +48 -0
  8. package/dist/chains/evm/provider.d.ts.map +1 -0
  9. package/dist/chains/evm/provider.js +446 -0
  10. package/dist/chains/evm/provider.js.map +1 -0
  11. package/dist/chains/index.d.ts +3 -0
  12. package/dist/chains/index.d.ts.map +1 -0
  13. package/dist/chains/index.js +4 -0
  14. package/dist/chains/index.js.map +1 -0
  15. package/dist/chains/solana/data-source.d.ts +17 -0
  16. package/dist/chains/solana/data-source.d.ts.map +1 -0
  17. package/dist/chains/solana/data-source.js +65 -0
  18. package/dist/chains/solana/data-source.js.map +1 -0
  19. package/dist/chains/solana/index.d.ts +8 -0
  20. package/dist/chains/solana/index.d.ts.map +1 -0
  21. package/dist/chains/solana/index.js +9 -0
  22. package/dist/chains/solana/index.js.map +1 -0
  23. package/dist/chains/solana/parsers.d.ts +11 -0
  24. package/dist/chains/solana/parsers.d.ts.map +1 -0
  25. package/dist/chains/solana/parsers.js +94 -0
  26. package/dist/chains/solana/parsers.js.map +1 -0
  27. package/dist/chains/solana/provider.d.ts +33 -0
  28. package/dist/chains/solana/provider.d.ts.map +1 -0
  29. package/dist/chains/solana/provider.js +407 -0
  30. package/dist/chains/solana/provider.js.map +1 -0
  31. package/dist/chains/solana/state.d.ts +55 -0
  32. package/dist/chains/solana/state.d.ts.map +1 -0
  33. package/dist/chains/solana/state.js +162 -0
  34. package/dist/chains/solana/state.js.map +1 -0
  35. package/dist/chains/solana/tools/atom.d.ts +45 -0
  36. package/dist/chains/solana/tools/atom.d.ts.map +1 -0
  37. package/dist/chains/solana/tools/atom.js +115 -0
  38. package/dist/chains/solana/tools/atom.js.map +1 -0
  39. package/dist/chains/solana/tools/validation.d.ts +45 -0
  40. package/dist/chains/solana/tools/validation.d.ts.map +1 -0
  41. package/dist/chains/solana/tools/validation.js +212 -0
  42. package/dist/chains/solana/tools/validation.js.map +1 -0
  43. package/dist/chains/solana/tools/wallet.d.ts +45 -0
  44. package/dist/chains/solana/tools/wallet.d.ts.map +1 -0
  45. package/dist/chains/solana/tools/wallet.js +103 -0
  46. package/dist/chains/solana/tools/wallet.js.map +1 -0
  47. package/dist/config/defaults.d.ts +68 -0
  48. package/dist/config/defaults.d.ts.map +1 -0
  49. package/dist/config/defaults.js +247 -0
  50. package/dist/config/defaults.js.map +1 -0
  51. package/dist/config/env.d.ts +33 -0
  52. package/dist/config/env.d.ts.map +1 -0
  53. package/dist/config/env.js +42 -0
  54. package/dist/config/env.js.map +1 -0
  55. package/dist/config/index.d.ts +3 -0
  56. package/dist/config/index.d.ts.map +1 -0
  57. package/dist/config/index.js +3 -0
  58. package/dist/config/index.js.map +1 -0
  59. package/dist/core/cache/agent-cache.d.ts +36 -0
  60. package/dist/core/cache/agent-cache.d.ts.map +1 -0
  61. package/dist/core/cache/agent-cache.js +87 -0
  62. package/dist/core/cache/agent-cache.js.map +1 -0
  63. package/dist/core/cache/data-source.d.ts +31 -0
  64. package/dist/core/cache/data-source.d.ts.map +1 -0
  65. package/dist/core/cache/data-source.js +6 -0
  66. package/dist/core/cache/data-source.js.map +1 -0
  67. package/dist/core/cache/index.d.ts +7 -0
  68. package/dist/core/cache/index.d.ts.map +1 -0
  69. package/dist/core/cache/index.js +9 -0
  70. package/dist/core/cache/index.js.map +1 -0
  71. package/dist/core/cache/lazy-cache.d.ts +30 -0
  72. package/dist/core/cache/lazy-cache.d.ts.map +1 -0
  73. package/dist/core/cache/lazy-cache.js +79 -0
  74. package/dist/core/cache/lazy-cache.js.map +1 -0
  75. package/dist/core/cache/slim-store.d.ts +66 -0
  76. package/dist/core/cache/slim-store.d.ts.map +1 -0
  77. package/dist/core/cache/slim-store.js +285 -0
  78. package/dist/core/cache/slim-store.js.map +1 -0
  79. package/dist/core/cache/sqlite-store.d.ts +99 -0
  80. package/dist/core/cache/sqlite-store.d.ts.map +1 -0
  81. package/dist/core/cache/sqlite-store.js +470 -0
  82. package/dist/core/cache/sqlite-store.js.map +1 -0
  83. package/dist/core/cache/sync-manager.d.ts +38 -0
  84. package/dist/core/cache/sync-manager.d.ts.map +1 -0
  85. package/dist/core/cache/sync-manager.js +213 -0
  86. package/dist/core/cache/sync-manager.js.map +1 -0
  87. package/dist/core/errors/index.d.ts +2 -0
  88. package/dist/core/errors/index.d.ts.map +1 -0
  89. package/dist/core/errors/index.js +2 -0
  90. package/dist/core/errors/index.js.map +1 -0
  91. package/dist/core/errors/mcp-error.d.ts +39 -0
  92. package/dist/core/errors/mcp-error.d.ts.map +1 -0
  93. package/dist/core/errors/mcp-error.js +79 -0
  94. package/dist/core/errors/mcp-error.js.map +1 -0
  95. package/dist/core/interfaces/agent.d.ts +84 -0
  96. package/dist/core/interfaces/agent.d.ts.map +1 -0
  97. package/dist/core/interfaces/agent.js +40 -0
  98. package/dist/core/interfaces/agent.js.map +1 -0
  99. package/dist/core/interfaces/chain-provider.d.ts +50 -0
  100. package/dist/core/interfaces/chain-provider.d.ts.map +1 -0
  101. package/dist/core/interfaces/chain-provider.js +5 -0
  102. package/dist/core/interfaces/chain-provider.js.map +1 -0
  103. package/dist/core/interfaces/feedback.d.ts +46 -0
  104. package/dist/core/interfaces/feedback.d.ts.map +1 -0
  105. package/dist/core/interfaces/feedback.js +3 -0
  106. package/dist/core/interfaces/feedback.js.map +1 -0
  107. package/dist/core/interfaces/index.d.ts +6 -0
  108. package/dist/core/interfaces/index.d.ts.map +1 -0
  109. package/dist/core/interfaces/index.js +7 -0
  110. package/dist/core/interfaces/index.js.map +1 -0
  111. package/dist/core/interfaces/reputation.d.ts +47 -0
  112. package/dist/core/interfaces/reputation.d.ts.map +1 -0
  113. package/dist/core/interfaces/reputation.js +30 -0
  114. package/dist/core/interfaces/reputation.js.map +1 -0
  115. package/dist/core/interfaces/x402.d.ts +226 -0
  116. package/dist/core/interfaces/x402.d.ts.map +1 -0
  117. package/dist/core/interfaces/x402.js +120 -0
  118. package/dist/core/interfaces/x402.js.map +1 -0
  119. package/dist/core/parsers/common.d.ts +31 -0
  120. package/dist/core/parsers/common.d.ts.map +1 -0
  121. package/dist/core/parsers/common.js +185 -0
  122. package/dist/core/parsers/common.js.map +1 -0
  123. package/dist/core/parsers/index.d.ts +2 -0
  124. package/dist/core/parsers/index.d.ts.map +1 -0
  125. package/dist/core/parsers/index.js +2 -0
  126. package/dist/core/parsers/index.js.map +1 -0
  127. package/dist/core/registry/chain-registry.d.ts +26 -0
  128. package/dist/core/registry/chain-registry.d.ts.map +1 -0
  129. package/dist/core/registry/chain-registry.js +141 -0
  130. package/dist/core/registry/chain-registry.js.map +1 -0
  131. package/dist/core/registry/index.d.ts +3 -0
  132. package/dist/core/registry/index.d.ts.map +1 -0
  133. package/dist/core/registry/index.js +3 -0
  134. package/dist/core/registry/index.js.map +1 -0
  135. package/dist/core/registry/tool-registry.d.ts +23 -0
  136. package/dist/core/registry/tool-registry.d.ts.map +1 -0
  137. package/dist/core/registry/tool-registry.js +66 -0
  138. package/dist/core/registry/tool-registry.js.map +1 -0
  139. package/dist/core/serializers/common.d.ts +20 -0
  140. package/dist/core/serializers/common.d.ts.map +1 -0
  141. package/dist/core/serializers/common.js +76 -0
  142. package/dist/core/serializers/common.js.map +1 -0
  143. package/dist/core/serializers/index.d.ts +2 -0
  144. package/dist/core/serializers/index.d.ts.map +1 -0
  145. package/dist/core/serializers/index.js +2 -0
  146. package/dist/core/serializers/index.js.map +1 -0
  147. package/dist/core/services/index.d.ts +3 -0
  148. package/dist/core/services/index.d.ts.map +1 -0
  149. package/dist/core/services/index.js +3 -0
  150. package/dist/core/services/index.js.map +1 -0
  151. package/dist/core/services/ipfs-service.d.ts +59 -0
  152. package/dist/core/services/ipfs-service.d.ts.map +1 -0
  153. package/dist/core/services/ipfs-service.js +84 -0
  154. package/dist/core/services/ipfs-service.js.map +1 -0
  155. package/dist/core/utils/tags.d.ts +38 -0
  156. package/dist/core/utils/tags.d.ts.map +1 -0
  157. package/dist/core/utils/tags.js +77 -0
  158. package/dist/core/utils/tags.js.map +1 -0
  159. package/dist/core/utils/value-encoding.d.ts +36 -0
  160. package/dist/core/utils/value-encoding.d.ts.map +1 -0
  161. package/dist/core/utils/value-encoding.js +196 -0
  162. package/dist/core/utils/value-encoding.js.map +1 -0
  163. package/dist/core/wallet/index.d.ts +2 -0
  164. package/dist/core/wallet/index.d.ts.map +1 -0
  165. package/dist/core/wallet/index.js +3 -0
  166. package/dist/core/wallet/index.js.map +1 -0
  167. package/dist/core/wallet/wallet-manager.d.ts +86 -0
  168. package/dist/core/wallet/wallet-manager.d.ts.map +1 -0
  169. package/dist/core/wallet/wallet-manager.js +783 -0
  170. package/dist/core/wallet/wallet-manager.js.map +1 -0
  171. package/dist/core/x402/index.d.ts +2 -0
  172. package/dist/core/x402/index.d.ts.map +1 -0
  173. package/dist/core/x402/index.js +3 -0
  174. package/dist/core/x402/index.js.map +1 -0
  175. package/dist/core/x402/proof-validator.d.ts +57 -0
  176. package/dist/core/x402/proof-validator.d.ts.map +1 -0
  177. package/dist/core/x402/proof-validator.js +103 -0
  178. package/dist/core/x402/proof-validator.js.map +1 -0
  179. package/dist/index.d.ts +3 -0
  180. package/dist/index.d.ts.map +1 -0
  181. package/dist/index.js +135 -0
  182. package/dist/index.js.map +1 -0
  183. package/dist/state/global-state.d.ts +98 -0
  184. package/dist/state/global-state.d.ts.map +1 -0
  185. package/dist/state/global-state.js +258 -0
  186. package/dist/state/global-state.js.map +1 -0
  187. package/dist/tools/definitions.d.ts +10 -0
  188. package/dist/tools/definitions.d.ts.map +1 -0
  189. package/dist/tools/definitions.js +163 -0
  190. package/dist/tools/definitions.js.map +1 -0
  191. package/dist/tools/unified/agent.d.ts +5 -0
  192. package/dist/tools/unified/agent.d.ts.map +1 -0
  193. package/dist/tools/unified/agent.js +300 -0
  194. package/dist/tools/unified/agent.js.map +1 -0
  195. package/dist/tools/unified/cache.d.ts +5 -0
  196. package/dist/tools/unified/cache.d.ts.map +1 -0
  197. package/dist/tools/unified/cache.js +207 -0
  198. package/dist/tools/unified/cache.js.map +1 -0
  199. package/dist/tools/unified/collection.d.ts +5 -0
  200. package/dist/tools/unified/collection.d.ts.map +1 -0
  201. package/dist/tools/unified/collection.js +162 -0
  202. package/dist/tools/unified/collection.js.map +1 -0
  203. package/dist/tools/unified/config.d.ts +5 -0
  204. package/dist/tools/unified/config.d.ts.map +1 -0
  205. package/dist/tools/unified/config.js +217 -0
  206. package/dist/tools/unified/config.js.map +1 -0
  207. package/dist/tools/unified/crawler.d.ts +5 -0
  208. package/dist/tools/unified/crawler.d.ts.map +1 -0
  209. package/dist/tools/unified/crawler.js +212 -0
  210. package/dist/tools/unified/crawler.js.map +1 -0
  211. package/dist/tools/unified/feedback.d.ts +5 -0
  212. package/dist/tools/unified/feedback.d.ts.map +1 -0
  213. package/dist/tools/unified/feedback.js +274 -0
  214. package/dist/tools/unified/feedback.js.map +1 -0
  215. package/dist/tools/unified/ipfs.d.ts +5 -0
  216. package/dist/tools/unified/ipfs.d.ts.map +1 -0
  217. package/dist/tools/unified/ipfs.js +156 -0
  218. package/dist/tools/unified/ipfs.js.map +1 -0
  219. package/dist/tools/unified/oasf.d.ts +5 -0
  220. package/dist/tools/unified/oasf.d.ts.map +1 -0
  221. package/dist/tools/unified/oasf.js +167 -0
  222. package/dist/tools/unified/oasf.js.map +1 -0
  223. package/dist/tools/unified/registration.d.ts +5 -0
  224. package/dist/tools/unified/registration.d.ts.map +1 -0
  225. package/dist/tools/unified/registration.js +223 -0
  226. package/dist/tools/unified/registration.js.map +1 -0
  227. package/dist/tools/unified/reputation.d.ts +5 -0
  228. package/dist/tools/unified/reputation.d.ts.map +1 -0
  229. package/dist/tools/unified/reputation.js +121 -0
  230. package/dist/tools/unified/reputation.js.map +1 -0
  231. package/dist/tools/unified/wallet.d.ts +5 -0
  232. package/dist/tools/unified/wallet.d.ts.map +1 -0
  233. package/dist/tools/unified/wallet.js +434 -0
  234. package/dist/tools/unified/wallet.js.map +1 -0
  235. package/dist/tools/unified/write-operations.d.ts +5 -0
  236. package/dist/tools/unified/write-operations.d.ts.map +1 -0
  237. package/dist/tools/unified/write-operations.js +582 -0
  238. package/dist/tools/unified/write-operations.js.map +1 -0
  239. package/dist/tools/unified/x402.d.ts +5 -0
  240. package/dist/tools/unified/x402.d.ts.map +1 -0
  241. package/dist/tools/unified/x402.js +594 -0
  242. package/dist/tools/unified/x402.js.map +1 -0
  243. package/package.json +67 -0
@@ -0,0 +1,7 @@
1
+ // Core interfaces exports
2
+ export * from './agent.js';
3
+ export * from './feedback.js';
4
+ export * from './reputation.js';
5
+ export * from './chain-provider.js';
6
+ export * from './x402.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/interfaces/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,47 @@
1
+ export declare enum TrustTier {
2
+ Unrated = 0,
3
+ Bronze = 1,
4
+ Silver = 2,
5
+ Gold = 3,
6
+ Platinum = 4
7
+ }
8
+ export interface IReputationSummary {
9
+ agentId: string;
10
+ chainType: 'solana' | 'evm';
11
+ trustTier: TrustTier;
12
+ trustTierName: string;
13
+ qualityScore: number;
14
+ totalFeedbacks: number;
15
+ averageScore: number;
16
+ recentTrend?: 'up' | 'down' | 'stable';
17
+ lastFeedbackAt?: number;
18
+ }
19
+ export interface ILeaderboardEntry {
20
+ rank: number;
21
+ agentId: string;
22
+ globalId: string;
23
+ name: string;
24
+ chainType: 'solana' | 'evm';
25
+ trustTier: TrustTier;
26
+ qualityScore: number;
27
+ totalFeedbacks: number;
28
+ }
29
+ export interface ILeaderboardOptions {
30
+ chainType?: 'solana' | 'evm';
31
+ chainPrefix?: string;
32
+ collection?: string;
33
+ minFeedbacks?: number;
34
+ limit?: number;
35
+ offset?: number;
36
+ }
37
+ export interface ILeaderboardResult {
38
+ entries: ILeaderboardEntry[];
39
+ total: number;
40
+ hasMore: boolean;
41
+ }
42
+ export declare function getTrustTierName(tier: TrustTier): string;
43
+ export declare function getTrustTierThreshold(tier: TrustTier): {
44
+ minScore: number;
45
+ minFeedbacks: number;
46
+ };
47
+ //# sourceMappingURL=reputation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reputation.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces/reputation.ts"],"names":[],"mappings":"AAEA,oBAAY,SAAS;IACnB,OAAO,IAAI;IACX,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;IACR,QAAQ,IAAI;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CASxD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CASjG"}
@@ -0,0 +1,30 @@
1
+ // Reputation interfaces for multi-chain support
2
+ export var TrustTier;
3
+ (function (TrustTier) {
4
+ TrustTier[TrustTier["Unrated"] = 0] = "Unrated";
5
+ TrustTier[TrustTier["Bronze"] = 1] = "Bronze";
6
+ TrustTier[TrustTier["Silver"] = 2] = "Silver";
7
+ TrustTier[TrustTier["Gold"] = 3] = "Gold";
8
+ TrustTier[TrustTier["Platinum"] = 4] = "Platinum";
9
+ })(TrustTier || (TrustTier = {}));
10
+ export function getTrustTierName(tier) {
11
+ const names = {
12
+ [TrustTier.Unrated]: 'Unrated',
13
+ [TrustTier.Bronze]: 'Bronze',
14
+ [TrustTier.Silver]: 'Silver',
15
+ [TrustTier.Gold]: 'Gold',
16
+ [TrustTier.Platinum]: 'Platinum',
17
+ };
18
+ return names[tier] ?? 'Unknown';
19
+ }
20
+ export function getTrustTierThreshold(tier) {
21
+ const thresholds = {
22
+ [TrustTier.Unrated]: { minScore: 0, minFeedbacks: 0 },
23
+ [TrustTier.Bronze]: { minScore: 50, minFeedbacks: 5 },
24
+ [TrustTier.Silver]: { minScore: 65, minFeedbacks: 20 },
25
+ [TrustTier.Gold]: { minScore: 80, minFeedbacks: 50 },
26
+ [TrustTier.Platinum]: { minScore: 90, minFeedbacks: 100 },
27
+ };
28
+ return thresholds[tier] ?? { minScore: 0, minFeedbacks: 0 };
29
+ }
30
+ //# sourceMappingURL=reputation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reputation.js","sourceRoot":"","sources":["../../../src/core/interfaces/reputation.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,+CAAW,CAAA;IACX,6CAAU,CAAA;IACV,6CAAU,CAAA;IACV,yCAAQ,CAAA;IACR,iDAAY,CAAA;AACd,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAwCD,MAAM,UAAU,gBAAgB,CAAC,IAAe;IAC9C,MAAM,KAAK,GAA8B;QACvC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS;QAC9B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;QAC5B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;QAC5B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM;QACxB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU;KACjC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAe;IACnD,MAAM,UAAU,GAAkE;QAChF,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;QACrD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;QACrD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACtD,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACpD,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;KAC1D,CAAC;IACF,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,226 @@
1
+ import type { ChainType } from './agent.js';
2
+ export declare const SOLANA_GENESIS_HASHES: {
3
+ readonly mainnet: "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp";
4
+ readonly devnet: "EtWTRABZaYq6iMfeYKouRu166VU2xqa1";
5
+ readonly testnet: "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z";
6
+ };
7
+ /**
8
+ * Agent identity for x402 PaymentRequired responses
9
+ * Format follows CAIP-2 for registry addresses
10
+ */
11
+ export interface X402AgentIdentity {
12
+ /**
13
+ * Registry address in CAIP-2 format
14
+ * EVM: "eip155:<chainId>:<address>" (e.g., "eip155:8453:0x1234...")
15
+ * Solana: "solana:<genesisHash>:<programId>" (e.g., "solana:EtWTRA...:HHCVWc...")
16
+ */
17
+ agentRegistry: string;
18
+ /**
19
+ * Agent identifier
20
+ * EVM: Token ID (e.g., "123")
21
+ * Solana: Asset public key (base58)
22
+ */
23
+ agentId: string;
24
+ }
25
+ /**
26
+ * Proof of payment from x402 settlement
27
+ * Used to link feedback to actual payment transactions
28
+ */
29
+ export interface X402ProofOfPayment {
30
+ /**
31
+ * Payer address
32
+ * EVM: Hex address (0x...)
33
+ * Solana: Base58 public key
34
+ */
35
+ fromAddress: string;
36
+ /**
37
+ * Payee address
38
+ * EVM: Hex address (0x...)
39
+ * Solana: Base58 public key
40
+ */
41
+ toAddress: string;
42
+ /**
43
+ * Chain identifier
44
+ * EVM: Chain ID string (e.g., "8453" for Base)
45
+ * Solana: Genesis hash (e.g., "EtWTRABZaYq6iMfeYKouRu166VU2xqa1")
46
+ */
47
+ chainId: string;
48
+ /**
49
+ * Transaction hash/signature
50
+ * EVM: Hex transaction hash (0x...)
51
+ * Solana: Base58 transaction signature
52
+ */
53
+ txHash: string;
54
+ }
55
+ /**
56
+ * Settlement result from x402 payment flow
57
+ * Enriched information about the completed payment
58
+ */
59
+ export interface X402Settlement {
60
+ /** Whether the settlement succeeded */
61
+ success: boolean;
62
+ /** Transaction hash/signature (same as ProofOfPayment.txHash) */
63
+ transaction: string;
64
+ /** Network in CAIP-2 format (e.g., "eip155:8453" or "solana:EtWTRA...") */
65
+ network: string;
66
+ /** Settlement timestamp in ISO 8601 format */
67
+ settledAt: string;
68
+ }
69
+ /**
70
+ * x402 tag conventions for feedback categorization
71
+ */
72
+ export declare const X402_TAGS: {
73
+ readonly CLIENT_TAGS: {
74
+ readonly RESOURCE_DELIVERED: "x402-resource-delivered";
75
+ readonly DELIVERY_FAILED: "x402-delivery-failed";
76
+ readonly DELIVERY_TIMEOUT: "x402-delivery-timeout";
77
+ readonly QUALITY_ISSUE: "x402-quality-issue";
78
+ };
79
+ readonly SERVER_TAGS: {
80
+ readonly GOOD_PAYER: "x402-good-payer";
81
+ readonly PAYMENT_FAILED: "x402-payment-failed";
82
+ readonly INSUFFICIENT_FUNDS: "x402-insufficient-funds";
83
+ };
84
+ readonly NETWORK_TAGS: {
85
+ readonly EVM: "exact-evm";
86
+ readonly SVM: "exact-svm";
87
+ };
88
+ };
89
+ /**
90
+ * Feedback file structure for IPFS storage
91
+ * Conforms to x402 8004-reputation spec
92
+ */
93
+ export interface X402FeedbackFile {
94
+ /** Registry in CAIP-2 format */
95
+ agentRegistry: string;
96
+ /** Agent ID (token ID or pubkey) */
97
+ agentId: string;
98
+ /** Client address in CAIP-2 format (e.g., "solana:EtWTRA...:ClientPubkey...") */
99
+ clientAddress: string;
100
+ /** Feedback creation timestamp (ISO 8601) */
101
+ createdAt: string;
102
+ /** Raw metric value (serialized as string for JSON compatibility) */
103
+ value: string;
104
+ /** Decimal precision (0-6), default 0 */
105
+ valueDecimals?: number;
106
+ /** Feedback score (0-100), optional */
107
+ score?: number;
108
+ /** Primary tag - delivery/payment status */
109
+ tag1: string;
110
+ /** Secondary tag - network type */
111
+ tag2: string;
112
+ /** Agent endpoint that was called */
113
+ endpoint?: string;
114
+ /** Proof of payment linking feedback to transaction */
115
+ proofOfPayment: X402ProofOfPayment;
116
+ /** Optional enriched settlement information */
117
+ x402Settlement?: X402Settlement;
118
+ /** Optional comment */
119
+ comment?: string;
120
+ }
121
+ /**
122
+ * Input for x402_feedback_submit tool
123
+ */
124
+ export interface X402FeedbackSubmitInput {
125
+ /** Agent ID (global format like sol:xxx or chain:chainId:tokenId) */
126
+ agentId: string;
127
+ /** Raw metric value (required) */
128
+ value: bigint | number;
129
+ /** Decimal precision (0-6), default 0 */
130
+ valueDecimals?: number;
131
+ /** Feedback score (0-100), optional */
132
+ score?: number;
133
+ /** Primary tag (delivery/payment status) */
134
+ tag1: string;
135
+ /** Secondary tag (network type) */
136
+ tag2: string;
137
+ /** Agent endpoint that was called */
138
+ endpoint?: string;
139
+ /** Proof of payment */
140
+ proofOfPayment: X402ProofOfPayment;
141
+ /** Optional settlement info */
142
+ x402Settlement?: X402Settlement;
143
+ /** Optional comment */
144
+ comment?: string;
145
+ /** Validate proof on-chain (default: false) */
146
+ validateProof?: boolean;
147
+ /** Store feedback on IPFS (default: true) */
148
+ storeOnIpfs?: boolean;
149
+ /** Return unsigned transaction (default: false) */
150
+ skipSend?: boolean;
151
+ /** Signer public key if skipSend=true */
152
+ signer?: string;
153
+ /** Chain override (optional if using global ID) */
154
+ chain?: string;
155
+ }
156
+ /**
157
+ * Result from x402_feedback_submit when transaction is signed and sent
158
+ */
159
+ export interface X402FeedbackSubmitSignedResult {
160
+ unsigned: false;
161
+ signature: string;
162
+ feedbackHash: string;
163
+ feedbackUri?: string;
164
+ agentId: string;
165
+ value: string;
166
+ valueDecimals: number;
167
+ score?: number;
168
+ tag1: string;
169
+ tag2: string;
170
+ }
171
+ /**
172
+ * Result from x402_feedback_submit when skipSend=true (unsigned)
173
+ */
174
+ export interface X402FeedbackSubmitUnsignedResult {
175
+ unsigned: true;
176
+ /** Base64 serialized transaction (Solana) or transaction object (EVM) */
177
+ unsignedTx: string | X402EvmUnsignedTx;
178
+ feedbackHash: string;
179
+ feedbackUri?: string;
180
+ feedbackFile: X402FeedbackFile;
181
+ message: string;
182
+ hint: string;
183
+ }
184
+ /**
185
+ * EVM unsigned transaction object for external wallet signing
186
+ */
187
+ export interface X402EvmUnsignedTx {
188
+ to: string;
189
+ data: string;
190
+ chainId: number;
191
+ value: string;
192
+ }
193
+ export type X402FeedbackSubmitResult = X402FeedbackSubmitSignedResult | X402FeedbackSubmitUnsignedResult;
194
+ /**
195
+ * Helper to build CAIP-2 network identifier
196
+ */
197
+ export declare function buildCaip2Network(chainType: ChainType, chainId: string | number): string;
198
+ /**
199
+ * Helper to build agent registry CAIP-2 identifier
200
+ * @throws Error if registryAddress is undefined/empty (chain not deployed)
201
+ */
202
+ export declare function buildRegistryIdentifier(chainType: ChainType, chainId: string | number, registryAddress: string | undefined): string;
203
+ /**
204
+ * Helper to build client address CAIP-2 identifier
205
+ */
206
+ export declare function buildClientAddress(chainType: ChainType, chainIdOrCluster: string | number, address: string): string;
207
+ /**
208
+ * Convert X402FeedbackFile to a plain JSON-serializable object
209
+ */
210
+ export declare function feedbackFileToRecord(file: X402FeedbackFile): Record<string, unknown>;
211
+ /**
212
+ * Parse CAIP-2 network identifier
213
+ */
214
+ export declare function parseCaip2Network(network: string): {
215
+ namespace: 'eip155' | 'solana';
216
+ reference: string;
217
+ } | null;
218
+ /**
219
+ * Get chain type from network tag
220
+ */
221
+ export declare function getChainTypeFromNetworkTag(tag: string): ChainType | undefined;
222
+ /**
223
+ * Get network tag for chain type
224
+ */
225
+ export declare function getNetworkTagForChainType(chainType: ChainType): string;
226
+ //# sourceMappingURL=x402.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces/x402.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ // x402 Protocol Interfaces for 8004-reputation extension
2
+ // Spec: https://github.com/coinbase/x402/issues/931
3
+ // CAIP-2 Network Identifiers
4
+ // EVM: eip155:<chainId> (e.g., eip155:8453 for Base)
5
+ // Solana Mainnet: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
6
+ // Solana Devnet: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
7
+ export const SOLANA_GENESIS_HASHES = {
8
+ mainnet: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
9
+ devnet: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
10
+ testnet: '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',
11
+ };
12
+ /**
13
+ * x402 tag conventions for feedback categorization
14
+ */
15
+ export const X402_TAGS = {
16
+ // Client → Server (tag1) - delivery status
17
+ CLIENT_TAGS: {
18
+ RESOURCE_DELIVERED: 'x402-resource-delivered',
19
+ DELIVERY_FAILED: 'x402-delivery-failed',
20
+ DELIVERY_TIMEOUT: 'x402-delivery-timeout',
21
+ QUALITY_ISSUE: 'x402-quality-issue',
22
+ },
23
+ // Server → Client (tag1) - payment status
24
+ SERVER_TAGS: {
25
+ GOOD_PAYER: 'x402-good-payer',
26
+ PAYMENT_FAILED: 'x402-payment-failed',
27
+ INSUFFICIENT_FUNDS: 'x402-insufficient-funds',
28
+ },
29
+ // Network types (tag2)
30
+ NETWORK_TAGS: {
31
+ EVM: 'exact-evm',
32
+ SVM: 'exact-svm',
33
+ },
34
+ };
35
+ /**
36
+ * Helper to build CAIP-2 network identifier
37
+ */
38
+ export function buildCaip2Network(chainType, chainId) {
39
+ if (chainType === 'solana') {
40
+ // chainId is cluster name, map to genesis hash
41
+ const cluster = String(chainId).toLowerCase();
42
+ const genesisHash = SOLANA_GENESIS_HASHES[cluster] ??
43
+ SOLANA_GENESIS_HASHES.devnet;
44
+ return `solana:${genesisHash}`;
45
+ }
46
+ // EVM
47
+ return `eip155:${chainId}`;
48
+ }
49
+ /**
50
+ * Helper to build agent registry CAIP-2 identifier
51
+ * @throws Error if registryAddress is undefined/empty (chain not deployed)
52
+ */
53
+ export function buildRegistryIdentifier(chainType, chainId, registryAddress) {
54
+ if (!registryAddress) {
55
+ throw new Error(`Registry not deployed for chain ${chainType}:${chainId}`);
56
+ }
57
+ const network = buildCaip2Network(chainType, chainId);
58
+ return `${network}:${registryAddress}`;
59
+ }
60
+ /**
61
+ * Helper to build client address CAIP-2 identifier
62
+ */
63
+ export function buildClientAddress(chainType, chainIdOrCluster, address) {
64
+ const network = buildCaip2Network(chainType, chainIdOrCluster);
65
+ return `${network}:${address}`;
66
+ }
67
+ /**
68
+ * Convert X402FeedbackFile to a plain JSON-serializable object
69
+ */
70
+ export function feedbackFileToRecord(file) {
71
+ return {
72
+ agentRegistry: file.agentRegistry,
73
+ agentId: file.agentId,
74
+ clientAddress: file.clientAddress,
75
+ createdAt: file.createdAt,
76
+ value: file.value,
77
+ valueDecimals: file.valueDecimals,
78
+ score: file.score,
79
+ tag1: file.tag1,
80
+ tag2: file.tag2,
81
+ endpoint: file.endpoint,
82
+ proofOfPayment: file.proofOfPayment,
83
+ x402Settlement: file.x402Settlement,
84
+ comment: file.comment,
85
+ };
86
+ }
87
+ /**
88
+ * Parse CAIP-2 network identifier
89
+ */
90
+ export function parseCaip2Network(network) {
91
+ const parts = network.split(':');
92
+ if (parts.length !== 2)
93
+ return null;
94
+ const namespace = parts[0];
95
+ const reference = parts[1];
96
+ if (namespace !== 'eip155' && namespace !== 'solana')
97
+ return null;
98
+ if (!reference)
99
+ return null;
100
+ return { namespace: namespace, reference };
101
+ }
102
+ /**
103
+ * Get chain type from network tag
104
+ */
105
+ export function getChainTypeFromNetworkTag(tag) {
106
+ if (tag === X402_TAGS.NETWORK_TAGS.SVM)
107
+ return 'solana';
108
+ if (tag === X402_TAGS.NETWORK_TAGS.EVM)
109
+ return 'evm';
110
+ return undefined;
111
+ }
112
+ /**
113
+ * Get network tag for chain type
114
+ */
115
+ export function getNetworkTagForChainType(chainType) {
116
+ return chainType === 'solana'
117
+ ? X402_TAGS.NETWORK_TAGS.SVM
118
+ : X402_TAGS.NETWORK_TAGS.EVM;
119
+ }
120
+ //# sourceMappingURL=x402.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402.js","sourceRoot":"","sources":["../../../src/core/interfaces/x402.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export type JsonRecord = Record<string, unknown>;
2
+ export declare function isRecord(value: unknown): value is JsonRecord;
3
+ export declare function getArgs(args: unknown): JsonRecord;
4
+ export declare function readString(obj: JsonRecord, key: string, required: true): string;
5
+ export declare function readString(obj: JsonRecord, key: string, required?: false): string | undefined;
6
+ export declare function readStringOptional(obj: JsonRecord, key: string): string | undefined;
7
+ export declare function readNumber(obj: JsonRecord, key: string, required: true): number;
8
+ export declare function readNumber(obj: JsonRecord, key: string, required?: false): number | undefined;
9
+ export declare function readBoolean(obj: JsonRecord, key: string, required: true): boolean;
10
+ export declare function readBoolean(obj: JsonRecord, key: string, required?: false): boolean | undefined;
11
+ export declare function readRecord(obj: JsonRecord, key: string, required: true): JsonRecord;
12
+ export declare function readRecord(obj: JsonRecord, key: string, required?: false): JsonRecord | undefined;
13
+ export declare function readStringArray(obj: JsonRecord, key: string, required: true): string[];
14
+ export declare function readStringArray(obj: JsonRecord, key: string, required?: false): string[] | undefined;
15
+ export declare function readArray(obj: JsonRecord, key: string, required: true): unknown[];
16
+ export declare function readArray(obj: JsonRecord, key: string, required?: false): unknown[] | undefined;
17
+ export declare function parseBigIntInput(value: unknown, fieldName: string): bigint;
18
+ export declare function parseBuffer(value: unknown, fieldName: string): Buffer;
19
+ export declare function parseChainParam(obj: JsonRecord): {
20
+ chainType?: 'solana' | 'evm';
21
+ chainPrefix?: string;
22
+ chainId?: string;
23
+ };
24
+ export declare function parsePagination(obj: JsonRecord, defaults?: {
25
+ limit?: number;
26
+ offset?: number;
27
+ }): {
28
+ limit: number;
29
+ offset: number;
30
+ };
31
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/core/parsers/common.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAE5D;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAKjD;AAGD,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,MAAM,CAAC;AACV,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,MAAM,GAAG,SAAS,CAAC;AAoBtB,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnF;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,MAAM,CAAC;AACV,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,MAAM,GAAG,SAAS,CAAC;AAmBtB,wBAAgB,WAAW,CACzB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC;AACX,wBAAgB,WAAW,CACzB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,OAAO,GAAG,SAAS,CAAC;AAmBvB,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,UAAU,CAAC;AACd,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,UAAU,GAAG,SAAS,CAAC;AAmB1B,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,MAAM,EAAE,CAAC;AACZ,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,MAAM,EAAE,GAAG,SAAS,CAAC;AAwBxB,wBAAgB,SAAS,CACvB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,OAAO,EAAE,CAAC;AACb,wBAAgB,SAAS,CACvB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,OAAO,EAAE,GAAG,SAAS,CAAC;AAoBzB,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CAkBR;AAGD,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CA2BR;AAGD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,GACd;IAAE,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CA4B1E;AAGD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,QAAQ,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOnC"}