@lagoon-protocol/lagoon-mcp 0.2.25 → 0.3.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/dist/graphql/queries/index.d.ts +1 -1
- package/dist/graphql/queries/index.d.ts.map +1 -1
- package/dist/graphql/queries/index.js +1 -1
- package/dist/graphql/queries/index.js.map +1 -1
- package/dist/graphql/queries/vault.queries.d.ts +34 -0
- package/dist/graphql/queries/vault.queries.d.ts.map +1 -1
- package/dist/graphql/queries/vault.queries.js +37 -0
- package/dist/graphql/queries/vault.queries.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/compare-vaults.d.ts.map +1 -1
- package/dist/tools/compare-vaults.js +41 -32
- package/dist/tools/compare-vaults.js.map +1 -1
- package/dist/tools/optimize-portfolio.d.ts +3 -2
- package/dist/tools/optimize-portfolio.d.ts.map +1 -1
- package/dist/tools/optimize-portfolio.js +9 -6
- package/dist/tools/optimize-portfolio.js.map +1 -1
- package/dist/tools/user-portfolio.d.ts.map +1 -1
- package/dist/tools/user-portfolio.js +6 -5
- package/dist/tools/user-portfolio.js.map +1 -1
- package/dist/utils/rate-limiter.d.ts +78 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +79 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/package.json +2 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Central export point for all GraphQL queries.
|
|
5
5
|
* Import from this file for convenience: `import { GET_VAULT_DATA_QUERY } from '../graphql/queries'`
|
|
6
6
|
*/
|
|
7
|
-
export { GET_VAULT_DATA_QUERY, GET_VAULT_FOR_APR_QUERY, COMPARE_VAULTS_QUERY, VAULT_FIRST_TRANSACTION_QUERY, } from './vault.queries.js';
|
|
7
|
+
export { GET_VAULT_DATA_QUERY, GET_VAULT_FOR_APR_QUERY, COMPARE_VAULTS_QUERY, VAULT_FIRST_TRANSACTION_QUERY, BATCH_VAULT_FIRST_TRANSACTIONS_QUERY, type BatchVaultFirstTransactionsResponse, } from './vault.queries.js';
|
|
8
8
|
export { TRANSACTIONS_QUERY, PRICE_HISTORY_QUERY } from './transaction.queries.js';
|
|
9
9
|
export { GET_VAULT_PERFORMANCE_QUERY, GET_PERIOD_SUMMARIES_QUERY } from './performance.queries.js';
|
|
10
10
|
export { GET_USER_PORTFOLIO_QUERY, createGetUserPortfolioQuery, type PortfolioResponseFormat, SINGLE_VAULT_OPTIMIZATION_QUERY, PORTFOLIO_OPTIMIZATION_QUERY, } from './portfolio.queries.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,EAC7B,oCAAoC,EACpC,KAAK,mCAAmC,GACzC,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGnF,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAGnG,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Import from this file for convenience: `import { GET_VAULT_DATA_QUERY } from '../graphql/queries'`
|
|
6
6
|
*/
|
|
7
7
|
// Vault Queries
|
|
8
|
-
export { GET_VAULT_DATA_QUERY, GET_VAULT_FOR_APR_QUERY, COMPARE_VAULTS_QUERY, VAULT_FIRST_TRANSACTION_QUERY, } from './vault.queries.js';
|
|
8
|
+
export { GET_VAULT_DATA_QUERY, GET_VAULT_FOR_APR_QUERY, COMPARE_VAULTS_QUERY, VAULT_FIRST_TRANSACTION_QUERY, BATCH_VAULT_FIRST_TRANSACTIONS_QUERY, } from './vault.queries.js';
|
|
9
9
|
// Transaction Queries
|
|
10
10
|
export { TRANSACTIONS_QUERY, PRICE_HISTORY_QUERY } from './transaction.queries.js';
|
|
11
11
|
// Performance Queries
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graphql/queries/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gBAAgB;AAChB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graphql/queries/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gBAAgB;AAChB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,EAC7B,oCAAoC,GAErC,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEnF,sBAAsB;AACtB,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEnG,oBAAoB;AACpB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAE3B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,eAAe;AACf,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,qBAAqB;AACrB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAE3B,MAAM,yBAAyB,CAAC;AAEjC,iBAAiB;AACjB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,iBAAiB;AACjB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAE7B,sBAAsB;AACtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -69,4 +69,38 @@ export declare const COMPARE_VAULTS_QUERY = "\n query CompareVaults($addresses:
|
|
|
69
69
|
* ```
|
|
70
70
|
*/
|
|
71
71
|
export declare const VAULT_FIRST_TRANSACTION_QUERY = "\n query VaultFirstTransaction($vaultAddress: Address!) {\n transactions(\n where: { vault_in: [$vaultAddress] },\n orderBy: timestamp,\n orderDirection: asc,\n first: 1\n ) {\n items {\n timestamp\n }\n }\n }\n";
|
|
72
|
+
/**
|
|
73
|
+
* GraphQL query for batch vault first transactions (creation dates)
|
|
74
|
+
*
|
|
75
|
+
* Fetches the first transaction for multiple vaults in a single request.
|
|
76
|
+
* This reduces N parallel requests to 1 batch request for vault age calculation.
|
|
77
|
+
* Used by: compare_vaults tool for efficient vault age lookup
|
|
78
|
+
*
|
|
79
|
+
* Note: Returns ALL transactions for the given vaults ordered by timestamp.
|
|
80
|
+
* The caller must group by vault address and take the first (oldest) for each.
|
|
81
|
+
*
|
|
82
|
+
* Usage:
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const data = await graphqlClient.request<BatchVaultFirstTransactionsResponse>(
|
|
85
|
+
* BATCH_VAULT_FIRST_TRANSACTIONS_QUERY,
|
|
86
|
+
* { vaultAddresses: ['0x...', '0x...', '0x...'] }
|
|
87
|
+
* );
|
|
88
|
+
* // Group results by vault address and take oldest timestamp for each
|
|
89
|
+
* const ageMap = buildVaultAgeMap(data.transactions.items);
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare const BATCH_VAULT_FIRST_TRANSACTIONS_QUERY = "\n query BatchVaultFirstTransactions($vaultAddresses: [Address!]!) {\n transactions(\n where: { vault_in: $vaultAddresses },\n orderBy: timestamp,\n orderDirection: asc,\n first: 100\n ) {\n items {\n vault {\n address\n }\n timestamp\n }\n }\n }\n";
|
|
93
|
+
/**
|
|
94
|
+
* Response type for BATCH_VAULT_FIRST_TRANSACTIONS_QUERY
|
|
95
|
+
*/
|
|
96
|
+
export interface BatchVaultFirstTransactionsResponse {
|
|
97
|
+
transactions: {
|
|
98
|
+
items: Array<{
|
|
99
|
+
vault: {
|
|
100
|
+
address: string;
|
|
101
|
+
};
|
|
102
|
+
timestamp: number;
|
|
103
|
+
}>;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
72
106
|
//# sourceMappingURL=vault.queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.queries.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/vault.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,+5FAOhC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,i6FAOnC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,88FAShC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,6BAA6B,wQAazC,CAAC"}
|
|
1
|
+
{"version":3,"file":"vault.queries.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries/vault.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,+5FAOhC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,i6FAOnC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,88FAShC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,6BAA6B,wQAazC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oCAAoC,oUAgBhD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAClD,YAAY,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC;YACX,KAAK,EAAE;gBACL,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC;YACF,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;CACH"}
|
|
@@ -106,4 +106,41 @@ export const VAULT_FIRST_TRANSACTION_QUERY = `
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
`;
|
|
109
|
+
/**
|
|
110
|
+
* GraphQL query for batch vault first transactions (creation dates)
|
|
111
|
+
*
|
|
112
|
+
* Fetches the first transaction for multiple vaults in a single request.
|
|
113
|
+
* This reduces N parallel requests to 1 batch request for vault age calculation.
|
|
114
|
+
* Used by: compare_vaults tool for efficient vault age lookup
|
|
115
|
+
*
|
|
116
|
+
* Note: Returns ALL transactions for the given vaults ordered by timestamp.
|
|
117
|
+
* The caller must group by vault address and take the first (oldest) for each.
|
|
118
|
+
*
|
|
119
|
+
* Usage:
|
|
120
|
+
* ```typescript
|
|
121
|
+
* const data = await graphqlClient.request<BatchVaultFirstTransactionsResponse>(
|
|
122
|
+
* BATCH_VAULT_FIRST_TRANSACTIONS_QUERY,
|
|
123
|
+
* { vaultAddresses: ['0x...', '0x...', '0x...'] }
|
|
124
|
+
* );
|
|
125
|
+
* // Group results by vault address and take oldest timestamp for each
|
|
126
|
+
* const ageMap = buildVaultAgeMap(data.transactions.items);
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export const BATCH_VAULT_FIRST_TRANSACTIONS_QUERY = `
|
|
130
|
+
query BatchVaultFirstTransactions($vaultAddresses: [Address!]!) {
|
|
131
|
+
transactions(
|
|
132
|
+
where: { vault_in: $vaultAddresses },
|
|
133
|
+
orderBy: timestamp,
|
|
134
|
+
orderDirection: asc,
|
|
135
|
+
first: 100
|
|
136
|
+
) {
|
|
137
|
+
items {
|
|
138
|
+
vault {
|
|
139
|
+
address
|
|
140
|
+
}
|
|
141
|
+
timestamp
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
`;
|
|
109
146
|
//# sourceMappingURL=vault.queries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.queries.js","sourceRoot":"","sources":["../../../src/graphql/queries/vault.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;IAMhC,cAAc;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;IAMnC,cAAc;CACjB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;IAQhC,cAAc;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;;;;CAa5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"vault.queries.js","sourceRoot":"","sources":["../../../src/graphql/queries/vault.queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;IAMhC,cAAc;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;IAMnC,cAAc;CACjB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;IAQhC,cAAc;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;;;;CAa5C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG;;;;;;;;;;;;;;;;CAgBnD,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -34,7 +34,7 @@ import { getPortfolioOptimizationPrompt } from './prompts/portfolio-optimization
|
|
|
34
34
|
export function createServer() {
|
|
35
35
|
const server = new McpServer({
|
|
36
36
|
name: 'lagoon-mcp',
|
|
37
|
-
version: '0.
|
|
37
|
+
version: '0.3.0',
|
|
38
38
|
});
|
|
39
39
|
// ==========================================
|
|
40
40
|
// Dependency Injection Container
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAExE,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,iBAAiB;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAqB5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAokBxD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,cAAc,CAAC,CA6NxD"}
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* - GraphQL query uses `chainId_in` filter for cross-chain queries
|
|
24
24
|
*/
|
|
25
25
|
import { getToolDisclaimer } from '../utils/disclaimers.js';
|
|
26
|
-
import { COMPARE_VAULTS_QUERY,
|
|
26
|
+
import { COMPARE_VAULTS_QUERY, BATCH_VAULT_FIRST_TRANSACTIONS_QUERY, } from '../graphql/queries/index.js';
|
|
27
27
|
import { SINGLE_VAULT_COMPOSITION_QUERY } from '../graphql/queries/portfolio.queries.js';
|
|
28
28
|
import { normalizeAndRankVaults, generateComparisonSummary, formatComparisonTable, } from '../utils/comparison-metrics.js';
|
|
29
29
|
import { executeToolWithCache } from '../utils/execute-tool-with-cache.js';
|
|
@@ -31,10 +31,14 @@ import { CacheTag } from '../core/cache-invalidation.js';
|
|
|
31
31
|
import { cacheKeys, cacheTTL } from '../cache/index.js';
|
|
32
32
|
import { createSuccessResponse } from '../utils/tool-response.js';
|
|
33
33
|
import { analyzeRisk } from '../utils/risk-scoring.js';
|
|
34
|
+
import { rateLimitedMap } from '../utils/rate-limiter.js';
|
|
34
35
|
/**
|
|
35
|
-
* Fetch vault ages from first transaction timestamps
|
|
36
|
+
* Fetch vault ages from first transaction timestamps using batch query
|
|
37
|
+
*
|
|
38
|
+
* Queries all vault first transactions in a single batch request to determine
|
|
39
|
+
* actual creation dates. This is more efficient than N parallel requests and
|
|
40
|
+
* prevents 429 rate limit errors from the GraphQL API.
|
|
36
41
|
*
|
|
37
|
-
* Queries the first transaction for each vault to determine actual creation date.
|
|
38
42
|
* Returns a map of vault address (lowercase) to age in days.
|
|
39
43
|
*
|
|
40
44
|
* @param vaultAddresses - List of vault addresses to fetch ages for
|
|
@@ -44,29 +48,32 @@ import { analyzeRisk } from '../utils/risk-scoring.js';
|
|
|
44
48
|
async function fetchVaultAges(vaultAddresses, graphqlClient) {
|
|
45
49
|
const vaultAgeMap = new Map();
|
|
46
50
|
const now = Math.floor(Date.now() / 1000);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
try {
|
|
52
|
+
// Fetch first transactions for all vaults in a single batch request
|
|
53
|
+
// This replaces N parallel requests with 1 batch request to prevent 429 errors
|
|
54
|
+
const response = await graphqlClient.request(BATCH_VAULT_FIRST_TRANSACTIONS_QUERY, { vaultAddresses });
|
|
55
|
+
// Group transactions by vault address and find the oldest (first) for each
|
|
56
|
+
// The query returns transactions ordered by timestamp ASC, so first occurrence per vault is oldest
|
|
57
|
+
const firstTimestampByVault = new Map();
|
|
58
|
+
for (const tx of response.transactions?.items || []) {
|
|
59
|
+
const address = tx.vault?.address?.toLowerCase();
|
|
60
|
+
if (address && tx.timestamp !== undefined) {
|
|
61
|
+
// Only keep the first (oldest) timestamp for each vault
|
|
62
|
+
if (!firstTimestampByVault.has(address)) {
|
|
63
|
+
firstTimestampByVault.set(address, tx.timestamp);
|
|
64
|
+
}
|
|
56
65
|
}
|
|
57
|
-
return { address: address.toLowerCase(), ageInDays: undefined };
|
|
58
66
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
});
|
|
64
|
-
const results = await Promise.all(agePromises);
|
|
65
|
-
for (const result of results) {
|
|
66
|
-
if (result.ageInDays !== undefined) {
|
|
67
|
-
vaultAgeMap.set(result.address, result.ageInDays);
|
|
67
|
+
// Calculate age in days for each vault
|
|
68
|
+
for (const [address, createdAt] of firstTimestampByVault) {
|
|
69
|
+
const ageInDays = Math.floor((now - createdAt) / (24 * 60 * 60));
|
|
70
|
+
vaultAgeMap.set(address, ageInDays);
|
|
68
71
|
}
|
|
69
72
|
}
|
|
73
|
+
catch {
|
|
74
|
+
// If batch fetch fails, return empty map (ages will be undefined)
|
|
75
|
+
// This is a graceful degradation - comparison will still work with default age
|
|
76
|
+
}
|
|
70
77
|
return vaultAgeMap;
|
|
71
78
|
}
|
|
72
79
|
/**
|
|
@@ -471,9 +478,10 @@ export function createExecuteCompareVaults(container) {
|
|
|
471
478
|
const markdown = buildComparisonMarkdown(summary, table, chainIds, true);
|
|
472
479
|
// Build structured vault data for UI block rendering (cached path)
|
|
473
480
|
const structuredVaults = cachedVaults.map((vault, index) => convertToStructuredVaultData(vault, comparisonData[index]));
|
|
474
|
-
// Fetch composition data for each vault
|
|
475
|
-
//
|
|
476
|
-
|
|
481
|
+
// Fetch composition data for each vault with rate limiting (cached path)
|
|
482
|
+
// Uses rateLimitedMap to prevent 429 rate limit errors from Octav API
|
|
483
|
+
// Note: Backend API uses walletAddress parameter
|
|
484
|
+
const compositionResults = await rateLimitedMap(structuredVaults, async (vault) => {
|
|
477
485
|
try {
|
|
478
486
|
const compResponse = await container.graphqlClient.request(SINGLE_VAULT_COMPOSITION_QUERY, { walletAddress: vault.address });
|
|
479
487
|
return {
|
|
@@ -484,8 +492,8 @@ export function createExecuteCompareVaults(container) {
|
|
|
484
492
|
catch {
|
|
485
493
|
return { address: vault.address, metrics: undefined };
|
|
486
494
|
}
|
|
487
|
-
}
|
|
488
|
-
|
|
495
|
+
}, 2 // Max 2 concurrent requests to respect rate limits
|
|
496
|
+
);
|
|
489
497
|
const compositionMap = new Map(compositionResults.map((r) => [r.address.toLowerCase(), r.metrics]));
|
|
490
498
|
// Enrich structured vaults with composition data
|
|
491
499
|
for (const vault of structuredVaults) {
|
|
@@ -555,10 +563,11 @@ ${JSON.stringify({ vaults: structuredVaults }, null, 2)}
|
|
|
555
563
|
if (!result.isError && result.content[0]?.type === 'text') {
|
|
556
564
|
try {
|
|
557
565
|
const output = JSON.parse(result.content[0].text);
|
|
558
|
-
// Fetch composition data for each vault
|
|
566
|
+
// Fetch composition data for each vault with rate limiting
|
|
567
|
+
// Uses rateLimitedMap to prevent 429 rate limit errors from Octav API
|
|
559
568
|
// This enables diversification comparison between vaults
|
|
560
|
-
// Note: Backend API
|
|
561
|
-
const
|
|
569
|
+
// Note: Backend API uses walletAddress parameter
|
|
570
|
+
const compositionResults = await rateLimitedMap(output.vaults, async (vault) => {
|
|
562
571
|
try {
|
|
563
572
|
const compResponse = await container.graphqlClient.request(SINGLE_VAULT_COMPOSITION_QUERY, { walletAddress: vault.address });
|
|
564
573
|
return {
|
|
@@ -570,8 +579,8 @@ ${JSON.stringify({ vaults: structuredVaults }, null, 2)}
|
|
|
570
579
|
// If composition fetch fails, skip it
|
|
571
580
|
return { address: vault.address, metrics: undefined };
|
|
572
581
|
}
|
|
573
|
-
}
|
|
574
|
-
|
|
582
|
+
}, 2 // Max 2 concurrent requests to respect rate limits
|
|
583
|
+
);
|
|
575
584
|
// Create a map for quick lookup
|
|
576
585
|
const compositionMap = new Map(compositionResults.map((r) => [r.address.toLowerCase(), r.metrics]));
|
|
577
586
|
// Enrich structured vaults with composition data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-vaults.js","sourceRoot":"","sources":["../../src/tools/compare-vaults.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compare-vaults.js","sourceRoot":"","sources":["../../src/tools/compare-vaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* optimize_portfolio Tool
|
|
3
3
|
*
|
|
4
|
-
* Portfolio optimization with rebalancing recommendations using
|
|
4
|
+
* Portfolio optimization with rebalancing recommendations using rate-limited vault queries.
|
|
5
5
|
* Analyzes current holdings and provides optimal allocation strategy based on
|
|
6
6
|
* per-vault historical data (price history and performance metrics).
|
|
7
7
|
*
|
|
8
8
|
* Implementation:
|
|
9
|
-
* - Executes
|
|
9
|
+
* - Executes rate-limited parallel GraphQL queries (one per vault) using rateLimitedMap
|
|
10
|
+
* - Max 2 concurrent requests to prevent 429 rate limit errors
|
|
10
11
|
* - Each vault gets up to 1000 transactions of historical data
|
|
11
12
|
* - Processes per-vault price history for accurate volatility calculation
|
|
12
13
|
* - Uses per-vault performance data for expected APR estimation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimize-portfolio.d.ts","sourceRoot":"","sources":["../../src/tools/optimize-portfolio.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"optimize-portfolio.d.ts","sourceRoot":"","sources":["../../src/tools/optimize-portfolio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAUhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAmexD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,cAAc,CAAC,CA4F5D"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* optimize_portfolio Tool
|
|
3
3
|
*
|
|
4
|
-
* Portfolio optimization with rebalancing recommendations using
|
|
4
|
+
* Portfolio optimization with rebalancing recommendations using rate-limited vault queries.
|
|
5
5
|
* Analyzes current holdings and provides optimal allocation strategy based on
|
|
6
6
|
* per-vault historical data (price history and performance metrics).
|
|
7
7
|
*
|
|
8
8
|
* Implementation:
|
|
9
|
-
* - Executes
|
|
9
|
+
* - Executes rate-limited parallel GraphQL queries (one per vault) using rateLimitedMap
|
|
10
|
+
* - Max 2 concurrent requests to prevent 429 rate limit errors
|
|
10
11
|
* - Each vault gets up to 1000 transactions of historical data
|
|
11
12
|
* - Processes per-vault price history for accurate volatility calculation
|
|
12
13
|
* - Uses per-vault performance data for expected APR estimation
|
|
@@ -31,6 +32,7 @@ import { calculatePricePerShare } from '../sdk/vault-utils.js';
|
|
|
31
32
|
import { CacheTag } from '../core/cache-invalidation.js';
|
|
32
33
|
import { cacheTTL } from '../cache/index.js';
|
|
33
34
|
import { analyzeRisk } from '../utils/risk-scoring.js';
|
|
35
|
+
import { rateLimitedMap } from '../utils/rate-limiter.js';
|
|
34
36
|
/**
|
|
35
37
|
* Calculate volatility from price history
|
|
36
38
|
*/
|
|
@@ -399,12 +401,13 @@ export function createExecuteOptimizePortfolio(container) {
|
|
|
399
401
|
isError: false,
|
|
400
402
|
};
|
|
401
403
|
}
|
|
402
|
-
// Execute parallel queries for each vault
|
|
403
|
-
|
|
404
|
+
// Execute rate-limited parallel queries for each vault
|
|
405
|
+
// Uses rateLimitedMap to prevent 429 rate limit errors from GraphQL API
|
|
406
|
+
const results = await rateLimitedMap(input.vaultAddresses, (vaultAddress) => container.graphqlClient.request(SINGLE_VAULT_OPTIMIZATION_QUERY, {
|
|
404
407
|
vaultAddress,
|
|
405
408
|
chainId: input.chainId,
|
|
406
|
-
})
|
|
407
|
-
|
|
409
|
+
}), 2 // Max 2 concurrent requests to respect rate limits
|
|
410
|
+
);
|
|
408
411
|
// Process each vault's data
|
|
409
412
|
const vaults = [];
|
|
410
413
|
const priceHistoryByVault = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimize-portfolio.js","sourceRoot":"","sources":["../../src/tools/optimize-portfolio.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"optimize-portfolio.js","sourceRoot":"","sources":["../../src/tools/optimize-portfolio.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-portfolio.d.ts","sourceRoot":"","sources":["../../src/tools/user-portfolio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAa/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"user-portfolio.d.ts","sourceRoot":"","sources":["../../src/tools/user-portfolio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAa/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA4UxD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,cAAc,CAAC,CAwI3D"}
|
|
@@ -23,6 +23,7 @@ import { createGetUserPortfolioQuery, SINGLE_VAULT_COMPOSITION_QUERY, } from '..
|
|
|
23
23
|
import { executeToolWithCache } from '../utils/execute-tool-with-cache.js';
|
|
24
24
|
import { CacheTag } from '../core/cache-invalidation.js';
|
|
25
25
|
import { cacheKeys, cacheTTL, generateCacheKey } from '../cache/index.js';
|
|
26
|
+
import { rateLimitedMap } from '../utils/rate-limiter.js';
|
|
26
27
|
/**
|
|
27
28
|
* Transform raw composition data to processed protocol summaries
|
|
28
29
|
* Uses assetByProtocols field for protocol-level breakdown
|
|
@@ -253,10 +254,11 @@ export function createExecuteGetUserPortfolio(container) {
|
|
|
253
254
|
}
|
|
254
255
|
}
|
|
255
256
|
});
|
|
256
|
-
// Fetch composition data for each vault
|
|
257
|
+
// Fetch composition data for each vault with rate limiting
|
|
257
258
|
// This enables portfolio-wide diversification analysis
|
|
258
259
|
// Note: Backend API returns full response with assetByProtocols
|
|
259
|
-
|
|
260
|
+
// Rate limited to prevent 429 errors from GraphQL API
|
|
261
|
+
const compositionResults = await rateLimitedMap(positions, async (position) => {
|
|
260
262
|
try {
|
|
261
263
|
const compResponse = await container.graphqlClient.request(SINGLE_VAULT_COMPOSITION_QUERY, { walletAddress: position.vaultAddress });
|
|
262
264
|
const protocols = transformRawCompositionToProtocols(compResponse.vaultComposition);
|
|
@@ -273,9 +275,8 @@ export function createExecuteGetUserPortfolio(container) {
|
|
|
273
275
|
// If composition fetch fails for a vault, skip it
|
|
274
276
|
return null;
|
|
275
277
|
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
const compositionResults = await Promise.all(compositionPromises);
|
|
278
|
+
}, 2 // Max 2 concurrent requests to respect rate limits
|
|
279
|
+
);
|
|
279
280
|
const validCompositions = compositionResults.filter((c) => c !== null);
|
|
280
281
|
// If we have composition data, calculate portfolio-level diversification
|
|
281
282
|
if (validCompositions.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-portfolio.js","sourceRoot":"","sources":["../../src/tools/user-portfolio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"user-portfolio.js","sourceRoot":"","sources":["../../src/tools/user-portfolio.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limiter Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides controlled concurrency for GraphQL requests to prevent 429 rate limit errors.
|
|
5
|
+
* Uses p-limit for efficient promise-based concurrency limiting.
|
|
6
|
+
*
|
|
7
|
+
* Background:
|
|
8
|
+
* The GraphQL API (proxied via Cloudflare) has strict rate limits (~5-10 req/10s).
|
|
9
|
+
* Tools like compare_vaults make multiple parallel requests that can trigger 429 errors.
|
|
10
|
+
* These utilities limit concurrent requests to stay within rate limits.
|
|
11
|
+
*/
|
|
12
|
+
import pLimit from 'p-limit';
|
|
13
|
+
/**
|
|
14
|
+
* Default concurrency limit for GraphQL requests.
|
|
15
|
+
* Conservative value to respect ~5-10 req/10s rate limit.
|
|
16
|
+
*/
|
|
17
|
+
export declare const DEFAULT_CONCURRENCY = 2;
|
|
18
|
+
/**
|
|
19
|
+
* Type for the p-limit limiter function.
|
|
20
|
+
*/
|
|
21
|
+
export type Limiter = ReturnType<typeof pLimit>;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a rate limiter instance with the specified concurrency.
|
|
24
|
+
*
|
|
25
|
+
* @param concurrency - Maximum number of concurrent operations (default: 2)
|
|
26
|
+
* @returns A p-limit limiter function
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const limiter = createRateLimiter(2);
|
|
31
|
+
* const results = await Promise.all(
|
|
32
|
+
* items.map(item => limiter(() => fetchData(item)))
|
|
33
|
+
* );
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function createRateLimiter(concurrency?: number): Limiter;
|
|
37
|
+
/**
|
|
38
|
+
* Maps over an array with rate-limited concurrency.
|
|
39
|
+
*
|
|
40
|
+
* This is the primary utility for converting unbounded Promise.all patterns
|
|
41
|
+
* to rate-limited parallel execution. Maintains order of results.
|
|
42
|
+
*
|
|
43
|
+
* @param items - Array of items to process
|
|
44
|
+
* @param fn - Async function to apply to each item
|
|
45
|
+
* @param concurrency - Maximum concurrent operations (default: 2)
|
|
46
|
+
* @returns Promise resolving to array of results in same order as input
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* // Before: Unbounded parallel (causes 429 errors)
|
|
51
|
+
* const results = await Promise.all(
|
|
52
|
+
* vaults.map(v => fetchComposition(v.address))
|
|
53
|
+
* );
|
|
54
|
+
*
|
|
55
|
+
* // After: Rate-limited parallel (max 2 concurrent)
|
|
56
|
+
* const results = await rateLimitedMap(
|
|
57
|
+
* vaults,
|
|
58
|
+
* v => fetchComposition(v.address),
|
|
59
|
+
* 2
|
|
60
|
+
* );
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function rateLimitedMap<T, R>(items: T[], fn: (item: T, index: number) => Promise<R>, concurrency?: number): Promise<R[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Shared rate limiter for GraphQL composition queries.
|
|
66
|
+
* Used across tools that query the Octav API (vault composition).
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* import { compositionLimiter } from '../utils/rate-limiter.js';
|
|
71
|
+
*
|
|
72
|
+
* const results = await Promise.all(
|
|
73
|
+
* vaults.map(v => compositionLimiter(() => fetchComposition(v.address)))
|
|
74
|
+
* );
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export declare const compositionLimiter: import("p-limit").LimitFunction;
|
|
78
|
+
//# sourceMappingURL=rate-limiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,MAAM,MAAM,SAAS,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,GAAE,MAA4B,GAAG,OAAO,CAEpF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,CAAC,EACvC,KAAK,EAAE,CAAC,EAAE,EACV,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAC1C,WAAW,GAAE,MAA4B,GACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAGd;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,iCAAyC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limiter Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides controlled concurrency for GraphQL requests to prevent 429 rate limit errors.
|
|
5
|
+
* Uses p-limit for efficient promise-based concurrency limiting.
|
|
6
|
+
*
|
|
7
|
+
* Background:
|
|
8
|
+
* The GraphQL API (proxied via Cloudflare) has strict rate limits (~5-10 req/10s).
|
|
9
|
+
* Tools like compare_vaults make multiple parallel requests that can trigger 429 errors.
|
|
10
|
+
* These utilities limit concurrent requests to stay within rate limits.
|
|
11
|
+
*/
|
|
12
|
+
import pLimit from 'p-limit';
|
|
13
|
+
/**
|
|
14
|
+
* Default concurrency limit for GraphQL requests.
|
|
15
|
+
* Conservative value to respect ~5-10 req/10s rate limit.
|
|
16
|
+
*/
|
|
17
|
+
export const DEFAULT_CONCURRENCY = 2;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a rate limiter instance with the specified concurrency.
|
|
20
|
+
*
|
|
21
|
+
* @param concurrency - Maximum number of concurrent operations (default: 2)
|
|
22
|
+
* @returns A p-limit limiter function
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const limiter = createRateLimiter(2);
|
|
27
|
+
* const results = await Promise.all(
|
|
28
|
+
* items.map(item => limiter(() => fetchData(item)))
|
|
29
|
+
* );
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function createRateLimiter(concurrency = DEFAULT_CONCURRENCY) {
|
|
33
|
+
return pLimit(concurrency);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Maps over an array with rate-limited concurrency.
|
|
37
|
+
*
|
|
38
|
+
* This is the primary utility for converting unbounded Promise.all patterns
|
|
39
|
+
* to rate-limited parallel execution. Maintains order of results.
|
|
40
|
+
*
|
|
41
|
+
* @param items - Array of items to process
|
|
42
|
+
* @param fn - Async function to apply to each item
|
|
43
|
+
* @param concurrency - Maximum concurrent operations (default: 2)
|
|
44
|
+
* @returns Promise resolving to array of results in same order as input
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* // Before: Unbounded parallel (causes 429 errors)
|
|
49
|
+
* const results = await Promise.all(
|
|
50
|
+
* vaults.map(v => fetchComposition(v.address))
|
|
51
|
+
* );
|
|
52
|
+
*
|
|
53
|
+
* // After: Rate-limited parallel (max 2 concurrent)
|
|
54
|
+
* const results = await rateLimitedMap(
|
|
55
|
+
* vaults,
|
|
56
|
+
* v => fetchComposition(v.address),
|
|
57
|
+
* 2
|
|
58
|
+
* );
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export async function rateLimitedMap(items, fn, concurrency = DEFAULT_CONCURRENCY) {
|
|
62
|
+
const limiter = pLimit(concurrency);
|
|
63
|
+
return Promise.all(items.map((item, index) => limiter(() => fn(item, index))));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Shared rate limiter for GraphQL composition queries.
|
|
67
|
+
* Used across tools that query the Octav API (vault composition).
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* import { compositionLimiter } from '../utils/rate-limiter.js';
|
|
72
|
+
*
|
|
73
|
+
* const results = await Promise.all(
|
|
74
|
+
* vaults.map(v => compositionLimiter(() => fetchComposition(v.address)))
|
|
75
|
+
* );
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export const compositionLimiter = createRateLimiter(DEFAULT_CONCURRENCY);
|
|
79
|
+
//# sourceMappingURL=rate-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,MAAM,MAAM,SAAS,CAAC;AAE7B;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAOrC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,cAAsB,mBAAmB;IACzE,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAU,EACV,EAA0C,EAC1C,cAAsB,mBAAmB;IAEzC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lagoon-protocol/lagoon-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.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",
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"graphql": "^16.8.1",
|
|
87
87
|
"graphql-request": "^6.1.0",
|
|
88
88
|
"node-cache": "^5.1.2",
|
|
89
|
+
"p-limit": "^6.1.0",
|
|
89
90
|
"zod": "^3.22.4"
|
|
90
91
|
},
|
|
91
92
|
"devDependencies": {
|