@lagoon-protocol/lagoon-mcp 0.1.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.
- package/LICENSE +201 -0
- package/README.md +618 -0
- package/dist/cache/index.d.ts +97 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +106 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/config.d.ts +34 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +40 -0
- package/dist/config.js.map +1 -0
- package/dist/core/cache-adapter.d.ts +73 -0
- package/dist/core/cache-adapter.d.ts.map +1 -0
- package/dist/core/cache-adapter.js +47 -0
- package/dist/core/cache-adapter.js.map +1 -0
- package/dist/core/cache-invalidation.d.ts +72 -0
- package/dist/core/cache-invalidation.d.ts.map +1 -0
- package/dist/core/cache-invalidation.js +114 -0
- package/dist/core/cache-invalidation.js.map +1 -0
- package/dist/core/container.d.ts +34 -0
- package/dist/core/container.d.ts.map +1 -0
- package/dist/core/container.js +75 -0
- package/dist/core/container.js.map +1 -0
- package/dist/graphql/client.d.ts +32 -0
- package/dist/graphql/client.d.ts.map +1 -0
- package/dist/graphql/client.js +49 -0
- package/dist/graphql/client.js.map +1 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.d.ts +64 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.js +62 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.js.map +1 -0
- package/dist/graphql/fragments/asset-info.fragment.d.ts +18 -0
- package/dist/graphql/fragments/asset-info.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/asset-info.fragment.js +36 -0
- package/dist/graphql/fragments/asset-info.fragment.js.map +1 -0
- package/dist/graphql/fragments/chain-info.fragment.d.ts +18 -0
- package/dist/graphql/fragments/chain-info.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/chain-info.fragment.js +32 -0
- package/dist/graphql/fragments/chain-info.fragment.js.map +1 -0
- package/dist/graphql/fragments/index.d.ts +15 -0
- package/dist/graphql/fragments/index.d.ts.map +1 -0
- package/dist/graphql/fragments/index.js +21 -0
- package/dist/graphql/fragments/index.js.map +1 -0
- package/dist/graphql/fragments/pageinfo.fragment.d.ts +33 -0
- package/dist/graphql/fragments/pageinfo.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/pageinfo.fragment.js +47 -0
- package/dist/graphql/fragments/pageinfo.fragment.js.map +1 -0
- package/dist/graphql/fragments/transaction-base.fragment.d.ts +19 -0
- package/dist/graphql/fragments/transaction-base.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/transaction-base.fragment.js +32 -0
- package/dist/graphql/fragments/transaction-base.fragment.js.map +1 -0
- package/dist/graphql/fragments/vault-list.fragment.d.ts +53 -0
- package/dist/graphql/fragments/vault-list.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/vault-list.fragment.js +51 -0
- package/dist/graphql/fragments/vault-list.fragment.js.map +1 -0
- package/dist/graphql/fragments/vault-summary.fragment.d.ts +68 -0
- package/dist/graphql/fragments/vault-summary.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/vault-summary.fragment.js +66 -0
- package/dist/graphql/fragments/vault-summary.fragment.js.map +1 -0
- package/dist/graphql/fragments/vault.fragment.d.ts +133 -0
- package/dist/graphql/fragments/vault.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/vault.fragment.js +119 -0
- package/dist/graphql/fragments/vault.fragment.js.map +1 -0
- package/dist/graphql/fragments.d.ts +183 -0
- package/dist/graphql/fragments.d.ts.map +1 -0
- package/dist/graphql/fragments.js +297 -0
- package/dist/graphql/fragments.js.map +1 -0
- package/dist/graphql/queries/export.queries.d.ts +72 -0
- package/dist/graphql/queries/export.queries.d.ts.map +1 -0
- package/dist/graphql/queries/export.queries.js +202 -0
- package/dist/graphql/queries/export.queries.js.map +1 -0
- package/dist/graphql/queries/index.d.ts +15 -0
- package/dist/graphql/queries/index.d.ts.map +1 -0
- package/dist/graphql/queries/index.js +23 -0
- package/dist/graphql/queries/index.js.map +1 -0
- package/dist/graphql/queries/performance.queries.d.ts +63 -0
- package/dist/graphql/queries/performance.queries.d.ts.map +1 -0
- package/dist/graphql/queries/performance.queries.js +133 -0
- package/dist/graphql/queries/performance.queries.js.map +1 -0
- package/dist/graphql/queries/period-summaries.d.ts +15 -0
- package/dist/graphql/queries/period-summaries.d.ts.map +1 -0
- package/dist/graphql/queries/period-summaries.js +24 -0
- package/dist/graphql/queries/period-summaries.js.map +1 -0
- package/dist/graphql/queries/portfolio.queries.d.ts +78 -0
- package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -0
- package/dist/graphql/queries/portfolio.queries.js +198 -0
- package/dist/graphql/queries/portfolio.queries.js.map +1 -0
- package/dist/graphql/queries/prediction.queries.d.ts +38 -0
- package/dist/graphql/queries/prediction.queries.d.ts.map +1 -0
- package/dist/graphql/queries/prediction.queries.js +100 -0
- package/dist/graphql/queries/prediction.queries.js.map +1 -0
- package/dist/graphql/queries/risk.queries.d.ts +37 -0
- package/dist/graphql/queries/risk.queries.d.ts.map +1 -0
- package/dist/graphql/queries/risk.queries.js +90 -0
- package/dist/graphql/queries/risk.queries.js.map +1 -0
- package/dist/graphql/queries/search.queries.d.ts +61 -0
- package/dist/graphql/queries/search.queries.d.ts.map +1 -0
- package/dist/graphql/queries/search.queries.js +103 -0
- package/dist/graphql/queries/search.queries.js.map +1 -0
- package/dist/graphql/queries/transaction.queries.d.ts +60 -0
- package/dist/graphql/queries/transaction.queries.d.ts.map +1 -0
- package/dist/graphql/queries/transaction.queries.js +252 -0
- package/dist/graphql/queries/transaction.queries.js.map +1 -0
- package/dist/graphql/queries/vault.queries.d.ts +54 -0
- package/dist/graphql/queries/vault.queries.d.ts.map +1 -0
- package/dist/graphql/queries/vault.queries.js +78 -0
- package/dist/graphql/queries/vault.queries.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/competitor-comparison.d.ts +8 -0
- package/dist/prompts/competitor-comparison.d.ts.map +1 -0
- package/dist/prompts/competitor-comparison.js +432 -0
- package/dist/prompts/competitor-comparison.js.map +1 -0
- package/dist/prompts/curator-performance.d.ts +8 -0
- package/dist/prompts/curator-performance.d.ts.map +1 -0
- package/dist/prompts/curator-performance.js +383 -0
- package/dist/prompts/curator-performance.js.map +1 -0
- package/dist/prompts/financial-analysis.d.ts +8 -0
- package/dist/prompts/financial-analysis.d.ts.map +1 -0
- package/dist/prompts/financial-analysis.js +480 -0
- package/dist/prompts/financial-analysis.js.map +1 -0
- package/dist/prompts/index.d.ts +21 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +50 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/onboarding-first-vault.d.ts +8 -0
- package/dist/prompts/onboarding-first-vault.d.ts.map +1 -0
- package/dist/prompts/onboarding-first-vault.js +317 -0
- package/dist/prompts/onboarding-first-vault.js.map +1 -0
- package/dist/prompts/portfolio-optimization.d.ts +8 -0
- package/dist/prompts/portfolio-optimization.d.ts.map +1 -0
- package/dist/prompts/portfolio-optimization.js +412 -0
- package/dist/prompts/portfolio-optimization.js.map +1 -0
- package/dist/prompts/protocol-overview.d.ts +8 -0
- package/dist/prompts/protocol-overview.d.ts.map +1 -0
- package/dist/prompts/protocol-overview.js +398 -0
- package/dist/prompts/protocol-overview.js.map +1 -0
- package/dist/prompts/shared/disclaimers.d.ts +54 -0
- package/dist/prompts/shared/disclaimers.d.ts.map +1 -0
- package/dist/prompts/shared/disclaimers.js +400 -0
- package/dist/prompts/shared/disclaimers.js.map +1 -0
- package/dist/resources/glossary.d.ts +8 -0
- package/dist/resources/glossary.d.ts.map +1 -0
- package/dist/resources/glossary.js +407 -0
- package/dist/resources/glossary.js.map +1 -0
- package/dist/resources/index.d.ts +18 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +29 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/schema.d.ts +22 -0
- package/dist/resources/schema.d.ts.map +1 -0
- package/dist/resources/schema.js +67 -0
- package/dist/resources/schema.js.map +1 -0
- package/dist/schemas/config.schema.d.ts +46 -0
- package/dist/schemas/config.schema.d.ts.map +1 -0
- package/dist/schemas/config.schema.js +48 -0
- package/dist/schemas/config.schema.js.map +1 -0
- package/dist/sdk/__tests__/apr-service.test.d.ts +7 -0
- package/dist/sdk/__tests__/apr-service.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/apr-service.test.js +385 -0
- package/dist/sdk/__tests__/apr-service.test.js.map +1 -0
- package/dist/sdk/__tests__/math-utils.test.d.ts +7 -0
- package/dist/sdk/__tests__/math-utils.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/math-utils.test.js +185 -0
- package/dist/sdk/__tests__/math-utils.test.js.map +1 -0
- package/dist/sdk/__tests__/simulation-service.test.d.ts +5 -0
- package/dist/sdk/__tests__/simulation-service.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/simulation-service.test.js +397 -0
- package/dist/sdk/__tests__/simulation-service.test.js.map +1 -0
- package/dist/sdk/__tests__/vault-utils.test.d.ts +7 -0
- package/dist/sdk/__tests__/vault-utils.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/vault-utils.test.js +189 -0
- package/dist/sdk/__tests__/vault-utils.test.js.map +1 -0
- package/dist/sdk/apr-service.d.ts +101 -0
- package/dist/sdk/apr-service.d.ts.map +1 -0
- package/dist/sdk/apr-service.js +175 -0
- package/dist/sdk/apr-service.js.map +1 -0
- package/dist/sdk/math-utils.d.ts +138 -0
- package/dist/sdk/math-utils.d.ts.map +1 -0
- package/dist/sdk/math-utils.js +218 -0
- package/dist/sdk/math-utils.js.map +1 -0
- package/dist/sdk/simulation-service.d.ts +106 -0
- package/dist/sdk/simulation-service.d.ts.map +1 -0
- package/dist/sdk/simulation-service.js +143 -0
- package/dist/sdk/simulation-service.js.map +1 -0
- package/dist/sdk/vault-utils.d.ts +125 -0
- package/dist/sdk/vault-utils.d.ts.map +1 -0
- package/dist/sdk/vault-utils.js +165 -0
- package/dist/sdk/vault-utils.js.map +1 -0
- package/dist/server.d.ts +21 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +225 -0
- package/dist/server.js.map +1 -0
- package/dist/services/analytics/protocol-overview.service.d.ts +61 -0
- package/dist/services/analytics/protocol-overview.service.d.ts.map +1 -0
- package/dist/services/analytics/protocol-overview.service.js +182 -0
- package/dist/services/analytics/protocol-overview.service.js.map +1 -0
- package/dist/services/analytics/risk.service.d.ts +92 -0
- package/dist/services/analytics/risk.service.d.ts.map +1 -0
- package/dist/services/analytics/risk.service.js +423 -0
- package/dist/services/analytics/risk.service.js.map +1 -0
- package/dist/services/base.service.d.ts +39 -0
- package/dist/services/base.service.d.ts.map +1 -0
- package/dist/services/base.service.js +37 -0
- package/dist/services/base.service.js.map +1 -0
- package/dist/services/index.d.ts +30 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +101 -0
- package/dist/services/index.js.map +1 -0
- package/dist/tools/__tests__/simulate-vault.test.d.ts +5 -0
- package/dist/tools/__tests__/simulate-vault.test.d.ts.map +1 -0
- package/dist/tools/__tests__/simulate-vault.test.js +363 -0
- package/dist/tools/__tests__/simulate-vault.test.js.map +1 -0
- package/dist/tools/analyze-risk.d.ts +34 -0
- package/dist/tools/analyze-risk.d.ts.map +1 -0
- package/dist/tools/analyze-risk.js +100 -0
- package/dist/tools/analyze-risk.js.map +1 -0
- package/dist/tools/compare-vaults.d.ts +29 -0
- package/dist/tools/compare-vaults.d.ts.map +1 -0
- package/dist/tools/compare-vaults.js +285 -0
- package/dist/tools/compare-vaults.js.map +1 -0
- package/dist/tools/export-data.d.ts +34 -0
- package/dist/tools/export-data.d.ts.map +1 -0
- package/dist/tools/export-data.js +309 -0
- package/dist/tools/export-data.js.map +1 -0
- package/dist/tools/get-price-history.d.ts +29 -0
- package/dist/tools/get-price-history.d.ts.map +1 -0
- package/dist/tools/get-price-history.js +236 -0
- package/dist/tools/get-price-history.js.map +1 -0
- package/dist/tools/get-transactions.d.ts +29 -0
- package/dist/tools/get-transactions.d.ts.map +1 -0
- package/dist/tools/get-transactions.js +181 -0
- package/dist/tools/get-transactions.js.map +1 -0
- package/dist/tools/index.d.ts +26 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +32 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/optimize-portfolio.d.ts +37 -0
- package/dist/tools/optimize-portfolio.d.ts.map +1 -0
- package/dist/tools/optimize-portfolio.js +459 -0
- package/dist/tools/optimize-portfolio.js.map +1 -0
- package/dist/tools/predict-yield.d.ts +30 -0
- package/dist/tools/predict-yield.d.ts.map +1 -0
- package/dist/tools/predict-yield.js +248 -0
- package/dist/tools/predict-yield.js.map +1 -0
- package/dist/tools/query-graphql.d.ts +35 -0
- package/dist/tools/query-graphql.d.ts.map +1 -0
- package/dist/tools/query-graphql.js +54 -0
- package/dist/tools/query-graphql.js.map +1 -0
- package/dist/tools/registry.d.ts +42 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +231 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search-vaults.d.ts +40 -0
- package/dist/tools/search-vaults.d.ts.map +1 -0
- package/dist/tools/search-vaults.js +184 -0
- package/dist/tools/search-vaults.js.map +1 -0
- package/dist/tools/simulate-vault.d.ts +80 -0
- package/dist/tools/simulate-vault.d.ts.map +1 -0
- package/dist/tools/simulate-vault.js +281 -0
- package/dist/tools/simulate-vault.js.map +1 -0
- package/dist/tools/user-portfolio.d.ts +30 -0
- package/dist/tools/user-portfolio.d.ts.map +1 -0
- package/dist/tools/user-portfolio.js +142 -0
- package/dist/tools/user-portfolio.js.map +1 -0
- package/dist/tools/vault-data.d.ts +23 -0
- package/dist/tools/vault-data.d.ts.map +1 -0
- package/dist/tools/vault-data.js +68 -0
- package/dist/tools/vault-data.js.map +1 -0
- package/dist/tools/vault-performance.d.ts +30 -0
- package/dist/tools/vault-performance.d.ts.map +1 -0
- package/dist/tools/vault-performance.js +275 -0
- package/dist/tools/vault-performance.js.map +1 -0
- package/dist/types/generated.d.ts +1109 -0
- package/dist/types/generated.d.ts.map +1 -0
- package/dist/types/generated.js +2 -0
- package/dist/types/generated.js.map +1 -0
- package/dist/types/index.d.ts +46 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/comparison-metrics.d.ts +120 -0
- package/dist/utils/comparison-metrics.d.ts.map +1 -0
- package/dist/utils/comparison-metrics.js +215 -0
- package/dist/utils/comparison-metrics.js.map +1 -0
- package/dist/utils/config-loader.d.ts +17 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +45 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/csv-generator.d.ts +89 -0
- package/dist/utils/csv-generator.d.ts.map +1 -0
- package/dist/utils/csv-generator.js +97 -0
- package/dist/utils/csv-generator.js.map +1 -0
- package/dist/utils/disclaimers.d.ts +70 -0
- package/dist/utils/disclaimers.d.ts.map +1 -0
- package/dist/utils/disclaimers.js +161 -0
- package/dist/utils/disclaimers.js.map +1 -0
- package/dist/utils/errors.d.ts +66 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +86 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/execute-tool-with-cache.d.ts +97 -0
- package/dist/utils/execute-tool-with-cache.d.ts.map +1 -0
- package/dist/utils/execute-tool-with-cache.js +105 -0
- package/dist/utils/execute-tool-with-cache.js.map +1 -0
- package/dist/utils/portfolio-optimization.d.ts +100 -0
- package/dist/utils/portfolio-optimization.d.ts.map +1 -0
- package/dist/utils/portfolio-optimization.js +283 -0
- package/dist/utils/portfolio-optimization.js.map +1 -0
- package/dist/utils/risk-scoring.d.ts +226 -0
- package/dist/utils/risk-scoring.d.ts.map +1 -0
- package/dist/utils/risk-scoring.js +523 -0
- package/dist/utils/risk-scoring.js.map +1 -0
- package/dist/utils/tool-error-handler.d.ts +16 -0
- package/dist/utils/tool-error-handler.d.ts.map +1 -0
- package/dist/utils/tool-error-handler.js +43 -0
- package/dist/utils/tool-error-handler.js.map +1 -0
- package/dist/utils/tool-handler.d.ts +33 -0
- package/dist/utils/tool-handler.d.ts.map +1 -0
- package/dist/utils/tool-handler.js +59 -0
- package/dist/utils/tool-handler.js.map +1 -0
- package/dist/utils/tool-response.d.ts +16 -0
- package/dist/utils/tool-response.d.ts.map +1 -0
- package/dist/utils/tool-response.js +25 -0
- package/dist/utils/tool-response.js.map +1 -0
- package/dist/utils/validators.d.ts +359 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +233 -0
- package/dist/utils/validators.js.map +1 -0
- package/dist/utils/yield-prediction.d.ts +69 -0
- package/dist/utils/yield-prediction.d.ts.map +1 -0
- package/dist/utils/yield-prediction.js +290 -0
- package/dist/utils/yield-prediction.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal legal disclaimers and risk notices for Lagoon MCP prompts
|
|
3
|
+
*
|
|
4
|
+
* These disclaimers MUST be included in all prompts that provide financial analysis,
|
|
5
|
+
* investment guidance, or DeFi-related recommendations.
|
|
6
|
+
*
|
|
7
|
+
* @module disclaimers
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Universal disclaimer covering legal protections, risk acknowledgment,
|
|
11
|
+
* and user responsibilities. Required in ALL runtime prompts.
|
|
12
|
+
*/
|
|
13
|
+
export const UNIVERSAL_DISCLAIMER = `
|
|
14
|
+
⚠️ **CRITICAL LEGAL DISCLAIMERS**
|
|
15
|
+
|
|
16
|
+
**NOT FINANCIAL ADVICE**:
|
|
17
|
+
This analysis is for informational and educational purposes ONLY. It does NOT
|
|
18
|
+
constitute financial, investment, legal, or tax advice. No content provided
|
|
19
|
+
should be relied upon as the basis for any investment decision.
|
|
20
|
+
|
|
21
|
+
**PROFESSIONAL CONSULTATION REQUIRED**:
|
|
22
|
+
Before making ANY investment decisions, you MUST consult:
|
|
23
|
+
- Licensed financial advisors for investment guidance
|
|
24
|
+
- Legal counsel for regulatory compliance
|
|
25
|
+
- Tax professionals for tax implications
|
|
26
|
+
- Other qualified professionals as appropriate for your situation
|
|
27
|
+
|
|
28
|
+
**CRYPTOCURRENCY & DEFI RISKS**:
|
|
29
|
+
Cryptocurrency and DeFi investments carry SUBSTANTIAL risk including:
|
|
30
|
+
- Complete loss of capital (you may lose 100% of your investment)
|
|
31
|
+
- Extreme price volatility and market fluctuations
|
|
32
|
+
- Smart contract vulnerabilities and exploits
|
|
33
|
+
- Regulatory uncertainty and potential legal changes
|
|
34
|
+
- Lack of investor protections (not FDIC insured)
|
|
35
|
+
- Technology risks (bugs, hacks, network failures)
|
|
36
|
+
- Liquidity risks (inability to exit positions)
|
|
37
|
+
|
|
38
|
+
**NO WARRANTIES OR GUARANTEES**:
|
|
39
|
+
All data, analysis, and recommendations are provided "AS IS" without warranty
|
|
40
|
+
of any kind, express or implied. We make no guarantees about:
|
|
41
|
+
- Accuracy, completeness, or timeliness of information
|
|
42
|
+
- Suitability for your particular investment objectives
|
|
43
|
+
- Future performance or results
|
|
44
|
+
- Availability or reliability of services
|
|
45
|
+
|
|
46
|
+
**PAST PERFORMANCE**:
|
|
47
|
+
Past performance does NOT guarantee or predict future results. Historical
|
|
48
|
+
returns, yields, or APRs are NOT indicative of future performance.
|
|
49
|
+
|
|
50
|
+
**NO LIABILITY**:
|
|
51
|
+
We accept NO liability for:
|
|
52
|
+
- Investment losses or financial damages
|
|
53
|
+
- Decisions made based on this information
|
|
54
|
+
- Consequences of using this service
|
|
55
|
+
- Errors, omissions, or inaccuracies in data
|
|
56
|
+
- Third-party actions or service interruptions
|
|
57
|
+
|
|
58
|
+
**USER RESPONSIBILITY**:
|
|
59
|
+
You are solely responsible for:
|
|
60
|
+
- Conducting independent research and due diligence
|
|
61
|
+
- Verifying all information from official sources
|
|
62
|
+
- Understanding risks before investing
|
|
63
|
+
- Complying with laws and regulations in your jurisdiction
|
|
64
|
+
- Managing your own security and private keys
|
|
65
|
+
- Evaluating your own risk tolerance and financial situation
|
|
66
|
+
|
|
67
|
+
**REGULATORY NOTICE**:
|
|
68
|
+
This service may not be available in all jurisdictions. Users are responsible
|
|
69
|
+
for determining legality and compliance with local laws and regulations.
|
|
70
|
+
`;
|
|
71
|
+
/**
|
|
72
|
+
* DeFi-specific risk disclosures covering technical and operational risks
|
|
73
|
+
* unique to decentralized finance. Required for all DeFi analysis prompts.
|
|
74
|
+
*/
|
|
75
|
+
export const DEFI_SPECIFIC_RISKS = `
|
|
76
|
+
**DEFI-SPECIFIC RISKS**:
|
|
77
|
+
|
|
78
|
+
**Smart Contract Risk**:
|
|
79
|
+
Even audited smart contracts may contain undiscovered vulnerabilities, bugs,
|
|
80
|
+
or exploits. Code audits do NOT guarantee safety. Smart contract failures
|
|
81
|
+
can result in total loss of funds with no recourse.
|
|
82
|
+
|
|
83
|
+
**Gas Cost Volatility**:
|
|
84
|
+
Ethereum network transaction costs (gas fees) can spike unexpectedly during
|
|
85
|
+
network congestion, making transactions prohibitively expensive or causing
|
|
86
|
+
failed transactions with lost gas fees.
|
|
87
|
+
|
|
88
|
+
**Impermanent Loss**:
|
|
89
|
+
Liquidity provider (LP) positions expose users to impermanent loss when
|
|
90
|
+
token prices diverge. You may receive less value when withdrawing than if
|
|
91
|
+
you had simply held the tokens.
|
|
92
|
+
|
|
93
|
+
**MEV (Maximal Extractable Value)**:
|
|
94
|
+
Your transactions may be front-run, sandwiched, or reordered by MEV bots
|
|
95
|
+
and validators, resulting in worse execution prices or failed transactions.
|
|
96
|
+
|
|
97
|
+
**Flash Loan Attacks**:
|
|
98
|
+
DeFi protocols may be vulnerable to flash loan attacks that can drain
|
|
99
|
+
liquidity pools or manipulate prices, causing losses for users.
|
|
100
|
+
|
|
101
|
+
**Oracle Manipulation**:
|
|
102
|
+
Price feeds and oracles can be manipulated, especially during low liquidity
|
|
103
|
+
periods or through flash loan attacks, leading to incorrect valuations and
|
|
104
|
+
potential liquidations.
|
|
105
|
+
|
|
106
|
+
**Governance Risk**:
|
|
107
|
+
Protocol parameters, fee structures, and security controls can be changed
|
|
108
|
+
through governance votes, potentially affecting your positions adversely.
|
|
109
|
+
|
|
110
|
+
**Composability Risk**:
|
|
111
|
+
DeFi protocols are interconnected. Failures in one protocol can cascade
|
|
112
|
+
through the ecosystem, affecting other protocols you're using.
|
|
113
|
+
|
|
114
|
+
**Regulatory Risk**:
|
|
115
|
+
DeFi regulatory status is uncertain and evolving. Regulatory actions could
|
|
116
|
+
restrict access, freeze assets, or impose penalties without warning.
|
|
117
|
+
|
|
118
|
+
**Systemic Risks**:
|
|
119
|
+
DeFi-wide events (regulatory crackdowns, mass liquidations, stablecoin
|
|
120
|
+
depegs, bridge exploits) can trigger cascading failures across protocols.
|
|
121
|
+
`;
|
|
122
|
+
/**
|
|
123
|
+
* Regulatory and compliance notices covering legal requirements,
|
|
124
|
+
* tax obligations, and jurisdictional restrictions.
|
|
125
|
+
*/
|
|
126
|
+
export const REGULATORY_COMPLIANCE_NOTICE = `
|
|
127
|
+
## 📋 Regulatory & Compliance Notices
|
|
128
|
+
|
|
129
|
+
**Investment Advisor Disclosure**:
|
|
130
|
+
This service is NOT provided by registered investment advisors, broker-dealers,
|
|
131
|
+
or financial institutions. We do not provide personalized investment
|
|
132
|
+
recommendations or portfolio management services.
|
|
133
|
+
|
|
134
|
+
**Securities Law Notice**:
|
|
135
|
+
Some digital assets may be classified as securities under applicable laws
|
|
136
|
+
(including the U.S. Securities Act of 1933, the Howey Test, or equivalent
|
|
137
|
+
regulations in other jurisdictions). Users are solely responsible for
|
|
138
|
+
determining the regulatory classification of assets and compliance with
|
|
139
|
+
securities laws in their jurisdiction.
|
|
140
|
+
|
|
141
|
+
**Tax Obligations**:
|
|
142
|
+
Cryptocurrency transactions may constitute taxable events in your jurisdiction,
|
|
143
|
+
including but not limited to:
|
|
144
|
+
- Trading, swapping, or exchanging cryptocurrencies
|
|
145
|
+
- Earning yield, rewards, or staking income
|
|
146
|
+
- Receiving airdrops or governance tokens
|
|
147
|
+
- Providing liquidity to pools
|
|
148
|
+
|
|
149
|
+
You are responsible for tracking all transactions and reporting to tax
|
|
150
|
+
authorities. Consult qualified tax professionals for guidance on your specific
|
|
151
|
+
tax obligations.
|
|
152
|
+
|
|
153
|
+
**KYC/AML Compliance**:
|
|
154
|
+
Some jurisdictions require Know Your Customer (KYC) and Anti-Money Laundering
|
|
155
|
+
(AML) compliance for cryptocurrency services. Users are responsible for
|
|
156
|
+
complying with applicable KYC/AML requirements.
|
|
157
|
+
|
|
158
|
+
**Geographic Restrictions**:
|
|
159
|
+
This service may not be available or may be restricted in certain jurisdictions,
|
|
160
|
+
including but not limited to: countries subject to international sanctions,
|
|
161
|
+
jurisdictions where cryptocurrency activities are prohibited, or regions with
|
|
162
|
+
specific regulatory restrictions.
|
|
163
|
+
|
|
164
|
+
Users are responsible for determining whether their use of this service
|
|
165
|
+
complies with local laws and regulations.
|
|
166
|
+
|
|
167
|
+
**Accredited Investor Status**:
|
|
168
|
+
Some investment opportunities may be restricted to accredited investors as
|
|
169
|
+
defined by applicable securities regulations. Non-accredited investors may
|
|
170
|
+
face investment limits or restrictions.
|
|
171
|
+
|
|
172
|
+
**Cross-Border Compliance**:
|
|
173
|
+
International users must comply with:
|
|
174
|
+
- Local cryptocurrency and financial regulations
|
|
175
|
+
- Cross-border payment and money transmission laws
|
|
176
|
+
- Foreign exchange and capital control regulations
|
|
177
|
+
- International tax reporting requirements (FATCA, CRS, etc.)
|
|
178
|
+
|
|
179
|
+
**Data Protection**:
|
|
180
|
+
Use of this service is subject to applicable data protection regulations
|
|
181
|
+
including GDPR (EU), CCPA (California), and other privacy laws. Refer to
|
|
182
|
+
the privacy policy for details on data handling.
|
|
183
|
+
`;
|
|
184
|
+
/**
|
|
185
|
+
* Data quality and analysis limitation disclaimers covering data sources,
|
|
186
|
+
* freshness, accuracy, and analytical constraints.
|
|
187
|
+
*/
|
|
188
|
+
export const DATA_DISCLAIMER = `
|
|
189
|
+
## 📊 Data & Analysis Limitations
|
|
190
|
+
|
|
191
|
+
**Data Sources**:
|
|
192
|
+
Analysis is based on data aggregated from multiple sources including:
|
|
193
|
+
- Lagoon Protocol backend systems
|
|
194
|
+
- Public blockchain data
|
|
195
|
+
- Third-party data providers
|
|
196
|
+
- Community-provided information
|
|
197
|
+
|
|
198
|
+
We do NOT independently verify all data and cannot guarantee accuracy,
|
|
199
|
+
completeness, or reliability.
|
|
200
|
+
|
|
201
|
+
**Data Freshness & Caching**:
|
|
202
|
+
Data is cached to improve performance with the following refresh intervals:
|
|
203
|
+
- Portfolio data: Cached up to 5 minutes
|
|
204
|
+
- Vault data: Cached up to 15 minutes
|
|
205
|
+
- Price data: Cached up to 5 minutes
|
|
206
|
+
- APR predictions: Cached up to 60 minutes
|
|
207
|
+
|
|
208
|
+
During periods of high volatility or rapid changes, cached data may not
|
|
209
|
+
reflect current market conditions. For time-sensitive decisions, verify
|
|
210
|
+
current data on-chain or from official sources.
|
|
211
|
+
|
|
212
|
+
**Analysis Limitations**:
|
|
213
|
+
All quantitative analysis is subject to limitations:
|
|
214
|
+
- **Historical Bias**: Based on historical data which may not predict future
|
|
215
|
+
performance, especially in unprecedented market conditions
|
|
216
|
+
- **Model Assumptions**: Statistical models assume certain market behaviors
|
|
217
|
+
(e.g., normal return distributions) that may not hold in cryptocurrency markets
|
|
218
|
+
- **Incomplete Information**: Analysis cannot account for all factors affecting
|
|
219
|
+
performance including future protocol changes, regulatory actions, or black
|
|
220
|
+
swan events
|
|
221
|
+
- **Generalized Approach**: Does not account for your specific circumstances,
|
|
222
|
+
goals, constraints, or risk tolerance
|
|
223
|
+
|
|
224
|
+
**Third-Party Data**:
|
|
225
|
+
Competitor data, benchmark information, and market statistics from third-party
|
|
226
|
+
sources may be:
|
|
227
|
+
- Unverified or incomplete
|
|
228
|
+
- Subject to different calculation methodologies
|
|
229
|
+
- Outdated or no longer accurate
|
|
230
|
+
- Affected by conflicts of interest
|
|
231
|
+
|
|
232
|
+
**Calculation Methodology**:
|
|
233
|
+
APR, risk scores, performance metrics, and other calculations use standardized
|
|
234
|
+
methodologies that may differ from those used by protocols or other platforms.
|
|
235
|
+
Different calculation methods can produce different results for the same
|
|
236
|
+
underlying data.
|
|
237
|
+
|
|
238
|
+
**No Real-Time Guarantees**:
|
|
239
|
+
While we strive to provide timely information, we cannot guarantee real-time
|
|
240
|
+
data updates. During network congestion, high volatility, or system maintenance,
|
|
241
|
+
data may be delayed or unavailable.
|
|
242
|
+
|
|
243
|
+
**Independent Verification Required**:
|
|
244
|
+
Users must independently verify all critical information including:
|
|
245
|
+
- Smart contract addresses and protocol details
|
|
246
|
+
- APR rates and fee structures
|
|
247
|
+
- TVL and liquidity metrics
|
|
248
|
+
- Security audit reports and status
|
|
249
|
+
- Governance proposals and parameter changes
|
|
250
|
+
`;
|
|
251
|
+
/**
|
|
252
|
+
* Beginner-specific warnings for users new to DeFi and cryptocurrency.
|
|
253
|
+
* Required for onboarding flows and first-time user experiences.
|
|
254
|
+
*/
|
|
255
|
+
export const BEGINNER_WARNINGS = `
|
|
256
|
+
## 🚨 CRITICAL WARNINGS FOR BEGINNERS
|
|
257
|
+
|
|
258
|
+
**BEFORE YOUR FIRST DEFI INVESTMENT**:
|
|
259
|
+
|
|
260
|
+
1. **TOTAL LOSS RISK**: You can lose 100% of your investment. Only invest
|
|
261
|
+
amounts you can afford to lose completely without affecting your financial
|
|
262
|
+
security or well-being.
|
|
263
|
+
|
|
264
|
+
2. **START SMALL**: Begin with minimal amounts to learn how DeFi works. Test
|
|
265
|
+
all workflows (deposit, withdrawal, claiming rewards) with small amounts
|
|
266
|
+
before committing significant capital.
|
|
267
|
+
|
|
268
|
+
3. **NOT FDIC INSURED**: Unlike traditional bank accounts, cryptocurrency
|
|
269
|
+
holdings are NOT protected by government insurance programs (FDIC, SIPC, etc.).
|
|
270
|
+
There is no deposit insurance or investor protection.
|
|
271
|
+
|
|
272
|
+
4. **SELF-CUSTODY RESPONSIBILITY**: You are solely responsible for securing
|
|
273
|
+
your private keys and wallet access. Lost keys = lost funds permanently.
|
|
274
|
+
There is no customer service to recover lost passwords or keys.
|
|
275
|
+
|
|
276
|
+
5. **IRREVERSIBLE TRANSACTIONS**: Blockchain transactions are irreversible.
|
|
277
|
+
Sending funds to wrong addresses or interacting with malicious contracts
|
|
278
|
+
can result in permanent loss.
|
|
279
|
+
|
|
280
|
+
6. **TAX OBLIGATIONS**: In most jurisdictions, cryptocurrency transactions
|
|
281
|
+
are taxable events. You are responsible for tracking all transactions and
|
|
282
|
+
reporting to tax authorities. Penalties for non-compliance can be severe.
|
|
283
|
+
|
|
284
|
+
7. **REGULATORY STATUS**: Check if cryptocurrency and DeFi activities are
|
|
285
|
+
legal in your jurisdiction. Some countries prohibit or heavily restrict
|
|
286
|
+
cryptocurrency use.
|
|
287
|
+
|
|
288
|
+
8. **SCAM PREVALENCE**: The cryptocurrency space has widespread scams, phishing
|
|
289
|
+
attacks, and fraudulent projects. Be extremely cautious about:
|
|
290
|
+
- Unsolicited investment opportunities
|
|
291
|
+
- Promises of guaranteed returns
|
|
292
|
+
- Projects without audits or transparent teams
|
|
293
|
+
- Pressure to invest quickly
|
|
294
|
+
|
|
295
|
+
9. **TECHNICAL COMPLEXITY**: DeFi requires understanding of:
|
|
296
|
+
- Wallet management and private key security
|
|
297
|
+
- Gas fees and transaction mechanics
|
|
298
|
+
- Smart contract interactions and approvals
|
|
299
|
+
- Risk assessment and due diligence
|
|
300
|
+
|
|
301
|
+
10. **NO GUARANTEES**: There are no guaranteed returns in DeFi. High APRs
|
|
302
|
+
often indicate high risk. Be skeptical of yields that seem too good to
|
|
303
|
+
be true.
|
|
304
|
+
|
|
305
|
+
**EDUCATIONAL RESOURCES**:
|
|
306
|
+
Before investing, educate yourself about:
|
|
307
|
+
- How blockchain and smart contracts work
|
|
308
|
+
- Different types of DeFi protocols (lending, DEXs, yield aggregators)
|
|
309
|
+
- Common risks and how to mitigate them
|
|
310
|
+
- How to assess project legitimacy and security
|
|
311
|
+
- Proper wallet security practices
|
|
312
|
+
|
|
313
|
+
**WHEN IN DOUBT**: If you don't fully understand how a DeFi protocol works,
|
|
314
|
+
do NOT invest. Take time to learn, ask questions, and start with educational
|
|
315
|
+
resources before risking capital.
|
|
316
|
+
`;
|
|
317
|
+
/**
|
|
318
|
+
* Portfolio-specific disclaimers for optimization and rebalancing advice.
|
|
319
|
+
* Required for any prompts providing portfolio allocation guidance.
|
|
320
|
+
*/
|
|
321
|
+
export const PORTFOLIO_DISCLAIMER = `
|
|
322
|
+
## 💼 Portfolio Analysis Disclaimers
|
|
323
|
+
|
|
324
|
+
**THIS IS QUANTITATIVE ANALYSIS, NOT INVESTMENT ADVICE**:
|
|
325
|
+
Portfolio optimization analysis is a quantitative tool that analyzes historical
|
|
326
|
+
data patterns. It is NOT personalized investment advice and does NOT constitute
|
|
327
|
+
a recommendation to buy, sell, or hold any assets.
|
|
328
|
+
|
|
329
|
+
**Limitations of Portfolio Optimization**:
|
|
330
|
+
- **Historical Data**: Based on past performance which may NOT predict future
|
|
331
|
+
results, especially in volatile cryptocurrency markets
|
|
332
|
+
- **Assumption Violations**: Assumes normal return distributions and rational
|
|
333
|
+
markets, which often do not hold in cryptocurrency
|
|
334
|
+
- **Missing Context**: Cannot account for your specific:
|
|
335
|
+
- Tax situation and optimization strategies
|
|
336
|
+
- Investment goals and time horizons
|
|
337
|
+
- Risk tolerance and liquidity needs
|
|
338
|
+
- Regulatory constraints in your jurisdiction
|
|
339
|
+
- Personal circumstances and preferences
|
|
340
|
+
|
|
341
|
+
**Rebalancing Considerations**:
|
|
342
|
+
- **Tax Implications**: Rebalancing triggers taxable events. Consult tax
|
|
343
|
+
professionals BEFORE executing rebalancing recommendations.
|
|
344
|
+
- **Transaction Costs**: Gas fees and slippage can significantly impact
|
|
345
|
+
small portfolios. Calculate costs before rebalancing.
|
|
346
|
+
- **Market Impact**: Large rebalancing operations may experience price slippage
|
|
347
|
+
or limited liquidity.
|
|
348
|
+
- **Timing Risk**: Market conditions can change between analysis and execution.
|
|
349
|
+
|
|
350
|
+
**Professional Consultation Recommended**:
|
|
351
|
+
For portfolios valued at >$10,000 or representing a significant portion of your
|
|
352
|
+
net worth, STRONGLY consider consulting licensed financial advisors before
|
|
353
|
+
making allocation changes.
|
|
354
|
+
|
|
355
|
+
**Risk Metrics Limitations**:
|
|
356
|
+
- Volatility and risk metrics are backward-looking and may not capture:
|
|
357
|
+
- Tail risks and black swan events
|
|
358
|
+
- Correlation breakdowns during crises
|
|
359
|
+
- New risks from protocol changes or exploits
|
|
360
|
+
- Value at Risk (VaR) and similar metrics assume normal distributions which
|
|
361
|
+
rarely hold in cryptocurrency markets
|
|
362
|
+
|
|
363
|
+
**Diversification Note**:
|
|
364
|
+
Diversification across cryptocurrency assets does NOT eliminate risk. All
|
|
365
|
+
cryptocurrencies may decline together during market downturns or regulatory
|
|
366
|
+
actions. True diversification requires exposure to uncorrelated asset classes.
|
|
367
|
+
`;
|
|
368
|
+
/**
|
|
369
|
+
* Helper function to combine disclaimers based on prompt type
|
|
370
|
+
*/
|
|
371
|
+
export function getDisclaimers(options) {
|
|
372
|
+
const disclaimers = [];
|
|
373
|
+
if (options.universal)
|
|
374
|
+
disclaimers.push(UNIVERSAL_DISCLAIMER);
|
|
375
|
+
if (options.defi)
|
|
376
|
+
disclaimers.push(DEFI_SPECIFIC_RISKS);
|
|
377
|
+
if (options.regulatory)
|
|
378
|
+
disclaimers.push(REGULATORY_COMPLIANCE_NOTICE);
|
|
379
|
+
if (options.data)
|
|
380
|
+
disclaimers.push(DATA_DISCLAIMER);
|
|
381
|
+
if (options.beginner)
|
|
382
|
+
disclaimers.push(BEGINNER_WARNINGS);
|
|
383
|
+
if (options.portfolio)
|
|
384
|
+
disclaimers.push(PORTFOLIO_DISCLAIMER);
|
|
385
|
+
return disclaimers.join('\n\n');
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Report footer disclaimer for all user-facing analysis outputs
|
|
389
|
+
*/
|
|
390
|
+
export const REPORT_FOOTER_DISCLAIMER = `
|
|
391
|
+
---
|
|
392
|
+
⚠️ **DISCLAIMER**: This analysis is for informational and educational purposes
|
|
393
|
+
only and is NOT financial, investment, legal, or tax advice. Cryptocurrency
|
|
394
|
+
and DeFi investments carry substantial risk including potential total loss of
|
|
395
|
+
capital. Past performance does not guarantee future results. Consult qualified
|
|
396
|
+
professionals before making investment decisions. See full disclaimers in
|
|
397
|
+
documentation.
|
|
398
|
+
---
|
|
399
|
+
`;
|
|
400
|
+
//# sourceMappingURL=disclaimers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disclaimers.js","sourceRoot":"","sources":["../../../src/prompts/shared/disclaimers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDnC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ClC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyD3C,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8D9B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DhC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CnC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAO9B;IACC,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,OAAO,CAAC,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,IAAI;QAAE,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,UAAU;QAAE,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,IAAI;QAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,QAAQ;QAAE,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAE9D,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;CASvC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeFi Glossary Resource
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive terminology guide for Lagoon DeFi Protocol.
|
|
5
|
+
* Explains vault concepts, financial metrics, and transaction types.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getDefiGlossary(): string;
|
|
8
|
+
//# sourceMappingURL=glossary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glossary.d.ts","sourceRoot":"","sources":["../../src/resources/glossary.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,eAAe,IAAI,MAAM,CA+YxC"}
|