@lagoon-protocol/lagoon-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 (335) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +618 -0
  3. package/dist/cache/index.d.ts +97 -0
  4. package/dist/cache/index.d.ts.map +1 -0
  5. package/dist/cache/index.js +106 -0
  6. package/dist/cache/index.js.map +1 -0
  7. package/dist/config.d.ts +34 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +40 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/core/cache-adapter.d.ts +73 -0
  12. package/dist/core/cache-adapter.d.ts.map +1 -0
  13. package/dist/core/cache-adapter.js +47 -0
  14. package/dist/core/cache-adapter.js.map +1 -0
  15. package/dist/core/cache-invalidation.d.ts +72 -0
  16. package/dist/core/cache-invalidation.d.ts.map +1 -0
  17. package/dist/core/cache-invalidation.js +114 -0
  18. package/dist/core/cache-invalidation.js.map +1 -0
  19. package/dist/core/container.d.ts +34 -0
  20. package/dist/core/container.d.ts.map +1 -0
  21. package/dist/core/container.js +75 -0
  22. package/dist/core/container.js.map +1 -0
  23. package/dist/graphql/client.d.ts +32 -0
  24. package/dist/graphql/client.d.ts.map +1 -0
  25. package/dist/graphql/client.js +49 -0
  26. package/dist/graphql/client.js.map +1 -0
  27. package/dist/graphql/fragments/apr-breakdown.fragment.d.ts +64 -0
  28. package/dist/graphql/fragments/apr-breakdown.fragment.d.ts.map +1 -0
  29. package/dist/graphql/fragments/apr-breakdown.fragment.js +62 -0
  30. package/dist/graphql/fragments/apr-breakdown.fragment.js.map +1 -0
  31. package/dist/graphql/fragments/asset-info.fragment.d.ts +18 -0
  32. package/dist/graphql/fragments/asset-info.fragment.d.ts.map +1 -0
  33. package/dist/graphql/fragments/asset-info.fragment.js +36 -0
  34. package/dist/graphql/fragments/asset-info.fragment.js.map +1 -0
  35. package/dist/graphql/fragments/chain-info.fragment.d.ts +18 -0
  36. package/dist/graphql/fragments/chain-info.fragment.d.ts.map +1 -0
  37. package/dist/graphql/fragments/chain-info.fragment.js +32 -0
  38. package/dist/graphql/fragments/chain-info.fragment.js.map +1 -0
  39. package/dist/graphql/fragments/index.d.ts +15 -0
  40. package/dist/graphql/fragments/index.d.ts.map +1 -0
  41. package/dist/graphql/fragments/index.js +21 -0
  42. package/dist/graphql/fragments/index.js.map +1 -0
  43. package/dist/graphql/fragments/pageinfo.fragment.d.ts +33 -0
  44. package/dist/graphql/fragments/pageinfo.fragment.d.ts.map +1 -0
  45. package/dist/graphql/fragments/pageinfo.fragment.js +47 -0
  46. package/dist/graphql/fragments/pageinfo.fragment.js.map +1 -0
  47. package/dist/graphql/fragments/transaction-base.fragment.d.ts +19 -0
  48. package/dist/graphql/fragments/transaction-base.fragment.d.ts.map +1 -0
  49. package/dist/graphql/fragments/transaction-base.fragment.js +32 -0
  50. package/dist/graphql/fragments/transaction-base.fragment.js.map +1 -0
  51. package/dist/graphql/fragments/vault-list.fragment.d.ts +53 -0
  52. package/dist/graphql/fragments/vault-list.fragment.d.ts.map +1 -0
  53. package/dist/graphql/fragments/vault-list.fragment.js +51 -0
  54. package/dist/graphql/fragments/vault-list.fragment.js.map +1 -0
  55. package/dist/graphql/fragments/vault-summary.fragment.d.ts +68 -0
  56. package/dist/graphql/fragments/vault-summary.fragment.d.ts.map +1 -0
  57. package/dist/graphql/fragments/vault-summary.fragment.js +66 -0
  58. package/dist/graphql/fragments/vault-summary.fragment.js.map +1 -0
  59. package/dist/graphql/fragments/vault.fragment.d.ts +133 -0
  60. package/dist/graphql/fragments/vault.fragment.d.ts.map +1 -0
  61. package/dist/graphql/fragments/vault.fragment.js +119 -0
  62. package/dist/graphql/fragments/vault.fragment.js.map +1 -0
  63. package/dist/graphql/fragments.d.ts +183 -0
  64. package/dist/graphql/fragments.d.ts.map +1 -0
  65. package/dist/graphql/fragments.js +297 -0
  66. package/dist/graphql/fragments.js.map +1 -0
  67. package/dist/graphql/queries/export.queries.d.ts +72 -0
  68. package/dist/graphql/queries/export.queries.d.ts.map +1 -0
  69. package/dist/graphql/queries/export.queries.js +202 -0
  70. package/dist/graphql/queries/export.queries.js.map +1 -0
  71. package/dist/graphql/queries/index.d.ts +15 -0
  72. package/dist/graphql/queries/index.d.ts.map +1 -0
  73. package/dist/graphql/queries/index.js +23 -0
  74. package/dist/graphql/queries/index.js.map +1 -0
  75. package/dist/graphql/queries/performance.queries.d.ts +63 -0
  76. package/dist/graphql/queries/performance.queries.d.ts.map +1 -0
  77. package/dist/graphql/queries/performance.queries.js +133 -0
  78. package/dist/graphql/queries/performance.queries.js.map +1 -0
  79. package/dist/graphql/queries/period-summaries.d.ts +15 -0
  80. package/dist/graphql/queries/period-summaries.d.ts.map +1 -0
  81. package/dist/graphql/queries/period-summaries.js +24 -0
  82. package/dist/graphql/queries/period-summaries.js.map +1 -0
  83. package/dist/graphql/queries/portfolio.queries.d.ts +78 -0
  84. package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -0
  85. package/dist/graphql/queries/portfolio.queries.js +198 -0
  86. package/dist/graphql/queries/portfolio.queries.js.map +1 -0
  87. package/dist/graphql/queries/prediction.queries.d.ts +38 -0
  88. package/dist/graphql/queries/prediction.queries.d.ts.map +1 -0
  89. package/dist/graphql/queries/prediction.queries.js +100 -0
  90. package/dist/graphql/queries/prediction.queries.js.map +1 -0
  91. package/dist/graphql/queries/risk.queries.d.ts +37 -0
  92. package/dist/graphql/queries/risk.queries.d.ts.map +1 -0
  93. package/dist/graphql/queries/risk.queries.js +90 -0
  94. package/dist/graphql/queries/risk.queries.js.map +1 -0
  95. package/dist/graphql/queries/search.queries.d.ts +61 -0
  96. package/dist/graphql/queries/search.queries.d.ts.map +1 -0
  97. package/dist/graphql/queries/search.queries.js +103 -0
  98. package/dist/graphql/queries/search.queries.js.map +1 -0
  99. package/dist/graphql/queries/transaction.queries.d.ts +60 -0
  100. package/dist/graphql/queries/transaction.queries.d.ts.map +1 -0
  101. package/dist/graphql/queries/transaction.queries.js +252 -0
  102. package/dist/graphql/queries/transaction.queries.js.map +1 -0
  103. package/dist/graphql/queries/vault.queries.d.ts +54 -0
  104. package/dist/graphql/queries/vault.queries.d.ts.map +1 -0
  105. package/dist/graphql/queries/vault.queries.js +78 -0
  106. package/dist/graphql/queries/vault.queries.js.map +1 -0
  107. package/dist/index.d.ts +12 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +32 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/prompts/competitor-comparison.d.ts +8 -0
  112. package/dist/prompts/competitor-comparison.d.ts.map +1 -0
  113. package/dist/prompts/competitor-comparison.js +432 -0
  114. package/dist/prompts/competitor-comparison.js.map +1 -0
  115. package/dist/prompts/curator-performance.d.ts +8 -0
  116. package/dist/prompts/curator-performance.d.ts.map +1 -0
  117. package/dist/prompts/curator-performance.js +383 -0
  118. package/dist/prompts/curator-performance.js.map +1 -0
  119. package/dist/prompts/financial-analysis.d.ts +8 -0
  120. package/dist/prompts/financial-analysis.d.ts.map +1 -0
  121. package/dist/prompts/financial-analysis.js +480 -0
  122. package/dist/prompts/financial-analysis.js.map +1 -0
  123. package/dist/prompts/index.d.ts +21 -0
  124. package/dist/prompts/index.d.ts.map +1 -0
  125. package/dist/prompts/index.js +50 -0
  126. package/dist/prompts/index.js.map +1 -0
  127. package/dist/prompts/onboarding-first-vault.d.ts +8 -0
  128. package/dist/prompts/onboarding-first-vault.d.ts.map +1 -0
  129. package/dist/prompts/onboarding-first-vault.js +317 -0
  130. package/dist/prompts/onboarding-first-vault.js.map +1 -0
  131. package/dist/prompts/portfolio-optimization.d.ts +8 -0
  132. package/dist/prompts/portfolio-optimization.d.ts.map +1 -0
  133. package/dist/prompts/portfolio-optimization.js +412 -0
  134. package/dist/prompts/portfolio-optimization.js.map +1 -0
  135. package/dist/prompts/protocol-overview.d.ts +8 -0
  136. package/dist/prompts/protocol-overview.d.ts.map +1 -0
  137. package/dist/prompts/protocol-overview.js +398 -0
  138. package/dist/prompts/protocol-overview.js.map +1 -0
  139. package/dist/prompts/shared/disclaimers.d.ts +54 -0
  140. package/dist/prompts/shared/disclaimers.d.ts.map +1 -0
  141. package/dist/prompts/shared/disclaimers.js +400 -0
  142. package/dist/prompts/shared/disclaimers.js.map +1 -0
  143. package/dist/resources/glossary.d.ts +8 -0
  144. package/dist/resources/glossary.d.ts.map +1 -0
  145. package/dist/resources/glossary.js +407 -0
  146. package/dist/resources/glossary.js.map +1 -0
  147. package/dist/resources/index.d.ts +18 -0
  148. package/dist/resources/index.d.ts.map +1 -0
  149. package/dist/resources/index.js +29 -0
  150. package/dist/resources/index.js.map +1 -0
  151. package/dist/resources/schema.d.ts +22 -0
  152. package/dist/resources/schema.d.ts.map +1 -0
  153. package/dist/resources/schema.js +67 -0
  154. package/dist/resources/schema.js.map +1 -0
  155. package/dist/schemas/config.schema.d.ts +46 -0
  156. package/dist/schemas/config.schema.d.ts.map +1 -0
  157. package/dist/schemas/config.schema.js +48 -0
  158. package/dist/schemas/config.schema.js.map +1 -0
  159. package/dist/sdk/__tests__/apr-service.test.d.ts +7 -0
  160. package/dist/sdk/__tests__/apr-service.test.d.ts.map +1 -0
  161. package/dist/sdk/__tests__/apr-service.test.js +385 -0
  162. package/dist/sdk/__tests__/apr-service.test.js.map +1 -0
  163. package/dist/sdk/__tests__/math-utils.test.d.ts +7 -0
  164. package/dist/sdk/__tests__/math-utils.test.d.ts.map +1 -0
  165. package/dist/sdk/__tests__/math-utils.test.js +185 -0
  166. package/dist/sdk/__tests__/math-utils.test.js.map +1 -0
  167. package/dist/sdk/__tests__/simulation-service.test.d.ts +5 -0
  168. package/dist/sdk/__tests__/simulation-service.test.d.ts.map +1 -0
  169. package/dist/sdk/__tests__/simulation-service.test.js +397 -0
  170. package/dist/sdk/__tests__/simulation-service.test.js.map +1 -0
  171. package/dist/sdk/__tests__/vault-utils.test.d.ts +7 -0
  172. package/dist/sdk/__tests__/vault-utils.test.d.ts.map +1 -0
  173. package/dist/sdk/__tests__/vault-utils.test.js +189 -0
  174. package/dist/sdk/__tests__/vault-utils.test.js.map +1 -0
  175. package/dist/sdk/apr-service.d.ts +101 -0
  176. package/dist/sdk/apr-service.d.ts.map +1 -0
  177. package/dist/sdk/apr-service.js +175 -0
  178. package/dist/sdk/apr-service.js.map +1 -0
  179. package/dist/sdk/math-utils.d.ts +138 -0
  180. package/dist/sdk/math-utils.d.ts.map +1 -0
  181. package/dist/sdk/math-utils.js +218 -0
  182. package/dist/sdk/math-utils.js.map +1 -0
  183. package/dist/sdk/simulation-service.d.ts +106 -0
  184. package/dist/sdk/simulation-service.d.ts.map +1 -0
  185. package/dist/sdk/simulation-service.js +143 -0
  186. package/dist/sdk/simulation-service.js.map +1 -0
  187. package/dist/sdk/vault-utils.d.ts +125 -0
  188. package/dist/sdk/vault-utils.d.ts.map +1 -0
  189. package/dist/sdk/vault-utils.js +165 -0
  190. package/dist/sdk/vault-utils.js.map +1 -0
  191. package/dist/server.d.ts +21 -0
  192. package/dist/server.d.ts.map +1 -0
  193. package/dist/server.js +225 -0
  194. package/dist/server.js.map +1 -0
  195. package/dist/services/analytics/protocol-overview.service.d.ts +61 -0
  196. package/dist/services/analytics/protocol-overview.service.d.ts.map +1 -0
  197. package/dist/services/analytics/protocol-overview.service.js +182 -0
  198. package/dist/services/analytics/protocol-overview.service.js.map +1 -0
  199. package/dist/services/analytics/risk.service.d.ts +92 -0
  200. package/dist/services/analytics/risk.service.d.ts.map +1 -0
  201. package/dist/services/analytics/risk.service.js +423 -0
  202. package/dist/services/analytics/risk.service.js.map +1 -0
  203. package/dist/services/base.service.d.ts +39 -0
  204. package/dist/services/base.service.d.ts.map +1 -0
  205. package/dist/services/base.service.js +37 -0
  206. package/dist/services/base.service.js.map +1 -0
  207. package/dist/services/index.d.ts +30 -0
  208. package/dist/services/index.d.ts.map +1 -0
  209. package/dist/services/index.js +101 -0
  210. package/dist/services/index.js.map +1 -0
  211. package/dist/tools/__tests__/simulate-vault.test.d.ts +5 -0
  212. package/dist/tools/__tests__/simulate-vault.test.d.ts.map +1 -0
  213. package/dist/tools/__tests__/simulate-vault.test.js +363 -0
  214. package/dist/tools/__tests__/simulate-vault.test.js.map +1 -0
  215. package/dist/tools/analyze-risk.d.ts +34 -0
  216. package/dist/tools/analyze-risk.d.ts.map +1 -0
  217. package/dist/tools/analyze-risk.js +100 -0
  218. package/dist/tools/analyze-risk.js.map +1 -0
  219. package/dist/tools/compare-vaults.d.ts +29 -0
  220. package/dist/tools/compare-vaults.d.ts.map +1 -0
  221. package/dist/tools/compare-vaults.js +285 -0
  222. package/dist/tools/compare-vaults.js.map +1 -0
  223. package/dist/tools/export-data.d.ts +34 -0
  224. package/dist/tools/export-data.d.ts.map +1 -0
  225. package/dist/tools/export-data.js +309 -0
  226. package/dist/tools/export-data.js.map +1 -0
  227. package/dist/tools/get-price-history.d.ts +29 -0
  228. package/dist/tools/get-price-history.d.ts.map +1 -0
  229. package/dist/tools/get-price-history.js +236 -0
  230. package/dist/tools/get-price-history.js.map +1 -0
  231. package/dist/tools/get-transactions.d.ts +29 -0
  232. package/dist/tools/get-transactions.d.ts.map +1 -0
  233. package/dist/tools/get-transactions.js +181 -0
  234. package/dist/tools/get-transactions.js.map +1 -0
  235. package/dist/tools/index.d.ts +26 -0
  236. package/dist/tools/index.d.ts.map +1 -0
  237. package/dist/tools/index.js +32 -0
  238. package/dist/tools/index.js.map +1 -0
  239. package/dist/tools/optimize-portfolio.d.ts +37 -0
  240. package/dist/tools/optimize-portfolio.d.ts.map +1 -0
  241. package/dist/tools/optimize-portfolio.js +459 -0
  242. package/dist/tools/optimize-portfolio.js.map +1 -0
  243. package/dist/tools/predict-yield.d.ts +30 -0
  244. package/dist/tools/predict-yield.d.ts.map +1 -0
  245. package/dist/tools/predict-yield.js +248 -0
  246. package/dist/tools/predict-yield.js.map +1 -0
  247. package/dist/tools/query-graphql.d.ts +35 -0
  248. package/dist/tools/query-graphql.d.ts.map +1 -0
  249. package/dist/tools/query-graphql.js +54 -0
  250. package/dist/tools/query-graphql.js.map +1 -0
  251. package/dist/tools/registry.d.ts +42 -0
  252. package/dist/tools/registry.d.ts.map +1 -0
  253. package/dist/tools/registry.js +231 -0
  254. package/dist/tools/registry.js.map +1 -0
  255. package/dist/tools/search-vaults.d.ts +40 -0
  256. package/dist/tools/search-vaults.d.ts.map +1 -0
  257. package/dist/tools/search-vaults.js +184 -0
  258. package/dist/tools/search-vaults.js.map +1 -0
  259. package/dist/tools/simulate-vault.d.ts +80 -0
  260. package/dist/tools/simulate-vault.d.ts.map +1 -0
  261. package/dist/tools/simulate-vault.js +281 -0
  262. package/dist/tools/simulate-vault.js.map +1 -0
  263. package/dist/tools/user-portfolio.d.ts +30 -0
  264. package/dist/tools/user-portfolio.d.ts.map +1 -0
  265. package/dist/tools/user-portfolio.js +142 -0
  266. package/dist/tools/user-portfolio.js.map +1 -0
  267. package/dist/tools/vault-data.d.ts +23 -0
  268. package/dist/tools/vault-data.d.ts.map +1 -0
  269. package/dist/tools/vault-data.js +68 -0
  270. package/dist/tools/vault-data.js.map +1 -0
  271. package/dist/tools/vault-performance.d.ts +30 -0
  272. package/dist/tools/vault-performance.d.ts.map +1 -0
  273. package/dist/tools/vault-performance.js +275 -0
  274. package/dist/tools/vault-performance.js.map +1 -0
  275. package/dist/types/generated.d.ts +1109 -0
  276. package/dist/types/generated.d.ts.map +1 -0
  277. package/dist/types/generated.js +2 -0
  278. package/dist/types/generated.js.map +1 -0
  279. package/dist/types/index.d.ts +46 -0
  280. package/dist/types/index.d.ts.map +1 -0
  281. package/dist/types/index.js +8 -0
  282. package/dist/types/index.js.map +1 -0
  283. package/dist/utils/comparison-metrics.d.ts +120 -0
  284. package/dist/utils/comparison-metrics.d.ts.map +1 -0
  285. package/dist/utils/comparison-metrics.js +215 -0
  286. package/dist/utils/comparison-metrics.js.map +1 -0
  287. package/dist/utils/config-loader.d.ts +17 -0
  288. package/dist/utils/config-loader.d.ts.map +1 -0
  289. package/dist/utils/config-loader.js +45 -0
  290. package/dist/utils/config-loader.js.map +1 -0
  291. package/dist/utils/csv-generator.d.ts +89 -0
  292. package/dist/utils/csv-generator.d.ts.map +1 -0
  293. package/dist/utils/csv-generator.js +97 -0
  294. package/dist/utils/csv-generator.js.map +1 -0
  295. package/dist/utils/disclaimers.d.ts +70 -0
  296. package/dist/utils/disclaimers.d.ts.map +1 -0
  297. package/dist/utils/disclaimers.js +161 -0
  298. package/dist/utils/disclaimers.js.map +1 -0
  299. package/dist/utils/errors.d.ts +66 -0
  300. package/dist/utils/errors.d.ts.map +1 -0
  301. package/dist/utils/errors.js +86 -0
  302. package/dist/utils/errors.js.map +1 -0
  303. package/dist/utils/execute-tool-with-cache.d.ts +97 -0
  304. package/dist/utils/execute-tool-with-cache.d.ts.map +1 -0
  305. package/dist/utils/execute-tool-with-cache.js +105 -0
  306. package/dist/utils/execute-tool-with-cache.js.map +1 -0
  307. package/dist/utils/portfolio-optimization.d.ts +100 -0
  308. package/dist/utils/portfolio-optimization.d.ts.map +1 -0
  309. package/dist/utils/portfolio-optimization.js +283 -0
  310. package/dist/utils/portfolio-optimization.js.map +1 -0
  311. package/dist/utils/risk-scoring.d.ts +226 -0
  312. package/dist/utils/risk-scoring.d.ts.map +1 -0
  313. package/dist/utils/risk-scoring.js +523 -0
  314. package/dist/utils/risk-scoring.js.map +1 -0
  315. package/dist/utils/tool-error-handler.d.ts +16 -0
  316. package/dist/utils/tool-error-handler.d.ts.map +1 -0
  317. package/dist/utils/tool-error-handler.js +43 -0
  318. package/dist/utils/tool-error-handler.js.map +1 -0
  319. package/dist/utils/tool-handler.d.ts +33 -0
  320. package/dist/utils/tool-handler.d.ts.map +1 -0
  321. package/dist/utils/tool-handler.js +59 -0
  322. package/dist/utils/tool-handler.js.map +1 -0
  323. package/dist/utils/tool-response.d.ts +16 -0
  324. package/dist/utils/tool-response.d.ts.map +1 -0
  325. package/dist/utils/tool-response.js +25 -0
  326. package/dist/utils/tool-response.js.map +1 -0
  327. package/dist/utils/validators.d.ts +359 -0
  328. package/dist/utils/validators.d.ts.map +1 -0
  329. package/dist/utils/validators.js +233 -0
  330. package/dist/utils/validators.js.map +1 -0
  331. package/dist/utils/yield-prediction.d.ts +69 -0
  332. package/dist/utils/yield-prediction.d.ts.map +1 -0
  333. package/dist/utils/yield-prediction.js +290 -0
  334. package/dist/utils/yield-prediction.js.map +1 -0
  335. package/package.json +83 -0
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Portfolio Queries
3
+ *
4
+ * GraphQL queries for user portfolio operations.
5
+ * Includes user portfolio data and portfolio optimization queries.
6
+ */
7
+ import { VAULT_FRAGMENT, VAULT_LIST_FRAGMENT, VAULT_SUMMARY_FRAGMENT } from '../fragments/index.js';
8
+ /**
9
+ * Get fragment and fragment name based on response format for portfolio queries
10
+ */
11
+ function getFragmentForPortfolioResponseFormat(responseFormat) {
12
+ switch (responseFormat) {
13
+ case 'list':
14
+ return { fragment: VAULT_LIST_FRAGMENT, fragmentName: 'VaultListFragment' };
15
+ case 'summary':
16
+ return { fragment: VAULT_SUMMARY_FRAGMENT, fragmentName: 'VaultSummaryFragment' };
17
+ case 'full':
18
+ return { fragment: VAULT_FRAGMENT, fragmentName: 'VaultFragment' };
19
+ default:
20
+ return { fragment: VAULT_SUMMARY_FRAGMENT, fragmentName: 'VaultSummaryFragment' };
21
+ }
22
+ }
23
+ /**
24
+ * Create user portfolio GraphQL query with dynamic fragment selection
25
+ *
26
+ * Fetches complete user portfolio with vault positions and metadata.
27
+ * Fragment selection optimizes token usage based on required detail level.
28
+ *
29
+ * Used by: get_user_portfolio tool
30
+ *
31
+ * @param responseFormat - Detail level: 'list' (~60 tokens/vault), 'summary' (~170 tokens/vault), 'full' (~600 tokens/vault)
32
+ * @returns GraphQL query string with appropriate fragment
33
+ *
34
+ * Usage:
35
+ * ```typescript
36
+ * const query = createGetUserPortfolioQuery('summary'); // Balanced data
37
+ * const data = await graphqlClient.request<UserPortfolioResponse>(
38
+ * query,
39
+ * { where: { user_eq: '0x...' } }
40
+ * );
41
+ * ```
42
+ *
43
+ * Token optimization:
44
+ * - list: ~60 tokens/position (minimal vault data)
45
+ * - summary: ~170 tokens/position (balanced - includes curators, descriptions)
46
+ * - full: ~600 tokens/position (complete vault data)
47
+ *
48
+ * For a user with 10 positions:
49
+ * - list: 600 tokens (90% reduction)
50
+ * - summary: 1,700 tokens (72% reduction)
51
+ * - full: 6,000 tokens (current behavior)
52
+ */
53
+ export function createGetUserPortfolioQuery(responseFormat = 'summary') {
54
+ const { fragment, fragmentName } = getFragmentForPortfolioResponseFormat(responseFormat);
55
+ return `
56
+ query GetUserPortfolio($where: UserFilterInput) {
57
+ users(where: $where) {
58
+ items {
59
+ state {
60
+ totalSharesUsd
61
+ }
62
+ vaultPositions {
63
+ vault {
64
+ ...${fragmentName}
65
+ }
66
+ state {
67
+ assets
68
+ shares
69
+ sharesUsd
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ ${fragment}
76
+ `;
77
+ }
78
+ /**
79
+ * User portfolio GraphQL query (legacy - uses full fragment)
80
+ *
81
+ * @deprecated Use createGetUserPortfolioQuery('full') instead for explicit fragment selection
82
+ *
83
+ * This maintains backward compatibility for existing code.
84
+ * Consider migrating to createGetUserPortfolioQuery() for better token efficiency.
85
+ */
86
+ export const GET_USER_PORTFOLIO_QUERY = createGetUserPortfolioQuery('full');
87
+ /**
88
+ * GraphQL query for single vault optimization data
89
+ *
90
+ * Fetches one vault with its historical price and performance metrics
91
+ * for portfolio optimization calculations. Used in parallel queries.
92
+ *
93
+ * Used by: optimize_portfolio tool (per-vault queries)
94
+ *
95
+ * Usage:
96
+ * ```typescript
97
+ * const data = await graphqlClient.request<SingleVaultOptimizationResponse>(
98
+ * SINGLE_VAULT_OPTIMIZATION_QUERY,
99
+ * { vaultAddress: '0x...', chainId: 1 }
100
+ * );
101
+ * ```
102
+ */
103
+ export const SINGLE_VAULT_OPTIMIZATION_QUERY = `
104
+ query SingleVaultOptimization($vaultAddress: Address!, $chainId: Int!) {
105
+ vault: vaultByAddress(address: $vaultAddress, chainId: $chainId) {
106
+ ...VaultFragment
107
+ }
108
+
109
+ # Get price history for volatility calculation
110
+ priceHistory: transactions(
111
+ where: {
112
+ vault_in: [$vaultAddress],
113
+ type_in: [TotalAssetsUpdated]
114
+ },
115
+ orderBy: timestamp,
116
+ orderDirection: asc,
117
+ first: 1000
118
+ ) {
119
+ items {
120
+ timestamp
121
+ data {
122
+ ... on TotalAssetsUpdated {
123
+ totalAssets
124
+ totalAssetsUsd
125
+ totalSupply
126
+ vault {
127
+ decimals
128
+ asset {
129
+ decimals
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
137
+ ${VAULT_FRAGMENT}
138
+ `;
139
+ /**
140
+ * GraphQL query for portfolio optimization data (DEPRECATED)
141
+ *
142
+ * This query is deprecated in favor of SINGLE_VAULT_OPTIMIZATION_QUERY
143
+ * executed in parallel for each vault. Multi-vault queries cannot
144
+ * distinguish which transactions belong to which vault.
145
+ *
146
+ * @deprecated Use SINGLE_VAULT_OPTIMIZATION_QUERY with Promise.all instead
147
+ */
148
+ export const PORTFOLIO_OPTIMIZATION_QUERY = `
149
+ query PortfolioOptimization($vaultAddresses: [Address!]!, $chainId: Int!) {
150
+ vaults(where: { address_in: $vaultAddresses, chainId_eq: $chainId }) {
151
+ items {
152
+ ...VaultFragment
153
+ }
154
+ }
155
+
156
+ # Get price history for volatility calculation
157
+ priceHistory: transactions(
158
+ where: {
159
+ vault_in: $vaultAddresses,
160
+ type_in: ["TotalAssetsUpdated"]
161
+ },
162
+ orderBy: "timestamp",
163
+ orderDirection: "asc",
164
+ first: 1000
165
+ ) {
166
+ items {
167
+ timestamp
168
+ data {
169
+ ... on TotalAssetsUpdated {
170
+ pricePerShareUsd
171
+ }
172
+ }
173
+ }
174
+ }
175
+
176
+ # Get APR data for return estimation
177
+ performanceData: transactions(
178
+ where: {
179
+ vault_in: $vaultAddresses,
180
+ type_in: ["PeriodSummary"]
181
+ },
182
+ orderBy: "timestamp",
183
+ orderDirection: "asc",
184
+ first: 1000
185
+ ) {
186
+ items {
187
+ timestamp
188
+ data {
189
+ ... on PeriodSummary {
190
+ linearNetApr
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+ ${VAULT_FRAGMENT}
197
+ `;
198
+ //# sourceMappingURL=portfolio.queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolio.queries.js","sourceRoot":"","sources":["../../../src/graphql/queries/portfolio.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAOpG;;GAEG;AACH,SAAS,qCAAqC,CAAC,cAAuC;IAIpF,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;QAC9E,KAAK,SAAS;YACZ,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC;QACpF,KAAK,MAAM;YACT,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;QACrE;YACE,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACtF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,2BAA2B,CACzC,iBAA0C,SAAS;IAEnD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,qCAAqC,CAAC,cAAc,CAAC,CAAC;IAEzF,OAAO;;;;;;;;;mBASU,YAAY;;;;;;;;;;;MAWzB,QAAQ;GACX,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkC3C,cAAc;CACjB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDxC,cAAc;CACjB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Prediction Queries
3
+ *
4
+ * GraphQL queries for yield prediction and forecasting.
5
+ * Includes historical performance data for ML-based yield prediction.
6
+ */
7
+ /**
8
+ * Response format type for yield prediction query
9
+ */
10
+ export type PredictionResponseFormat = 'quick' | 'detailed';
11
+ /**
12
+ * Create yield prediction GraphQL query with dynamic fragment selection
13
+ */
14
+ export declare function createYieldPredictionQuery(responseFormat?: PredictionResponseFormat): string;
15
+ /**
16
+ * GraphQL query for vault yield prediction data
17
+ *
18
+ * Fetches historical performance and TVL data for ML-based yield forecasting:
19
+ * - Vault data with current state
20
+ * - Performance history (PeriodSummary) for APR trends
21
+ * - TVL history (TotalAssetsUpdated) for growth tracking
22
+ *
23
+ * Used by: predict_yield tool
24
+ *
25
+ * Usage:
26
+ * ```typescript
27
+ * const data = await graphqlClient.request<YieldPredictionResponse>(
28
+ * YIELD_PREDICTION_QUERY,
29
+ * {
30
+ * vaultAddress: '0x...',
31
+ * chainId: 1,
32
+ * timestamp_gte: '1234567890'
33
+ * }
34
+ * );
35
+ * ```
36
+ */
37
+ export declare const YIELD_PREDICTION_QUERY: string;
38
+ //# sourceMappingURL=prediction.queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prediction.queries.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/prediction.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,UAAU,CAAC;AAmB5D;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,GAAE,wBAAkC,GACjD,MAAM,CAqDR;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB,QAAyC,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Prediction Queries
3
+ *
4
+ * GraphQL queries for yield prediction and forecasting.
5
+ * Includes historical performance data for ML-based yield prediction.
6
+ */
7
+ import { VAULT_FRAGMENT, VAULT_LIST_FRAGMENT } from '../fragments/index.js';
8
+ /**
9
+ * Get fragment and fragment name based on response format for prediction queries
10
+ */
11
+ function getFragmentForPredictionResponseFormat(responseFormat) {
12
+ switch (responseFormat) {
13
+ case 'quick':
14
+ return { fragment: VAULT_LIST_FRAGMENT, fragmentName: 'VaultListFragment' };
15
+ case 'detailed':
16
+ return { fragment: VAULT_FRAGMENT, fragmentName: 'VaultFragment' };
17
+ default:
18
+ return { fragment: VAULT_LIST_FRAGMENT, fragmentName: 'VaultListFragment' };
19
+ }
20
+ }
21
+ /**
22
+ * Create yield prediction GraphQL query with dynamic fragment selection
23
+ */
24
+ export function createYieldPredictionQuery(responseFormat = 'quick') {
25
+ const { fragment, fragmentName } = getFragmentForPredictionResponseFormat(responseFormat);
26
+ return `
27
+ query YieldPrediction($vaultAddress: Address!, $chainId: Int!) {
28
+ vault: vaultByAddress(address: $vaultAddress, chainId: $chainId) {
29
+ ...${fragmentName}
30
+ }
31
+
32
+ # Get historical performance data
33
+ performanceHistory: transactions(
34
+ where: {
35
+ vault_in: [$vaultAddress],
36
+ type_in: [PeriodSummary]
37
+ },
38
+ orderBy: timestamp,
39
+ orderDirection: asc,
40
+ first: 1000
41
+ ) {
42
+ items {
43
+ timestamp
44
+ data {
45
+ ... on PeriodSummary {
46
+ totalAssetsAtStart
47
+ totalSupplyAtStart
48
+ totalAssetsAtEnd
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ # Get recent total assets updates for TVL tracking
55
+ tvlHistory: transactions(
56
+ where: {
57
+ vault_in: [$vaultAddress],
58
+ type_in: [TotalAssetsUpdated]
59
+ },
60
+ orderBy: timestamp,
61
+ orderDirection: asc,
62
+ first: 100
63
+ ) {
64
+ items {
65
+ timestamp
66
+ data {
67
+ ... on TotalAssetsUpdated {
68
+ totalAssetsUsd
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ ${fragment}
75
+ `;
76
+ }
77
+ /**
78
+ * GraphQL query for vault yield prediction data
79
+ *
80
+ * Fetches historical performance and TVL data for ML-based yield forecasting:
81
+ * - Vault data with current state
82
+ * - Performance history (PeriodSummary) for APR trends
83
+ * - TVL history (TotalAssetsUpdated) for growth tracking
84
+ *
85
+ * Used by: predict_yield tool
86
+ *
87
+ * Usage:
88
+ * ```typescript
89
+ * const data = await graphqlClient.request<YieldPredictionResponse>(
90
+ * YIELD_PREDICTION_QUERY,
91
+ * {
92
+ * vaultAddress: '0x...',
93
+ * chainId: 1,
94
+ * timestamp_gte: '1234567890'
95
+ * }
96
+ * );
97
+ * ```
98
+ */
99
+ export const YIELD_PREDICTION_QUERY = createYieldPredictionQuery('detailed');
100
+ //# sourceMappingURL=prediction.queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prediction.queries.js","sourceRoot":"","sources":["../../../src/graphql/queries/prediction.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAO5E;;GAEG;AACH,SAAS,sCAAsC,CAAC,cAAwC;IAItF,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;QAC9E,KAAK,UAAU;YACb,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;QACrE;YACE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,iBAA2C,OAAO;IAElD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,sCAAsC,CAAC,cAAc,CAAC,CAAC;IAE1F,OAAO;;;aAGI,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6CnB,QAAQ;GACX,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Risk Queries
3
+ *
4
+ * GraphQL queries for vault risk analysis.
5
+ * Includes multi-factor risk scoring with vault, protocol, and market data.
6
+ */
7
+ /**
8
+ * GraphQL query for vault risk analysis data
9
+ *
10
+ * Fetches comprehensive data for multi-factor risk analysis including:
11
+ * - Vault data with complete metadata
12
+ * - All vaults for concentration risk calculation
13
+ * - Curator's other vaults for reputation analysis
14
+ * - Price history for volatility analysis
15
+ *
16
+ * Used by: analyze_risk tool
17
+ *
18
+ * Usage:
19
+ * ```typescript
20
+ * const data = await graphqlClient.request<RiskAnalysisResponse>(
21
+ * RISK_ANALYSIS_QUERY,
22
+ * {
23
+ * vaultAddress: '0x...',
24
+ * chainId: 1,
25
+ * curatorId: 'curator-id',
26
+ * where: {
27
+ * vault_in: ['0x...'],
28
+ * type_in: ['TotalAssetsUpdated']
29
+ * },
30
+ * orderBy: 'timestamp',
31
+ * orderDirection: 'asc'
32
+ * }
33
+ * );
34
+ * ```
35
+ */
36
+ export declare const RISK_ANALYSIS_QUERY = "\n query RiskAnalysis(\n $vaultAddress: Address!,\n $chainId: Int!,\n $curatorId: String!,\n $where: TransactionFilterInput!,\n $orderBy: TransactionOrderBy!,\n $orderDirection: OrderDirection!\n ) {\n vault: vaultByAddress(address: $vaultAddress, chainId: $chainId) {\n ...VaultFragment\n }\n\n # Get all vaults for concentration risk calculation\n allVaults: vaults(where: { chainId_eq: $chainId, isVisible_eq: true }) {\n items {\n state {\n totalAssetsUsd\n }\n }\n }\n\n # Get curator's other vaults for reputation analysis\n curatorVaults: vaults(where: { chainId_eq: $chainId, curatorIds_contains: $curatorId }) {\n items {\n address\n state {\n totalAssetsUsd\n }\n }\n }\n\n # Get price history for volatility analysis\n priceHistory: transactions(\n where: $where,\n orderBy: $orderBy,\n orderDirection: $orderDirection,\n first: 100\n ) {\n items {\n timestamp\n data {\n ... on TotalAssetsUpdated {\n totalAssets\n totalAssetsUsd\n totalSupply\n }\n }\n }\n }\n }\n \n fragment VaultFragment on Vault {\n address\n symbol\n decimals\n name\n description\n shortDescription\n maxCapacity\n logoUrl\n averageSettlement\n isVisible\n asset {\n ...AssetInfoFragment\n }\n chain {\n ...ChainInfoFragment\n }\n state {\n state\n totalAssets\n totalAssetsUsd\n totalSupply\n pricePerShare\n pricePerShareUsd\n safeAssetBalance\n liveAPR {\n grossApr\n name\n netApr\n description\n }\n roles {\n owner\n valuationManager\n whitelistManager\n safe\n feeReceiver\n }\n managementFee\n performanceFee\n pendingSettlement {\n assets\n assetsUsd\n shares\n }\n inceptionApr {\n ...APRBreakdownFragment\n }\n pendingSiloBalances {\n assets\n shares\n }\n monthlyApr {\n ...APRBreakdownFragment\n }\n newTotalAssets\n highWaterMark\n lastFeeTime\n safeAssetBalanceUsd\n weeklyApr {\n ...APRBreakdownFragment\n }\n yearlyApr {\n ...APRBreakdownFragment\n }\n }\n curators {\n name\n id\n aboutDescription\n logoUrl\n url\n }\n integrator {\n name\n url\n logoUrl\n aboutDescription\n }\n defiIntegrations {\n name\n description\n link\n logoUrl\n type\n }\n }\n \n fragment AssetInfoFragment on Asset {\n id\n name\n symbol\n decimals\n address\n logoUrl\n description\n isVisible\n priceUsd\n chain {\n id\n name\n nativeToken\n logoUrl\n }\n }\n\n \n fragment ChainInfoFragment on Chain {\n id\n name\n nativeToken\n logoUrl\n wrappedNativeToken {\n address\n decimals\n name\n symbol\n }\n factory\n }\n\n \n fragment APRBreakdownFragment on APRs {\n linearNetApr\n linearNetAprWithoutExtraYields\n airdrops {\n name\n apr\n description\n distributionTimestamp\n endTimestamp\n isEstimation\n logoUrl\n multiplier\n ppsIncrease\n startTimestamp\n }\n incentives {\n name\n apr\n aprDescription\n description\n endTimestamp\n incentiveRate {\n incentiveAmount\n referenceToken {\n id\n }\n referenceTokenAmount\n }\n }\n nativeYields {\n name\n apr\n aprDescription\n description\n endTimestamp\n isEstimation\n logoUrl\n multiplier\n startTimestamp\n }\n }\n\n\n";
37
+ //# sourceMappingURL=risk.queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"risk.queries.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/risk.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,mBAAmB,80HAoD/B,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Risk Queries
3
+ *
4
+ * GraphQL queries for vault risk analysis.
5
+ * Includes multi-factor risk scoring with vault, protocol, and market data.
6
+ */
7
+ import { VAULT_FRAGMENT } from '../fragments/index.js';
8
+ /**
9
+ * GraphQL query for vault risk analysis data
10
+ *
11
+ * Fetches comprehensive data for multi-factor risk analysis including:
12
+ * - Vault data with complete metadata
13
+ * - All vaults for concentration risk calculation
14
+ * - Curator's other vaults for reputation analysis
15
+ * - Price history for volatility analysis
16
+ *
17
+ * Used by: analyze_risk tool
18
+ *
19
+ * Usage:
20
+ * ```typescript
21
+ * const data = await graphqlClient.request<RiskAnalysisResponse>(
22
+ * RISK_ANALYSIS_QUERY,
23
+ * {
24
+ * vaultAddress: '0x...',
25
+ * chainId: 1,
26
+ * curatorId: 'curator-id',
27
+ * where: {
28
+ * vault_in: ['0x...'],
29
+ * type_in: ['TotalAssetsUpdated']
30
+ * },
31
+ * orderBy: 'timestamp',
32
+ * orderDirection: 'asc'
33
+ * }
34
+ * );
35
+ * ```
36
+ */
37
+ export const RISK_ANALYSIS_QUERY = `
38
+ query RiskAnalysis(
39
+ $vaultAddress: Address!,
40
+ $chainId: Int!,
41
+ $curatorId: String!,
42
+ $where: TransactionFilterInput!,
43
+ $orderBy: TransactionOrderBy!,
44
+ $orderDirection: OrderDirection!
45
+ ) {
46
+ vault: vaultByAddress(address: $vaultAddress, chainId: $chainId) {
47
+ ...VaultFragment
48
+ }
49
+
50
+ # Get all vaults for concentration risk calculation
51
+ allVaults: vaults(where: { chainId_eq: $chainId, isVisible_eq: true }) {
52
+ items {
53
+ state {
54
+ totalAssetsUsd
55
+ }
56
+ }
57
+ }
58
+
59
+ # Get curator's other vaults for reputation analysis
60
+ curatorVaults: vaults(where: { chainId_eq: $chainId, curatorIds_contains: $curatorId }) {
61
+ items {
62
+ address
63
+ state {
64
+ totalAssetsUsd
65
+ }
66
+ }
67
+ }
68
+
69
+ # Get price history for volatility analysis
70
+ priceHistory: transactions(
71
+ where: $where,
72
+ orderBy: $orderBy,
73
+ orderDirection: $orderDirection,
74
+ first: 100
75
+ ) {
76
+ items {
77
+ timestamp
78
+ data {
79
+ ... on TotalAssetsUpdated {
80
+ totalAssets
81
+ totalAssetsUsd
82
+ totalSupply
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ ${VAULT_FRAGMENT}
89
+ `;
90
+ //# sourceMappingURL=risk.queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"risk.queries.js","sourceRoot":"","sources":["../../../src/graphql/queries/risk.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmD/B,cAAc;CACjB,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Search Queries
3
+ *
4
+ * GraphQL queries for vault search and discovery operations.
5
+ * Supports advanced filtering, pagination, and sorting.
6
+ */
7
+ /**
8
+ * Response format type for search vaults query
9
+ */
10
+ export type SearchVaultsResponseFormat = 'list' | 'summary' | 'full';
11
+ /**
12
+ * Create search vaults GraphQL query with dynamic fragment selection
13
+ *
14
+ * Supports advanced filtering, pagination, and sorting for vault discovery.
15
+ * Fragment selection optimizes token usage based on required detail level.
16
+ *
17
+ * Used by: search_vaults tool
18
+ *
19
+ * @param responseFormat - Detail level: 'list' (~60 tokens/vault), 'summary' (~170 tokens/vault), 'full' (~600 tokens/vault)
20
+ * @returns GraphQL query string with appropriate fragment
21
+ *
22
+ * Usage:
23
+ * ```typescript
24
+ * const query = createSearchVaultsQuery('list'); // Minimal data
25
+ * const data = await graphqlClient.request<SearchVaultsResponse>(
26
+ * query,
27
+ * {
28
+ * first: 20,
29
+ * skip: 0,
30
+ * orderBy: 'totalAssetsUsd',
31
+ * orderDirection: 'desc',
32
+ * where: { chainId_eq: 1, isVisible_eq: true }
33
+ * }
34
+ * );
35
+ * ```
36
+ *
37
+ * Supported filters:
38
+ * - Asset filters: assetSymbol_eq, assetSymbol_in, assetId_eq, assetId_in
39
+ * - Chain filters: chainId_eq, chainId_in
40
+ * - Curator filters: curatorIds_contains, curatorIds_contains_any
41
+ * - Visibility: isVisible_eq
42
+ * - Address filters: address_eq, address_in
43
+ * - Symbol filters: symbol_eq, symbol_in
44
+ * - Integrator filters: integratorId_eq, integratorId_in
45
+ * - TVL filters: state_totalAssetsUsd_gte, state_totalAssetsUsd_lte
46
+ *
47
+ * Sorting options:
48
+ * - orderBy: 'totalAssetsUsd' | 'address' | 'chainId' | 'id'
49
+ * - orderDirection: 'asc' | 'desc'
50
+ */
51
+ export declare function createSearchVaultsQuery(responseFormat?: SearchVaultsResponseFormat): string;
52
+ /**
53
+ * Search vaults GraphQL query (legacy - uses full fragment)
54
+ *
55
+ * @deprecated Use createSearchVaultsQuery('full') instead for explicit fragment selection
56
+ *
57
+ * This maintains backward compatibility for existing code.
58
+ * Consider migrating to createSearchVaultsQuery() for better token efficiency.
59
+ */
60
+ export declare const SEARCH_VAULTS_QUERY: string;
61
+ //# sourceMappingURL=search.queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.queries.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/search.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,GAAE,0BAAmC,GAClD,MAAM,CA6BR;AAqBD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,QAAkC,CAAC"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Search Queries
3
+ *
4
+ * GraphQL queries for vault search and discovery operations.
5
+ * Supports advanced filtering, pagination, and sorting.
6
+ */
7
+ import { VAULT_FRAGMENT, PAGEINFO_MINIMAL_FRAGMENT } from '../fragments/index.js';
8
+ import { VAULT_LIST_FRAGMENT } from '../fragments/vault-list.fragment.js';
9
+ import { VAULT_SUMMARY_FRAGMENT } from '../fragments/vault-summary.fragment.js';
10
+ /**
11
+ * Create search vaults GraphQL query with dynamic fragment selection
12
+ *
13
+ * Supports advanced filtering, pagination, and sorting for vault discovery.
14
+ * Fragment selection optimizes token usage based on required detail level.
15
+ *
16
+ * Used by: search_vaults tool
17
+ *
18
+ * @param responseFormat - Detail level: 'list' (~60 tokens/vault), 'summary' (~170 tokens/vault), 'full' (~600 tokens/vault)
19
+ * @returns GraphQL query string with appropriate fragment
20
+ *
21
+ * Usage:
22
+ * ```typescript
23
+ * const query = createSearchVaultsQuery('list'); // Minimal data
24
+ * const data = await graphqlClient.request<SearchVaultsResponse>(
25
+ * query,
26
+ * {
27
+ * first: 20,
28
+ * skip: 0,
29
+ * orderBy: 'totalAssetsUsd',
30
+ * orderDirection: 'desc',
31
+ * where: { chainId_eq: 1, isVisible_eq: true }
32
+ * }
33
+ * );
34
+ * ```
35
+ *
36
+ * Supported filters:
37
+ * - Asset filters: assetSymbol_eq, assetSymbol_in, assetId_eq, assetId_in
38
+ * - Chain filters: chainId_eq, chainId_in
39
+ * - Curator filters: curatorIds_contains, curatorIds_contains_any
40
+ * - Visibility: isVisible_eq
41
+ * - Address filters: address_eq, address_in
42
+ * - Symbol filters: symbol_eq, symbol_in
43
+ * - Integrator filters: integratorId_eq, integratorId_in
44
+ * - TVL filters: state_totalAssetsUsd_gte, state_totalAssetsUsd_lte
45
+ *
46
+ * Sorting options:
47
+ * - orderBy: 'totalAssetsUsd' | 'address' | 'chainId' | 'id'
48
+ * - orderDirection: 'asc' | 'desc'
49
+ */
50
+ export function createSearchVaultsQuery(responseFormat = 'list') {
51
+ const { fragment, fragmentName } = getFragmentForResponseFormat(responseFormat);
52
+ return `
53
+ query SearchVaults(
54
+ $first: Int!,
55
+ $skip: Int!,
56
+ $orderBy: VaultOrderBy!,
57
+ $orderDirection: OrderDirection!,
58
+ $where: VaultFilterInput
59
+ ) {
60
+ vaults(
61
+ first: $first,
62
+ skip: $skip,
63
+ orderBy: $orderBy,
64
+ orderDirection: $orderDirection,
65
+ where: $where
66
+ ) {
67
+ items {
68
+ ...${fragmentName}
69
+ }
70
+ pageInfo {
71
+ ...PageInfoMinimalFragment
72
+ }
73
+ }
74
+ }
75
+ ${fragment}
76
+ ${PAGEINFO_MINIMAL_FRAGMENT}
77
+ `;
78
+ }
79
+ /**
80
+ * Get fragment and fragment name based on response format
81
+ */
82
+ function getFragmentForResponseFormat(responseFormat) {
83
+ switch (responseFormat) {
84
+ case 'list':
85
+ return { fragment: VAULT_LIST_FRAGMENT, fragmentName: 'VaultListFragment' };
86
+ case 'summary':
87
+ return { fragment: VAULT_SUMMARY_FRAGMENT, fragmentName: 'VaultSummaryFragment' };
88
+ case 'full':
89
+ return { fragment: VAULT_FRAGMENT, fragmentName: 'VaultFragment' };
90
+ default:
91
+ return { fragment: VAULT_LIST_FRAGMENT, fragmentName: 'VaultListFragment' };
92
+ }
93
+ }
94
+ /**
95
+ * Search vaults GraphQL query (legacy - uses full fragment)
96
+ *
97
+ * @deprecated Use createSearchVaultsQuery('full') instead for explicit fragment selection
98
+ *
99
+ * This maintains backward compatibility for existing code.
100
+ * Consider migrating to createSearchVaultsQuery() for better token efficiency.
101
+ */
102
+ export const SEARCH_VAULTS_QUERY = createSearchVaultsQuery('full');
103
+ //# sourceMappingURL=search.queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.queries.js","sourceRoot":"","sources":["../../../src/graphql/queries/search.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAOhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,uBAAuB,CACrC,iBAA6C,MAAM;IAEnD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAC;IAEhF,OAAO;;;;;;;;;;;;;;;;eAgBM,YAAY;;;;;;;MAOrB,QAAQ;MACR,yBAAyB;GAC5B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,cAA0C;IAI9E,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;QAC9E,KAAK,SAAS;YACZ,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC;QACpF,KAAK,MAAM;YACT,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;QACrE;YACE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC"}