@lagoon-protocol/lagoon-mcp 0.3.1 → 0.5.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 (118) hide show
  1. package/dist/config.d.ts +1 -1
  2. package/dist/config.js +1 -1
  3. package/dist/core/cache-invalidation.d.ts +7 -1
  4. package/dist/core/cache-invalidation.d.ts.map +1 -1
  5. package/dist/core/cache-invalidation.js +17 -1
  6. package/dist/core/cache-invalidation.js.map +1 -1
  7. package/dist/core/container.js +1 -1
  8. package/dist/graphql/client.d.ts.map +1 -1
  9. package/dist/graphql/client.js +6 -0
  10. package/dist/graphql/client.js.map +1 -1
  11. package/dist/graphql/fragments/vault-list.fragment.d.ts +9 -5
  12. package/dist/graphql/fragments/vault-list.fragment.d.ts.map +1 -1
  13. package/dist/graphql/fragments/vault-list.fragment.js +8 -4
  14. package/dist/graphql/fragments/vault-list.fragment.js.map +1 -1
  15. package/dist/graphql/fragments/vault-summary.fragment.d.ts +17 -5
  16. package/dist/graphql/fragments/vault-summary.fragment.d.ts.map +1 -1
  17. package/dist/graphql/fragments/vault-summary.fragment.js +16 -4
  18. package/dist/graphql/fragments/vault-summary.fragment.js.map +1 -1
  19. package/dist/graphql/fragments.d.ts +183 -0
  20. package/dist/graphql/fragments.d.ts.map +1 -0
  21. package/dist/graphql/fragments.js +297 -0
  22. package/dist/graphql/fragments.js.map +1 -0
  23. package/dist/graphql/queries/period-summaries.d.ts +15 -0
  24. package/dist/graphql/queries/period-summaries.d.ts.map +1 -0
  25. package/dist/graphql/queries/period-summaries.js +24 -0
  26. package/dist/graphql/queries/period-summaries.js.map +1 -0
  27. package/dist/index.js +7 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/prompts/competitor-comparison.d.ts.map +1 -1
  30. package/dist/prompts/competitor-comparison.js +3 -1
  31. package/dist/prompts/competitor-comparison.js.map +1 -1
  32. package/dist/prompts/curator-performance.d.ts.map +1 -1
  33. package/dist/prompts/curator-performance.js +3 -1
  34. package/dist/prompts/curator-performance.js.map +1 -1
  35. package/dist/prompts/financial-analysis.d.ts.map +1 -1
  36. package/dist/prompts/financial-analysis.js +8 -4
  37. package/dist/prompts/financial-analysis.js.map +1 -1
  38. package/dist/prompts/onboarding-first-vault.d.ts.map +1 -1
  39. package/dist/prompts/onboarding-first-vault.js +5 -1
  40. package/dist/prompts/onboarding-first-vault.js.map +1 -1
  41. package/dist/prompts/portfolio-optimization.d.ts.map +1 -1
  42. package/dist/prompts/portfolio-optimization.js +5 -1
  43. package/dist/prompts/portfolio-optimization.js.map +1 -1
  44. package/dist/prompts/protocol-overview.d.ts.map +1 -1
  45. package/dist/prompts/protocol-overview.js +3 -1
  46. package/dist/prompts/protocol-overview.js.map +1 -1
  47. package/dist/resources/schema.d.ts +8 -3
  48. package/dist/resources/schema.d.ts.map +1 -1
  49. package/dist/resources/schema.js +34 -30
  50. package/dist/resources/schema.js.map +1 -1
  51. package/dist/server.d.ts +4 -1
  52. package/dist/server.d.ts.map +1 -1
  53. package/dist/server.js +5 -2
  54. package/dist/server.js.map +1 -1
  55. package/dist/services/analytics/protocol-overview.service.d.ts +61 -0
  56. package/dist/services/analytics/protocol-overview.service.d.ts.map +1 -0
  57. package/dist/services/analytics/protocol-overview.service.js +182 -0
  58. package/dist/services/analytics/protocol-overview.service.js.map +1 -0
  59. package/dist/services/analytics/risk.service.d.ts +2 -1
  60. package/dist/services/analytics/risk.service.d.ts.map +1 -1
  61. package/dist/services/analytics/risk.service.js +18 -17
  62. package/dist/services/analytics/risk.service.js.map +1 -1
  63. package/dist/skills/loader.d.ts.map +1 -1
  64. package/dist/skills/loader.js +18 -8
  65. package/dist/skills/loader.js.map +1 -1
  66. package/dist/tools/analyze-risk.d.ts +1 -1
  67. package/dist/tools/analyze-risk.js +1 -1
  68. package/dist/tools/compare-vaults.d.ts +1 -1
  69. package/dist/tools/compare-vaults.d.ts.map +1 -1
  70. package/dist/tools/compare-vaults.js +21 -1
  71. package/dist/tools/compare-vaults.js.map +1 -1
  72. package/dist/tools/discover-tools.d.ts +3 -3
  73. package/dist/tools/discover-tools.d.ts.map +1 -1
  74. package/dist/tools/discover-tools.js +16 -3
  75. package/dist/tools/discover-tools.js.map +1 -1
  76. package/dist/tools/index.d.ts +26 -0
  77. package/dist/tools/index.d.ts.map +1 -0
  78. package/dist/tools/index.js +32 -0
  79. package/dist/tools/index.js.map +1 -0
  80. package/dist/tools/predict-yield.d.ts.map +1 -1
  81. package/dist/tools/predict-yield.js +31 -35
  82. package/dist/tools/predict-yield.js.map +1 -1
  83. package/dist/tools/query-graphql.d.ts.map +1 -1
  84. package/dist/tools/query-graphql.js +139 -0
  85. package/dist/tools/query-graphql.js.map +1 -1
  86. package/dist/tools/registry.js +2 -2
  87. package/dist/utils/comparison-metrics.d.ts +20 -1
  88. package/dist/utils/comparison-metrics.d.ts.map +1 -1
  89. package/dist/utils/comparison-metrics.js +61 -7
  90. package/dist/utils/comparison-metrics.js.map +1 -1
  91. package/dist/utils/drawdown.d.ts +62 -0
  92. package/dist/utils/drawdown.d.ts.map +1 -0
  93. package/dist/utils/drawdown.js +132 -0
  94. package/dist/utils/drawdown.js.map +1 -0
  95. package/dist/utils/portfolio-optimization.d.ts +3 -1
  96. package/dist/utils/portfolio-optimization.d.ts.map +1 -1
  97. package/dist/utils/portfolio-optimization.js +13 -9
  98. package/dist/utils/portfolio-optimization.js.map +1 -1
  99. package/dist/utils/risk-scoring.d.ts +3 -1
  100. package/dist/utils/risk-scoring.d.ts.map +1 -1
  101. package/dist/utils/risk-scoring.js +26 -7
  102. package/dist/utils/risk-scoring.js.map +1 -1
  103. package/dist/utils/tool-error-handler.d.ts.map +1 -1
  104. package/dist/utils/tool-error-handler.js +7 -2
  105. package/dist/utils/tool-error-handler.js.map +1 -1
  106. package/dist/utils/tool-handler.d.ts +0 -9
  107. package/dist/utils/tool-handler.d.ts.map +1 -1
  108. package/dist/utils/tool-handler.js +0 -13
  109. package/dist/utils/tool-handler.js.map +1 -1
  110. package/dist/utils/validators.js +3 -3
  111. package/dist/utils/var.d.ts +65 -0
  112. package/dist/utils/var.d.ts.map +1 -0
  113. package/dist/utils/var.js +134 -0
  114. package/dist/utils/var.js.map +1 -0
  115. package/dist/utils/yield-prediction.d.ts.map +1 -1
  116. package/dist/utils/yield-prediction.js +33 -10
  117. package/dist/utils/yield-prediction.js.map +1 -1
  118. package/package.json +1 -1
package/dist/config.d.ts CHANGED
@@ -24,7 +24,7 @@ export declare const config: {
24
24
  };
25
25
  readonly server: {
26
26
  readonly name: "lagoon-mcp";
27
- readonly version: "0.1.0";
27
+ readonly version: "0.4.0";
28
28
  };
29
29
  readonly isDevelopment: boolean;
30
30
  readonly isProduction: boolean;
package/dist/config.js CHANGED
@@ -30,7 +30,7 @@ export const config = {
30
30
  // Server
31
31
  server: {
32
32
  name: 'lagoon-mcp',
33
- version: '0.1.0',
33
+ version: '0.4.0',
34
34
  },
35
35
  // Environment flags
36
36
  isDevelopment: env.NODE_ENV === 'development',
@@ -25,9 +25,15 @@ export declare class CacheInvalidator {
25
25
  private tagMap;
26
26
  constructor(cache: CacheService);
27
27
  /**
28
- * Register a cache key with its associated tags
28
+ * Register a cache key with its associated tags.
29
+ * Also prunes stale entries (keys expired from cache but still in tagMap).
29
30
  */
30
31
  register(key: string, tags: CacheTag[]): void;
32
+ /**
33
+ * Remove tagMap entries for keys that no longer exist in the cache.
34
+ * Prevents unbounded tagMap growth from TTL-expired entries.
35
+ */
36
+ pruneExpired(): void;
31
37
  /**
32
38
  * Invalidate all cache entries with the given tag
33
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"cache-invalidation.d.ts","sourceRoot":"","sources":["../../src/core/cache-invalidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAOD;;GAEG;AACH,qBAAa,gBAAgB;IAGf,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,MAAM,CAA0B;gBAEpB,KAAK,EAAE,YAAY;IAEvC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI;IAM7C;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM;IActC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM;IAU1C;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKnC;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE;IAYrC;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACnC;CAaF;AAED;;;;;;;;;;;GAWG"}
1
+ {"version":3,"file":"cache-invalidation.d.ts","sourceRoot":"","sources":["../../src/core/cache-invalidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAOD;;GAEG;AACH,qBAAa,gBAAgB;IAGf,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,MAAM,CAA0B;gBAEpB,KAAK,EAAE,YAAY;IAEvC;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI;IAW7C;;;OAGG;IACH,YAAY,IAAI,IAAI;IAQpB;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM;IActC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM;IAU1C;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKnC;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE;IAYrC;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACnC;CAaF;AAED;;;;;;;;;;;GAWG"}
@@ -27,13 +27,29 @@ export class CacheInvalidator {
27
27
  this.cache = cache;
28
28
  }
29
29
  /**
30
- * Register a cache key with its associated tags
30
+ * Register a cache key with its associated tags.
31
+ * Also prunes stale entries (keys expired from cache but still in tagMap).
31
32
  */
32
33
  register(key, tags) {
34
+ // Opportunistic pruning: remove stale tagMap entries on every 50th register
35
+ if (this.tagMap.size > 0 && this.tagMap.size % 50 === 0) {
36
+ this.pruneExpired();
37
+ }
33
38
  const tagSet = this.tagMap.get(key) || new Set();
34
39
  tags.forEach((tag) => tagSet.add(tag));
35
40
  this.tagMap.set(key, tagSet);
36
41
  }
42
+ /**
43
+ * Remove tagMap entries for keys that no longer exist in the cache.
44
+ * Prevents unbounded tagMap growth from TTL-expired entries.
45
+ */
46
+ pruneExpired() {
47
+ for (const key of this.tagMap.keys()) {
48
+ if (!this.cache.has(key)) {
49
+ this.tagMap.delete(key);
50
+ }
51
+ }
52
+ }
37
53
  /**
38
54
  * Invalidate all cache entries with the given tag
39
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"cache-invalidation.js","sourceRoot":"","sources":["../../src/core/cache-invalidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache-invalidation.js","sourceRoot":"","sources":["../../src/core/cache-invalidation.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ export function createTestContainer(overrides) {
58
58
  },
59
59
  server: {
60
60
  name: 'lagoon-mcp',
61
- version: '0.1.0',
61
+ version: '0.4.0',
62
62
  },
63
63
  isDevelopment: true,
64
64
  isProduction: false,
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/graphql/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,eAExB,CAAC;AAEH;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAa3D"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/graphql/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,eAQxB,CAAC;AAEH;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAa3D"}
@@ -27,6 +27,12 @@ import { config } from '../config.js';
27
27
  */
28
28
  export const graphqlClient = new GraphQLClient(config.graphql.endpoint, {
29
29
  headers: {},
30
+ requestMiddleware: (request) => {
31
+ return {
32
+ ...request,
33
+ signal: AbortSignal.timeout(config.graphql.timeout),
34
+ };
35
+ },
30
36
  });
31
37
  /**
32
38
  * Health check function to verify backend connectivity
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/graphql/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;IACtE,OAAO,EAAE,EAAE;CACZ,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG;;;;KAIb,CAAC;QACF,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/graphql/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;IACtE,OAAO,EAAE,EAAE;IACX,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7B,OAAO;YACL,GAAG,OAAO;YACV,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACpD,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG;;;;KAIb,CAAC;QACF,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -4,10 +4,11 @@
4
4
  * Minimal vault information for efficient list displays.
5
5
  * Use in search results and large dataset queries to minimize token usage.
6
6
  *
7
- * Token efficiency: ~60 tokens per vault (90% reduction from full fragment)
7
+ * Token efficiency: ~70 tokens per vault (88% reduction from full fragment)
8
8
  *
9
- * APR Strategy: Includes both liveAPR and monthlyApr since vaults use different
10
- * tracking methods. Claude will use whichever field is populated.
9
+ * APR Strategy: Includes liveAPR, monthlyApr, and inceptionApr (linearNetApr only).
10
+ * Inception APR uses inline field (not full APRBreakdownFragment) to keep token cost low.
11
+ * Professional users need track record data even in list views.
11
12
  */
12
13
  /**
13
14
  * Minimal vault data type matching the vault list fragment
@@ -28,6 +29,9 @@ export interface VaultListData {
28
29
  monthlyApr: {
29
30
  linearNetApr: number;
30
31
  };
32
+ inceptionApr: {
33
+ linearNetApr: number;
34
+ } | null;
31
35
  };
32
36
  }
33
37
  /**
@@ -37,7 +41,7 @@ export interface VaultListData {
37
41
  * - Core identification (address, symbol, name)
38
42
  * - Chain context (id, name)
39
43
  * - TVL (totalAssetsUsd)
40
- * - APR data (liveAPR or monthlyApr, whichever is available)
44
+ * - APR data (liveAPR, monthlyApr, inceptionApr linearNetApr)
41
45
  *
42
46
  * Usage:
43
47
  * ```graphql
@@ -49,5 +53,5 @@ export interface VaultListData {
49
53
  * ${VAULT_LIST_FRAGMENT}
50
54
  * ```
51
55
  */
52
- export declare const VAULT_LIST_FRAGMENT = "\n fragment VaultListFragment on Vault {\n address\n symbol\n name\n chain {\n id\n name\n }\n state {\n totalAssetsUsd\n liveAPR {\n netApr\n }\n monthlyApr {\n linearNetApr\n }\n }\n }\n";
56
+ export declare const VAULT_LIST_FRAGMENT = "\n fragment VaultListFragment on Vault {\n address\n symbol\n name\n chain {\n id\n name\n }\n state {\n totalAssetsUsd\n liveAPR {\n netApr\n }\n monthlyApr {\n linearNetApr\n }\n inceptionApr {\n linearNetApr\n }\n }\n }\n";
53
57
  //# sourceMappingURL=vault-list.fragment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault-list.fragment.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/vault-list.fragment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,IAAI,CAAC;QACT,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,yQAmB/B,CAAC"}
1
+ {"version":3,"file":"vault-list.fragment.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/vault-list.fragment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,IAAI,CAAC;QACT,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,YAAY,EAAE;YACZ,YAAY,EAAE,MAAM,CAAC;SACtB,GAAG,IAAI,CAAC;KACV,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,8TAsB/B,CAAC"}
@@ -4,10 +4,11 @@
4
4
  * Minimal vault information for efficient list displays.
5
5
  * Use in search results and large dataset queries to minimize token usage.
6
6
  *
7
- * Token efficiency: ~60 tokens per vault (90% reduction from full fragment)
7
+ * Token efficiency: ~70 tokens per vault (88% reduction from full fragment)
8
8
  *
9
- * APR Strategy: Includes both liveAPR and monthlyApr since vaults use different
10
- * tracking methods. Claude will use whichever field is populated.
9
+ * APR Strategy: Includes liveAPR, monthlyApr, and inceptionApr (linearNetApr only).
10
+ * Inception APR uses inline field (not full APRBreakdownFragment) to keep token cost low.
11
+ * Professional users need track record data even in list views.
11
12
  */
12
13
  /**
13
14
  * GraphQL fragment for minimal vault data
@@ -16,7 +17,7 @@
16
17
  * - Core identification (address, symbol, name)
17
18
  * - Chain context (id, name)
18
19
  * - TVL (totalAssetsUsd)
19
- * - APR data (liveAPR or monthlyApr, whichever is available)
20
+ * - APR data (liveAPR, monthlyApr, inceptionApr linearNetApr)
20
21
  *
21
22
  * Usage:
22
23
  * ```graphql
@@ -45,6 +46,9 @@ export const VAULT_LIST_FRAGMENT = `
45
46
  monthlyApr {
46
47
  linearNetApr
47
48
  }
49
+ inceptionApr {
50
+ linearNetApr
51
+ }
48
52
  }
49
53
  }
50
54
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"vault-list.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/vault-list.fragment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwBH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;CAmBlC,CAAC"}
1
+ {"version":3,"file":"vault-list.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/vault-list.fragment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2BH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBlC,CAAC"}
@@ -3,11 +3,15 @@
3
3
  *
4
4
  * Balanced vault information with key metrics and relationships.
5
5
  * Use when more detail is needed than list format but not full vault data.
6
+ * Default format for portfolio queries and vault recommendations.
6
7
  *
7
- * Token efficiency: ~170 tokens per vault (72% reduction from full fragment)
8
+ * Token efficiency: ~200 tokens per vault (67% reduction from full fragment)
8
9
  *
9
- * APR Strategy: Includes both liveAPR (with detail) and monthlyApr for flexibility.
10
- * Vaults use different tracking methods, so both fields ensure robust APR display.
10
+ * APR Strategy: Includes liveAPR, monthlyApr, and inceptionApr (linearNetApr only).
11
+ * Inception APR uses inline field (not full APRBreakdownFragment) to keep token cost low.
12
+ *
13
+ * Decision-making fields: fees and settlement time are included so the AI can
14
+ * make informed recommendations without upgrading to the full fragment (~600 tokens).
11
15
  */
12
16
  /**
13
17
  * Summary vault data type matching the vault summary fragment
@@ -18,6 +22,7 @@ export interface VaultSummaryData {
18
22
  name: string | null;
19
23
  description: string | null;
20
24
  logoUrl: string | null;
25
+ averageSettlement: number | null;
21
26
  chain: {
22
27
  id: number;
23
28
  name: string;
@@ -31,6 +36,8 @@ export interface VaultSummaryData {
31
36
  state: {
32
37
  totalAssetsUsd: number;
33
38
  pricePerShareUsd: number;
39
+ managementFee: number;
40
+ performanceFee: number;
34
41
  liveAPR: {
35
42
  grossApr: number;
36
43
  netApr: number;
@@ -39,6 +46,9 @@ export interface VaultSummaryData {
39
46
  monthlyApr: {
40
47
  linearNetApr: number;
41
48
  };
49
+ inceptionApr: {
50
+ linearNetApr: number;
51
+ } | null;
42
52
  };
43
53
  curators: Array<{
44
54
  name: string;
@@ -51,7 +61,9 @@ export interface VaultSummaryData {
51
61
  * Includes balanced detail for analysis:
52
62
  * - Full identification with logos
53
63
  * - Chain and asset basics
54
- * - Key financial metrics (TVL, price per share, APR)
64
+ * - Key financial metrics (TVL, price per share, fees, APR)
65
+ * - Settlement time for liquidity assessment
66
+ * - Inception APR (linearNetApr only) for track record
55
67
  * - Curator information for relationship analysis
56
68
  *
57
69
  * Usage:
@@ -64,5 +76,5 @@ export interface VaultSummaryData {
64
76
  * ${VAULT_SUMMARY_FRAGMENT}
65
77
  * ```
66
78
  */
67
- export declare const VAULT_SUMMARY_FRAGMENT = "\n fragment VaultSummaryFragment on Vault {\n address\n symbol\n name\n description\n logoUrl\n chain {\n id\n name\n logoUrl\n }\n asset {\n symbol\n name\n logoUrl\n }\n state {\n totalAssetsUsd\n pricePerShareUsd\n liveAPR {\n grossApr\n netApr\n name\n }\n monthlyApr {\n linearNetApr\n }\n }\n curators {\n name\n logoUrl\n }\n }\n";
79
+ export declare const VAULT_SUMMARY_FRAGMENT = "\n fragment VaultSummaryFragment on Vault {\n address\n symbol\n name\n description\n logoUrl\n averageSettlement\n chain {\n id\n name\n logoUrl\n }\n asset {\n symbol\n name\n logoUrl\n }\n state {\n totalAssetsUsd\n pricePerShareUsd\n managementFee\n performanceFee\n liveAPR {\n grossApr\n netApr\n name\n }\n monthlyApr {\n linearNetApr\n }\n inceptionApr {\n linearNetApr\n }\n }\n curators {\n name\n logoUrl\n }\n }\n";
68
80
  //# sourceMappingURL=vault-summary.fragment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault-summary.fragment.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/vault-summary.fragment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE/B,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,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAGvB,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAGF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IAGF,KAAK,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE;YACP,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;SACd,GAAG,IAAI,CAAC;QACT,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IAGF,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC,GAAG,IAAI,CAAC;CACX;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,sBAAsB,geAkClC,CAAC"}
1
+ {"version":3,"file":"vault-summary.fragment.d.ts","sourceRoot":"","sources":["../../../src/graphql/fragments/vault-summary.fragment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE/B,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,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAGvB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGjC,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAGF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IAGF,KAAK,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE;YACP,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;SACd,GAAG,IAAI,CAAC;QACT,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,YAAY,EAAE;YACZ,YAAY,EAAE,MAAM,CAAC;SACtB,GAAG,IAAI,CAAC;KACV,CAAC;IAGF,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC,GAAG,IAAI,CAAC;CACX;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,sBAAsB,ulBAwClC,CAAC"}
@@ -3,11 +3,15 @@
3
3
  *
4
4
  * Balanced vault information with key metrics and relationships.
5
5
  * Use when more detail is needed than list format but not full vault data.
6
+ * Default format for portfolio queries and vault recommendations.
6
7
  *
7
- * Token efficiency: ~170 tokens per vault (72% reduction from full fragment)
8
+ * Token efficiency: ~200 tokens per vault (67% reduction from full fragment)
8
9
  *
9
- * APR Strategy: Includes both liveAPR (with detail) and monthlyApr for flexibility.
10
- * Vaults use different tracking methods, so both fields ensure robust APR display.
10
+ * APR Strategy: Includes liveAPR, monthlyApr, and inceptionApr (linearNetApr only).
11
+ * Inception APR uses inline field (not full APRBreakdownFragment) to keep token cost low.
12
+ *
13
+ * Decision-making fields: fees and settlement time are included so the AI can
14
+ * make informed recommendations without upgrading to the full fragment (~600 tokens).
11
15
  */
12
16
  /**
13
17
  * GraphQL fragment for summary vault data
@@ -15,7 +19,9 @@
15
19
  * Includes balanced detail for analysis:
16
20
  * - Full identification with logos
17
21
  * - Chain and asset basics
18
- * - Key financial metrics (TVL, price per share, APR)
22
+ * - Key financial metrics (TVL, price per share, fees, APR)
23
+ * - Settlement time for liquidity assessment
24
+ * - Inception APR (linearNetApr only) for track record
19
25
  * - Curator information for relationship analysis
20
26
  *
21
27
  * Usage:
@@ -35,6 +41,7 @@ export const VAULT_SUMMARY_FRAGMENT = `
35
41
  name
36
42
  description
37
43
  logoUrl
44
+ averageSettlement
38
45
  chain {
39
46
  id
40
47
  name
@@ -48,6 +55,8 @@ export const VAULT_SUMMARY_FRAGMENT = `
48
55
  state {
49
56
  totalAssetsUsd
50
57
  pricePerShareUsd
58
+ managementFee
59
+ performanceFee
51
60
  liveAPR {
52
61
  grossApr
53
62
  netApr
@@ -56,6 +65,9 @@ export const VAULT_SUMMARY_FRAGMENT = `
56
65
  monthlyApr {
57
66
  linearNetApr
58
67
  }
68
+ inceptionApr {
69
+ linearNetApr
70
+ }
59
71
  }
60
72
  curators {
61
73
  name
@@ -1 +1 @@
1
- {"version":3,"file":"vault-summary.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/vault-summary.fragment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgDH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCrC,CAAC"}
1
+ {"version":3,"file":"vault-summary.fragment.js","sourceRoot":"","sources":["../../../src/graphql/fragments/vault-summary.fragment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwDH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCrC,CAAC"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Shared GraphQL Fragments
3
+ *
4
+ * Reusable query fragments for consistent data fetching across tools.
5
+ * Maintains single source of truth for complex nested structures.
6
+ */
7
+ /**
8
+ * APR breakdown structure used across all APR time periods
9
+ */
10
+ export interface APRBreakdown {
11
+ linearNetApr: number;
12
+ linearNetAprWithoutExtraYields: number;
13
+ airdrops: Array<{
14
+ name: string;
15
+ apr: number;
16
+ description: string | null;
17
+ distributionTimestamp: string;
18
+ endTimestamp: number;
19
+ isEstimation: boolean;
20
+ logoUrl: string;
21
+ multiplier: string | null;
22
+ ppsIncrease: number;
23
+ startTimestamp: number;
24
+ }>;
25
+ incentives: Array<{
26
+ name: string;
27
+ apr: number;
28
+ aprDescription: string;
29
+ description: string | null;
30
+ endTimestamp: number;
31
+ incentiveRate: {
32
+ incentiveAmount: string;
33
+ referenceToken: {
34
+ id: string;
35
+ };
36
+ referenceTokenAmount: string;
37
+ };
38
+ }>;
39
+ nativeYields: Array<{
40
+ name: string;
41
+ apr: number;
42
+ aprDescription: string;
43
+ description: string | null;
44
+ endTimestamp: number | null;
45
+ isEstimation: boolean;
46
+ logoUrl: string;
47
+ multiplier: string | null;
48
+ startTimestamp: number;
49
+ }>;
50
+ }
51
+ /**
52
+ * Complete vault data type matching the vault fragment
53
+ */
54
+ export interface VaultData {
55
+ address: string;
56
+ symbol: string | null;
57
+ name: string | null;
58
+ description: string | null;
59
+ shortDescription: string | null;
60
+ decimals: number | null;
61
+ logoUrl: string | null;
62
+ maxCapacity: string | null;
63
+ averageSettlement: number | null;
64
+ isVisible: boolean;
65
+ chain: {
66
+ id: number;
67
+ name: string;
68
+ nativeToken: string;
69
+ factory: string;
70
+ logoUrl: string;
71
+ wrappedNativeToken: {
72
+ address: string;
73
+ symbol: string;
74
+ name: string;
75
+ decimals: number;
76
+ };
77
+ };
78
+ asset: {
79
+ id: string;
80
+ address: string;
81
+ symbol: string;
82
+ name: string;
83
+ decimals: number;
84
+ description: string | null;
85
+ logoUrl: string | null;
86
+ isVisible: boolean;
87
+ priceUsd: number;
88
+ chain: {
89
+ id: string;
90
+ name: string;
91
+ nativeToken: string;
92
+ logoUrl: string;
93
+ };
94
+ priceSources: {
95
+ chainlinkPriceFeed: {
96
+ address: string;
97
+ chainId: number;
98
+ } | null;
99
+ };
100
+ };
101
+ state: {
102
+ state: string;
103
+ totalAssets: string;
104
+ totalAssetsUsd: number;
105
+ totalSupply: string;
106
+ newTotalAssets: string;
107
+ pricePerShare: string;
108
+ pricePerShareUsd: number;
109
+ safeAssetBalance: string;
110
+ safeAssetBalanceUsd: number;
111
+ pendingSettlement: {
112
+ assets: string;
113
+ assetsUsd: number;
114
+ };
115
+ pendingSiloBalances: {
116
+ assets: string;
117
+ shares: string;
118
+ };
119
+ liveAPR: {
120
+ grossApr: number;
121
+ name: string;
122
+ netApr: number;
123
+ description: string;
124
+ } | null;
125
+ inceptionApr: APRBreakdown;
126
+ weeklyApr: APRBreakdown;
127
+ monthlyApr: APRBreakdown;
128
+ yearlyApr: APRBreakdown;
129
+ roles: {
130
+ owner: string;
131
+ valuationManager: string;
132
+ whitelistManager: string;
133
+ safe: string;
134
+ feeReceiver: string;
135
+ };
136
+ managementFee: number;
137
+ performanceFee: number;
138
+ highWaterMark: string;
139
+ lastFeeTime: string;
140
+ };
141
+ curators: Array<{
142
+ id: string;
143
+ name: string;
144
+ aboutDescription: string | null;
145
+ logoUrl: string | null;
146
+ url: string | null;
147
+ }> | null;
148
+ integrator: {
149
+ name: string;
150
+ url: string | null;
151
+ logoUrl: string | null;
152
+ aboutDescription: string | null;
153
+ } | null;
154
+ defiIntegrations: Array<{
155
+ name: string;
156
+ description: string;
157
+ logoUrl: string;
158
+ link: string;
159
+ type: string;
160
+ }> | null;
161
+ }
162
+ /**
163
+ * Complete vault data GraphQL fragment
164
+ *
165
+ * Includes ALL available fields for comprehensive vault analysis.
166
+ * Use this fragment in any query that needs complete vault information.
167
+ *
168
+ * Schema verified against working API query on 2025-01-04
169
+ *
170
+ * Usage:
171
+ * ```graphql
172
+ * query MyQuery {
173
+ * someField {
174
+ * vault {
175
+ * ...VaultFragment
176
+ * }
177
+ * }
178
+ * }
179
+ * ${VAULT_FRAGMENT}
180
+ * ```
181
+ */
182
+ 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 id\n name\n symbol\n decimals\n address\n logoUrl\n description\n chain {\n id\n name\n nativeToken\n logoUrl\n }\n priceSources {\n chainlinkPriceFeed {\n address\n chainId\n }\n }\n priceUsd\n isVisible\n }\n chain {\n id\n name\n nativeToken\n logoUrl\n wrappedNativeToken {\n address\n decimals\n name\n symbol\n }\n factory\n }\n state {\n state\n totalAssets\n totalAssetsUsd\n totalSupply\n pricePerShare\n pricePerShareUsd\n safeAssetBalance\n liveAPR {\n grossApr\n name\n netApr\n description\n }\n roles {\n owner\n valuationManager\n whitelistManager\n safe\n feeReceiver\n }\n managementFee\n performanceFee\n pendingSettlement {\n assets\n assetsUsd\n }\n inceptionApr {\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 pendingSiloBalances {\n assets\n shares\n }\n monthlyApr {\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 newTotalAssets\n highWaterMark\n lastFeeTime\n safeAssetBalanceUsd\n weeklyApr {\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 yearlyApr {\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 curators {\n name\n id\n aboutDescription\n logoUrl\n url\n }\n integrator {\n name\n url\n logoUrl\n aboutDescription\n }\n defiIntegrations {\n name\n description\n link\n logoUrl\n type\n }\n }\n";
183
+ //# sourceMappingURL=fragments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../src/graphql/fragments.ts"],"names":[],"mappings":"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"}