@lagoon-protocol/lagoon-mcp 0.2.13 → 0.2.15
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.
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +2 -0
- package/dist/cache/index.js.map +1 -1
- package/dist/graphql/fragments/composition.fragment.d.ts +82 -0
- package/dist/graphql/fragments/composition.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/composition.fragment.js +44 -0
- package/dist/graphql/fragments/composition.fragment.js.map +1 -0
- package/dist/graphql/fragments/index.d.ts +1 -0
- package/dist/graphql/fragments/index.d.ts.map +1 -1
- package/dist/graphql/fragments/index.js +4 -0
- package/dist/graphql/fragments/index.js.map +1 -1
- package/dist/graphql/queries/composition.queries.d.ts +33 -0
- package/dist/graphql/queries/composition.queries.d.ts.map +1 -0
- package/dist/graphql/queries/composition.queries.js +37 -0
- package/dist/graphql/queries/composition.queries.js.map +1 -0
- package/dist/graphql/queries/index.d.ts +1 -0
- package/dist/graphql/queries/index.d.ts.map +1 -1
- package/dist/graphql/queries/index.js +2 -0
- package/dist/graphql/queries/index.js.map +1 -1
- package/dist/graphql/queries/portfolio.queries.d.ts +22 -0
- package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -1
- package/dist/graphql/queries/portfolio.queries.js +26 -0
- package/dist/graphql/queries/portfolio.queries.js.map +1 -1
- package/dist/graphql/queries/risk.queries.d.ts +1 -1
- package/dist/graphql/queries/risk.queries.d.ts.map +1 -1
- package/dist/graphql/queries/risk.queries.js +4 -0
- package/dist/graphql/queries/risk.queries.js.map +1 -1
- package/dist/prompts/financial-analysis.d.ts.map +1 -1
- package/dist/prompts/financial-analysis.js +87 -7
- package/dist/prompts/financial-analysis.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/services/analytics/risk.service.d.ts +3 -1
- package/dist/services/analytics/risk.service.d.ts.map +1 -1
- package/dist/services/analytics/risk.service.js +43 -0
- package/dist/services/analytics/risk.service.js.map +1 -1
- package/dist/skills/portfolio-review.d.ts.map +1 -1
- package/dist/skills/portfolio-review.js +80 -4
- package/dist/skills/portfolio-review.js.map +1 -1
- package/dist/skills/risk-expert.d.ts.map +1 -1
- package/dist/skills/risk-expert.js +76 -10
- package/dist/skills/risk-expert.js.map +1 -1
- package/dist/tools/compare-vaults.d.ts.map +1 -1
- package/dist/tools/compare-vaults.js +97 -1
- package/dist/tools/compare-vaults.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +19 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/user-portfolio.d.ts.map +1 -1
- package/dist/tools/user-portfolio.js +135 -1
- package/dist/tools/user-portfolio.js.map +1 -1
- package/dist/tools/vault-composition.d.ts +34 -0
- package/dist/tools/vault-composition.d.ts.map +1 -0
- package/dist/tools/vault-composition.js +206 -0
- package/dist/tools/vault-composition.js.map +1 -0
- package/dist/utils/risk-scoring.d.ts +33 -0
- package/dist/utils/risk-scoring.d.ts.map +1 -1
- package/dist/utils/risk-scoring.js +73 -14
- package/dist/utils/risk-scoring.js.map +1 -1
- package/dist/utils/validators.d.ts +11 -0
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js +8 -0
- package/dist/utils/validators.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* Demonstrates service layer pattern for complex multi-step operations.
|
|
6
6
|
*/
|
|
7
7
|
import { BaseService } from '../base.service.js';
|
|
8
|
-
import { VaultData } from '../../graphql/fragments/index.js';
|
|
8
|
+
import { VaultData, RawVaultComposition } from '../../graphql/fragments/index.js';
|
|
9
9
|
import { RiskScoreBreakdown } from '../../utils/risk-scoring.js';
|
|
10
10
|
/**
|
|
11
11
|
* Risk analysis input data extracted from GraphQL
|
|
12
|
+
* Note: composition now uses chain-based data from Octav API
|
|
12
13
|
*/
|
|
13
14
|
export interface RiskAnalysisData {
|
|
14
15
|
vault: VaultData;
|
|
@@ -37,6 +38,7 @@ export interface RiskAnalysisData {
|
|
|
37
38
|
};
|
|
38
39
|
}>;
|
|
39
40
|
};
|
|
41
|
+
composition: RawVaultComposition | null;
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
42
44
|
* Comparative risk context for benchmarking
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk.service.d.ts","sourceRoot":"","sources":["../../../src/services/analytics/risk.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"risk.service.d.ts","sourceRoot":"","sources":["../../../src/services/analytics/risk.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAoB,MAAM,kCAAkC,CAAC;AAEpG,OAAO,EAAe,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAE9E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE;gBAAE,cAAc,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACnE,aAAa,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE;gBAAE,cAAc,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACxF,YAAY,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC;YACX,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE;gBACJ,WAAW,EAAE,MAAM,CAAC;gBACpB,cAAc,EAAE,MAAM,CAAC;gBACvB,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC;SACH,CAAC,CAAC;KACJ,CAAC;IAEF,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;IAC1C;;OAEG;IACG,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAgB5F;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB;IAsJzD;;;;;;OAMG;IACH,2BAA2B,CACzB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAC3C,sBAAsB;IAuEzB;;;;;;;OAOG;IACG,OAAO,CACX,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAE,OAAc,GACjC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;IA0B7C;;OAEG;IACH,mBAAmB,CACjB,SAAS,EAAE,0BAA0B,EACrC,cAAc,GAAE,OAAO,GAAG,SAAS,GAAG,UAAsB,GAC3D,MAAM;CAiNV"}
|
|
@@ -104,6 +104,33 @@ export class RiskService extends BaseService {
|
|
|
104
104
|
totalAssets,
|
|
105
105
|
maxCapacity,
|
|
106
106
|
};
|
|
107
|
+
// Extract composition data for chain diversification risk
|
|
108
|
+
// Transform RawVaultComposition (chain-keyed JSONObject) to risk analysis format
|
|
109
|
+
let compositionData;
|
|
110
|
+
if (data.composition && Object.keys(data.composition).length > 0) {
|
|
111
|
+
// Filter active chains (value > 0) and calculate percentages
|
|
112
|
+
const activeChains = Object.entries(data.composition)
|
|
113
|
+
.filter(([, chain]) => {
|
|
114
|
+
const value = parseFloat(chain.value);
|
|
115
|
+
return !isNaN(value) && value > 0;
|
|
116
|
+
})
|
|
117
|
+
.map(([, chain]) => ({
|
|
118
|
+
value: parseFloat(chain.value),
|
|
119
|
+
repartition: 0, // Will calculate after total
|
|
120
|
+
}));
|
|
121
|
+
const totalValue = activeChains.reduce((sum, c) => sum + c.value, 0);
|
|
122
|
+
// Calculate repartition (percentage) for each chain
|
|
123
|
+
activeChains.forEach((c) => {
|
|
124
|
+
c.repartition = totalValue > 0 ? (c.value / totalValue) * 100 : 0;
|
|
125
|
+
});
|
|
126
|
+
// Sort by value descending to get top chain
|
|
127
|
+
activeChains.sort((a, b) => b.value - a.value);
|
|
128
|
+
const topChainPercent = activeChains[0]?.repartition ?? null;
|
|
129
|
+
compositionData = {
|
|
130
|
+
compositions: activeChains.map((c) => ({ repartition: c.repartition })),
|
|
131
|
+
topProtocolPercent: topChainPercent,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
107
134
|
// Perform risk analysis using utility function
|
|
108
135
|
return analyzeRisk({
|
|
109
136
|
tvl: vaultTVL,
|
|
@@ -123,6 +150,7 @@ export class RiskService extends BaseService {
|
|
|
123
150
|
settlementData,
|
|
124
151
|
integrationCount,
|
|
125
152
|
capacityData,
|
|
153
|
+
compositionData,
|
|
126
154
|
});
|
|
127
155
|
}
|
|
128
156
|
/**
|
|
@@ -279,6 +307,8 @@ export class RiskService extends BaseService {
|
|
|
279
307
|
{ name: 'Settlement', score: breakdown.settlementRisk },
|
|
280
308
|
{ name: 'Integration Complexity', score: breakdown.integrationComplexityRisk },
|
|
281
309
|
{ name: 'Capacity Utilization', score: breakdown.capacityUtilizationRisk },
|
|
310
|
+
{ name: 'Protocol Diversification', score: breakdown.protocolDiversificationRisk },
|
|
311
|
+
{ name: 'Top Protocol Concentration', score: breakdown.topProtocolConcentrationRisk },
|
|
282
312
|
];
|
|
283
313
|
const topRisks = riskFactors.sort((a, b) => b.score - a.score).slice(0, 3);
|
|
284
314
|
let comparativeSection = '';
|
|
@@ -320,6 +350,8 @@ ${comparativeSection}
|
|
|
320
350
|
| Fees | ${scoreToPercentage(breakdown.feeRisk)} | ${scoreToEmoji(breakdown.feeRisk)} |
|
|
321
351
|
| Integration Complexity | ${scoreToPercentage(breakdown.integrationComplexityRisk)} | ${scoreToEmoji(breakdown.integrationComplexityRisk)} |
|
|
322
352
|
| Capacity Utilization | ${scoreToPercentage(breakdown.capacityUtilizationRisk)} | ${scoreToEmoji(breakdown.capacityUtilizationRisk)} |
|
|
353
|
+
| Protocol Diversification | ${scoreToPercentage(breakdown.protocolDiversificationRisk)} | ${scoreToEmoji(breakdown.protocolDiversificationRisk)} |
|
|
354
|
+
| Top Protocol Concentration | ${scoreToPercentage(breakdown.topProtocolConcentrationRisk)} | ${scoreToEmoji(breakdown.topProtocolConcentrationRisk)} |
|
|
323
355
|
`;
|
|
324
356
|
}
|
|
325
357
|
// Detailed format: Full breakdown with explanations
|
|
@@ -365,6 +397,12 @@ ${comparativeDetailedSection}## Risk Analysis Breakdown
|
|
|
365
397
|
| **Concentration** | ${scoreToPercentage(breakdown.concentrationRisk)} | ${scoreToEmoji(breakdown.concentrationRisk)} |
|
|
366
398
|
| **Liquidity** | ${scoreToPercentage(breakdown.liquidityRisk)} | ${scoreToEmoji(breakdown.liquidityRisk)} |
|
|
367
399
|
|
|
400
|
+
### Composition Risk
|
|
401
|
+
| Risk Factor | Score | Level |
|
|
402
|
+
|-------------|-------|-------|
|
|
403
|
+
| **Protocol Diversification** | ${scoreToPercentage(breakdown.protocolDiversificationRisk)} | ${scoreToEmoji(breakdown.protocolDiversificationRisk)} |
|
|
404
|
+
| **Top Protocol Concentration** | ${scoreToPercentage(breakdown.topProtocolConcentrationRisk)} | ${scoreToEmoji(breakdown.topProtocolConcentrationRisk)} |
|
|
405
|
+
|
|
368
406
|
### Operational Risk
|
|
369
407
|
| Risk Factor | Score | Level |
|
|
370
408
|
|-------------|-------|-------|
|
|
@@ -404,6 +442,11 @@ ${comparativeDetailedSection}## Risk Analysis Breakdown
|
|
|
404
442
|
|
|
405
443
|
**Liquidity**: Ability to meet redemption requests. Based on safe asset coverage of pending redemptions.
|
|
406
444
|
|
|
445
|
+
#### Composition
|
|
446
|
+
**Protocol Diversification**: Measures how well the vault's funds are distributed across DeFi protocols using HHI (Herfindahl-Hirschman Index). Lower concentration = better diversification.
|
|
447
|
+
|
|
448
|
+
**Top Protocol Concentration**: Evaluates risk from having too much exposure to a single protocol. A top protocol exceeding 50% of allocation signals elevated concentration risk.
|
|
449
|
+
|
|
407
450
|
#### Operational
|
|
408
451
|
**Settlement Time**: Average time to process redemptions plus pending operations burden. Longer delays increase exit risk.
|
|
409
452
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk.service.js","sourceRoot":"","sources":["../../../src/services/analytics/risk.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"risk.service.js","sourceRoot":"","sources":["../../../src/services/analytics/risk.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio-review.d.ts","sourceRoot":"","sources":["../../src/skills/portfolio-review.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"portfolio-review.d.ts","sourceRoot":"","sources":["../../src/skills/portfolio-review.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAme9C;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAiDxC,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
|
|
@@ -80,6 +80,38 @@ Diversification Score: [X]/10
|
|
|
80
80
|
(Based on asset types, chains, curators, strategies)
|
|
81
81
|
\`\`\`
|
|
82
82
|
|
|
83
|
+
### Portfolio Composition Analysis
|
|
84
|
+
|
|
85
|
+
The \`get_user_portfolio\` tool returns a \`compositionSummary\` field with portfolio-wide protocol exposure:
|
|
86
|
+
|
|
87
|
+
\`\`\`
|
|
88
|
+
PORTFOLIO COMPOSITION
|
|
89
|
+
=====================
|
|
90
|
+
|
|
91
|
+
Portfolio-Level Diversification:
|
|
92
|
+
- Portfolio HHI: [X] ([High/Medium/Low] diversification)
|
|
93
|
+
- Protocol Count: [X] unique protocols across all vaults
|
|
94
|
+
|
|
95
|
+
Top Protocol Exposures:
|
|
96
|
+
| Protocol | Exposure | Value | Vault Count |
|
|
97
|
+
|----------|----------|-------|-------------|
|
|
98
|
+
| [Name] | [X]% | $[X] | [N] vaults |
|
|
99
|
+
| [Name] | [X]% | $[X] | [N] vaults |
|
|
100
|
+
|
|
101
|
+
ACCIDENTAL CONCENTRATION WARNINGS
|
|
102
|
+
---------------------------------
|
|
103
|
+
⚠️ [Protocol] appears in [N] vaults with [X]% total exposure
|
|
104
|
+
- Consider: Single protocol failure affects [X]% of portfolio
|
|
105
|
+
- Vaults affected: [list]
|
|
106
|
+
|
|
107
|
+
COMPOSITION HEALTH ASSESSMENT
|
|
108
|
+
-----------------------------
|
|
109
|
+
[x] Portfolio HHI >0.25 (high concentration)
|
|
110
|
+
[ ] Single protocol >40% exposure
|
|
111
|
+
[x] Same protocol in 3+ vaults
|
|
112
|
+
[ ] Top 3 protocols >70% exposure
|
|
113
|
+
\`\`\`
|
|
114
|
+
|
|
83
115
|
## Step 3: Performance Analysis
|
|
84
116
|
|
|
85
117
|
### Historical Performance
|
|
@@ -273,6 +305,14 @@ const REVIEW_FRAMEWORK = `# Portfolio Review Framework
|
|
|
273
305
|
- [ ] Chains (Ethereum, Arbitrum, etc.)
|
|
274
306
|
- [ ] Curators (strategy managers)
|
|
275
307
|
- [ ] Strategy types (lending, LP, derivatives)
|
|
308
|
+
- [ ] **Protocols (Aave, Compound, Uniswap, etc.)**
|
|
309
|
+
|
|
310
|
+
### Phase 2.5: Composition Analysis
|
|
311
|
+
- [ ] Review portfolio-wide protocol exposure from compositionSummary
|
|
312
|
+
- [ ] Calculate portfolio HHI for diversification level
|
|
313
|
+
- [ ] Check for accidental concentration (same protocol in 3+ vaults)
|
|
314
|
+
- [ ] Identify top protocol exposure (>40% is concerning)
|
|
315
|
+
- [ ] Map hidden correlations (e.g., multiple vaults using Aave)
|
|
276
316
|
|
|
277
317
|
### Phase 3: Performance Review
|
|
278
318
|
- [ ] Calculate absolute returns (USD)
|
|
@@ -300,6 +340,9 @@ const REVIEW_FRAMEWORK = `# Portfolio Review Framework
|
|
|
300
340
|
| Diversification Score | # unique assets/chains/curators | High |
|
|
301
341
|
| APR Achievement | Realized APR / Expected APR | >90% |
|
|
302
342
|
| Risk Stability | Risk score change (30d) | <15 points |
|
|
343
|
+
| **Portfolio HHI** | Sum of squared protocol weights | <0.25 |
|
|
344
|
+
| **Top Protocol Exposure** | Largest protocol % | <40% |
|
|
345
|
+
| **Protocol Spread** | # unique protocols in portfolio | ≥5 |
|
|
303
346
|
|
|
304
347
|
## Review Frequency Guide
|
|
305
348
|
|
|
@@ -325,7 +368,19 @@ const REVIEW_FRAMEWORK = `# Portfolio Review Framework
|
|
|
325
368
|
- Assess liquidity risk
|
|
326
369
|
|
|
327
370
|
5. **Curator issues**
|
|
328
|
-
- Research and consider exit
|
|
371
|
+
- Research and consider exit
|
|
372
|
+
|
|
373
|
+
6. **Portfolio HHI >0.35 (Low diversification)**
|
|
374
|
+
- Protocol concentration creates correlated risk
|
|
375
|
+
- Consider vaults with different underlying protocols
|
|
376
|
+
|
|
377
|
+
7. **Single protocol >50% of portfolio**
|
|
378
|
+
- Hidden concentration across multiple vaults
|
|
379
|
+
- Protocol failure could impact majority of holdings
|
|
380
|
+
|
|
381
|
+
8. **Same protocol in 4+ vaults**
|
|
382
|
+
- Accidental concentration detected
|
|
383
|
+
- Review if diversification is illusory`;
|
|
329
384
|
/**
|
|
330
385
|
* Rebalancing criteria resource
|
|
331
386
|
*/
|
|
@@ -358,6 +413,21 @@ const REBALANCING_CRITERIA = `# Rebalancing Criteria Guide
|
|
|
358
413
|
| Significant | <70% | >30 days | Consider exit |
|
|
359
414
|
| Critical | <50% | >14 days | Urgent review |
|
|
360
415
|
|
|
416
|
+
### Protocol Composition Thresholds
|
|
417
|
+
| Level | Portfolio HHI | Top Protocol % | Action |
|
|
418
|
+
|-------|---------------|----------------|--------|
|
|
419
|
+
| Well Diversified | <0.15 | <30% | No action |
|
|
420
|
+
| Moderate | 0.15-0.25 | 30-40% | Monitor |
|
|
421
|
+
| Concentrated | 0.25-0.35 | 40-50% | Plan rebalancing |
|
|
422
|
+
| Critical | >0.35 | >50% | Immediate review |
|
|
423
|
+
|
|
424
|
+
### Accidental Concentration Thresholds
|
|
425
|
+
| Indicator | Threshold | Action |
|
|
426
|
+
|-----------|-----------|--------|
|
|
427
|
+
| Same protocol in vaults | 3+ vaults | Flag for review |
|
|
428
|
+
| Same protocol exposure | >40% total | Rebalance consideration |
|
|
429
|
+
| Hidden correlation | Same 2+ protocols in 3+ vaults | Correlation warning |
|
|
430
|
+
|
|
361
431
|
## Rebalancing Strategies
|
|
362
432
|
|
|
363
433
|
### Conservative Approach
|
|
@@ -439,6 +509,11 @@ export const lagoonPortfolioReviewSkill = {
|
|
|
439
509
|
'how are my investments doing',
|
|
440
510
|
'portfolio assessment',
|
|
441
511
|
'quarterly review',
|
|
512
|
+
'portfolio diversification',
|
|
513
|
+
'am i diversified',
|
|
514
|
+
'protocol exposure',
|
|
515
|
+
'concentration risk',
|
|
516
|
+
'portfolio composition',
|
|
442
517
|
],
|
|
443
518
|
audience: 'customer-existing',
|
|
444
519
|
instructions: INSTRUCTIONS,
|
|
@@ -447,7 +522,7 @@ export const lagoonPortfolioReviewSkill = {
|
|
|
447
522
|
rebalancing: REBALANCING_CRITERIA,
|
|
448
523
|
},
|
|
449
524
|
metadata: {
|
|
450
|
-
version: '1.
|
|
525
|
+
version: '1.1.0',
|
|
451
526
|
category: 'portfolio',
|
|
452
527
|
primaryTools: [
|
|
453
528
|
'get_user_portfolio',
|
|
@@ -455,9 +530,10 @@ export const lagoonPortfolioReviewSkill = {
|
|
|
455
530
|
'get_vault_performance',
|
|
456
531
|
'predict_yield',
|
|
457
532
|
'optimize_portfolio',
|
|
533
|
+
'get_vault_composition',
|
|
458
534
|
],
|
|
459
|
-
estimatedTokens:
|
|
460
|
-
lastUpdated: '
|
|
535
|
+
estimatedTokens: 3500,
|
|
536
|
+
lastUpdated: '2025-01-15',
|
|
461
537
|
},
|
|
462
538
|
};
|
|
463
539
|
export default lagoonPortfolioReviewSkill;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio-review.js","sourceRoot":"","sources":["../../src/skills/portfolio-review.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE3E;;GAEG;AACH,MAAM,YAAY,GAAG;;;;EAInB,kBAAkB,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"portfolio-review.js","sourceRoot":"","sources":["../../src/skills/portfolio-review.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE3E;;GAEG;AACH,MAAM,YAAY,GAAG;;;;EAInB,kBAAkB,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkQvB,wBAAwB;;;;;;;;;;;;6CAYmB,CAAC;AAE9C;;GAEG;AACH,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA4FkB,CAAC;AAE5C;;GAEG;AACH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAmGN,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAgB;IACrD,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,iPAAiP;IACnP,QAAQ,EAAE;QACR,kBAAkB;QAClB,qBAAqB;QACrB,kBAAkB;QAClB,oBAAoB;QACpB,oBAAoB;QACpB,qBAAqB;QACrB,gBAAgB;QAChB,oBAAoB;QACpB,WAAW;QACX,aAAa;QACb,WAAW;QACX,oBAAoB;QACpB,wBAAwB;QACxB,uBAAuB;QACvB,uBAAuB;QACvB,8BAA8B;QAC9B,sBAAsB;QACtB,kBAAkB;QAClB,2BAA2B;QAC3B,kBAAkB;QAClB,mBAAmB;QACnB,oBAAoB;QACpB,uBAAuB;KACxB;IACD,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,YAAY;IAC1B,SAAS,EAAE;QACT,SAAS,EAAE,gBAAgB;QAC3B,WAAW,EAAE,oBAAoB;KAClC;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE;YACZ,oBAAoB;YACpB,cAAc;YACd,uBAAuB;YACvB,eAAe;YACf,oBAAoB;YACpB,uBAAuB;SACxB;QACD,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,YAAY;KAC1B;CACF,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk-expert.d.ts","sourceRoot":"","sources":["../../src/skills/risk-expert.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"risk-expert.d.ts","sourceRoot":"","sources":["../../src/skills/risk-expert.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAod9C;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WA4CnC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -87,6 +87,20 @@ RISK FACTOR BREAKDOWN
|
|
|
87
87
|
- Curator Track Record: [Assessment]
|
|
88
88
|
- Communication Quality: [Assessment]
|
|
89
89
|
- Strategy Execution: [Assessment]
|
|
90
|
+
|
|
91
|
+
6. Protocol Diversification Risk (Weight: 5%)
|
|
92
|
+
Score: [X]/100
|
|
93
|
+
Analysis: [Interpretation of protocol concentration]
|
|
94
|
+
- HHI Score: [X] ([Well/Moderately/Highly] diversified)
|
|
95
|
+
- Protocol Count: [X] protocols
|
|
96
|
+
- Diversification Level: [High/Medium/Low]
|
|
97
|
+
|
|
98
|
+
7. Top Protocol Concentration Risk (Weight: 5%)
|
|
99
|
+
Score: [X]/100
|
|
100
|
+
Analysis: [Interpretation of top protocol exposure]
|
|
101
|
+
- Top Protocol: [Protocol Name]
|
|
102
|
+
- Top Protocol Exposure: [X]%
|
|
103
|
+
- Concentration Assessment: [Healthy/Moderate/High/Dangerous]
|
|
90
104
|
\`\`\`
|
|
91
105
|
|
|
92
106
|
## Step 2: Historical Performance Analysis
|
|
@@ -295,14 +309,23 @@ const RISK_FRAMEWORKS = `# Risk Analysis Frameworks
|
|
|
295
309
|
|
|
296
310
|
## Risk Scoring Methodology
|
|
297
311
|
|
|
298
|
-
### Factor Weights
|
|
312
|
+
### Factor Weights (14-Factor Model)
|
|
299
313
|
| Factor | Weight | Rationale |
|
|
300
314
|
|--------|--------|-----------|
|
|
301
|
-
| TVL Risk |
|
|
302
|
-
| Concentration Risk |
|
|
303
|
-
| Volatility Risk |
|
|
304
|
-
| Age Risk |
|
|
305
|
-
| Curator Risk |
|
|
315
|
+
| TVL Risk | 8% | Liquidity and market validation |
|
|
316
|
+
| Concentration Risk | 8% | Portfolio-level vault exposure |
|
|
317
|
+
| Volatility Risk | 14% | Price stability and predictability |
|
|
318
|
+
| Age Risk | 9% | Operational maturity |
|
|
319
|
+
| Curator Risk | 9% | Management quality |
|
|
320
|
+
| Fee Risk | 9% | Cost structure impact |
|
|
321
|
+
| Liquidity Risk | 9% | Safe assets coverage |
|
|
322
|
+
| APR Consistency | 14% | Yield stability |
|
|
323
|
+
| Yield Sustainability | 5% | Long-term yield viability |
|
|
324
|
+
| Settlement Risk | 5% | Redemption processing |
|
|
325
|
+
| Integration Complexity | 5% | DeFi protocol integrations |
|
|
326
|
+
| Capacity Utilization | 5% | Vault capacity usage |
|
|
327
|
+
| **Protocol Diversification** | 5% | HHI-based concentration |
|
|
328
|
+
| **Top Protocol Concentration** | 5% | Single protocol exposure |
|
|
306
329
|
|
|
307
330
|
### Risk Score Interpretation
|
|
308
331
|
| Score Range | Risk Level | Description |
|
|
@@ -346,6 +369,39 @@ const RISK_FRAMEWORKS = `# Risk Analysis Frameworks
|
|
|
346
369
|
- **Recovery Time**: Days to recover previous high
|
|
347
370
|
- **Ulcer Index**: Measure of downside risk duration
|
|
348
371
|
|
|
372
|
+
## Protocol Composition Analysis
|
|
373
|
+
|
|
374
|
+
### HHI (Herfindahl-Hirschman Index) Interpretation
|
|
375
|
+
The HHI measures concentration across protocols within a vault.
|
|
376
|
+
|
|
377
|
+
| HHI Score | Diversification | Risk Level |
|
|
378
|
+
|-----------|----------------|------------|
|
|
379
|
+
| <0.15 | High | Low - Well distributed across protocols |
|
|
380
|
+
| 0.15-0.25 | Medium | Moderate - Acceptable concentration |
|
|
381
|
+
| 0.25-0.50 | Low | High - Significant concentration risk |
|
|
382
|
+
| >0.50 | Very Low | Very High - Dangerous concentration |
|
|
383
|
+
|
|
384
|
+
### Top Protocol Concentration
|
|
385
|
+
| Top Protocol % | Assessment | Implication |
|
|
386
|
+
|---------------|------------|-------------|
|
|
387
|
+
| <30% | Healthy | Good distribution across protocols |
|
|
388
|
+
| 30-50% | Moderate | Acceptable but monitor |
|
|
389
|
+
| 50-70% | High | Significant single-protocol dependency |
|
|
390
|
+
| >70% | Dangerous | Critical concentration risk |
|
|
391
|
+
|
|
392
|
+
### Composition Risk Factors
|
|
393
|
+
When evaluating composition risk, consider:
|
|
394
|
+
1. **Protocol Quality**: Are underlying protocols battle-tested?
|
|
395
|
+
2. **Protocol Correlation**: Do protocols share similar risk profiles?
|
|
396
|
+
3. **Smart Contract Risk**: Multiple protocols = multiple attack surfaces
|
|
397
|
+
4. **Liquidity Depth**: Protocol exposure vs. available liquidity
|
|
398
|
+
|
|
399
|
+
### Accidental Concentration Warning
|
|
400
|
+
For portfolio analysis, watch for:
|
|
401
|
+
- Same protocol appearing in 3+ vaults
|
|
402
|
+
- Total protocol exposure >40% of portfolio
|
|
403
|
+
- Hidden concentration through derivative positions
|
|
404
|
+
|
|
349
405
|
## Correlation Analysis
|
|
350
406
|
|
|
351
407
|
### Asset Correlation Matrix
|
|
@@ -438,6 +494,10 @@ export const lagoonRiskExpertSkill = {
|
|
|
438
494
|
'correlation analysis',
|
|
439
495
|
'risk-adjusted returns',
|
|
440
496
|
'sharpe ratio',
|
|
497
|
+
'protocol concentration',
|
|
498
|
+
'composition risk',
|
|
499
|
+
'hhi score',
|
|
500
|
+
'diversification risk',
|
|
441
501
|
],
|
|
442
502
|
audience: 'customer-advanced',
|
|
443
503
|
instructions: INSTRUCTIONS,
|
|
@@ -445,11 +505,17 @@ export const lagoonRiskExpertSkill = {
|
|
|
445
505
|
riskFrameworks: RISK_FRAMEWORKS,
|
|
446
506
|
},
|
|
447
507
|
metadata: {
|
|
448
|
-
version: '1.
|
|
508
|
+
version: '1.1.0',
|
|
449
509
|
category: 'risk',
|
|
450
|
-
primaryTools: [
|
|
451
|
-
|
|
452
|
-
|
|
510
|
+
primaryTools: [
|
|
511
|
+
'analyze_risk',
|
|
512
|
+
'get_vault_performance',
|
|
513
|
+
'get_price_history',
|
|
514
|
+
'compare_vaults',
|
|
515
|
+
'get_vault_composition',
|
|
516
|
+
],
|
|
517
|
+
estimatedTokens: 2500,
|
|
518
|
+
lastUpdated: '2025-01-15',
|
|
453
519
|
},
|
|
454
520
|
};
|
|
455
521
|
export default lagoonRiskExpertSkill;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk-expert.js","sourceRoot":"","sources":["../../src/skills/risk-expert.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAG3E;;GAEG;AACH,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"risk-expert.js","sourceRoot":"","sources":["../../src/skills/risk-expert.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAG3E;;GAEG;AACH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiSnB,kBAAkB,CAAC,IAAI;;EAEvB,wBAAwB,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAqKqB,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgB;IAChD,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,oJAAoJ;IACtJ,QAAQ,EAAE;QACR,oBAAoB;QACpB,oBAAoB;QACpB,cAAc;QACd,gBAAgB;QAChB,eAAe;QACf,eAAe;QACf,oBAAoB;QACpB,qBAAqB;QACrB,mBAAmB;QACnB,aAAa;QACb,mBAAmB;QACnB,iBAAiB;QACjB,cAAc;QACd,sBAAsB;QACtB,uBAAuB;QACvB,cAAc;QACd,wBAAwB;QACxB,kBAAkB;QAClB,WAAW;QACX,sBAAsB;KACvB;IACD,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,YAAY;IAC1B,SAAS,EAAE;QACT,cAAc,EAAE,eAAe;KAChC;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,MAAM;QAChB,YAAY,EAAE;YACZ,cAAc;YACd,uBAAuB;YACvB,mBAAmB;YACnB,gBAAgB;YAChB,uBAAuB;SACxB;QACD,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,YAAY;KAC1B;CACF,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-vaults.d.ts","sourceRoot":"","sources":["../../src/tools/compare-vaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"compare-vaults.d.ts","sourceRoot":"","sources":["../../src/tools/compare-vaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAa5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA6cxD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,cAAc,CAAC,CAiNxD"}
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import { getToolDisclaimer } from '../utils/disclaimers.js';
|
|
26
26
|
import { COMPARE_VAULTS_QUERY } from '../graphql/queries/index.js';
|
|
27
|
+
import { SINGLE_VAULT_COMPOSITION_QUERY } from '../graphql/queries/portfolio.queries.js';
|
|
27
28
|
import { normalizeAndRankVaults, generateComparisonSummary, formatComparisonTable, } from '../utils/comparison-metrics.js';
|
|
28
29
|
import { executeToolWithCache } from '../utils/execute-tool-with-cache.js';
|
|
29
30
|
import { CacheTag } from '../core/cache-invalidation.js';
|
|
@@ -250,6 +251,50 @@ function normalizeRiskLevel(riskLevel) {
|
|
|
250
251
|
return null;
|
|
251
252
|
return riskLevel.toLowerCase();
|
|
252
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* Calculate composition metrics from raw composition data
|
|
256
|
+
* Note: Backend API changed from protocol-based to chain-based composition
|
|
257
|
+
*/
|
|
258
|
+
function calculateCompositionMetrics(rawComposition) {
|
|
259
|
+
if (!rawComposition || Object.keys(rawComposition).length === 0) {
|
|
260
|
+
return undefined;
|
|
261
|
+
}
|
|
262
|
+
// Filter and transform to chain data with values
|
|
263
|
+
const activeChains = Object.entries(rawComposition)
|
|
264
|
+
.filter(([, chain]) => {
|
|
265
|
+
const value = parseFloat(chain.value);
|
|
266
|
+
return !isNaN(value) && value > 0;
|
|
267
|
+
})
|
|
268
|
+
.map(([, chain]) => ({
|
|
269
|
+
chainName: chain.name,
|
|
270
|
+
valueUsd: parseFloat(chain.value),
|
|
271
|
+
percentage: 0, // Calculate after total
|
|
272
|
+
}));
|
|
273
|
+
if (activeChains.length === 0) {
|
|
274
|
+
return undefined;
|
|
275
|
+
}
|
|
276
|
+
// Calculate total and percentages
|
|
277
|
+
const totalValue = activeChains.reduce((sum, c) => sum + c.valueUsd, 0);
|
|
278
|
+
activeChains.forEach((c) => {
|
|
279
|
+
c.percentage = totalValue > 0 ? (c.valueUsd / totalValue) * 100 : 0;
|
|
280
|
+
});
|
|
281
|
+
// Sort by value descending
|
|
282
|
+
activeChains.sort((a, b) => b.valueUsd - a.valueUsd);
|
|
283
|
+
// Calculate HHI (Herfindahl-Hirschman Index)
|
|
284
|
+
const hhi = activeChains.reduce((sum, c) => sum + Math.pow(c.percentage / 100, 2), 0);
|
|
285
|
+
// Determine diversification level
|
|
286
|
+
const diversificationLevel = hhi < 0.15 ? 'High' : hhi < 0.25 ? 'Medium' : 'Low';
|
|
287
|
+
// Get top chain
|
|
288
|
+
const topChain = activeChains[0]?.chainName || null;
|
|
289
|
+
const topChainPercent = activeChains[0]?.percentage || null;
|
|
290
|
+
return {
|
|
291
|
+
hhi,
|
|
292
|
+
diversificationLevel,
|
|
293
|
+
topChain,
|
|
294
|
+
topChainPercent,
|
|
295
|
+
chainCount: activeChains.length,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
253
298
|
/**
|
|
254
299
|
* Convert VaultData to StructuredVaultData for UI block rendering
|
|
255
300
|
*/
|
|
@@ -339,6 +384,29 @@ export function createExecuteCompareVaults(container) {
|
|
|
339
384
|
const markdown = buildComparisonMarkdown(summary, table, chainIds, true);
|
|
340
385
|
// Build structured vault data for UI block rendering (cached path)
|
|
341
386
|
const structuredVaults = cachedVaults.map((vault, index) => convertToStructuredVaultData(vault, comparisonData[index]));
|
|
387
|
+
// Fetch composition data for each vault in parallel (cached path)
|
|
388
|
+
// Note: Backend API now uses walletAddress parameter
|
|
389
|
+
const compositionPromises = structuredVaults.map(async (vault) => {
|
|
390
|
+
try {
|
|
391
|
+
const compResponse = await container.graphqlClient.request(SINGLE_VAULT_COMPOSITION_QUERY, { walletAddress: vault.address });
|
|
392
|
+
return {
|
|
393
|
+
address: vault.address,
|
|
394
|
+
metrics: calculateCompositionMetrics(compResponse.vaultComposition),
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
return { address: vault.address, metrics: undefined };
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
const compositionResults = await Promise.all(compositionPromises);
|
|
402
|
+
const compositionMap = new Map(compositionResults.map((r) => [r.address.toLowerCase(), r.metrics]));
|
|
403
|
+
// Enrich structured vaults with composition data
|
|
404
|
+
for (const vault of structuredVaults) {
|
|
405
|
+
const metrics = compositionMap.get(vault.address.toLowerCase());
|
|
406
|
+
if (metrics) {
|
|
407
|
+
vault.composition = metrics;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
342
410
|
// Build response with both markdown and structured vaults
|
|
343
411
|
const responseText = `${markdown}${getToolDisclaimer('compare_vaults')}
|
|
344
412
|
|
|
@@ -346,6 +414,7 @@ export function createExecuteCompareVaults(container) {
|
|
|
346
414
|
## Structured Vault Data (for UI blocks)
|
|
347
415
|
The following JSON contains structured vault data for building comparison UI blocks.
|
|
348
416
|
Use the \`vaults\` array directly - fees are in basis points (100 = 1%).
|
|
417
|
+
Composition metrics include HHI (0-1), diversification level, and top protocol exposure.
|
|
349
418
|
|
|
350
419
|
\`\`\`json
|
|
351
420
|
${JSON.stringify({ vaults: structuredVaults }, null, 2)}
|
|
@@ -397,15 +466,42 @@ ${JSON.stringify({ vaults: structuredVaults }, null, 2)}
|
|
|
397
466
|
if (!result.isError && result.content[0]?.type === 'text') {
|
|
398
467
|
try {
|
|
399
468
|
const output = JSON.parse(result.content[0].text);
|
|
469
|
+
// Fetch composition data for each vault in parallel
|
|
470
|
+
// This enables diversification comparison between vaults
|
|
471
|
+
// Note: Backend API now uses walletAddress parameter
|
|
472
|
+
const compositionPromises = output.vaults.map(async (vault) => {
|
|
473
|
+
try {
|
|
474
|
+
const compResponse = await container.graphqlClient.request(SINGLE_VAULT_COMPOSITION_QUERY, { walletAddress: vault.address });
|
|
475
|
+
return {
|
|
476
|
+
address: vault.address,
|
|
477
|
+
metrics: calculateCompositionMetrics(compResponse.vaultComposition),
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
catch {
|
|
481
|
+
// If composition fetch fails, skip it
|
|
482
|
+
return { address: vault.address, metrics: undefined };
|
|
483
|
+
}
|
|
484
|
+
});
|
|
485
|
+
const compositionResults = await Promise.all(compositionPromises);
|
|
486
|
+
// Create a map for quick lookup
|
|
487
|
+
const compositionMap = new Map(compositionResults.map((r) => [r.address.toLowerCase(), r.metrics]));
|
|
488
|
+
// Enrich structured vaults with composition data
|
|
489
|
+
for (const vault of output.vaults) {
|
|
490
|
+
const metrics = compositionMap.get(vault.address.toLowerCase());
|
|
491
|
+
if (metrics) {
|
|
492
|
+
vault.composition = metrics;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
400
495
|
// Build response with:
|
|
401
496
|
// 1. Human-readable markdown (with disclaimer)
|
|
402
|
-
// 2. Structured vaults array for UI block construction
|
|
497
|
+
// 2. Structured vaults array for UI block construction (now with composition)
|
|
403
498
|
const responseText = `${output.markdown}${getToolDisclaimer('compare_vaults')}
|
|
404
499
|
|
|
405
500
|
---
|
|
406
501
|
## Structured Vault Data (for UI blocks)
|
|
407
502
|
The following JSON contains structured vault data for building comparison UI blocks.
|
|
408
503
|
Use the \`vaults\` array directly - fees are in basis points (100 = 1%).
|
|
504
|
+
Composition metrics include HHI (0-1), diversification level, and top protocol exposure.
|
|
409
505
|
|
|
410
506
|
\`\`\`json
|
|
411
507
|
${JSON.stringify({ vaults: output.vaults }, null, 2)}
|