@lagoon-protocol/lagoon-mcp 0.4.0 → 0.6.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 (159) 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/transaction-base.fragment.d.ts +1 -1
  12. package/dist/graphql/fragments/transaction-base.fragment.d.ts.map +1 -1
  13. package/dist/graphql/fragments/transaction-base.fragment.js +0 -1
  14. package/dist/graphql/fragments/transaction-base.fragment.js.map +1 -1
  15. package/dist/graphql/fragments/vault.fragment.d.ts +2 -1
  16. package/dist/graphql/fragments/vault.fragment.d.ts.map +1 -1
  17. package/dist/graphql/fragments/vault.fragment.js +1 -0
  18. package/dist/graphql/fragments/vault.fragment.js.map +1 -1
  19. package/dist/graphql/queries/export.queries.d.ts +5 -7
  20. package/dist/graphql/queries/export.queries.d.ts.map +1 -1
  21. package/dist/graphql/queries/export.queries.js +22 -28
  22. package/dist/graphql/queries/export.queries.js.map +1 -1
  23. package/dist/graphql/queries/index.d.ts +3 -3
  24. package/dist/graphql/queries/index.d.ts.map +1 -1
  25. package/dist/graphql/queries/index.js +3 -3
  26. package/dist/graphql/queries/index.js.map +1 -1
  27. package/dist/graphql/queries/performance.queries.d.ts +6 -4
  28. package/dist/graphql/queries/performance.queries.d.ts.map +1 -1
  29. package/dist/graphql/queries/performance.queries.js +5 -11
  30. package/dist/graphql/queries/performance.queries.js.map +1 -1
  31. package/dist/graphql/queries/portfolio.queries.d.ts +5 -11
  32. package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -1
  33. package/dist/graphql/queries/portfolio.queries.js +14 -87
  34. package/dist/graphql/queries/portfolio.queries.js.map +1 -1
  35. package/dist/graphql/queries/prediction.queries.d.ts +13 -15
  36. package/dist/graphql/queries/prediction.queries.d.ts.map +1 -1
  37. package/dist/graphql/queries/prediction.queries.js +12 -31
  38. package/dist/graphql/queries/prediction.queries.js.map +1 -1
  39. package/dist/graphql/queries/risk.queries.d.ts +3 -3
  40. package/dist/graphql/queries/risk.queries.d.ts.map +1 -1
  41. package/dist/graphql/queries/risk.queries.js +7 -22
  42. package/dist/graphql/queries/risk.queries.js.map +1 -1
  43. package/dist/graphql/queries/search.queries.d.ts.map +1 -1
  44. package/dist/graphql/queries/search.queries.js +6 -2
  45. package/dist/graphql/queries/search.queries.js.map +1 -1
  46. package/dist/graphql/queries/transaction.queries.d.ts +6 -26
  47. package/dist/graphql/queries/transaction.queries.d.ts.map +1 -1
  48. package/dist/graphql/queries/transaction.queries.js +227 -59
  49. package/dist/graphql/queries/transaction.queries.js.map +1 -1
  50. package/dist/graphql/queries/vault.queries.d.ts +21 -3
  51. package/dist/graphql/queries/vault.queries.d.ts.map +1 -1
  52. package/dist/graphql/queries/vault.queries.js +38 -0
  53. package/dist/graphql/queries/vault.queries.js.map +1 -1
  54. package/dist/index.js +7 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/prompts/competitor-comparison.d.ts.map +1 -1
  57. package/dist/prompts/competitor-comparison.js +3 -1
  58. package/dist/prompts/competitor-comparison.js.map +1 -1
  59. package/dist/prompts/curator-performance.d.ts.map +1 -1
  60. package/dist/prompts/curator-performance.js +3 -1
  61. package/dist/prompts/curator-performance.js.map +1 -1
  62. package/dist/prompts/financial-analysis.d.ts.map +1 -1
  63. package/dist/prompts/financial-analysis.js +7 -3
  64. package/dist/prompts/financial-analysis.js.map +1 -1
  65. package/dist/prompts/onboarding-first-vault.d.ts.map +1 -1
  66. package/dist/prompts/onboarding-first-vault.js +5 -1
  67. package/dist/prompts/onboarding-first-vault.js.map +1 -1
  68. package/dist/prompts/portfolio-optimization.d.ts.map +1 -1
  69. package/dist/prompts/portfolio-optimization.js +5 -1
  70. package/dist/prompts/portfolio-optimization.js.map +1 -1
  71. package/dist/prompts/protocol-overview.d.ts.map +1 -1
  72. package/dist/prompts/protocol-overview.js +3 -1
  73. package/dist/prompts/protocol-overview.js.map +1 -1
  74. package/dist/resources/schema.d.ts +8 -3
  75. package/dist/resources/schema.d.ts.map +1 -1
  76. package/dist/resources/schema.js +34 -30
  77. package/dist/resources/schema.js.map +1 -1
  78. package/dist/server.d.ts +4 -1
  79. package/dist/server.d.ts.map +1 -1
  80. package/dist/server.js +5 -2
  81. package/dist/server.js.map +1 -1
  82. package/dist/services/analytics/risk.service.d.ts +10 -12
  83. package/dist/services/analytics/risk.service.d.ts.map +1 -1
  84. package/dist/services/analytics/risk.service.js +41 -42
  85. package/dist/services/analytics/risk.service.js.map +1 -1
  86. package/dist/skills/loader.d.ts.map +1 -1
  87. package/dist/skills/loader.js +18 -8
  88. package/dist/skills/loader.js.map +1 -1
  89. package/dist/tools/compare-vaults.d.ts.map +1 -1
  90. package/dist/tools/compare-vaults.js +6 -3
  91. package/dist/tools/compare-vaults.js.map +1 -1
  92. package/dist/tools/discover-tools.d.ts +3 -3
  93. package/dist/tools/discover-tools.d.ts.map +1 -1
  94. package/dist/tools/discover-tools.js +16 -3
  95. package/dist/tools/discover-tools.js.map +1 -1
  96. package/dist/tools/export-data.d.ts.map +1 -1
  97. package/dist/tools/export-data.js +10 -16
  98. package/dist/tools/export-data.js.map +1 -1
  99. package/dist/tools/get-price-history.d.ts.map +1 -1
  100. package/dist/tools/get-price-history.js +55 -63
  101. package/dist/tools/get-price-history.js.map +1 -1
  102. package/dist/tools/get-transactions.d.ts.map +1 -1
  103. package/dist/tools/get-transactions.js +3 -1
  104. package/dist/tools/get-transactions.js.map +1 -1
  105. package/dist/tools/optimize-portfolio.d.ts.map +1 -1
  106. package/dist/tools/optimize-portfolio.js +6 -17
  107. package/dist/tools/optimize-portfolio.js.map +1 -1
  108. package/dist/tools/predict-yield.d.ts.map +1 -1
  109. package/dist/tools/predict-yield.js +61 -38
  110. package/dist/tools/predict-yield.js.map +1 -1
  111. package/dist/tools/query-graphql.d.ts.map +1 -1
  112. package/dist/tools/query-graphql.js +139 -0
  113. package/dist/tools/query-graphql.js.map +1 -1
  114. package/dist/tools/search-vaults.d.ts.map +1 -1
  115. package/dist/tools/search-vaults.js +9 -2
  116. package/dist/tools/search-vaults.js.map +1 -1
  117. package/dist/tools/vault-performance.d.ts.map +1 -1
  118. package/dist/tools/vault-performance.js +7 -19
  119. package/dist/tools/vault-performance.js.map +1 -1
  120. package/dist/types/generated.d.ts +811 -19
  121. package/dist/types/generated.d.ts.map +1 -1
  122. package/dist/utils/comparison-metrics.d.ts.map +1 -1
  123. package/dist/utils/comparison-metrics.js +6 -3
  124. package/dist/utils/comparison-metrics.js.map +1 -1
  125. package/dist/utils/csv-generator.d.ts +4 -1
  126. package/dist/utils/csv-generator.d.ts.map +1 -1
  127. package/dist/utils/csv-generator.js +8 -4
  128. package/dist/utils/csv-generator.js.map +1 -1
  129. package/dist/utils/drawdown.d.ts +62 -0
  130. package/dist/utils/drawdown.d.ts.map +1 -0
  131. package/dist/utils/drawdown.js +132 -0
  132. package/dist/utils/drawdown.js.map +1 -0
  133. package/dist/utils/portfolio-optimization.d.ts +3 -1
  134. package/dist/utils/portfolio-optimization.d.ts.map +1 -1
  135. package/dist/utils/portfolio-optimization.js +13 -9
  136. package/dist/utils/portfolio-optimization.js.map +1 -1
  137. package/dist/utils/risk-scoring.d.ts.map +1 -1
  138. package/dist/utils/risk-scoring.js +24 -7
  139. package/dist/utils/risk-scoring.js.map +1 -1
  140. package/dist/utils/tool-error-handler.d.ts.map +1 -1
  141. package/dist/utils/tool-error-handler.js +9 -2
  142. package/dist/utils/tool-error-handler.js.map +1 -1
  143. package/dist/utils/tool-handler.d.ts +0 -9
  144. package/dist/utils/tool-handler.d.ts.map +1 -1
  145. package/dist/utils/tool-handler.js +0 -13
  146. package/dist/utils/tool-handler.js.map +1 -1
  147. package/dist/utils/validators.d.ts +9 -3
  148. package/dist/utils/validators.d.ts.map +1 -1
  149. package/dist/utils/validators.js +49 -3
  150. package/dist/utils/validators.js.map +1 -1
  151. package/dist/utils/var.d.ts +65 -0
  152. package/dist/utils/var.d.ts.map +1 -0
  153. package/dist/utils/var.js +134 -0
  154. package/dist/utils/var.js.map +1 -0
  155. package/dist/utils/yield-prediction.d.ts +3 -0
  156. package/dist/utils/yield-prediction.d.ts.map +1 -1
  157. package/dist/utils/yield-prediction.js +46 -11
  158. package/dist/utils/yield-prediction.js.map +1 -1
  159. package/package.json +1 -1
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Value at Risk (VaR) and Conditional VaR (CVaR) Utility
3
+ *
4
+ * Risk quantification for DeFi vault returns using historical simulation.
5
+ * Provides tail-risk metrics (VaR, CVaR) and downside-adjusted performance
6
+ * measurement (Sortino ratio) for vault assessment.
7
+ */
8
+ /** Minimum number of return observations required for meaningful analysis */
9
+ const MIN_DATA_POINTS = 10;
10
+ /**
11
+ * Calculate Value at Risk (VaR) and Conditional VaR (CVaR) using historical simulation.
12
+ *
13
+ * Historical simulation sorts observed returns and reads off percentiles directly,
14
+ * making no distributional assumptions. This is appropriate for DeFi returns which
15
+ * often exhibit fat tails and skewness that parametric methods underestimate.
16
+ *
17
+ * @param returns - Array of periodic returns as decimal fractions (e.g., -0.02 = -2% loss)
18
+ * @returns VaR analysis with loss magnitudes as positive percentages
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const dailyReturns = [-0.01, 0.005, -0.03, 0.02, ...]; // 30+ observations
23
+ * const analysis = calculateVaR(dailyReturns);
24
+ * // analysis.var95 = 2.5 means "95% of the time, daily loss does not exceed 2.5%"
25
+ * ```
26
+ */
27
+ export function calculateVaR(returns) {
28
+ const emptyResult = {
29
+ var95: 0,
30
+ var99: 0,
31
+ cvar95: 0,
32
+ cvar99: 0,
33
+ dataPoints: 0,
34
+ };
35
+ if (returns.length < MIN_DATA_POINTS) {
36
+ return emptyResult;
37
+ }
38
+ // Sort returns ascending (worst losses first)
39
+ const sorted = [...returns].sort((a, b) => a - b);
40
+ const n = sorted.length;
41
+ // VaR at confidence level X = the value at the (1-X) percentile of sorted returns.
42
+ // For 95% confidence, we take the 5th percentile (index = floor(0.05 * n)).
43
+ // For 99% confidence, we take the 1st percentile (index = floor(0.01 * n)).
44
+ const var95Index = Math.floor(0.05 * n);
45
+ const var99Index = Math.floor(0.01 * n);
46
+ const var95Value = sorted[var95Index];
47
+ const var99Value = sorted[var99Index];
48
+ // CVaR (Expected Shortfall) = mean of all returns at or below the VaR threshold.
49
+ // This captures the average severity of tail losses, not just the boundary.
50
+ const cvar95 = calculateExpectedShortfall(sorted, var95Index);
51
+ const cvar99 = calculateExpectedShortfall(sorted, var99Index);
52
+ // Convert to positive percentage loss magnitudes.
53
+ // A return of -0.02 becomes 2.0 (representing 2% loss).
54
+ return {
55
+ var95: toPositiveLossPercentage(var95Value),
56
+ var99: toPositiveLossPercentage(var99Value),
57
+ cvar95: toPositiveLossPercentage(cvar95),
58
+ cvar99: toPositiveLossPercentage(cvar99),
59
+ dataPoints: n,
60
+ };
61
+ }
62
+ /**
63
+ * Calculate the Sortino ratio for a return series.
64
+ *
65
+ * Sortino ratio improves on Sharpe by penalizing only downside volatility,
66
+ * which better reflects investor preferences in asymmetric return distributions
67
+ * typical of DeFi strategies.
68
+ *
69
+ * Formula: (mean return - risk-free rate) / downside deviation
70
+ *
71
+ * @param returns - Array of periodic returns as decimal fractions
72
+ * @param riskFreeRate - Per-period risk-free rate as decimal (default: 0.02 = 2% per period).
73
+ * Callers must convert annualized rates to match the return period
74
+ * (e.g., annual 5% → daily 0.05/365 ≈ 0.000137).
75
+ * @returns Sortino ratio, or 0 if insufficient data or no downside deviation
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * const weeklyReturns = [0.01, -0.005, 0.015, -0.02, ...];
80
+ * const weeklyRiskFree = 0.05 / 52; // 5% annual → per-week
81
+ * const sortino = calculateSortinoRatio(weeklyReturns, weeklyRiskFree);
82
+ * ```
83
+ */
84
+ export function calculateSortinoRatio(returns, riskFreeRate = 0.02) {
85
+ if (returns.length < 2) {
86
+ return 0;
87
+ }
88
+ const meanReturn = returns.reduce((sum, r) => sum + r, 0) / returns.length;
89
+ // Downside deviation: sqrt of mean squared negative excess returns.
90
+ // Only returns below the risk-free rate (per period) contribute.
91
+ const negativeExcessReturns = returns.filter((r) => r < riskFreeRate);
92
+ if (negativeExcessReturns.length === 0) {
93
+ return 0;
94
+ }
95
+ const sumSquaredDownside = negativeExcessReturns.reduce((sum, r) => sum + (r - riskFreeRate) ** 2, 0);
96
+ const downsideDeviation = Math.sqrt(sumSquaredDownside / returns.length);
97
+ if (downsideDeviation === 0) {
98
+ return 0;
99
+ }
100
+ return (meanReturn - riskFreeRate) / downsideDeviation;
101
+ }
102
+ /**
103
+ * Calculate Expected Shortfall (mean of returns at or below the VaR index).
104
+ *
105
+ * @param sortedReturns - Returns sorted ascending (worst first)
106
+ * @param varIndex - Index of the VaR threshold in the sorted array
107
+ * @returns Mean of all returns from index 0 through varIndex (inclusive)
108
+ */
109
+ function calculateExpectedShortfall(sortedReturns, varIndex) {
110
+ // Include all returns from the worst up to and including the VaR threshold
111
+ const tailCount = varIndex + 1;
112
+ if (tailCount === 0) {
113
+ return sortedReturns[0];
114
+ }
115
+ let sum = 0;
116
+ for (let i = 0; i < tailCount; i++) {
117
+ sum += sortedReturns[i];
118
+ }
119
+ return sum / tailCount;
120
+ }
121
+ /**
122
+ * Convert a return value to a positive loss percentage.
123
+ * Negative returns become positive loss magnitudes; positive returns become 0 (no loss).
124
+ *
125
+ * @param returnValue - Return as decimal fraction (e.g., -0.025)
126
+ * @returns Positive percentage loss (e.g., 2.5), or 0 if return is non-negative
127
+ */
128
+ function toPositiveLossPercentage(returnValue) {
129
+ if (returnValue >= 0) {
130
+ return 0;
131
+ }
132
+ return Math.abs(returnValue) * 100;
133
+ }
134
+ //# sourceMappingURL=var.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"var.js","sourceRoot":"","sources":["../../src/utils/var.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,9 @@ export declare function predictYield(historicalData: YieldDataPoint[], feeParams
65
65
  * will be omitted entirely (no placeholder assumptions).
66
66
  */
67
67
  actualProfitMargin?: number;
68
+ }, dataQualityFlags?: {
69
+ droppedShortPeriods: number;
70
+ clampedPeriods: number;
68
71
  }): YieldPrediction;
69
72
  /**
70
73
  * Calculate compound APR from multiple yield sources
@@ -1 +1 @@
1
- {"version":3,"file":"yield-prediction.d.ts","sourceRoot":"","sources":["../../src/utils/yield-prediction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC9C,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,kBAAkB,CAAC,EAAE;QACnB,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,SAAS,CAAC,EAAE;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAoGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,cAAc,EAAE,cAAc,EAAE,EAChC,SAAS,CAAC,EAAE;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GACA,eAAe,CAsKjB;AAuGD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAW7D"}
1
+ {"version":3,"file":"yield-prediction.d.ts","sourceRoot":"","sources":["../../src/utils/yield-prediction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC9C,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,kBAAkB,CAAC,EAAE;QACnB,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,SAAS,CAAC,EAAE;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAuGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,cAAc,EAAE,cAAc,EAAE,EAChC,SAAS,CAAC,EAAE;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,EACD,gBAAgB,CAAC,EAAE;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB,GACA,eAAe,CA2LjB;AAoID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAW7D"}
@@ -37,10 +37,10 @@ function calculateEMA(values, period) {
37
37
  function calculateLinearRegression(data) {
38
38
  const n = data.length;
39
39
  if (n < 2) {
40
- return { slope: 0, intercept: data[0]?.apr || 0, r2: 0 };
40
+ return { slope: 0, intercept: data[0]?.apr ?? 0, r2: 0 };
41
41
  }
42
42
  // Normalize timestamps to prevent overflow
43
- const minTimestamp = Math.min(...data.map((d) => d.timestamp));
43
+ const minTimestamp = data.reduce((min, d) => (d.timestamp < min ? d.timestamp : min), data[0].timestamp);
44
44
  const x = data.map((d) => (d.timestamp - minTimestamp) / (24 * 60 * 60)); // Convert to days
45
45
  const y = data.map((d) => d.apr);
46
46
  // Calculate means
@@ -90,7 +90,7 @@ function calculateVolatility(values) {
90
90
  * @param feeParams - Optional fee parameters for calculating net returns
91
91
  * @returns Yield prediction with confidence intervals and insights
92
92
  */
93
- export function predictYield(historicalData, feeParams) {
93
+ export function predictYield(historicalData, feeParams, dataQualityFlags) {
94
94
  if (historicalData.length === 0) {
95
95
  return {
96
96
  currentAPR: 0,
@@ -116,25 +116,42 @@ export function predictYield(historicalData, feeParams) {
116
116
  const emaShort = calculateEMA(aprValues, Math.min(7, aprValues.length)); // 7-day EMA
117
117
  const emaLong = calculateEMA(aprValues, Math.min(30, aprValues.length)); // 30-day EMA
118
118
  // Weighted prediction: 40% regression, 40% short EMA, 20% long EMA
119
- const regressionPrediction = regression.slope * sortedData.length + regression.intercept;
119
+ // Use 1-step-ahead forecast in days (consistent with regression x = days-since-minTimestamp)
120
+ const minTimestamp = sortedData[0].timestamp;
121
+ const lastTimestamp = sortedData[sortedData.length - 1].timestamp;
122
+ const lastXDays = (lastTimestamp - minTimestamp) / (24 * 60 * 60);
123
+ const nextXDays = lastXDays + 1; // one day ahead
124
+ const regressionPrediction = regression.slope * nextXDays + regression.intercept;
120
125
  const predictedAPR = regressionPrediction * 0.4 + emaShort * 0.4 + emaLong * 0.2;
126
+ // Regime change detection: if short EMA diverges >50% from long EMA,
127
+ // the yield source may have fundamentally changed (e.g., incentive program ended).
128
+ // Reduce confidence significantly when detected.
129
+ const emaLongMagnitude = Math.max(Math.abs(emaLong), 1e-8);
130
+ const emaDivergence = Math.abs(emaShort - emaLong) / emaLongMagnitude;
131
+ const regimeChangeDetected = emaDivergence > 0.5;
121
132
  // Calculate confidence based on R² and data quantity
122
133
  const dataQualityScore = Math.min(1, sortedData.length / 30); // More data = higher confidence
123
134
  const trendStrengthScore = regression.r2; // Strong trend = higher confidence
124
- const confidence = (dataQualityScore * 0.4 + trendStrengthScore * 0.6) * 0.9; // Max 90%
125
- // Calculate volatility for confidence intervals
126
- const volatility = calculateVolatility(aprValues);
135
+ const baseConfidence = (dataQualityScore * 0.4 + trendStrengthScore * 0.6) * 0.9; // Max 90%
136
+ const confidence = regimeChangeDetected ? baseConfidence * 0.5 : baseConfidence;
137
+ // Calculate volatility of APR *changes* (not absolute values) for confidence intervals
138
+ // This measures how much APR typically moves period-to-period
139
+ const aprChanges = [];
140
+ for (let i = 1; i < aprValues.length; i++) {
141
+ aprChanges.push(aprValues[i] - aprValues[i - 1]);
142
+ }
143
+ const changeVolatility = aprChanges.length >= 2 ? calculateVolatility(aprChanges) : calculateVolatility(aprValues);
127
144
  // Project returns for different timeframes
145
+ // Confidence intervals use ±1 standard deviation (68% confidence level)
128
146
  const projectedReturns = [
129
147
  { timeframe: '7d', days: 7 },
130
148
  { timeframe: '30d', days: 30 },
131
149
  { timeframe: '90d', days: 90 },
132
150
  { timeframe: '1y', days: 365 },
133
151
  ].map(({ timeframe, days }) => {
134
- // Annualized to period conversion
135
152
  const expectedReturn = (predictedAPR / 100) * (days / 365) * 100;
136
- // Confidence intervals (±1 standard deviation scaled by time)
137
- const timeScaledVolatility = volatility * Math.sqrt(days / 365);
153
+ // Scale change volatility by sqrt(time) for confidence intervals (68% CI)
154
+ const timeScaledVolatility = changeVolatility * Math.sqrt(days / 365);
138
155
  const minReturn = expectedReturn - timeScaledVolatility;
139
156
  const maxReturn = expectedReturn + timeScaledVolatility;
140
157
  return {
@@ -206,11 +223,13 @@ export function predictYield(historicalData, feeParams) {
206
223
  predictedAPR,
207
224
  trend,
208
225
  confidence,
209
- volatility,
226
+ volatility: changeVolatility,
210
227
  dataPoints: sortedData.length,
211
228
  regression,
212
229
  feeAdjustedAPR,
213
230
  feeImpact,
231
+ regimeChangeDetected,
232
+ dataQualityFlags,
214
233
  });
215
234
  return {
216
235
  currentAPR,
@@ -229,6 +248,22 @@ export function predictYield(historicalData, feeParams) {
229
248
  */
230
249
  function generateInsights(params) {
231
250
  const insights = [];
251
+ // Regime change warning (highest priority)
252
+ if (params.regimeChangeDetected) {
253
+ insights.push('REGIME CHANGE DETECTED: Short-term and long-term yield trends have diverged >50%. ' +
254
+ 'Prediction confidence reduced — yield source may have fundamentally changed');
255
+ }
256
+ // Data sanitation flags — explain why some periods were excluded so users
257
+ // don't compare dataPoints to the raw history count and conclude data is missing.
258
+ if (params.dataQualityFlags) {
259
+ const { droppedShortPeriods, clampedPeriods } = params.dataQualityFlags;
260
+ if (droppedShortPeriods > 0) {
261
+ insights.push(`${droppedShortPeriods} period(s) shorter than 6 hours excluded — increases prediction stability`);
262
+ }
263
+ if (clampedPeriods > 0) {
264
+ insights.push(`${clampedPeriods} period(s) had outlier APR clamped to [-100%, 500%] range — may indicate reporting anomaly or extreme yield event`);
265
+ }
266
+ }
232
267
  // Data quality insight
233
268
  if (params.dataPoints < 7) {
234
269
  insights.push(`Limited data (${params.dataPoints} points) - predictions have higher uncertainty`);
@@ -1 +1 @@
1
- {"version":3,"file":"yield-prediction.js","sourceRoot":"","sources":["../../src/utils/yield-prediction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yield-prediction.js","sourceRoot":"","sources":["../../src/utils/yield-prediction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyCH;;GAEG;AACH,SAAS,YAAY,CAAC,MAAgB,EAAE,MAAc;IACpD,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAgB,EAAE,MAAc;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpC,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAExD,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC;IAC7C,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,IAAsB;IAKvD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAEtB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,2CAA2C;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAC9B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EACnD,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAClB,CAAC;IACF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB;IAC5F,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEjC,kBAAkB;IAClB,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAEvD,gCAAgC;IAChC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7C,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAExC,8CAA8C;IAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QAC3C,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;QACvC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;IAE/C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAgB;IAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAE3F,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAC1B,cAAgC,EAChC,SAWC,EACD,gBAGC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,KAAK,EAAE,QAAQ;YACf,gBAAgB,EAAE,EAAE;YACpB,QAAQ,EAAE,CAAC,6CAA6C,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,MAAM,UAAU,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnD,0CAA0C;IAC1C,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,KAAK,GACT,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI;QAC/B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;YACpB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,YAAY,CAAC;IAErB,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY;IACrF,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa;IAEtF,mEAAmE;IACnE,6FAA6F;IAC7F,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7C,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,SAAS,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,gBAAgB;IACjD,MAAM,oBAAoB,GAAG,UAAU,CAAC,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACjF,MAAM,YAAY,GAAG,oBAAoB,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;IAEjF,qEAAqE;IACrE,mFAAmF;IACnF,iDAAiD;IACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,gBAAgB,CAAC;IACtE,MAAM,oBAAoB,GAAG,aAAa,GAAG,GAAG,CAAC;IAEjD,qDAAqD;IACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,gCAAgC;IAC9F,MAAM,kBAAkB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,mCAAmC;IAC7E,MAAM,cAAc,GAAG,CAAC,gBAAgB,GAAG,GAAG,GAAG,kBAAkB,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU;IAC5F,MAAM,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;IAEhF,uFAAuF;IACvF,8DAA8D;IAC9D,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,gBAAgB,GACpB,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE5F,2CAA2C;IAC3C,wEAAwE;IACxE,MAAM,gBAAgB,GAAG;QACvB,EAAE,SAAS,EAAE,IAAa,EAAE,IAAI,EAAE,CAAC,EAAE;QACrC,EAAE,SAAS,EAAE,KAAc,EAAE,IAAI,EAAE,EAAE,EAAE;QACvC,EAAE,SAAS,EAAE,KAAc,EAAE,IAAI,EAAE,EAAE,EAAE;QACvC,EAAE,SAAS,EAAE,IAAa,EAAE,IAAI,EAAE,GAAG,EAAE;KACxC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;QAC5B,MAAM,cAAc,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAEjE,0EAA0E;QAC1E,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,cAAc,GAAG,oBAAoB,CAAC;QACxD,MAAM,SAAS,GAAG,cAAc,GAAG,oBAAoB,CAAC;QAExD,OAAO;YACL,SAAS;YACT,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC;YAC3C,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;YACjC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;SAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,IAAI,cAAkC,CAAC;IACvC,IAAI,kBAOS,CAAC;IACd,IAAI,SAOS,CAAC;IAEd,IAAI,SAAS,EAAE,CAAC;QACd,2EAA2E;QAC3E,mFAAmF;QACnF,IAAI,kBAA0B,CAAC;QAE/B,IAAI,SAAS,CAAC,oBAAoB,EAAE,CAAC;YACnC,IAAI,SAAS,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBAC/C,oEAAoE;gBACpE,kBAAkB,GAAG,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,kBAAkB,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,8EAA8E;gBAC9E,mFAAmF;gBACnF,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,yCAAyC;YACpE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kBAAkB,GAAG,CAAC,CAAC,CAAC,6BAA6B;QACvD,CAAC;QAED,mEAAmE;QACnE,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,kBAAkB,GAAG,SAAS,CAAC,aAAa,GAAG,kBAAkB,CAAC;YAExE,gDAAgD;YAChD,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,kBAAkB,CAAC,CAAC;YAEhE,2CAA2C;YAC3C,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9C,MAAM,aAAa,GACjB,CAAC,CAAC,CAAC,kBAAkB,GAAG,GAAG,CAAC;oBAC1B,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI;wBACnB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK;4BACrB,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK;gCACrB,CAAC,CAAC,EAAE;gCACJ,CAAC,CAAC,GAAG,CAAC,CAAC;oBACb,GAAG,CAAC;oBACN,GAAG,CAAC;gBAEN,OAAO;oBACL,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,GAAG,aAAa,CAAC;oBAC7D,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,aAAa,CAAC;oBACnD,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,aAAa,CAAC;iBACpD,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,SAAS,GAAG;gBACV,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,cAAc,EAAE,SAAS,CAAC,cAAc;gBACxC,kBAAkB;gBAClB,oBAAoB,EAAE,SAAS,CAAC,oBAAoB;aACrD,CAAC;QACJ,CAAC;QACD,8EAA8E;QAC9E,+DAA+D;IACjE,CAAC;IAED,oBAAoB;IACpB,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAChC,UAAU;QACV,YAAY;QACZ,KAAK;QACL,UAAU;QACV,UAAU,EAAE,gBAAgB;QAC5B,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,UAAU;QACV,cAAc;QACd,SAAS;QACT,oBAAoB;QACpB,gBAAgB;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC;QACvC,cAAc;QACd,UAAU;QACV,KAAK;QACL,gBAAgB;QAChB,kBAAkB;QAClB,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAoBzB;IACC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,2CAA2C;IAC3C,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CACX,oFAAoF;YAClF,6EAA6E,CAChF,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,kFAAkF;IAClF,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxE,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CACX,GAAG,mBAAmB,2EAA2E,CAClG,CAAC;QACJ,CAAC;QACD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CACX,GAAG,cAAc,mHAAmH,CACrI,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CACX,iBAAiB,MAAM,CAAC,UAAU,gDAAgD,CACnF,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,UAAU,8BAA8B,CAAC,CAAC;IAC5F,CAAC;IAED,gBAAgB;IAChB,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;IAC1D,MAAM,aAAa,GAAG,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzE,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CACX,sDAAsD,aAAa,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAClG,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CACX,wDAAwD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACpI,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAClF,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IACpF,CAAC;SAAM,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACvF,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CACpF,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CACX,mBAAmB,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAC9F,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACtF,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAEpD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CACX,cAAc,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,4CAA4C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAC5H,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CACX,kBAAkB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CACvH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,aAAa,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC5F,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CACX,2BAA2B,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC,CACxG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAgB;IACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACxD,OAAO,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lagoon-protocol/lagoon-mcp",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "MCP server for Lagoon DeFi vault analytics - FOR INFORMATIONAL USE ONLY, NOT FINANCIAL ADVICE. Natural language access to vault data, portfolios, and performance metrics",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",