@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
@@ -1,26 +1,26 @@
1
1
  /**
2
2
  * Composition Fragment
3
3
  *
4
- * Type definitions for vault composition data from Octav API.
5
- * The backend returns a JSONObject with chains as keys containing composition data.
6
- *
7
- * Note: The vaultComposition endpoint returns JSONObject type, so no GraphQL fragment
8
- * is needed. The response is a flat object keyed by chain name.
4
+ * Typed shape of `Vault.composition: CompositionData` (the v0.6+ replacement
5
+ * for the retired `vaultComposition(walletAddress)` JSONObject query).
9
6
  */
10
7
  /**
11
- * @deprecated No longer used - backend returns JSONObject, not a typed GraphQL response
12
- * GraphQL fragment for composition data (legacy)
8
+ * GraphQL fragment for the typed CompositionData. Inlined inside a
9
+ * `vaultByAddress { composition { ... } }` query — NOT a standalone query.
13
10
  */
14
11
  export const COMPOSITION_FRAGMENT = `
15
12
  fragment CompositionFragment on CompositionData {
13
+ totalValueInUsd
16
14
  compositions {
17
15
  protocol
18
16
  valueInUsd
19
17
  repartition
18
+ logoUrl
20
19
  details {
21
20
  protocol
22
21
  valueInUsd
23
22
  repartition
23
+ logoUrl
24
24
  }
25
25
  }
26
26
  tokenCompositions {
@@ -30,6 +30,7 @@ export const COMPOSITION_FRAGMENT = `
30
30
  chainKey
31
31
  valueInUsd
32
32
  repartition
33
+ logoUrl
33
34
  details {
34
35
  symbol
35
36
  name
@@ -37,6 +38,7 @@ export const COMPOSITION_FRAGMENT = `
37
38
  chainKey
38
39
  valueInUsd
39
40
  repartition
41
+ logoUrl
40
42
  }
41
43
  }
42
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"composition.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/composition.fragment.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA4KH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BnC,CAAC"}
1
+ {"version":3,"file":"composition.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/composition.fragment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0DH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCnC,CAAC"}
@@ -12,5 +12,5 @@ export { TRANSACTION_BASE_FRAGMENT } from './transaction-base.fragment.js';
12
12
  export { VAULT_FRAGMENT, type VaultData } from './vault.fragment.js';
13
13
  export { VAULT_LIST_FRAGMENT, type VaultListData } from './vault-list.fragment.js';
14
14
  export { VAULT_SUMMARY_FRAGMENT, type VaultSummaryData } from './vault-summary.fragment.js';
15
- export { type ProtocolPositionCategory, type ProtocolChainData, type ProtocolCompositionData, type VaultCompositionFullResponse, type ChainComposition, type RawVaultComposition, COMPOSITION_FRAGMENT, type ProtocolComposition, type TokenComposition, type CompositionData, } from './composition.fragment.js';
15
+ export { COMPOSITION_FRAGMENT, type CompositionData, type ProtocolComposition, type TokenComposition, } from './composition.fragment.js';
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAG3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG5F,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EAEjC,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAExB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAG3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAM5F,OAAO,EACL,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC"}
@@ -18,8 +18,9 @@ export { TRANSACTION_BASE_FRAGMENT } from './transaction-base.fragment.js';
18
18
  export { VAULT_FRAGMENT } from './vault.fragment.js';
19
19
  export { VAULT_LIST_FRAGMENT } from './vault-list.fragment.js';
20
20
  export { VAULT_SUMMARY_FRAGMENT } from './vault-summary.fragment.js';
21
- // Composition Fragment - protocol and chain-based types
22
- export {
23
- // Legacy types (deprecated - kept for backward compatibility)
24
- COMPOSITION_FRAGMENT, } from './composition.fragment.js';
21
+ // Composition Fragment typed Vault.composition (v0.6+). The legacy
22
+ // Octav-shaped types (VaultCompositionFullResponse, ProtocolCompositionData,
23
+ // etc.) were retired with the migration off the deprecated
24
+ // vaultComposition(walletAddress) query.
25
+ export { COMPOSITION_FRAGMENT, } from './composition.fragment.js';
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graphql/fragments/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yBAAyB;AACzB,OAAO,EAAE,sBAAsB,EAAqB,MAAM,6BAA6B,CAAC;AAExF,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,qBAAqB;AACrB,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE3F,4BAA4B;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,+CAA+C;AAC/C,OAAO,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAyB,MAAM,6BAA6B,CAAC;AAE5F,wDAAwD;AACxD,OAAO;AASL,8DAA8D;AAC9D,oBAAoB,GAIrB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graphql/fragments/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yBAAyB;AACzB,OAAO,EAAE,sBAAsB,EAAqB,MAAM,6BAA6B,CAAC;AAExF,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,qBAAqB;AACrB,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE3F,4BAA4B;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,+CAA+C;AAC/C,OAAO,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAyB,MAAM,6BAA6B,CAAC;AAE5F,qEAAqE;AACrE,6EAA6E;AAC7E,2DAA2D;AAC3D,yCAAyC;AACzC,OAAO,EACL,oBAAoB,GAIrB,MAAM,2BAA2B,CAAC"}
@@ -15,5 +15,5 @@
15
15
  * }
16
16
  * ```
17
17
  */
18
- export declare const TRANSACTION_BASE_FRAGMENT = "\n fragment TransactionBaseFragment on Transaction {\n id\n type\n timestamp\n blockNumber\n hash\n logIndex\n chain {\n id\n name\n }\n }\n";
18
+ export declare const TRANSACTION_BASE_FRAGMENT = "\n fragment TransactionBaseFragment on Transaction {\n type\n timestamp\n blockNumber\n hash\n logIndex\n chain {\n id\n name\n }\n }\n";
19
19
  //# sourceMappingURL=transaction-base.fragment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-base.fragment.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/transaction-base.fragment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,qLAarC,CAAC"}
1
+ {"version":3,"file":"transaction-base.fragment.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/transaction-base.fragment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,6KAYrC,CAAC"}
@@ -17,7 +17,6 @@
17
17
  */
18
18
  export const TRANSACTION_BASE_FRAGMENT = `
19
19
  fragment TransactionBaseFragment on Transaction {
20
- id
21
20
  type
22
21
  timestamp
23
22
  blockNumber
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-base.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/transaction-base.fragment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;CAaxC,CAAC"}
1
+ {"version":3,"file":"transaction-base.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/transaction-base.fragment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;CAYxC,CAAC"}
@@ -19,6 +19,8 @@ export interface VaultData {
19
19
  maxCapacity: string | null;
20
20
  averageSettlement: number | null;
21
21
  isVisible: boolean;
22
+ creationDate: number;
23
+ inception?: number | null;
22
24
  chain: {
23
25
  id: number;
24
26
  name: string;
@@ -84,10 +86,36 @@ export interface VaultData {
84
86
  whitelistManager: string;
85
87
  safe: string;
86
88
  feeReceiver: string;
89
+ securityCouncil?: string;
90
+ superOperator?: string;
87
91
  };
88
92
  managementFee: number;
89
93
  performanceFee: number;
90
94
  protocolFee: number;
95
+ entryRate?: number;
96
+ exitRate?: number;
97
+ haircutRate?: number;
98
+ upcomingManagementFee?: number | null;
99
+ upcomingPerformanceFee?: number | null;
100
+ feeRatesCooldown?: string;
101
+ newRatesTimestamp?: string;
102
+ syncMode?: 'Both' | 'SyncDeposit' | 'SyncRedeem' | 'None';
103
+ isAsyncOnly?: boolean;
104
+ isPaused?: boolean;
105
+ accessMode?: 'Whitelist' | 'Blacklist' | null;
106
+ blacklist?: string[] | null;
107
+ externalSanctionsList?: string;
108
+ maxCap?: string | null;
109
+ totalAssetsExpiration?: string;
110
+ totalAssetsLifespan?: string | null;
111
+ safeLocked?: boolean;
112
+ superOperatorLocked?: boolean | null;
113
+ allowHighWaterMarkReset?: boolean;
114
+ guardrails?: {
115
+ activated: boolean;
116
+ lowerRate?: string;
117
+ upperRate?: string;
118
+ };
91
119
  isWhitelistActivated: boolean;
92
120
  whitelist: string[] | null;
93
121
  highWaterMark: string;
@@ -136,5 +164,5 @@ export interface VaultData {
136
164
  * \${VAULT_FRAGMENT}
137
165
  * ```
138
166
  */
139
- export declare const VAULT_FRAGMENT = "\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 protocolFee\n isWhitelistActivated\n whitelist\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 bundles {\n octav\n debank\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";
167
+ export declare const VAULT_FRAGMENT = "\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 creationDate\n inception\n asset {\n ...AssetInfoFragment\n }\n chain {\n ...ChainInfoFragment\n }\n state {\n state\n version\n syncMode\n isAsyncOnly\n isPaused\n safeLocked\n superOperatorLocked\n allowHighWaterMarkReset\n accessMode\n blacklist\n externalSanctionsList\n maxCap\n totalAssets\n totalAssetsUsd\n totalAssetsExpiration\n totalAssetsLifespan\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 securityCouncil\n superOperator\n }\n managementFee\n performanceFee\n protocolFee\n entryRate\n exitRate\n haircutRate\n upcomingManagementFee\n upcomingPerformanceFee\n feeRatesCooldown\n newRatesTimestamp\n guardrails {\n activated\n lowerRate\n upperRate\n }\n isWhitelistActivated\n whitelist\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 bundles {\n octav\n debank\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 twrrNetApr\n twrrNetAprWithoutExtraYields\n twrrGrossAprWithoutExtraYields\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";
140
168
  //# sourceMappingURL=vault.fragment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault.fragment.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/vault.fragment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE;;GAEG;AACH,MAAM,WAAW,SAAS;IAExB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAGvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IAGnB,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,EAAE;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IAGF,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE;YACL,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;IAGF,KAAK,EAAE;QAEL,KAAK,EAAE,MAAM,CAAC;QAGd,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QAGvB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QAGzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAG5B,iBAAiB,EAAE;YACjB,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,mBAAmB,EAAE;YACnB,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QAGF,OAAO,EAAE;YACP,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,EAAE,MAAM,CAAC;SACrB,GAAG,IAAI,CAAC;QAGT,YAAY,EAAE,YAAY,CAAC;QAC3B,SAAS,EAAE,YAAY,CAAC;QACxB,UAAU,EAAE,YAAY,CAAC;QACzB,SAAS,EAAE,YAAY,CAAC;QAGxB,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAC;YACd,gBAAgB,EAAE,MAAM,CAAC;YACzB,gBAAgB,EAAE,MAAM,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QAGF,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QAGpB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAG3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;KACpB,CAAC,GAAG,IAAI,CAAC;IAGV,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,GAAG,IAAI,CAAC;IAGT,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,GAAG,IAAI,CAAC;IAGT,gBAAgB,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,GAAG,IAAI,CAAC;CACX;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,6vFAkG1B,CAAC"}
1
+ {"version":3,"file":"vault.fragment.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/vault.fragment.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,8 @@ export const VAULT_FRAGMENT = `
36
36
  logoUrl
37
37
  averageSettlement
38
38
  isVisible
39
+ creationDate
40
+ inception
39
41
  asset {
40
42
  ...AssetInfoFragment
41
43
  }
@@ -44,8 +46,21 @@ export const VAULT_FRAGMENT = `
44
46
  }
45
47
  state {
46
48
  state
49
+ version
50
+ syncMode
51
+ isAsyncOnly
52
+ isPaused
53
+ safeLocked
54
+ superOperatorLocked
55
+ allowHighWaterMarkReset
56
+ accessMode
57
+ blacklist
58
+ externalSanctionsList
59
+ maxCap
47
60
  totalAssets
48
61
  totalAssetsUsd
62
+ totalAssetsExpiration
63
+ totalAssetsLifespan
49
64
  totalSupply
50
65
  pricePerShare
51
66
  pricePerShareUsd
@@ -62,10 +77,24 @@ export const VAULT_FRAGMENT = `
62
77
  whitelistManager
63
78
  safe
64
79
  feeReceiver
80
+ securityCouncil
81
+ superOperator
65
82
  }
66
83
  managementFee
67
84
  performanceFee
68
85
  protocolFee
86
+ entryRate
87
+ exitRate
88
+ haircutRate
89
+ upcomingManagementFee
90
+ upcomingPerformanceFee
91
+ feeRatesCooldown
92
+ newRatesTimestamp
93
+ guardrails {
94
+ activated
95
+ lowerRate
96
+ upperRate
97
+ }
69
98
  isWhitelistActivated
70
99
  whitelist
71
100
  pendingSettlement {
@@ -1 +1 @@
1
- {"version":3,"file":"vault.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/vault.fragment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AA2JrE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+F1B,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;CACzB,CAAC"}
1
+ {"version":3,"file":"vault.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/vault.fragment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AA4MrE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4H1B,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;CACzB,CAAC"}
@@ -1,33 +1,15 @@
1
1
  /**
2
2
  * Composition Queries
3
3
  *
4
- * GraphQL queries for vault composition data from Octav API.
5
- * The backend returns a JSONObject with chains as keys containing composition data.
6
- *
7
- * Note: The vaultComposition endpoint returns JSONObject type, so no GraphQL fragment
8
- * is needed. The response is a flat object keyed by chain name.
9
- */
10
- /**
11
- * Get vault composition GraphQL query
12
- *
13
- * Fetches cross-chain composition data for a vault from Octav API.
14
- * Returns a JSONObject with chain keys (ethereum, arbitrum, etc.) containing:
15
- * - name: Chain display name
16
- * - key: Chain identifier
17
- * - chainId: Chain ID as string
18
- * - value: USD value of positions
19
- * - valuePercentile: Relative ranking
20
- * - totalCostBasis, totalClosedPnl, totalOpenPnl: PnL metrics
21
- *
22
- * Used by: get_vault_composition tool
23
- *
24
- * Usage:
25
- * ```typescript
26
- * const data = await graphqlClient.request<{ vaultComposition: RawVaultComposition | null }>(
27
- * GET_VAULT_COMPOSITION_QUERY,
28
- * { walletAddress: '0x...' }
29
- * );
30
- * ```
4
+ * Despite the export name (`GET_VAULT_COMPOSITION_QUERY`), this resolves
5
+ * via `vaultByAddress(...).composition`, NOT a top-level `vaultComposition`
6
+ * GraphQL operation — that one is the deprecated `vaultComposition(walletAddress)`
7
+ * JSONObject query which we migrated off in v0.6. See
8
+ * `docs/agent-notes.md` gotcha #8.
9
+ *
10
+ * Args change vs the deprecated query: `walletAddress: Address!` →
11
+ * `address: Address!, chainId: Int!`. The deprecated query merged chains
12
+ * silently — this fixes the cross-chain bug (gotcha #2) at the same time.
31
13
  */
32
- export declare const GET_VAULT_COMPOSITION_QUERY = "\n query GetVaultComposition($walletAddress: Address!) {\n vaultComposition(walletAddress: $walletAddress)\n }\n";
14
+ export declare const GET_VAULT_COMPOSITION_QUERY = "\n query GetVaultComposition($address: Address!, $chainId: Int!) {\n vaultByAddress(address: $address, chainId: $chainId) {\n address\n composition {\n ...CompositionFragment\n }\n }\n }\n \n fragment CompositionFragment on CompositionData {\n totalValueInUsd\n compositions {\n protocol\n valueInUsd\n repartition\n logoUrl\n details {\n protocol\n valueInUsd\n repartition\n logoUrl\n }\n }\n tokenCompositions {\n symbol\n name\n contract\n chainKey\n valueInUsd\n repartition\n logoUrl\n details {\n symbol\n name\n contract\n chainKey\n valueInUsd\n repartition\n logoUrl\n }\n }\n }\n\n";
33
15
  //# sourceMappingURL=composition.queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composition.queries.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/composition.queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,2BAA2B,0HAIvC,CAAC"}
1
+ {"version":3,"file":"composition.queries.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/composition.queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,eAAO,MAAM,2BAA2B,6xBAUvC,CAAC"}
@@ -1,37 +1,26 @@
1
1
  /**
2
2
  * Composition Queries
3
3
  *
4
- * GraphQL queries for vault composition data from Octav API.
5
- * The backend returns a JSONObject with chains as keys containing composition data.
4
+ * Despite the export name (`GET_VAULT_COMPOSITION_QUERY`), this resolves
5
+ * via `vaultByAddress(...).composition`, NOT a top-level `vaultComposition`
6
+ * GraphQL operation — that one is the deprecated `vaultComposition(walletAddress)`
7
+ * JSONObject query which we migrated off in v0.6. See
8
+ * `docs/agent-notes.md` gotcha #8.
6
9
  *
7
- * Note: The vaultComposition endpoint returns JSONObject type, so no GraphQL fragment
8
- * is needed. The response is a flat object keyed by chain name.
9
- */
10
- /**
11
- * Get vault composition GraphQL query
12
- *
13
- * Fetches cross-chain composition data for a vault from Octav API.
14
- * Returns a JSONObject with chain keys (ethereum, arbitrum, etc.) containing:
15
- * - name: Chain display name
16
- * - key: Chain identifier
17
- * - chainId: Chain ID as string
18
- * - value: USD value of positions
19
- * - valuePercentile: Relative ranking
20
- * - totalCostBasis, totalClosedPnl, totalOpenPnl: PnL metrics
21
- *
22
- * Used by: get_vault_composition tool
23
- *
24
- * Usage:
25
- * ```typescript
26
- * const data = await graphqlClient.request<{ vaultComposition: RawVaultComposition | null }>(
27
- * GET_VAULT_COMPOSITION_QUERY,
28
- * { walletAddress: '0x...' }
29
- * );
30
- * ```
10
+ * Args change vs the deprecated query: `walletAddress: Address!`
11
+ * `address: Address!, chainId: Int!`. The deprecated query merged chains
12
+ * silently — this fixes the cross-chain bug (gotcha #2) at the same time.
31
13
  */
14
+ import { COMPOSITION_FRAGMENT } from '../fragments/composition.fragment.js';
32
15
  export const GET_VAULT_COMPOSITION_QUERY = `
33
- query GetVaultComposition($walletAddress: Address!) {
34
- vaultComposition(walletAddress: $walletAddress)
16
+ query GetVaultComposition($address: Address!, $chainId: Int!) {
17
+ vaultByAddress(address: $address, chainId: $chainId) {
18
+ address
19
+ composition {
20
+ ...CompositionFragment
21
+ }
22
+ }
35
23
  }
24
+ ${COMPOSITION_FRAGMENT}
36
25
  `;
37
26
  //# sourceMappingURL=composition.queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"composition.queries.js","sourceRoot":"","sources":["../../../src/graphql/queries/composition.queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;CAI1C,CAAC"}
1
+ {"version":3,"file":"composition.queries.js","sourceRoot":"","sources":["../../../src/graphql/queries/composition.queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;IASvC,oBAAoB;CACvB,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Discovery Queries
3
+ *
4
+ * Thin GraphQL queries for "what does Lagoon look like right now?" tools:
5
+ * global TVL, indexing health, chain directory, curator directory, single asset
6
+ * lookup, and historical vault state.
7
+ *
8
+ * All queries are direct, single-shot, low-cost. They intentionally do NOT
9
+ * pull VaultFragment — these are metadata endpoints, not vault drill-downs.
10
+ */
11
+ /**
12
+ * Total protocol TVL across all chains (USD).
13
+ * Used by: get_global_tvl tool. No args.
14
+ */
15
+ export declare const GET_GLOBAL_TVL_QUERY = "\n query GetGlobalTVL {\n getGlobalTVL\n }\n";
16
+ /**
17
+ * Indexer health — last indexed block per chain.
18
+ * Used by: get_indexing_status tool. Optional chainIds filter.
19
+ */
20
+ export declare const GET_INDEXING_STATUS_QUERY = "\n query GetIndexingStatus($chainIds: [Int!]) {\n _meta(chainIds: $chainIds) {\n lastIndexedBlocks {\n chainId\n number\n hash\n parentHash\n chain {\n id\n name\n nativeToken\n }\n }\n }\n }\n";
21
+ /**
22
+ * Chain directory. Paginated; default ordering by id ascending.
23
+ * Used by: list_chains tool.
24
+ */
25
+ export declare const LIST_CHAINS_QUERY = "\n query ListChains($first: Int, $skip: Int, $where: ChainFilterInput) {\n chains(first: $first, skip: $skip, where: $where, orderBy: id, orderDirection: asc) {\n items {\n id\n name\n nativeToken\n logoUrl\n isVisible\n factory\n wrappedNativeToken {\n address\n symbol\n name\n decimals\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n }\n }\n";
26
+ /**
27
+ * Curator directory.
28
+ * Used by: list_curators tool.
29
+ */
30
+ export declare const LIST_CURATORS_QUERY = "\n query ListCurators($first: Int, $skip: Int, $where: CuratorFilterInput) {\n curators(first: $first, skip: $skip, where: $where, orderBy: name, orderDirection: asc) {\n items {\n id\n name\n aboutDescription\n logoUrl\n url\n isVisible\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n }\n }\n";
31
+ /**
32
+ * Single curator lookup by id.
33
+ * Used by: get_curator tool.
34
+ */
35
+ export declare const GET_CURATOR_QUERY = "\n query GetCurator($id: ID!) {\n curator(id: $id) {\n id\n name\n aboutDescription\n logoUrl\n url\n isVisible\n }\n }\n";
36
+ /**
37
+ * Single asset (ERC20) lookup by address + chain.
38
+ * Used by: get_asset tool.
39
+ */
40
+ export declare const GET_ASSET_QUERY = "\n query GetAsset($address: Address!, $chainId: Int!) {\n assetByAddress(address: $address, chainId: $chainId) {\n id\n address\n symbol\n name\n decimals\n description\n logoUrl\n isVisible\n priceUsd\n chain {\n id\n name\n nativeToken\n logoUrl\n }\n }\n }\n";
41
+ /**
42
+ * Historical vault state at a specific Unix timestamp.
43
+ * Used by: get_historical_state tool.
44
+ *
45
+ * Note: requests the full HistoricalVaultState shape (which mirrors VaultState
46
+ * shape but with `asOfTimestamp`). Some optional fields may be null on older
47
+ * vaults that pre-date a given configuration field.
48
+ */
49
+ export declare const GET_HISTORICAL_STATE_QUERY = "\n query GetHistoricalState($address: Address!, $chainId: Int!, $timestamp: Int!) {\n vaultByAddress(address: $address, chainId: $chainId) {\n address\n stateAt(timestamp: $timestamp) {\n state\n syncMode\n isAsyncOnly\n safeLocked\n superOperatorLocked\n allowHighWaterMarkReset\n accessMode\n externalSanctionsList\n maxCap\n totalAssets\n totalAssetsExpiration\n pricePerShare\n pricePerShareUsd\n managementFee\n performanceFee\n protocolFee\n entryRate\n exitRate\n haircutRate\n feeRatesCooldown\n newRatesTimestamp\n highWaterMark\n lastFeeTime\n newTotalAssets\n isWhitelistActivated\n roles {\n owner\n valuationManager\n whitelistManager\n safe\n feeReceiver\n securityCouncil\n superOperator\n }\n guardrails {\n activated\n lowerRate\n upperRate\n }\n }\n }\n }\n";
50
+ //# sourceMappingURL=discovery.queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.queries.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/discovery.queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,sDAIhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,6RAgBrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,8eAuB7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,qYAiB/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,oKAW7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,qWAoB3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,wkCA+CtC,CAAC"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Discovery Queries
3
+ *
4
+ * Thin GraphQL queries for "what does Lagoon look like right now?" tools:
5
+ * global TVL, indexing health, chain directory, curator directory, single asset
6
+ * lookup, and historical vault state.
7
+ *
8
+ * All queries are direct, single-shot, low-cost. They intentionally do NOT
9
+ * pull VaultFragment — these are metadata endpoints, not vault drill-downs.
10
+ */
11
+ /**
12
+ * Total protocol TVL across all chains (USD).
13
+ * Used by: get_global_tvl tool. No args.
14
+ */
15
+ export const GET_GLOBAL_TVL_QUERY = `
16
+ query GetGlobalTVL {
17
+ getGlobalTVL
18
+ }
19
+ `;
20
+ /**
21
+ * Indexer health — last indexed block per chain.
22
+ * Used by: get_indexing_status tool. Optional chainIds filter.
23
+ */
24
+ export const GET_INDEXING_STATUS_QUERY = `
25
+ query GetIndexingStatus($chainIds: [Int!]) {
26
+ _meta(chainIds: $chainIds) {
27
+ lastIndexedBlocks {
28
+ chainId
29
+ number
30
+ hash
31
+ parentHash
32
+ chain {
33
+ id
34
+ name
35
+ nativeToken
36
+ }
37
+ }
38
+ }
39
+ }
40
+ `;
41
+ /**
42
+ * Chain directory. Paginated; default ordering by id ascending.
43
+ * Used by: list_chains tool.
44
+ */
45
+ export const LIST_CHAINS_QUERY = `
46
+ query ListChains($first: Int, $skip: Int, $where: ChainFilterInput) {
47
+ chains(first: $first, skip: $skip, where: $where, orderBy: id, orderDirection: asc) {
48
+ items {
49
+ id
50
+ name
51
+ nativeToken
52
+ logoUrl
53
+ isVisible
54
+ factory
55
+ wrappedNativeToken {
56
+ address
57
+ symbol
58
+ name
59
+ decimals
60
+ }
61
+ }
62
+ pageInfo {
63
+ hasNextPage
64
+ hasPreviousPage
65
+ }
66
+ }
67
+ }
68
+ `;
69
+ /**
70
+ * Curator directory.
71
+ * Used by: list_curators tool.
72
+ */
73
+ export const LIST_CURATORS_QUERY = `
74
+ query ListCurators($first: Int, $skip: Int, $where: CuratorFilterInput) {
75
+ curators(first: $first, skip: $skip, where: $where, orderBy: name, orderDirection: asc) {
76
+ items {
77
+ id
78
+ name
79
+ aboutDescription
80
+ logoUrl
81
+ url
82
+ isVisible
83
+ }
84
+ pageInfo {
85
+ hasNextPage
86
+ hasPreviousPage
87
+ }
88
+ }
89
+ }
90
+ `;
91
+ /**
92
+ * Single curator lookup by id.
93
+ * Used by: get_curator tool.
94
+ */
95
+ export const GET_CURATOR_QUERY = `
96
+ query GetCurator($id: ID!) {
97
+ curator(id: $id) {
98
+ id
99
+ name
100
+ aboutDescription
101
+ logoUrl
102
+ url
103
+ isVisible
104
+ }
105
+ }
106
+ `;
107
+ /**
108
+ * Single asset (ERC20) lookup by address + chain.
109
+ * Used by: get_asset tool.
110
+ */
111
+ export const GET_ASSET_QUERY = `
112
+ query GetAsset($address: Address!, $chainId: Int!) {
113
+ assetByAddress(address: $address, chainId: $chainId) {
114
+ id
115
+ address
116
+ symbol
117
+ name
118
+ decimals
119
+ description
120
+ logoUrl
121
+ isVisible
122
+ priceUsd
123
+ chain {
124
+ id
125
+ name
126
+ nativeToken
127
+ logoUrl
128
+ }
129
+ }
130
+ }
131
+ `;
132
+ /**
133
+ * Historical vault state at a specific Unix timestamp.
134
+ * Used by: get_historical_state tool.
135
+ *
136
+ * Note: requests the full HistoricalVaultState shape (which mirrors VaultState
137
+ * shape but with `asOfTimestamp`). Some optional fields may be null on older
138
+ * vaults that pre-date a given configuration field.
139
+ */
140
+ export const GET_HISTORICAL_STATE_QUERY = `
141
+ query GetHistoricalState($address: Address!, $chainId: Int!, $timestamp: Int!) {
142
+ vaultByAddress(address: $address, chainId: $chainId) {
143
+ address
144
+ stateAt(timestamp: $timestamp) {
145
+ state
146
+ syncMode
147
+ isAsyncOnly
148
+ safeLocked
149
+ superOperatorLocked
150
+ allowHighWaterMarkReset
151
+ accessMode
152
+ externalSanctionsList
153
+ maxCap
154
+ totalAssets
155
+ totalAssetsExpiration
156
+ pricePerShare
157
+ pricePerShareUsd
158
+ managementFee
159
+ performanceFee
160
+ protocolFee
161
+ entryRate
162
+ exitRate
163
+ haircutRate
164
+ feeRatesCooldown
165
+ newRatesTimestamp
166
+ highWaterMark
167
+ lastFeeTime
168
+ newTotalAssets
169
+ isWhitelistActivated
170
+ roles {
171
+ owner
172
+ valuationManager
173
+ whitelistManager
174
+ safe
175
+ feeReceiver
176
+ securityCouncil
177
+ superOperator
178
+ }
179
+ guardrails {
180
+ activated
181
+ lowerRate
182
+ upperRate
183
+ }
184
+ }
185
+ }
186
+ }
187
+ `;
188
+ //# sourceMappingURL=discovery.queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.queries.js","sourceRoot":"","sources":["../../../src/graphql/queries/discovery.queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;CAInC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;CAgBxC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBhC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;CAiBlC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;CAWhC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;CAoB9B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CzC,CAAC"}