@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,274 @@
1
+ // Unified feedback tools
2
+ import { getArgs, readString, readNumber, readBoolean, parseBigIntInput, parseChainParam, parsePagination, } from '../../core/parsers/common.js';
3
+ import { successResponse } from '../../core/serializers/common.js';
4
+ import { globalState } from '../../state/global-state.js';
5
+ import { parseGlobalId, isValidGlobalId } from '../../core/interfaces/agent.js';
6
+ import { isWritableProvider } from '../../core/interfaces/chain-provider.js';
7
+ import { encodeReputationValue } from '../../core/utils/value-encoding.js';
8
+ export const feedbackTools = [
9
+ {
10
+ name: 'feedback_give',
11
+ description: 'Submit feedback for an agent (requires signer)',
12
+ inputSchema: {
13
+ type: 'object',
14
+ properties: {
15
+ id: {
16
+ type: 'string',
17
+ description: 'Agent ID (global or chain-specific)',
18
+ },
19
+ value: {
20
+ type: ['number', 'string'],
21
+ description: 'Metric value - accepts decimal strings ("99.77") or raw integers (9977). Decimals auto-detected from string format.',
22
+ },
23
+ valueDecimals: {
24
+ type: 'number',
25
+ description: 'Decimal precision (0-6) - only needed for raw integer values. Auto-detected when using decimal strings.',
26
+ },
27
+ score: {
28
+ type: 'number',
29
+ description: 'Quality score (0-100), optional - takes priority over tag normalization',
30
+ },
31
+ tag1: {
32
+ type: 'string',
33
+ description: 'Category tag (e.g., uptime, successRate, revenues). Use oasf_list_tags to see all standardized tags.',
34
+ },
35
+ tag2: {
36
+ type: 'string',
37
+ description: 'Period tag (day, week, month, year) or x402 network tag (exact-svm, exact-evm)',
38
+ },
39
+ comment: {
40
+ type: 'string',
41
+ description: 'Optional feedback comment',
42
+ },
43
+ chain: {
44
+ type: 'string',
45
+ description: 'Chain to use (optional if using global ID)',
46
+ },
47
+ skipSend: {
48
+ type: 'boolean',
49
+ description: 'If true, returns unsigned transaction',
50
+ },
51
+ },
52
+ required: ['id', 'value'],
53
+ },
54
+ },
55
+ {
56
+ name: 'feedback_read',
57
+ description: 'Read a single feedback by agent, client, and index',
58
+ inputSchema: {
59
+ type: 'object',
60
+ properties: {
61
+ id: {
62
+ type: 'string',
63
+ description: 'Agent ID',
64
+ },
65
+ client: {
66
+ type: 'string',
67
+ description: 'Client address who gave feedback',
68
+ },
69
+ index: {
70
+ type: ['number', 'string'],
71
+ description: 'Feedback index',
72
+ },
73
+ chain: {
74
+ type: 'string',
75
+ description: 'Chain to use',
76
+ },
77
+ },
78
+ required: ['id', 'client', 'index'],
79
+ },
80
+ },
81
+ {
82
+ name: 'feedback_list',
83
+ description: 'List all feedbacks for an agent',
84
+ inputSchema: {
85
+ type: 'object',
86
+ properties: {
87
+ id: {
88
+ type: 'string',
89
+ description: 'Agent ID',
90
+ },
91
+ client: {
92
+ type: 'string',
93
+ description: 'Filter by client address',
94
+ },
95
+ minScore: {
96
+ type: 'number',
97
+ description: 'Minimum score filter',
98
+ },
99
+ maxScore: {
100
+ type: 'number',
101
+ description: 'Maximum score filter',
102
+ },
103
+ chain: {
104
+ type: 'string',
105
+ description: 'Chain to use',
106
+ },
107
+ limit: {
108
+ type: 'number',
109
+ description: 'Max results (default: 20)',
110
+ },
111
+ offset: {
112
+ type: 'number',
113
+ description: 'Pagination offset',
114
+ },
115
+ },
116
+ required: ['id'],
117
+ },
118
+ },
119
+ ];
120
+ export const feedbackHandlers = {
121
+ feedback_give: async (args) => {
122
+ const input = getArgs(args);
123
+ const agentId = readString(input, 'id', true);
124
+ const comment = readString(input, 'comment');
125
+ const tag1 = readString(input, 'tag1');
126
+ const tag2 = readString(input, 'tag2');
127
+ const skipSend = readBoolean(input, 'skipSend') ?? false;
128
+ const { chainPrefix } = parseChainParam(input);
129
+ // Parse value (required) - accepts decimal strings ("99.77") or raw integers
130
+ // Auto-encodes to { value: bigint, valueDecimals: number }
131
+ const rawValue = input.value;
132
+ if (rawValue === undefined || rawValue === null) {
133
+ throw new Error('value is required');
134
+ }
135
+ if (typeof rawValue !== 'string' && typeof rawValue !== 'number' && typeof rawValue !== 'bigint') {
136
+ throw new Error('value must be a number or string');
137
+ }
138
+ // Use encodeReputationValue for auto-encoding decimal strings
139
+ // e.g., "99.77" → { value: 9977n, valueDecimals: 2 }
140
+ const explicitDecimals = readNumber(input, 'valueDecimals');
141
+ const encoded = encodeReputationValue(rawValue, explicitDecimals);
142
+ const value = encoded.value;
143
+ const valueDecimals = encoded.valueDecimals;
144
+ // Parse score (optional)
145
+ const score = readNumber(input, 'score');
146
+ if (score !== undefined && (score < 0 || score > 100)) {
147
+ throw new Error('score must be between 0 and 100');
148
+ }
149
+ // Resolve provider
150
+ let provider;
151
+ let rawId = agentId;
152
+ if (isValidGlobalId(agentId)) {
153
+ const parsed = parseGlobalId(agentId);
154
+ provider = globalState.chains.getByPrefix(parsed.prefix);
155
+ rawId = parsed.rawId;
156
+ }
157
+ else if (chainPrefix) {
158
+ provider = globalState.chains.getByPrefix(chainPrefix);
159
+ }
160
+ else {
161
+ provider = globalState.chains.getDefault();
162
+ }
163
+ if (!provider) {
164
+ throw new Error('No chain provider available');
165
+ }
166
+ // For skipSend, we can use a provider that doesn't have a signer
167
+ // Otherwise, we need a writable provider
168
+ if (!skipSend && !isWritableProvider(provider)) {
169
+ throw new Error('Chain provider does not support write operations or signer not configured. Use skipSend=true to get unsigned transaction.');
170
+ }
171
+ // Check if provider has giveFeedback method
172
+ if (typeof provider.giveFeedback !== 'function') {
173
+ throw new Error('Chain provider does not support feedback operations');
174
+ }
175
+ const result = await provider.giveFeedback({ agentId: rawId, value, valueDecimals, score, comment, tag1, tag2 }, { skipSend });
176
+ if (result.unsigned) {
177
+ // Return unsigned transaction for external wallet signing
178
+ return successResponse({
179
+ unsigned: true,
180
+ transaction: result.transaction,
181
+ message: result.message,
182
+ agentId: rawId,
183
+ value: value.toString(),
184
+ valueDecimals,
185
+ score,
186
+ tag1,
187
+ tag2,
188
+ comment,
189
+ hint: 'Decode base64, sign with your wallet (Phantom, etc.), and broadcast to the network.',
190
+ });
191
+ }
192
+ // Return signed result
193
+ return successResponse({
194
+ unsigned: false,
195
+ signature: result.signature,
196
+ agentId: rawId,
197
+ value: value.toString(),
198
+ valueDecimals,
199
+ score,
200
+ tag1,
201
+ tag2,
202
+ comment,
203
+ });
204
+ },
205
+ feedback_read: async (args) => {
206
+ const input = getArgs(args);
207
+ const agentId = readString(input, 'id', true);
208
+ const client = readString(input, 'client', true);
209
+ const index = parseBigIntInput(input.index, 'index');
210
+ const { chainPrefix } = parseChainParam(input);
211
+ let provider;
212
+ let rawId = agentId;
213
+ if (isValidGlobalId(agentId)) {
214
+ const parsed = parseGlobalId(agentId);
215
+ provider = globalState.chains.getByPrefix(parsed.prefix);
216
+ rawId = parsed.rawId;
217
+ }
218
+ else if (chainPrefix) {
219
+ provider = globalState.chains.getByPrefix(chainPrefix);
220
+ }
221
+ else {
222
+ provider = globalState.chains.getDefault();
223
+ }
224
+ if (!provider) {
225
+ throw new Error('No chain provider available');
226
+ }
227
+ const feedback = await provider.getFeedback(rawId, client, index);
228
+ if (!feedback) {
229
+ throw new Error(`Feedback not found: agent=${rawId}, client=${client}, index=${index}`);
230
+ }
231
+ return successResponse(feedback);
232
+ },
233
+ feedback_list: async (args) => {
234
+ const input = getArgs(args);
235
+ const agentId = readString(input, 'id', true);
236
+ const client = readString(input, 'client');
237
+ const minScore = readNumber(input, 'minScore');
238
+ const maxScore = readNumber(input, 'maxScore');
239
+ const { chainPrefix } = parseChainParam(input);
240
+ const { limit, offset } = parsePagination(input);
241
+ let provider;
242
+ let rawId = agentId;
243
+ if (isValidGlobalId(agentId)) {
244
+ const parsed = parseGlobalId(agentId);
245
+ provider = globalState.chains.getByPrefix(parsed.prefix);
246
+ rawId = parsed.rawId;
247
+ }
248
+ else if (chainPrefix) {
249
+ provider = globalState.chains.getByPrefix(chainPrefix);
250
+ }
251
+ else {
252
+ provider = globalState.chains.getDefault();
253
+ }
254
+ if (!provider) {
255
+ return successResponse({ feedbacks: [], total: 0, hasMore: false });
256
+ }
257
+ const result = await provider.listFeedbacks({
258
+ agentId: rawId,
259
+ client,
260
+ minScore,
261
+ maxScore,
262
+ limit,
263
+ offset,
264
+ });
265
+ return successResponse(result);
266
+ },
267
+ };
268
+ // Backward compatibility aliases
269
+ export const feedbackAliases = {
270
+ sdk_give_feedback: 'feedback_give',
271
+ sdk_read_feedback: 'feedback_read',
272
+ sdk_read_all_feedback: 'feedback_list',
273
+ };
274
+ //# sourceMappingURL=feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../../src/tools/unified/feedback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ export declare const ipfsTools: Tool[];
3
+ export declare const ipfsHandlers: Record<string, (args: unknown) => Promise<unknown>>;
4
+ export declare const ipfsAliases: Record<string, string>;
5
+ //# sourceMappingURL=ipfs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../../src/tools/unified/ipfs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAW/D,eAAO,MAAM,SAAS,EAAE,IAAI,EA4E3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAmF5E,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI9C,CAAC"}
@@ -0,0 +1,156 @@
1
+ // Unified IPFS tools - Uses global IPFS service (chain-agnostic)
2
+ import { getArgs, readString, readRecord, readBoolean, } from '../../core/parsers/common.js';
3
+ import { successResponse } from '../../core/serializers/common.js';
4
+ import { globalState } from '../../state/global-state.js';
5
+ export const ipfsTools = [
6
+ {
7
+ name: 'ipfs_configure',
8
+ description: 'Configure IPFS client (Pinata, Filecoin, or node-based)',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ pinataJwt: {
13
+ type: 'string',
14
+ description: 'Pinata API JWT token',
15
+ },
16
+ ipfsUrl: {
17
+ type: 'string',
18
+ description: 'IPFS node URL (e.g., http://localhost:5001)',
19
+ },
20
+ filecoinEnabled: {
21
+ type: 'boolean',
22
+ description: 'Enable Filecoin pinning',
23
+ },
24
+ filecoinPrivateKey: {
25
+ type: 'string',
26
+ description: 'Filecoin private key for pinning',
27
+ },
28
+ },
29
+ },
30
+ },
31
+ {
32
+ name: 'ipfs_add_json',
33
+ description: 'Store JSON data to IPFS and return CID',
34
+ inputSchema: {
35
+ type: 'object',
36
+ properties: {
37
+ data: {
38
+ type: 'object',
39
+ description: 'JSON data to store',
40
+ },
41
+ name: {
42
+ type: 'string',
43
+ description: 'Optional name for the pin',
44
+ },
45
+ },
46
+ required: ['data'],
47
+ },
48
+ },
49
+ {
50
+ name: 'ipfs_add_registration',
51
+ description: 'Store agent registration file to IPFS',
52
+ inputSchema: {
53
+ type: 'object',
54
+ properties: {
55
+ registration: {
56
+ type: 'object',
57
+ description: 'Registration file JSON (ERC-8004 format)',
58
+ },
59
+ name: {
60
+ type: 'string',
61
+ description: 'Optional name for the pin',
62
+ },
63
+ },
64
+ required: ['registration'],
65
+ },
66
+ },
67
+ {
68
+ name: 'ipfs_get_registration',
69
+ description: 'Retrieve registration file from IPFS by CID',
70
+ inputSchema: {
71
+ type: 'object',
72
+ properties: {
73
+ cid: {
74
+ type: 'string',
75
+ description: 'IPFS CID of the registration file',
76
+ },
77
+ },
78
+ required: ['cid'],
79
+ },
80
+ },
81
+ ];
82
+ export const ipfsHandlers = {
83
+ ipfs_configure: async (args) => {
84
+ const input = getArgs(args);
85
+ const pinataJwt = readString(input, 'pinataJwt');
86
+ const ipfsUrl = readString(input, 'ipfsUrl');
87
+ const filecoinEnabled = readBoolean(input, 'filecoinEnabled') ?? false;
88
+ const filecoinPrivateKey = readString(input, 'filecoinPrivateKey');
89
+ // Build IPFS config
90
+ const config = {
91
+ pinataJwt,
92
+ pinataEnabled: !!pinataJwt,
93
+ url: ipfsUrl,
94
+ filecoinPinEnabled: filecoinEnabled,
95
+ filecoinPrivateKey,
96
+ };
97
+ // Configure global IPFS service (chain-agnostic)
98
+ globalState.ipfs.configure(config);
99
+ // Also store in global config for persistence
100
+ globalState.setConfig({
101
+ ipfs: {
102
+ pinataJwt,
103
+ ipfsUrl,
104
+ filecoinEnabled,
105
+ filecoinPrivateKey,
106
+ },
107
+ });
108
+ return successResponse({
109
+ message: 'IPFS configured',
110
+ hasPinata: !!pinataJwt,
111
+ hasIpfsNode: !!ipfsUrl,
112
+ hasFilecoin: filecoinEnabled,
113
+ });
114
+ },
115
+ ipfs_add_json: async (args) => {
116
+ const input = getArgs(args);
117
+ const data = readRecord(input, 'data', true);
118
+ if (!globalState.ipfs.isConfigured()) {
119
+ throw new Error('IPFS not configured. Call ipfs_configure first.');
120
+ }
121
+ const cid = await globalState.ipfs.addJson(data);
122
+ return successResponse({
123
+ cid,
124
+ gateway: `https://gateway.pinata.cloud/ipfs/${cid}`,
125
+ });
126
+ },
127
+ ipfs_add_registration: async (args) => {
128
+ const input = getArgs(args);
129
+ const registration = readRecord(input, 'registration', true);
130
+ if (!globalState.ipfs.isConfigured()) {
131
+ throw new Error('IPFS not configured. Call ipfs_configure first.');
132
+ }
133
+ const cid = await globalState.ipfs.addJson(registration);
134
+ return successResponse({
135
+ cid,
136
+ gateway: `https://gateway.pinata.cloud/ipfs/${cid}`,
137
+ uri: `ipfs://${cid}`,
138
+ });
139
+ },
140
+ ipfs_get_registration: async (args) => {
141
+ const input = getArgs(args);
142
+ const cid = readString(input, 'cid', true);
143
+ if (!globalState.ipfs.isConfigured()) {
144
+ throw new Error('IPFS not configured. Call ipfs_configure first.');
145
+ }
146
+ const registration = await globalState.ipfs.getJson(cid);
147
+ return successResponse(registration);
148
+ },
149
+ };
150
+ // Backward compatibility aliases
151
+ export const ipfsAliases = {
152
+ ipfs_add_json: 'ipfs_add_json',
153
+ ipfs_add_registration_file: 'ipfs_add_registration',
154
+ ipfs_get_registration_file: 'ipfs_get_registration',
155
+ };
156
+ //# sourceMappingURL=ipfs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../../src/tools/unified/ipfs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ export declare const oasfTools: Tool[];
3
+ export declare const oasfHandlers: Record<string, (args: unknown) => Promise<unknown>>;
4
+ export declare const oasfAliases: Record<string, string>;
5
+ //# sourceMappingURL=oasf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oasf.d.ts","sourceRoot":"","sources":["../../../src/tools/unified/oasf.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAW/D,eAAO,MAAM,SAAS,EAAE,IAAI,EAmE3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAwG5E,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC"}
@@ -0,0 +1,167 @@
1
+ // Unified OASF validation tools
2
+ import { getArgs, readString } from '../../core/parsers/common.js';
3
+ import { successResponse } from '../../core/serializers/common.js';
4
+ import { validateSkill, validateDomain, getAllSkills, getAllDomains, } from '8004-solana';
5
+ import { Tag, isKnownTag, getTagDescription } from '../../core/utils/tags.js';
6
+ export const oasfTools = [
7
+ {
8
+ name: 'oasf_validate_skill',
9
+ description: 'Validate an OASF skill slug format',
10
+ inputSchema: {
11
+ type: 'object',
12
+ properties: {
13
+ skill: {
14
+ type: 'string',
15
+ description: 'Skill slug to validate (e.g., "web-search")',
16
+ },
17
+ },
18
+ required: ['skill'],
19
+ },
20
+ },
21
+ {
22
+ name: 'oasf_validate_domain',
23
+ description: 'Validate an OASF domain slug format',
24
+ inputSchema: {
25
+ type: 'object',
26
+ properties: {
27
+ domain: {
28
+ type: 'string',
29
+ description: 'Domain slug to validate (e.g., "finance")',
30
+ },
31
+ },
32
+ required: ['domain'],
33
+ },
34
+ },
35
+ {
36
+ name: 'oasf_list_skills',
37
+ description: 'List all valid OASF skill slugs',
38
+ inputSchema: {
39
+ type: 'object',
40
+ properties: {},
41
+ },
42
+ },
43
+ {
44
+ name: 'oasf_list_domains',
45
+ description: 'List all valid OASF domain slugs',
46
+ inputSchema: {
47
+ type: 'object',
48
+ properties: {},
49
+ },
50
+ },
51
+ {
52
+ name: 'oasf_list_tags',
53
+ description: 'List all 8004 standardized tags for feedback (category and period tags)',
54
+ inputSchema: {
55
+ type: 'object',
56
+ properties: {},
57
+ },
58
+ },
59
+ {
60
+ name: 'oasf_validate_tag',
61
+ description: 'Check if a tag is a known 8004 standardized tag',
62
+ inputSchema: {
63
+ type: 'object',
64
+ properties: {
65
+ tag: {
66
+ type: 'string',
67
+ description: 'Tag to validate (e.g., "uptime", "day", "x402-resource-delivered")',
68
+ },
69
+ },
70
+ required: ['tag'],
71
+ },
72
+ },
73
+ ];
74
+ export const oasfHandlers = {
75
+ oasf_validate_skill: async (args) => {
76
+ const input = getArgs(args);
77
+ const skill = readString(input, 'skill', true);
78
+ const isValid = validateSkill(skill);
79
+ return successResponse({
80
+ skill,
81
+ valid: isValid,
82
+ message: isValid ? 'Valid OASF skill' : 'Invalid OASF skill slug',
83
+ });
84
+ },
85
+ oasf_validate_domain: async (args) => {
86
+ const input = getArgs(args);
87
+ const domain = readString(input, 'domain', true);
88
+ const isValid = validateDomain(domain);
89
+ return successResponse({
90
+ domain,
91
+ valid: isValid,
92
+ message: isValid ? 'Valid OASF domain' : 'Invalid OASF domain slug',
93
+ });
94
+ },
95
+ oasf_list_skills: async () => {
96
+ const skills = getAllSkills();
97
+ return successResponse({
98
+ skills,
99
+ count: skills.length,
100
+ });
101
+ },
102
+ oasf_list_domains: async () => {
103
+ const domains = getAllDomains();
104
+ return successResponse({
105
+ domains,
106
+ count: domains.length,
107
+ });
108
+ },
109
+ oasf_list_tags: async () => {
110
+ // Build structured tag list from Tag constant
111
+ const categoryTags = [
112
+ { key: 'starred', value: Tag.starred, description: getTagDescription(Tag.starred) },
113
+ { key: 'reachable', value: Tag.reachable, description: getTagDescription(Tag.reachable) },
114
+ { key: 'ownerVerified', value: Tag.ownerVerified, description: getTagDescription(Tag.ownerVerified) },
115
+ { key: 'uptime', value: Tag.uptime, description: getTagDescription(Tag.uptime) },
116
+ { key: 'successRate', value: Tag.successRate, description: getTagDescription(Tag.successRate) },
117
+ { key: 'responseTime', value: Tag.responseTime, description: getTagDescription(Tag.responseTime) },
118
+ { key: 'blocktimeFreshness', value: Tag.blocktimeFreshness, description: getTagDescription(Tag.blocktimeFreshness) },
119
+ { key: 'revenues', value: Tag.revenues, description: getTagDescription(Tag.revenues) },
120
+ { key: 'tradingYield', value: Tag.tradingYield, description: getTagDescription(Tag.tradingYield) },
121
+ ];
122
+ const periodTags = [
123
+ { key: 'day', value: Tag.day, description: getTagDescription(Tag.day) },
124
+ { key: 'week', value: Tag.week, description: getTagDescription(Tag.week) },
125
+ { key: 'month', value: Tag.month, description: getTagDescription(Tag.month) },
126
+ { key: 'year', value: Tag.year, description: getTagDescription(Tag.year) },
127
+ ];
128
+ const x402Tags = [
129
+ { key: 'x402ResourceDelivered', value: Tag.x402ResourceDelivered, description: getTagDescription(Tag.x402ResourceDelivered) },
130
+ { key: 'x402DeliveryFailed', value: Tag.x402DeliveryFailed, description: getTagDescription(Tag.x402DeliveryFailed) },
131
+ { key: 'x402DeliveryTimeout', value: Tag.x402DeliveryTimeout, description: getTagDescription(Tag.x402DeliveryTimeout) },
132
+ { key: 'x402QualityIssue', value: Tag.x402QualityIssue, description: getTagDescription(Tag.x402QualityIssue) },
133
+ { key: 'x402GoodPayer', value: Tag.x402GoodPayer, description: getTagDescription(Tag.x402GoodPayer) },
134
+ { key: 'x402PaymentFailed', value: Tag.x402PaymentFailed, description: getTagDescription(Tag.x402PaymentFailed) },
135
+ { key: 'x402InsufficientFunds', value: Tag.x402InsufficientFunds, description: getTagDescription(Tag.x402InsufficientFunds) },
136
+ { key: 'x402InvalidSignature', value: Tag.x402InvalidSignature, description: getTagDescription(Tag.x402InvalidSignature) },
137
+ { key: 'x402Evm', value: Tag.x402Evm, description: getTagDescription(Tag.x402Evm) },
138
+ { key: 'x402Svm', value: Tag.x402Svm, description: getTagDescription(Tag.x402Svm) },
139
+ ];
140
+ return successResponse({
141
+ categoryTags,
142
+ periodTags,
143
+ x402Tags,
144
+ usage: {
145
+ tag1: 'Category tag (what metric)',
146
+ tag2: 'Period tag (time window) or x402 network tag',
147
+ },
148
+ });
149
+ },
150
+ oasf_validate_tag: async (args) => {
151
+ const input = getArgs(args);
152
+ const tag = readString(input, 'tag', true);
153
+ const isKnown = isKnownTag(tag);
154
+ const description = getTagDescription(tag);
155
+ return successResponse({
156
+ tag,
157
+ known: isKnown,
158
+ description: description ?? (isKnown ? undefined : 'Custom tag (not standardized)'),
159
+ message: isKnown
160
+ ? `"${tag}" is a known 8004 standardized tag`
161
+ : `"${tag}" is a custom tag (will work but not standardized)`,
162
+ });
163
+ },
164
+ };
165
+ // No aliases needed - same names
166
+ export const oasfAliases = {};
167
+ //# sourceMappingURL=oasf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oasf.js","sourceRoot":"","sources":["../../../src/tools/unified/oasf.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,CAAC,MAAM,SAAS,GAAW;IAC/B;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6CAA6C;iBAC3D;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2CAA2C;iBACzD;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,iCAAiC;QAC9C,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,yEAAyE;QACtF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oEAAoE;iBAClF;aACF;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAwD;IAC/E,mBAAmB,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAE/C,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAErC,OAAO,eAAe,CAAC;YACrB,KAAK;YACL,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,yBAAyB;SAClE,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAEvC,OAAO,eAAe,CAAC;YACrB,MAAM;YACN,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,0BAA0B;SACpE,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,OAAO,eAAe,CAAC;YACrB,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC;YACrB,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED,cAAc,EAAE,KAAK,IAAI,EAAE;QACzB,8CAA8C;QAC9C,MAAM,YAAY,GAAG;YACnB,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACnF,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YACzF,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACrG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAChF,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC/F,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAClG,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,CAAC,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;YACpH,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACtF,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;SACnG,CAAC;QAEF,MAAM,UAAU,GAAG;YACjB,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC1E,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC7E,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;SAC3E,CAAC;QAEF,MAAM,QAAQ,GAAG;YACf,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,GAAG,CAAC,qBAAqB,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE;YAC7H,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,CAAC,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;YACpH,EAAE,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,CAAC,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YACvH,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,CAAC,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC9G,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACrG,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YACjH,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,GAAG,CAAC,qBAAqB,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE;YAC7H,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,CAAC,oBAAoB,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;YAC1H,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACnF,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;SACpF,CAAC;QAEF,OAAO,eAAe,CAAC;YACrB,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,KAAK,EAAE;gBACL,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE,8CAA8C;aACrD;SACF,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE3C,OAAO,eAAe,CAAC;YACrB,GAAG;YACH,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,WAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,+BAA+B,CAAC;YACnF,OAAO,EAAE,OAAO;gBACd,CAAC,CAAC,IAAI,GAAG,oCAAoC;gBAC7C,CAAC,CAAC,IAAI,GAAG,oDAAoD;SAChE,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,iCAAiC;AACjC,MAAM,CAAC,MAAM,WAAW,GAA2B,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ export declare const registrationTools: Tool[];
3
+ export declare const registrationHandlers: Record<string, (args: unknown) => Promise<unknown>>;
4
+ export declare const registrationAliases: Record<string, string>;
5
+ //# sourceMappingURL=registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../src/tools/unified/registration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAa/D,eAAO,MAAM,iBAAiB,EAAE,IAAI,EAoEnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAoEpF,CAAC;AAiHF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGtD,CAAC"}