@lagoon-protocol/lagoon-mcp 0.5.0 → 0.7.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 (189) hide show
  1. package/README.md +72 -54
  2. package/dist/cache/index.d.ts +4 -1
  3. package/dist/cache/index.d.ts.map +1 -1
  4. package/dist/cache/index.js +4 -1
  5. package/dist/cache/index.js.map +1 -1
  6. package/dist/config.d.ts +1 -1
  7. package/dist/config.js +1 -1
  8. package/dist/core/container.js +1 -1
  9. package/dist/graphql/fragments/apr-breakdown.fragment.d.ts +4 -1
  10. package/dist/graphql/fragments/apr-breakdown.fragment.d.ts.map +1 -1
  11. package/dist/graphql/fragments/apr-breakdown.fragment.js +3 -0
  12. package/dist/graphql/fragments/apr-breakdown.fragment.js.map +1 -1
  13. package/dist/graphql/fragments/composition.fragment.d.ts +23 -134
  14. package/dist/graphql/fragments/composition.fragment.d.ts.map +1 -1
  15. package/dist/graphql/fragments/composition.fragment.js +9 -7
  16. package/dist/graphql/fragments/composition.fragment.js.map +1 -1
  17. package/dist/graphql/fragments/index.d.ts +1 -1
  18. package/dist/graphql/fragments/index.d.ts.map +1 -1
  19. package/dist/graphql/fragments/index.js +5 -4
  20. package/dist/graphql/fragments/index.js.map +1 -1
  21. package/dist/graphql/fragments/transaction-base.fragment.d.ts +1 -1
  22. package/dist/graphql/fragments/transaction-base.fragment.d.ts.map +1 -1
  23. package/dist/graphql/fragments/transaction-base.fragment.js +0 -1
  24. package/dist/graphql/fragments/transaction-base.fragment.js.map +1 -1
  25. package/dist/graphql/fragments/vault.fragment.d.ts +29 -1
  26. package/dist/graphql/fragments/vault.fragment.d.ts.map +1 -1
  27. package/dist/graphql/fragments/vault.fragment.js +29 -0
  28. package/dist/graphql/fragments/vault.fragment.js.map +1 -1
  29. package/dist/graphql/queries/composition.queries.d.ts +10 -28
  30. package/dist/graphql/queries/composition.queries.d.ts.map +1 -1
  31. package/dist/graphql/queries/composition.queries.js +17 -28
  32. package/dist/graphql/queries/composition.queries.js.map +1 -1
  33. package/dist/graphql/queries/discovery.queries.d.ts +50 -0
  34. package/dist/graphql/queries/discovery.queries.d.ts.map +1 -0
  35. package/dist/graphql/queries/discovery.queries.js +188 -0
  36. package/dist/graphql/queries/discovery.queries.js.map +1 -0
  37. package/dist/graphql/queries/export.queries.d.ts +5 -7
  38. package/dist/graphql/queries/export.queries.d.ts.map +1 -1
  39. package/dist/graphql/queries/export.queries.js +22 -28
  40. package/dist/graphql/queries/export.queries.js.map +1 -1
  41. package/dist/graphql/queries/index.d.ts +4 -3
  42. package/dist/graphql/queries/index.d.ts.map +1 -1
  43. package/dist/graphql/queries/index.js +5 -3
  44. package/dist/graphql/queries/index.js.map +1 -1
  45. package/dist/graphql/queries/performance.queries.d.ts +6 -4
  46. package/dist/graphql/queries/performance.queries.d.ts.map +1 -1
  47. package/dist/graphql/queries/performance.queries.js +5 -11
  48. package/dist/graphql/queries/performance.queries.js.map +1 -1
  49. package/dist/graphql/queries/portfolio.queries.d.ts +6 -12
  50. package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -1
  51. package/dist/graphql/queries/portfolio.queries.js +21 -88
  52. package/dist/graphql/queries/portfolio.queries.js.map +1 -1
  53. package/dist/graphql/queries/prediction.queries.d.ts +13 -15
  54. package/dist/graphql/queries/prediction.queries.d.ts.map +1 -1
  55. package/dist/graphql/queries/prediction.queries.js +12 -31
  56. package/dist/graphql/queries/prediction.queries.js.map +1 -1
  57. package/dist/graphql/queries/risk.queries.d.ts +3 -3
  58. package/dist/graphql/queries/risk.queries.d.ts.map +1 -1
  59. package/dist/graphql/queries/risk.queries.js +7 -22
  60. package/dist/graphql/queries/risk.queries.js.map +1 -1
  61. package/dist/graphql/queries/search.queries.d.ts.map +1 -1
  62. package/dist/graphql/queries/search.queries.js +6 -2
  63. package/dist/graphql/queries/search.queries.js.map +1 -1
  64. package/dist/graphql/queries/transaction.queries.d.ts +6 -26
  65. package/dist/graphql/queries/transaction.queries.d.ts.map +1 -1
  66. package/dist/graphql/queries/transaction.queries.js +227 -59
  67. package/dist/graphql/queries/transaction.queries.js.map +1 -1
  68. package/dist/graphql/queries/vault.queries.d.ts +21 -3
  69. package/dist/graphql/queries/vault.queries.d.ts.map +1 -1
  70. package/dist/graphql/queries/vault.queries.js +38 -0
  71. package/dist/graphql/queries/vault.queries.js.map +1 -1
  72. package/dist/index.js +0 -0
  73. package/dist/services/analytics/risk.service.d.ts +52 -33
  74. package/dist/services/analytics/risk.service.d.ts.map +1 -1
  75. package/dist/services/analytics/risk.service.js +165 -155
  76. package/dist/services/analytics/risk.service.js.map +1 -1
  77. package/dist/tools/compare-vaults.d.ts.map +1 -1
  78. package/dist/tools/compare-vaults.js +50 -77
  79. package/dist/tools/compare-vaults.js.map +1 -1
  80. package/dist/tools/export-data.d.ts.map +1 -1
  81. package/dist/tools/export-data.js +10 -16
  82. package/dist/tools/export-data.js.map +1 -1
  83. package/dist/tools/get-asset.d.ts +17 -0
  84. package/dist/tools/get-asset.d.ts.map +1 -0
  85. package/dist/tools/get-asset.js +44 -0
  86. package/dist/tools/get-asset.js.map +1 -0
  87. package/dist/tools/get-curator.d.ts +13 -0
  88. package/dist/tools/get-curator.d.ts.map +1 -0
  89. package/dist/tools/get-curator.js +81 -0
  90. package/dist/tools/get-curator.js.map +1 -0
  91. package/dist/tools/get-global-tvl.d.ts +20 -0
  92. package/dist/tools/get-global-tvl.d.ts.map +1 -0
  93. package/dist/tools/get-global-tvl.js +38 -0
  94. package/dist/tools/get-global-tvl.js.map +1 -0
  95. package/dist/tools/get-historical-state.d.ts +22 -0
  96. package/dist/tools/get-historical-state.d.ts.map +1 -0
  97. package/dist/tools/get-historical-state.js +65 -0
  98. package/dist/tools/get-historical-state.js.map +1 -0
  99. package/dist/tools/get-indexing-status.d.ts +20 -0
  100. package/dist/tools/get-indexing-status.d.ts.map +1 -0
  101. package/dist/tools/get-indexing-status.js +38 -0
  102. package/dist/tools/get-indexing-status.js.map +1 -0
  103. package/dist/tools/get-price-history.d.ts.map +1 -1
  104. package/dist/tools/get-price-history.js +55 -63
  105. package/dist/tools/get-price-history.js.map +1 -1
  106. package/dist/tools/get-transactions.d.ts.map +1 -1
  107. package/dist/tools/get-transactions.js +3 -1
  108. package/dist/tools/get-transactions.js.map +1 -1
  109. package/dist/tools/list-chains.d.ts +16 -0
  110. package/dist/tools/list-chains.d.ts.map +1 -0
  111. package/dist/tools/list-chains.js +46 -0
  112. package/dist/tools/list-chains.js.map +1 -0
  113. package/dist/tools/list-curators.d.ts +18 -0
  114. package/dist/tools/list-curators.d.ts.map +1 -0
  115. package/dist/tools/list-curators.js +49 -0
  116. package/dist/tools/list-curators.js.map +1 -0
  117. package/dist/tools/optimize-portfolio.d.ts.map +1 -1
  118. package/dist/tools/optimize-portfolio.js +6 -17
  119. package/dist/tools/optimize-portfolio.js.map +1 -1
  120. package/dist/tools/predict-yield.d.ts.map +1 -1
  121. package/dist/tools/predict-yield.js +109 -11
  122. package/dist/tools/predict-yield.js.map +1 -1
  123. package/dist/tools/registry.d.ts.map +1 -1
  124. package/dist/tools/registry.js +83 -11
  125. package/dist/tools/registry.js.map +1 -1
  126. package/dist/tools/search-vaults.d.ts.map +1 -1
  127. package/dist/tools/search-vaults.js +9 -2
  128. package/dist/tools/search-vaults.js.map +1 -1
  129. package/dist/tools/simulate-vault.d.ts +1 -1
  130. package/dist/tools/user-portfolio.d.ts.map +1 -1
  131. package/dist/tools/user-portfolio.js +30 -51
  132. package/dist/tools/user-portfolio.js.map +1 -1
  133. package/dist/tools/vault-composition.d.ts +18 -15
  134. package/dist/tools/vault-composition.d.ts.map +1 -1
  135. package/dist/tools/vault-composition.js +71 -155
  136. package/dist/tools/vault-composition.js.map +1 -1
  137. package/dist/tools/vault-performance.d.ts.map +1 -1
  138. package/dist/tools/vault-performance.js +7 -19
  139. package/dist/tools/vault-performance.js.map +1 -1
  140. package/dist/types/generated.d.ts +1191 -21
  141. package/dist/types/generated.d.ts.map +1 -1
  142. package/dist/utils/comparison-metrics.d.ts +13 -1
  143. package/dist/utils/comparison-metrics.d.ts.map +1 -1
  144. package/dist/utils/comparison-metrics.js +29 -4
  145. package/dist/utils/comparison-metrics.js.map +1 -1
  146. package/dist/utils/composition-metrics.d.ts +42 -0
  147. package/dist/utils/composition-metrics.d.ts.map +1 -0
  148. package/dist/utils/composition-metrics.js +50 -0
  149. package/dist/utils/composition-metrics.js.map +1 -0
  150. package/dist/utils/csv-generator.d.ts +4 -1
  151. package/dist/utils/csv-generator.d.ts.map +1 -1
  152. package/dist/utils/csv-generator.js +8 -4
  153. package/dist/utils/csv-generator.js.map +1 -1
  154. package/dist/utils/fee-formatting.d.ts +41 -0
  155. package/dist/utils/fee-formatting.d.ts.map +1 -0
  156. package/dist/utils/fee-formatting.js +57 -0
  157. package/dist/utils/fee-formatting.js.map +1 -0
  158. package/dist/utils/operational-signals.d.ts +55 -0
  159. package/dist/utils/operational-signals.d.ts.map +1 -0
  160. package/dist/utils/operational-signals.js +105 -0
  161. package/dist/utils/operational-signals.js.map +1 -0
  162. package/dist/utils/tool-error-handler.d.ts.map +1 -1
  163. package/dist/utils/tool-error-handler.js +8 -6
  164. package/dist/utils/tool-error-handler.js.map +1 -1
  165. package/dist/utils/validators.d.ts +112 -3
  166. package/dist/utils/validators.d.ts.map +1 -1
  167. package/dist/utils/validators.js +108 -4
  168. package/dist/utils/validators.js.map +1 -1
  169. package/dist/utils/yield-prediction.d.ts +3 -0
  170. package/dist/utils/yield-prediction.d.ts.map +1 -1
  171. package/dist/utils/yield-prediction.js +13 -1
  172. package/dist/utils/yield-prediction.js.map +1 -1
  173. package/package.json +2 -2
  174. package/dist/graphql/fragments.d.ts +0 -183
  175. package/dist/graphql/fragments.d.ts.map +0 -1
  176. package/dist/graphql/fragments.js +0 -297
  177. package/dist/graphql/fragments.js.map +0 -1
  178. package/dist/graphql/queries/period-summaries.d.ts +0 -15
  179. package/dist/graphql/queries/period-summaries.d.ts.map +0 -1
  180. package/dist/graphql/queries/period-summaries.js +0 -24
  181. package/dist/graphql/queries/period-summaries.js.map +0 -1
  182. package/dist/services/analytics/protocol-overview.service.d.ts +0 -61
  183. package/dist/services/analytics/protocol-overview.service.d.ts.map +0 -1
  184. package/dist/services/analytics/protocol-overview.service.js +0 -182
  185. package/dist/services/analytics/protocol-overview.service.js.map +0 -1
  186. package/dist/tools/index.d.ts +0 -26
  187. package/dist/tools/index.d.ts.map +0 -1
  188. package/dist/tools/index.js +0 -32
  189. package/dist/tools/index.js.map +0 -1
@@ -0,0 +1,38 @@
1
+ /**
2
+ * get_global_tvl Tool
3
+ *
4
+ * Returns the live total value locked across all Lagoon vaults & chains, in USD.
5
+ *
6
+ * Use cases:
7
+ * - "How big is Lagoon?" context for summaries
8
+ * - Headline metric for reports
9
+ *
10
+ * Cache: cacheTTL.globalTvl (5 minutes — TVL ticks slowly but markets move).
11
+ *
12
+ * Cache-tag note: this is a protocol-wide metric, NOT tied to a specific
13
+ * vault — intentionally exempted from CacheTag.VAULT invalidation. A future
14
+ * CacheTag.PROTOCOL_METADATA would be the right home if invalidation needed.
15
+ */
16
+ import { getToolDisclaimer } from '../utils/disclaimers.js';
17
+ import { GET_GLOBAL_TVL_QUERY } from '../graphql/queries/index.js';
18
+ import { executeToolWithCache } from '../utils/execute-tool-with-cache.js';
19
+ import { cacheTTL } from '../cache/index.js';
20
+ export function createExecuteGetGlobalTvl(container) {
21
+ const executor = executeToolWithCache({
22
+ container,
23
+ cacheKey: () => 'global:tvl',
24
+ cacheTTL: cacheTTL.globalTvl,
25
+ query: GET_GLOBAL_TVL_QUERY,
26
+ variables: () => ({}),
27
+ transformResult: (data) => ({ totalValueLockedUsd: data.getGlobalTVL }),
28
+ toolName: 'get_global_tvl',
29
+ });
30
+ return async (input) => {
31
+ const result = await executor(input);
32
+ if (!result.isError && result.content[0]?.type === 'text') {
33
+ result.content[0].text = result.content[0].text + getToolDisclaimer('get_global_tvl');
34
+ }
35
+ return result;
36
+ };
37
+ }
38
+ //# sourceMappingURL=get-global-tvl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-global-tvl.js","sourceRoot":"","sources":["../../src/tools/get-global-tvl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM7C,MAAM,UAAU,yBAAyB,CACvC,SAA2B;IAE3B,MAAM,QAAQ,GAAG,oBAAoB,CAKnC;QACA,SAAS;QACT,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY;QAC5B,QAAQ,EAAE,QAAQ,CAAC,SAAS;QAC5B,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QACrB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACvE,QAAQ,EAAE,gBAAgB;KAC3B,CAAC,CAAC;IAEH,OAAO,KAAK,EAAE,KAAwB,EAA2B,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * get_historical_state Tool
3
+ *
4
+ * Returns the vault's `HistoricalVaultState` at a specific Unix timestamp
5
+ * via `Vault.stateAt(timestamp)`. Far simpler than reconstructing state from
6
+ * the event stream.
7
+ *
8
+ * Use cases:
9
+ * - "What was the price per share on date X?"
10
+ * - "What were the fees at vault inception vs today?"
11
+ * - "Was the vault paused at the time of incident Y?"
12
+ *
13
+ * Cache: cacheTTL.historicalState (60 minutes — historical state by
14
+ * timestamp is immutable once past).
15
+ *
16
+ * Cache tag: vault-adjacent. Registered under CacheTag.VAULT.
17
+ */
18
+ import { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
19
+ import { GetHistoricalStateInput } from '../utils/validators.js';
20
+ import { ServiceContainer } from '../core/container.js';
21
+ export declare function createExecuteGetHistoricalState(container: ServiceContainer): (input: GetHistoricalStateInput) => Promise<CallToolResult>;
22
+ //# sourceMappingURL=get-historical-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-historical-state.d.ts","sourceRoot":"","sources":["../../src/tools/get-historical-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAqBxD,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,cAAc,CAAC,CA6C7D"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * get_historical_state Tool
3
+ *
4
+ * Returns the vault's `HistoricalVaultState` at a specific Unix timestamp
5
+ * via `Vault.stateAt(timestamp)`. Far simpler than reconstructing state from
6
+ * the event stream.
7
+ *
8
+ * Use cases:
9
+ * - "What was the price per share on date X?"
10
+ * - "What were the fees at vault inception vs today?"
11
+ * - "Was the vault paused at the time of incident Y?"
12
+ *
13
+ * Cache: cacheTTL.historicalState (60 minutes — historical state by
14
+ * timestamp is immutable once past).
15
+ *
16
+ * Cache tag: vault-adjacent. Registered under CacheTag.VAULT.
17
+ */
18
+ import { getToolDisclaimer } from '../utils/disclaimers.js';
19
+ import { GET_HISTORICAL_STATE_QUERY } from '../graphql/queries/index.js';
20
+ import { executeToolWithCache } from '../utils/execute-tool-with-cache.js';
21
+ import { CacheTag } from '../core/cache-invalidation.js';
22
+ import { cacheTTL } from '../cache/index.js';
23
+ function cacheKeyFor(input) {
24
+ return `historical_state:${input.vaultAddress}:${input.chainId}:${input.timestamp}`;
25
+ }
26
+ export function createExecuteGetHistoricalState(container) {
27
+ const executor = executeToolWithCache({
28
+ container,
29
+ cacheKey: cacheKeyFor,
30
+ cacheTTL: cacheTTL.historicalState,
31
+ query: GET_HISTORICAL_STATE_QUERY,
32
+ variables: (input) => ({
33
+ address: input.vaultAddress,
34
+ chainId: input.chainId,
35
+ timestamp: input.timestamp,
36
+ }),
37
+ validateResult: (data) => {
38
+ if (!data.vaultByAddress) {
39
+ return {
40
+ valid: false,
41
+ message: 'Vault not found on the requested chain',
42
+ isError: false,
43
+ };
44
+ }
45
+ if (!data.vaultByAddress.stateAt) {
46
+ return {
47
+ valid: false,
48
+ message: 'No historical state available at the requested timestamp (vault may not have existed yet)',
49
+ isError: false,
50
+ };
51
+ }
52
+ return { valid: true };
53
+ },
54
+ toolName: 'get_historical_state',
55
+ });
56
+ return async (input) => {
57
+ container.cacheInvalidator.register(cacheKeyFor(input), [CacheTag.VAULT]);
58
+ const result = await executor(input);
59
+ if (!result.isError && result.content[0]?.type === 'text') {
60
+ result.content[0].text = result.content[0].text + getToolDisclaimer('get_historical_state');
61
+ }
62
+ return result;
63
+ };
64
+ }
65
+ //# sourceMappingURL=get-historical-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-historical-state.js","sourceRoot":"","sources":["../../src/tools/get-historical-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAe7C,SAAS,WAAW,CAAC,KAA8B;IACjD,OAAO,oBAAoB,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,SAA2B;IAE3B,MAAM,QAAQ,GAAG,oBAAoB,CAKnC;QACA,SAAS;QACT,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,QAAQ,CAAC,eAAe;QAClC,KAAK,EAAE,0BAA0B;QACjC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrB,OAAO,EAAE,KAAK,CAAC,YAAY;YAC3B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC;QACF,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,wCAAwC;oBACjD,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBACjC,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EACL,2FAA2F;oBAC7F,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,QAAQ,EAAE,sBAAsB;KACjC,CAAC,CAAC;IAEH,OAAO,KAAK,EAAE,KAA8B,EAA2B,EAAE;QACvE,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * get_indexing_status Tool
3
+ *
4
+ * Returns the last indexed block per chain. Lets a downstream analysis
5
+ * detect stale data BEFORE reporting wrong APR/TVL.
6
+ *
7
+ * Use cases:
8
+ * - Health check before running predict_yield / analyze_risk
9
+ * - Diagnose "why does TVL look off" — chain may be lagging
10
+ *
11
+ * Cache: cacheTTL.indexingStatus (60s — indexing state changes block-by-block).
12
+ *
13
+ * Cache-tag note: indexer state is global, not per-vault. Intentionally
14
+ * exempted from CacheTag.VAULT.
15
+ */
16
+ import { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
17
+ import { GetIndexingStatusInput } from '../utils/validators.js';
18
+ import { ServiceContainer } from '../core/container.js';
19
+ export declare function createExecuteGetIndexingStatus(container: ServiceContainer): (input: GetIndexingStatusInput) => Promise<CallToolResult>;
20
+ //# sourceMappingURL=get-indexing-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-indexing-status.d.ts","sourceRoot":"","sources":["../../src/tools/get-indexing-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAiBxD,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,cAAc,CAAC,CAwB5D"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * get_indexing_status Tool
3
+ *
4
+ * Returns the last indexed block per chain. Lets a downstream analysis
5
+ * detect stale data BEFORE reporting wrong APR/TVL.
6
+ *
7
+ * Use cases:
8
+ * - Health check before running predict_yield / analyze_risk
9
+ * - Diagnose "why does TVL look off" — chain may be lagging
10
+ *
11
+ * Cache: cacheTTL.indexingStatus (60s — indexing state changes block-by-block).
12
+ *
13
+ * Cache-tag note: indexer state is global, not per-vault. Intentionally
14
+ * exempted from CacheTag.VAULT.
15
+ */
16
+ import { getToolDisclaimer } from '../utils/disclaimers.js';
17
+ import { GET_INDEXING_STATUS_QUERY } from '../graphql/queries/index.js';
18
+ import { executeToolWithCache } from '../utils/execute-tool-with-cache.js';
19
+ import { cacheTTL } from '../cache/index.js';
20
+ export function createExecuteGetIndexingStatus(container) {
21
+ const executor = executeToolWithCache({
22
+ container,
23
+ cacheKey: (input) => `indexing:${input.chainIds ? [...input.chainIds].sort((a, b) => a - b).join(',') : 'all'}`,
24
+ cacheTTL: cacheTTL.indexingStatus,
25
+ query: GET_INDEXING_STATUS_QUERY,
26
+ variables: (input) => ({ chainIds: input.chainIds ?? null }),
27
+ transformResult: (data) => ({ lastIndexedBlocks: data._meta.lastIndexedBlocks }),
28
+ toolName: 'get_indexing_status',
29
+ });
30
+ return async (input) => {
31
+ const result = await executor(input);
32
+ if (!result.isError && result.content[0]?.type === 'text') {
33
+ result.content[0].text = result.content[0].text + getToolDisclaimer('get_indexing_status');
34
+ }
35
+ return result;
36
+ };
37
+ }
38
+ //# sourceMappingURL=get-indexing-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-indexing-status.js","sourceRoot":"","sources":["../../src/tools/get-indexing-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAgB7C,MAAM,UAAU,8BAA8B,CAC5C,SAA2B;IAE3B,MAAM,QAAQ,GAAG,oBAAoB,CAKnC;QACA,SAAS;QACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,YAAY,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QAC5F,QAAQ,EAAE,QAAQ,CAAC,cAAc;QACjC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5D,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAChF,QAAQ,EAAE,qBAAqB;KAChC,CAAC,CAAC;IAEH,OAAO,KAAK,EAAE,KAA6B,EAA2B,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-price-history.d.ts","sourceRoot":"","sources":["../../src/tools/get-price-history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA6QxD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,cAAc,CAAC,CAiEvD"}
1
+ {"version":3,"file":"get-price-history.d.ts","sourceRoot":"","sources":["../../src/tools/get-price-history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAkPxD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,cAAc,CAAC,CAmEvD"}
@@ -32,61 +32,56 @@ const TIME_RANGES = {
32
32
  all: 0, // No time limit
33
33
  };
34
34
  /**
35
- * Type guard for TotalAssetsUpdatedData
35
+ * Aggregate price-per-share and TVL time series into daily OHLCV buckets.
36
+ * Volume is the average TVL for the day, joined to PPS points by timestamp.
36
37
  */
37
- function isTotalAssetsUpdated(data) {
38
- return (typeof data === 'object' && data !== null && 'totalAssetsUsd' in data && 'totalSupply' in data);
39
- }
40
- /**
41
- * Aggregate transactions into OHLCV time buckets
42
- * Groups data by day for cleaner visualization
43
- */
44
- function aggregateOHLCV(transactions) {
45
- if (transactions.length === 0)
38
+ function aggregateOHLCV(pricePoints, tvlPoints) {
39
+ if (pricePoints.length === 0)
46
40
  return [];
47
- // Group transactions by day (86400 seconds)
48
- const dayBuckets = new Map();
49
- for (const tx of transactions) {
50
- if (!isTotalAssetsUpdated(tx.data))
41
+ const dayKey = (timestamp) => Math.floor(timestamp / 86400) * 86400;
42
+ const buckets = new Map();
43
+ for (const point of pricePoints) {
44
+ if (point.y === null || point.y <= 0)
51
45
  continue;
52
- const timestamp = parseInt(tx.timestamp, 10);
53
- const dayTimestamp = Math.floor(timestamp / 86400) * 86400;
54
- if (!dayBuckets.has(dayTimestamp)) {
55
- dayBuckets.set(dayTimestamp, []);
46
+ const day = dayKey(point.x);
47
+ let bucket = buckets.get(day);
48
+ if (!bucket) {
49
+ bucket = { prices: [], tvls: [] };
50
+ buckets.set(day, bucket);
56
51
  }
57
- dayBuckets.get(dayTimestamp).push(tx);
52
+ bucket.prices.push(point.y);
58
53
  }
59
- // Convert buckets to OHLCV data points
60
- const ohlcvData = [];
61
- for (const [dayTimestamp, txs] of Array.from(dayBuckets.entries()).sort((a, b) => a[0] - b[0])) {
62
- const prices = txs
63
- .filter((tx) => isTotalAssetsUpdated(tx.data))
64
- .map((tx) => {
65
- // Calculate price per share from totalAssetsUsd / totalSupply
66
- const totalSupply = parseFloat(tx.data.totalSupply) / 1e18; // Convert from wei to decimal
67
- return totalSupply > 0 ? tx.data.totalAssetsUsd / totalSupply : 0;
68
- });
69
- if (prices.length === 0)
54
+ // Drop per-day numerical artifacts: backend occasionally emits values many
55
+ // orders of magnitude smaller than the day's real PPS (e.g. 2.7e-9 alongside
56
+ // values around 2500). Filtering against 0.01 % of the day's max removes
57
+ // those without affecting any legitimate intraday spread.
58
+ for (const bucket of buckets.values()) {
59
+ if (bucket.prices.length < 2)
70
60
  continue;
71
- const volumes = txs
72
- .filter((tx) => isTotalAssetsUpdated(tx.data))
73
- .map((tx) => tx.data.totalAssetsUsd);
61
+ const max = Math.max(...bucket.prices);
62
+ const floor = max * 1e-4;
63
+ bucket.prices = bucket.prices.filter((p) => p >= floor);
64
+ }
65
+ for (const point of tvlPoints) {
66
+ if (point.y === null)
67
+ continue;
68
+ const day = dayKey(point.x);
69
+ const bucket = buckets.get(day);
70
+ // Only attach TVL when there's also a PPS point on the same day; this keeps
71
+ // OHLCV rows aligned to the price series.
72
+ if (bucket)
73
+ bucket.tvls.push(point.y);
74
+ }
75
+ const ohlcv = [];
76
+ for (const [day, { prices, tvls }] of Array.from(buckets.entries()).sort((a, b) => a[0] - b[0])) {
74
77
  const open = prices[0];
75
78
  const close = prices[prices.length - 1];
76
79
  const high = Math.max(...prices);
77
80
  const low = Math.min(...prices);
78
- const volume = volumes.reduce((sum, v) => sum + v, 0) / volumes.length; // Average TVL for the day
79
- ohlcvData.push({
80
- timestamp: dayTimestamp,
81
- open,
82
- high,
83
- low,
84
- close,
85
- volume,
86
- blockNumber: txs[txs.length - 1].blockNumber,
87
- });
81
+ const volume = tvls.length > 0 ? tvls.reduce((sum, v) => sum + v, 0) / tvls.length : 0;
82
+ ohlcv.push({ timestamp: day, open, high, low, close, volume });
88
83
  }
89
- return ohlcvData;
84
+ return ohlcv;
90
85
  }
91
86
  /**
92
87
  * Calculate price statistics from OHLCV data
@@ -133,14 +128,12 @@ function calculateStatistics(ohlcvData) {
133
128
  * Transform raw GraphQL response into markdown-formatted output
134
129
  * Uses closure to capture input values and timestamp filter
135
130
  */
136
- function createTransformPriceHistoryData(input, timestampGte) {
131
+ function createTransformPriceHistoryData(input) {
137
132
  return (data) => {
138
- // Filter transactions by timestamp client-side (since API doesn't support timestamp filtering)
139
- const filteredItems = timestampGte > 0
140
- ? data.transactions.items.filter((item) => parseInt(item.timestamp) >= timestampGte)
141
- : data.transactions.items;
142
- // Aggregate into OHLCV time-series
143
- const ohlcvData = aggregateOHLCV(filteredItems);
133
+ const stateHistory = data.vault?.stateHistory;
134
+ const ohlcvData = stateHistory
135
+ ? aggregateOHLCV(stateHistory.pricePerShareUsd, stateHistory.totalAssetsUsd)
136
+ : [];
144
137
  // Calculate statistics
145
138
  const statistics = calculateStatistics(ohlcvData);
146
139
  // Format output as markdown based on responseFormat
@@ -172,7 +165,6 @@ function createTransformPriceHistoryData(input, timestampGte) {
172
165
  .join('\n') +
173
166
  `\n\n`;
174
167
  }
175
- markdown += `**Data Completeness**: ${data.transactions.pageInfo.hasNextPage ? 'More data available (truncated at 2000 points)' : 'Complete'}\n`;
176
168
  return { markdown };
177
169
  };
178
170
  }
@@ -187,16 +179,12 @@ export function createExecuteGetPriceHistory(container) {
187
179
  // Calculate timestamp threshold (0 for 'all')
188
180
  const now = Math.floor(Date.now() / 1000);
189
181
  const timeRangeSeconds = TIME_RANGES[input.timeRange];
190
- const timestampGte = timeRangeSeconds > 0 ? now - timeRangeSeconds : 0;
191
- // Build query variables
182
+ const startTimestamp = timeRangeSeconds > 0 ? now - timeRangeSeconds : 0;
183
+ // Build query variables. `options: null` means "full history since vault creation".
192
184
  const variables = {
193
- where: {
194
- vault_in: [input.vaultAddress],
195
- type_in: ['TotalAssetsUpdated'],
196
- },
197
- orderBy: 'timestamp',
198
- orderDirection: 'asc',
199
- first: 1000, // GraphQL API limit: 1-1000
185
+ vaultAddress: input.vaultAddress,
186
+ chainId: input.chainId,
187
+ options: startTimestamp > 0 ? { startTimestamp } : null,
200
188
  };
201
189
  const executor = executeToolWithCache({
202
190
  container,
@@ -205,7 +193,11 @@ export function createExecuteGetPriceHistory(container) {
205
193
  query: PRICE_HISTORY_QUERY,
206
194
  variables: () => variables,
207
195
  validateResult: (data) => {
208
- const hasData = !!(data.transactions && data.transactions.items.length > 0);
196
+ // Backend may return points with `y: null` when the underlying column is
197
+ // unset. Treat the response as empty unless at least one PPS point has
198
+ // a usable value, otherwise statistics collapse to $0.000000.
199
+ const hasData = !!(data.vault &&
200
+ data.vault.stateHistory.pricePerShareUsd.some((p) => p.y !== null && p.y > 0));
209
201
  return {
210
202
  valid: hasData,
211
203
  message: hasData
@@ -214,7 +206,7 @@ export function createExecuteGetPriceHistory(container) {
214
206
  isError: !hasData,
215
207
  };
216
208
  },
217
- transformResult: createTransformPriceHistoryData(input, timestampGte),
209
+ transformResult: createTransformPriceHistoryData(input),
218
210
  toolName: 'get_price_history',
219
211
  });
220
212
  // Register cache tags for invalidation
@@ -1 +1 @@
1
- {"version":3,"file":"get-price-history.js","sourceRoot":"","sources":["../../src/tools/get-price-history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACtB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACxB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACxB,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACxB,GAAG,EAAE,CAAC,EAAE,gBAAgB;CAChB,CAAC;AAgEX;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAa;IACzC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,gBAAgB,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI,CAC/F,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,YAAgC;IACtD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,4CAA4C;IAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEzD,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC;YAAE,SAAS;QAE7C,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;QAE3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,uCAAuC;IACvC,MAAM,SAAS,GAAqB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,MAAM,GAAG,GAAG;aACf,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;aAC7C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACV,8DAA8D;YAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,8BAA8B;YAC1F,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEL,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAElC,MAAM,OAAO,GAAG,GAAG;aAChB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;aAC7C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,0BAA0B;QAElG,SAAS,CAAC,IAAI,CAAC;YACb,SAAS,EAAE,YAAY;YACvB,IAAI;YACJ,IAAI;YACJ,GAAG;YACH,KAAK;YACL,MAAM;YACN,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,SAA2B;IACtD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3E,MAAM,aAAa,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,4CAA4C;IAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEpE,OAAO;QACL,YAAY;QACZ,UAAU;QACV,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,UAAU;QACV,WAAW;QACX,UAAU,EAAE,SAAS,CAAC,MAAM;KAC7B,CAAC;AACJ,CAAC;AAsBD;;;GAGG;AACH,SAAS,+BAA+B,CAAC,KAAwB,EAAE,YAAoB;IACrF,OAAO,CAAC,IAA0B,EAAsB,EAAE;QACxD,+FAA+F;QAC/F,MAAM,aAAa,GACjB,YAAY,GAAG,CAAC;YACd,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;YACpF,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAE9B,mCAAmC;QACnC,MAAM,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAEhD,uBAAuB;QACvB,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAElD,oDAAoD;QACpD,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,SAAS,CAA2B,CAAC;QAErF,IAAI,QAAQ,GACV,oBAAoB,KAAK,CAAC,YAAY,MAAM;YAC5C,iBAAiB,KAAK,CAAC,OAAO,IAAI;YAClC,mBAAmB,KAAK,CAAC,SAAS,IAAI;YACtC,oBAAoB,UAAU,CAAC,UAAU,MAAM;YAC/C,yBAAyB;YACzB,yBAAyB,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC/D,uBAAuB,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC3D,sBAAsB,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACzD,qBAAqB,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACvD,yBAAyB,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC/D,iBAAiB,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YACnG,0BAA0B,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC9D,wBAAwB,CAAC,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAE/E,2DAA2D;QAC3D,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;YAClE,QAAQ;gBACN,2BAA2B;oBAC3B,iDAAiD;oBACjD,iDAAiD;oBACjD,SAAS;yBACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACT,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtE,OAAO,KAAK,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC9J,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC;oBACb,MAAM,CAAC;QACX,CAAC;QAED,QAAQ,IAAI,0BAA0B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC;QAEjJ,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,SAA2B;IAE3B,OAAO,KAAK,EAAE,KAAwB,EAA2B,EAAE;QACjE,8CAA8C;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,wBAAwB;QACxB,MAAM,SAAS,GAA0B;YACvC,KAAK,EAAE;gBACL,QAAQ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC9B,OAAO,EAAE,CAAC,oBAAoB,CAAC;aAChC;YACD,OAAO,EAAE,WAAW;YACpB,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE,IAAI,EAAE,4BAA4B;SAC1C,CAAC;QAEF,MAAM,QAAQ,GAAG,oBAAoB,CAKnC;YACA,SAAS;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,cAAc,IAAI,SAAS,EAAE;YACtH,QAAQ,EAAE,QAAQ,CAAC,YAAY;YAC/B,KAAK,EAAE,mBAAmB;YAC1B,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;YAC1B,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC5E,OAAO;oBACL,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,OAAO;wBACd,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,yCAAyC,KAAK,CAAC,YAAY,aAAa,KAAK,CAAC,OAAO,WAAW,KAAK,CAAC,SAAS,cAAc;oBACjI,OAAO,EAAE,CAAC,OAAO;iBAClB,CAAC;YACJ,CAAC;YACD,eAAe,EAAE,+BAA+B,CAAC,KAAK,EAAE,YAAY,CAAC;YACrE,QAAQ,EAAE,mBAAmB;SAC9B,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5F,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAEpF,yBAAyB;QACzB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErC,sEAAsE;QACtE,0EAA0E;QAC1E,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAuB,CAAC;gBACxE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,2DAA2D;gBAC3D,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-price-history.js","sourceRoot":"","sources":["../../src/tools/get-price-history.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-transactions.d.ts","sourceRoot":"","sources":["../../src/tools/get-transactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAmKxD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,cAAc,CAAC,CAoG1D"}
1
+ {"version":3,"file":"get-transactions.d.ts","sourceRoot":"","sources":["../../src/tools/get-transactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAoKxD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,cAAc,CAAC,CAoG1D"}
@@ -55,7 +55,9 @@ function createTransformTransactionsData(input) {
55
55
  vaultAddress: input.vaultAddress,
56
56
  chainId: input.chainId,
57
57
  transactions: transactions.map((tx) => ({
58
- id: tx.id,
58
+ // chainId prefix avoids cross-chain collisions when consumers paginate
59
+ // batched results (hash+logIndex is unique per chain only).
60
+ id: `${tx.chain.id}-${tx.hash}-${tx.logIndex}`,
59
61
  type: tx.type,
60
62
  timestamp: tx.timestamp,
61
63
  blockNumber: tx.blockNumber,
@@ -1 +1 @@
1
- {"version":3,"file":"get-transactions.js","sourceRoot":"","sources":["../../src/tools/get-transactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-transactions.js","sourceRoot":"","sources":["../../src/tools/get-transactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * list_chains Tool
3
+ *
4
+ * Returns the Lagoon-supported chains, with factory address & wrapped native
5
+ * token. Lets the LLM discover valid chain IDs instead of guessing.
6
+ *
7
+ * Cache: cacheTTL.schema (24h — chain support changes via deployment).
8
+ *
9
+ * Cache-tag note: chain directory is global, not per-vault. Intentionally
10
+ * exempted from CacheTag.VAULT.
11
+ */
12
+ import { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
13
+ import { ListChainsInput } from '../utils/validators.js';
14
+ import { ServiceContainer } from '../core/container.js';
15
+ export declare function createExecuteListChains(container: ServiceContainer): (input: ListChainsInput) => Promise<CallToolResult>;
16
+ //# sourceMappingURL=list-chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-chains.d.ts","sourceRoot":"","sources":["../../src/tools/list-chains.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA+BxD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,CAmCrD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * list_chains Tool
3
+ *
4
+ * Returns the Lagoon-supported chains, with factory address & wrapped native
5
+ * token. Lets the LLM discover valid chain IDs instead of guessing.
6
+ *
7
+ * Cache: cacheTTL.schema (24h — chain support changes via deployment).
8
+ *
9
+ * Cache-tag note: chain directory is global, not per-vault. Intentionally
10
+ * exempted from CacheTag.VAULT.
11
+ */
12
+ import { getToolDisclaimer } from '../utils/disclaimers.js';
13
+ import { LIST_CHAINS_QUERY } from '../graphql/queries/index.js';
14
+ import { executeToolWithCache } from '../utils/execute-tool-with-cache.js';
15
+ import { cacheTTL } from '../cache/index.js';
16
+ export function createExecuteListChains(container) {
17
+ // Fallbacks align with paginationFirstSchema's documented default (20)
18
+ // so the cache key matches the GraphQL variables (a mismatch is a
19
+ // cache-poisoning class of bug — different effective page sizes mapping
20
+ // to the same key).
21
+ const executor = executeToolWithCache({
22
+ container,
23
+ cacheKey: (input) => {
24
+ const first = input.pagination?.first ?? 20;
25
+ const skip = input.pagination?.skip ?? 0;
26
+ return `chains:${first}:${skip}:${input.isVisible ?? 'any'}`;
27
+ },
28
+ cacheTTL: cacheTTL.schema,
29
+ query: LIST_CHAINS_QUERY,
30
+ variables: (input) => ({
31
+ first: input.pagination?.first ?? 20,
32
+ skip: input.pagination?.skip ?? 0,
33
+ where: input.isVisible == null ? null : { isVisible_eq: input.isVisible },
34
+ }),
35
+ transformResult: (data) => data.chains,
36
+ toolName: 'list_chains',
37
+ });
38
+ return async (input) => {
39
+ const result = await executor(input);
40
+ if (!result.isError && result.content[0]?.type === 'text') {
41
+ result.content[0].text = result.content[0].text + getToolDisclaimer('list_chains');
42
+ }
43
+ return result;
44
+ };
45
+ }
46
+ //# sourceMappingURL=list-chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-chains.js","sourceRoot":"","sources":["../../src/tools/list-chains.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AA8B7C,MAAM,UAAU,uBAAuB,CACrC,SAA2B;IAE3B,uEAAuE;IACvE,kEAAkE;IAClE,wEAAwE;IACxE,oBAAoB;IACpB,MAAM,QAAQ,GAAG,oBAAoB,CAKnC;QACA,SAAS;QACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC;YACzC,OAAO,UAAU,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC;QAC/D,CAAC;QACD,QAAQ,EAAE,QAAQ,CAAC,MAAM;QACzB,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrB,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACpC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC;YACjC,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE;SAC1E,CAAC;QACF,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM;QACtC,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAC;IAEH,OAAO,KAAK,EAAE,KAAsB,EAA2B,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * list_curators Tool
3
+ *
4
+ * Returns the curator directory: name, id, logo, description, website.
5
+ * Lets the LLM resolve "which curators are on Lagoon?" without scanning all
6
+ * vaults.
7
+ *
8
+ * Cache: cacheTTL.vaultData (15 minutes — curator metadata changes infrequently).
9
+ *
10
+ * Cache tag: curator directory is vault-adjacent; registered under
11
+ * CacheTag.VAULT so a flush invalidates both vault data and curator metadata
12
+ * together.
13
+ */
14
+ import { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
15
+ import { ListCuratorsInput } from '../utils/validators.js';
16
+ import { ServiceContainer } from '../core/container.js';
17
+ export declare function createExecuteListCurators(container: ServiceContainer): (input: ListCuratorsInput) => Promise<CallToolResult>;
18
+ //# sourceMappingURL=list-curators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-curators.d.ts","sourceRoot":"","sources":["../../src/tools/list-curators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgCxD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,cAAc,CAAC,CA8BvD"}