@evolinkai/mcp 1.3.0 → 1.4.1
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/README.md +2 -2
- package/dist/core/src/branding.d.ts +3 -0
- package/dist/core/src/branding.d.ts.map +1 -0
- package/dist/core/src/branding.js +8 -0
- package/dist/core/src/branding.js.map +1 -0
- package/dist/core/src/config.d.ts +1 -1
- package/dist/core/src/config.d.ts.map +1 -1
- package/dist/core/src/config.js +3 -1
- package/dist/core/src/config.js.map +1 -1
- package/dist/core/src/data/model-constraints.d.ts +8 -0
- package/dist/core/src/data/model-constraints.d.ts.map +1 -0
- package/dist/core/src/data/model-constraints.js +25 -0
- package/dist/core/src/data/model-constraints.js.map +1 -0
- package/dist/core/src/data/model-params.d.ts +17 -0
- package/dist/core/src/data/model-params.d.ts.map +1 -1
- package/dist/core/src/data/model-params.generated.d.ts.map +1 -1
- package/dist/core/src/data/model-params.generated.js +1 -1
- package/dist/core/src/data/model-params.generated.js.map +1 -1
- package/dist/core/src/data/model-params.js +6 -1
- package/dist/core/src/data/model-params.js.map +1 -1
- package/dist/core/src/request-context.d.ts +19 -0
- package/dist/core/src/request-context.d.ts.map +1 -1
- package/dist/core/src/request-context.js +13 -0
- package/dist/core/src/request-context.js.map +1 -1
- package/dist/core/src/server.d.ts +21 -3
- package/dist/core/src/server.d.ts.map +1 -1
- package/dist/core/src/server.js +52 -13
- package/dist/core/src/server.js.map +1 -1
- package/dist/core/src/services/api-client.d.ts +15 -0
- package/dist/core/src/services/api-client.d.ts.map +1 -1
- package/dist/core/src/services/api-client.js +26 -0
- package/dist/core/src/services/api-client.js.map +1 -1
- package/dist/core/src/services/catalog-client.d.ts +14 -0
- package/dist/core/src/services/catalog-client.d.ts.map +1 -0
- package/dist/core/src/services/catalog-client.js +42 -0
- package/dist/core/src/services/catalog-client.js.map +1 -0
- package/dist/core/src/services/error-handler.d.ts.map +1 -1
- package/dist/core/src/services/error-handler.js +27 -14
- package/dist/core/src/services/error-handler.js.map +1 -1
- package/dist/core/src/services/file-client.d.ts +33 -3
- package/dist/core/src/services/file-client.d.ts.map +1 -1
- package/dist/core/src/services/file-client.js +50 -19
- package/dist/core/src/services/file-client.js.map +1 -1
- package/dist/core/src/services/media-preview.d.ts +24 -0
- package/dist/core/src/services/media-preview.d.ts.map +1 -0
- package/dist/core/src/services/media-preview.js +156 -0
- package/dist/core/src/services/media-preview.js.map +1 -0
- package/dist/core/src/services/model-catalog.d.ts +6 -3
- package/dist/core/src/services/model-catalog.d.ts.map +1 -1
- package/dist/core/src/services/model-catalog.js +38 -16
- package/dist/core/src/services/model-catalog.js.map +1 -1
- package/dist/core/src/services/param-validator.d.ts.map +1 -1
- package/dist/core/src/services/param-validator.js +36 -0
- package/dist/core/src/services/param-validator.js.map +1 -1
- package/dist/core/src/services/preview-download.d.ts +11 -0
- package/dist/core/src/services/preview-download.d.ts.map +1 -0
- package/dist/core/src/services/preview-download.js +106 -0
- package/dist/core/src/services/preview-download.js.map +1 -0
- package/dist/core/src/services/pricing-client.d.ts +21 -3
- package/dist/core/src/services/pricing-client.d.ts.map +1 -1
- package/dist/core/src/services/pricing-client.js +86 -4
- package/dist/core/src/services/pricing-client.js.map +1 -1
- package/dist/core/src/services/upload-policy.d.ts +2 -0
- package/dist/core/src/services/upload-policy.d.ts.map +1 -1
- package/dist/core/src/services/upload-policy.js +8 -0
- package/dist/core/src/services/upload-policy.js.map +1 -1
- package/dist/core/src/services/upload-slots.d.ts +63 -0
- package/dist/core/src/services/upload-slots.d.ts.map +1 -0
- package/dist/core/src/services/upload-slots.js +24 -0
- package/dist/core/src/services/upload-slots.js.map +1 -0
- package/dist/core/src/services/utm.d.ts +29 -0
- package/dist/core/src/services/utm.d.ts.map +1 -0
- package/dist/core/src/services/utm.js +64 -0
- package/dist/core/src/services/utm.js.map +1 -0
- package/dist/core/src/tool-guidance.d.ts +6 -0
- package/dist/core/src/tool-guidance.d.ts.map +1 -0
- package/dist/core/src/tool-guidance.js +49 -0
- package/dist/core/src/tool-guidance.js.map +1 -0
- package/dist/core/src/tools/check-balance.d.ts.map +1 -1
- package/dist/core/src/tools/check-balance.js +13 -9
- package/dist/core/src/tools/check-balance.js.map +1 -1
- package/dist/core/src/tools/estimate-cost.d.ts.map +1 -1
- package/dist/core/src/tools/estimate-cost.js +18 -12
- package/dist/core/src/tools/estimate-cost.js.map +1 -1
- package/dist/core/src/tools/generate.d.ts.map +1 -1
- package/dist/core/src/tools/generate.js +67 -14
- package/dist/core/src/tools/generate.js.map +1 -1
- package/dist/core/src/tools/get-model.d.ts +2 -1
- package/dist/core/src/tools/get-model.d.ts.map +1 -1
- package/dist/core/src/tools/get-model.js +27 -7
- package/dist/core/src/tools/get-model.js.map +1 -1
- package/dist/core/src/tools/get-task.d.ts.map +1 -1
- package/dist/core/src/tools/get-task.js +3 -2
- package/dist/core/src/tools/get-task.js.map +1 -1
- package/dist/core/src/tools/list-tasks.d.ts.map +1 -1
- package/dist/core/src/tools/list-tasks.js +10 -3
- package/dist/core/src/tools/list-tasks.js.map +1 -1
- package/dist/core/src/tools/prepare-upload.d.ts +6 -0
- package/dist/core/src/tools/prepare-upload.d.ts.map +1 -0
- package/dist/core/src/tools/prepare-upload.js +134 -0
- package/dist/core/src/tools/prepare-upload.js.map +1 -0
- package/dist/core/src/tools/search-models.d.ts +2 -1
- package/dist/core/src/tools/search-models.d.ts.map +1 -1
- package/dist/core/src/tools/search-models.js +11 -5
- package/dist/core/src/tools/search-models.js.map +1 -1
- package/dist/core/src/tools/shared.d.ts +7 -2
- package/dist/core/src/tools/shared.d.ts.map +1 -1
- package/dist/core/src/tools/shared.js +12 -4
- package/dist/core/src/tools/shared.js.map +1 -1
- package/dist/core/src/tools/task-format.d.ts +16 -0
- package/dist/core/src/tools/task-format.d.ts.map +1 -1
- package/dist/core/src/tools/task-format.js +85 -11
- package/dist/core/src/tools/task-format.js.map +1 -1
- package/dist/core/src/tools/upload-file.d.ts +10 -0
- package/dist/core/src/tools/upload-file.d.ts.map +1 -1
- package/dist/core/src/tools/upload-file.js +36 -6
- package/dist/core/src/tools/upload-file.js.map +1 -1
- package/dist/core/src/version.d.ts +1 -1
- package/dist/core/src/version.js +1 -1
- package/dist/evolink-media/src/index.js +2 -0
- package/dist/evolink-media/src/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { currentCredentialMode } from '../request-context.js';
|
|
2
2
|
import { API_KEYS_URL, MCP_CONSOLE_URL, MCP_KEY_NAME, TOP_UP_URL, siteUrl } from './http-policy.js';
|
|
3
|
+
import { trackedLink } from './utm.js';
|
|
3
4
|
/** Gateway display rate: 1 USD = 6.8 CNY and 1 CNY = 10 credits. */
|
|
4
5
|
export const CREDITS_PER_USD = 68;
|
|
5
6
|
const ACCOUNT_CODES = new Set(['insufficient_quota', 'insufficient_user_quota', 'quota_not_enough', 'account_balance_insufficient']);
|
|
@@ -91,6 +92,11 @@ function categorize(status, code, mode, mcpLimits) {
|
|
|
91
92
|
return 'sign_in_token_rejected';
|
|
92
93
|
if (lower === 'user_disabled')
|
|
93
94
|
return 'account_disabled';
|
|
95
|
+
// Upload tokens for signed-in connections (POST /v1/files/upload-token): a per-minute cap, and Redis being down.
|
|
96
|
+
if (lower === 'upload_token_rate_limited')
|
|
97
|
+
return 'rate_limited';
|
|
98
|
+
if (lower === 'upload_token_unavailable')
|
|
99
|
+
return 'server_error';
|
|
94
100
|
switch (status) {
|
|
95
101
|
case 401: return 'unauthorized';
|
|
96
102
|
case 402: return 'account_balance_insufficient';
|
|
@@ -156,6 +162,9 @@ function headlineFor(category) {
|
|
|
156
162
|
return 'This API key\'s daily limit is used up. It resets at midnight; this is not your account balance.';
|
|
157
163
|
case 'connection_ended':
|
|
158
164
|
return 'This EvoLink connection was disconnected. Reconnect EvoLink in this client.';
|
|
165
|
+
// The gateway's own text ("Agent session validation…") is shared with the CLI and names an internal check.
|
|
166
|
+
case 'session_check_unavailable':
|
|
167
|
+
return 'EvoLink could not check this connection\'s sign-in just now. Retry in a minute; you do not need to reconnect.';
|
|
159
168
|
default:
|
|
160
169
|
return undefined;
|
|
161
170
|
}
|
|
@@ -189,35 +198,35 @@ function nextStep(category, info, mode) {
|
|
|
189
198
|
const zone = text(details.reset_timezone);
|
|
190
199
|
switch (category) {
|
|
191
200
|
case 'account_balance_insufficient':
|
|
192
|
-
return sentences(balance && `Balance: ${balance}.`, needed && `This request needs about ${needed}.`, `Ask the user to top up at ${action ?? TOP_UP_URL}, then retry.`);
|
|
201
|
+
return sentences(balance && `Balance: ${balance}.`, needed && `This request needs about ${needed}.`, `Ask the user to top up at ${action ?? trackedLink(TOP_UP_URL, 'top_up')}, then retry.`);
|
|
193
202
|
case 'mcp_limit_reached':
|
|
194
|
-
return sentences(limitFigures(details, 'EvoLink MCP limit'), needed && `This request needs about ${needed}.`, balance && `Account balance: ${balance} (not the problem).`, `Ask the user to raise or remove the EvoLink MCP limit at ${mcpLimitPlace(action ?? MCP_CONSOLE_URL, details)}; it is shared by every assistant connected to their EvoLink account.`, 'Do not retry until they have changed it.');
|
|
203
|
+
return sentences(limitFigures(details, 'EvoLink MCP limit'), needed && `This request needs about ${needed}.`, balance && `Account balance: ${balance} (not the problem).`, `Ask the user to raise or remove the EvoLink MCP limit at ${mcpLimitPlace(action ?? trackedLink(MCP_CONSOLE_URL, 'api_keys'), details)}; it is shared by every assistant connected to their EvoLink account.`, 'Do not retry until they have changed it.');
|
|
195
204
|
case 'mcp_daily_limit_reached': {
|
|
196
205
|
const used = credits(details.daily_used_credits);
|
|
197
206
|
const limit = credits(details.daily_limit_credits);
|
|
198
|
-
return sentences(used && limit && `Today's EvoLink MCP spending: ${used} of the ${limit} daily limit.`, `It resets automatically at midnight${zone ? ` (${zone})` : ''}.`, balance && `Account balance: ${balance} (not the problem).`, `To continue today, ask the user to raise the EvoLink MCP daily limit at ${mcpLimitPlace(action ?? MCP_CONSOLE_URL, details)}.`);
|
|
207
|
+
return sentences(used && limit && `Today's EvoLink MCP spending: ${used} of the ${limit} daily limit.`, `It resets automatically at midnight${zone ? ` (${zone})` : ''}.`, balance && `Account balance: ${balance} (not the problem).`, `To continue today, ask the user to raise the EvoLink MCP daily limit at ${mcpLimitPlace(action ?? trackedLink(MCP_CONSOLE_URL, 'api_keys'), details)}.`);
|
|
199
208
|
}
|
|
200
209
|
case 'mcp_paused':
|
|
201
|
-
return `Ask the user to resume EvoLink MCP at ${mcpLimitPlace(action ?? MCP_CONSOLE_URL, details)} (switch it back on). Do not ask them to reconnect, and do not retry until it is resumed.`;
|
|
210
|
+
return `Ask the user to resume EvoLink MCP at ${mcpLimitPlace(action ?? trackedLink(MCP_CONSOLE_URL, 'api_keys'), details)} (switch it back on). Do not ask them to reconnect, and do not retry until it is resumed.`;
|
|
202
211
|
case 'mcp_key_expired': {
|
|
203
212
|
const expiredAt = typeof details.expired_at === 'number' && Number.isFinite(details.expired_at) && details.expired_at > 0
|
|
204
213
|
? new Date(details.expired_at * 1000).toISOString().slice(0, 10)
|
|
205
214
|
: undefined;
|
|
206
|
-
return sentences(expiredAt && `The EvoLink MCP key expired on ${expiredAt} (UTC).`, `Ask the user to extend or clear the expiry date of the EvoLink MCP key at ${mcpLimitPlace(action ?? MCP_CONSOLE_URL, details)}.`, 'Do not ask them to reconnect, and do not retry until it is changed.');
|
|
215
|
+
return sentences(expiredAt && `The EvoLink MCP key expired on ${expiredAt} (UTC).`, `Ask the user to extend or clear the expiry date of the EvoLink MCP key at ${mcpLimitPlace(action ?? trackedLink(MCP_CONSOLE_URL, 'api_keys'), details)}.`, 'Do not ask them to reconnect, and do not retry until it is changed.');
|
|
207
216
|
}
|
|
208
217
|
case 'key_quota_exhausted': {
|
|
209
218
|
const name = text(details.key_name);
|
|
210
|
-
return sentences(limitFigures(details, name ? `Limit of API key "${name}"` : 'API key limit'), needed && `This request needs about ${needed}.`, balance && `Account balance: ${balance} (not the problem).`, `Raise this API key's limit at ${action ?? API_KEYS_URL}, or use another key.`);
|
|
219
|
+
return sentences(limitFigures(details, name ? `Limit of API key "${name}"` : 'API key limit'), needed && `This request needs about ${needed}.`, balance && `Account balance: ${balance} (not the problem).`, `Raise this API key's limit at ${action ?? trackedLink(API_KEYS_URL, 'api_keys')}, or use another key.`);
|
|
211
220
|
}
|
|
212
221
|
case 'key_daily_quota_exhausted':
|
|
213
|
-
return `It resets automatically at midnight${zone ? ` (${zone})` : ''}; to continue today, raise this API key's daily limit at ${action ?? API_KEYS_URL}.`;
|
|
222
|
+
return `It resets automatically at midnight${zone ? ` (${zone})` : ''}; to continue today, raise this API key's daily limit at ${action ?? trackedLink(API_KEYS_URL, 'api_keys')}.`;
|
|
214
223
|
case 'key_disabled':
|
|
215
|
-
return `This API key is disabled. Enable it at ${action ?? API_KEYS_URL} or use another key.`;
|
|
224
|
+
return `This API key is disabled. Enable it at ${action ?? trackedLink(API_KEYS_URL, 'api_keys')} or use another key.`;
|
|
216
225
|
case 'key_expired':
|
|
217
|
-
return `This API key has expired. Extend it at ${action ?? API_KEYS_URL} or use another key.`;
|
|
226
|
+
return `This API key has expired. Extend it at ${action ?? trackedLink(API_KEYS_URL, 'api_keys')} or use another key.`;
|
|
218
227
|
case 'model_not_allowed': {
|
|
219
228
|
const allowed = Array.isArray(details.allowed_models) ? details.allowed_models.slice(0, 20).join(', ') : '';
|
|
220
|
-
return `This key may not use this model.${allowed ? ` Allowed models: ${allowed}.` : ''} Pick an allowed model, or change the key's model list at ${action ?? API_KEYS_URL}.`;
|
|
229
|
+
return `This key may not use this model.${allowed ? ` Allowed models: ${allowed}.` : ''} Pick an allowed model, or change the key's model list at ${action ?? trackedLink(API_KEYS_URL, 'api_keys')}.`;
|
|
221
230
|
}
|
|
222
231
|
case 'unauthorized':
|
|
223
232
|
if (mode === 'signed_in')
|
|
@@ -278,13 +287,13 @@ export function classifyGatewayError(status, body, retryAfterMs, headerRequestId
|
|
|
278
287
|
}
|
|
279
288
|
let actionUrl;
|
|
280
289
|
if (category === 'account_balance_insufficient') {
|
|
281
|
-
actionUrl = siteUrl(text(error.action_url), TOP_UP_URL);
|
|
290
|
+
actionUrl = trackedLink(siteUrl(text(error.action_url), TOP_UP_URL), 'top_up');
|
|
282
291
|
}
|
|
283
292
|
else if (MCP_LIMIT_CATEGORIES.has(category)) {
|
|
284
|
-
actionUrl = siteUrl(text(error.action_url), MCP_CONSOLE_URL);
|
|
293
|
+
actionUrl = trackedLink(siteUrl(text(error.action_url), MCP_CONSOLE_URL), 'api_keys');
|
|
285
294
|
}
|
|
286
295
|
else if (KEY_CATEGORIES.has(category)) {
|
|
287
|
-
actionUrl = siteUrl(text(error.action_url), API_KEYS_URL);
|
|
296
|
+
actionUrl = trackedLink(siteUrl(text(error.action_url), API_KEYS_URL), 'api_keys');
|
|
288
297
|
}
|
|
289
298
|
const headline = headlineFor(category);
|
|
290
299
|
const info = {
|
|
@@ -374,7 +383,11 @@ const TASK_ERROR_MAP = {
|
|
|
374
383
|
},
|
|
375
384
|
};
|
|
376
385
|
export function getTaskErrorInfo(code) {
|
|
377
|
-
|
|
386
|
+
const info = TASK_ERROR_MAP[code] ?? TASK_ERROR_MAP.unknown_error;
|
|
387
|
+
// The top-up link is tagged for the caller when the hint is shown, not when the table is built.
|
|
388
|
+
return info.suggestion.includes(TOP_UP_URL)
|
|
389
|
+
? { ...info, suggestion: info.suggestion.replace(TOP_UP_URL, trackedLink(TOP_UP_URL, 'top_up')) }
|
|
390
|
+
: info;
|
|
378
391
|
}
|
|
379
392
|
export function formatTaskError(error) {
|
|
380
393
|
const code = error.code ?? 'unknown_error';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../../../core/src/services/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAuB,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AA8DpG,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,8BAA8B,CAAC,CAAC,CAAC;AACrI,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACrF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,4BAA4B,EAAE,2BAA2B,CAAC,CAAC,CAAC;AAC7F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,CAAC;AACpJ,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACpI,qGAAqG;AACrG,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACnJ,+GAA+G;AAC/G,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,yBAAyB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAEhH,MAAM,aAAa,GAAG;IACpB,UAAU;IACV,mBAAmB;IACnB,yBAAyB;IACzB,qBAAqB;IACrB,cAAc;IACd,mBAAmB;IACnB,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;CACJ,CAAC;AAWX,SAAS,QAAQ,CAAC,IAAa;IAC7B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,IAA+B,CAAC;IAC/C,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAsB,CAAC;IAC3F,gGAAgG;IAChG,OAAO;QACL,IAAI,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;QACnE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,OAAO;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,KAAc;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,MAAc,EAAE,IAAY,EAAE,IAAoB,EAAE,SAAkB;IACxF,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,8BAA8B,CAAC;IACpE,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAC/F,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAC3G,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAChD,IAAI,KAAK,KAAK,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAC1D,+GAA+G;IAC/G,IAAI,KAAK,KAAK,sBAAsB;QAAE,OAAO,sBAAsB,CAAC;IACpE,6EAA6E;IAC7E,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;IAC1F,wHAAwH;IACxH,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7F,IAAI,KAAK,KAAK,uBAAuB;QAAE,OAAO,mBAAmB,CAAC;IAClE,IAAI,KAAK,KAAK,sBAAsB;QAAE,OAAO,sBAAsB,CAAC;IACpE,IAAI,KAAK,KAAK,sBAAsB;QAAE,OAAO,iBAAiB,CAAC;IAC/D,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACtD,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC7F,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACjE,IAAI,KAAK,KAAK,2BAA2B;QAAE,OAAO,2BAA2B,CAAC;IAC9E,IAAI,KAAK,KAAK,8BAA8B;QAAE,OAAO,yBAAyB,CAAC;IAC/E,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAC7D,wGAAwG;IACxG,IAAI,KAAK,KAAK,mBAAmB;QAAE,OAAO,wBAAwB,CAAC;IACnE,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,kBAAkB,CAAC;IACzD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG,CAAC,CAAC,OAAO,cAAc,CAAC;QAChC,KAAK,GAAG,CAAC,CAAC,OAAO,8BAA8B,CAAC;QAChD,KAAK,GAAG,CAAC,CAAC,OAAO,WAAW,CAAC;QAC7B,KAAK,GAAG,CAAC,CAAC,OAAO,WAAW,CAAC;QAC7B,KAAK,GAAG,CAAC,CAAC,OAAO,mBAAmB,CAAC;QACrC,KAAK,GAAG,CAAC,CAAC,OAAO,cAAc,CAAC;QAChC,KAAK,GAAG,CAAC,CAAC,OAAO,mBAAmB,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC;IACzC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,SAAS,GAA+B,IAAI,GAAG,CAAgB;IACnE,2BAA2B;IAC3B,yBAAyB;IACzB,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,2BAA2B;IAC3B,yBAAyB;IACzB,wBAAwB;CACzB,CAAC,CAAC;AAEH,2GAA2G;AAC3G,MAAM,oBAAoB,GAA+B,IAAI,GAAG,CAAgB,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACnK,MAAM,cAAc,GAA+B,IAAI,GAAG,CAAgB;IACxE,qBAAqB,EAAE,2BAA2B,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB;CACvG,CAAC,CAAC;AAEH,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3E,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,eAAe,SAAS,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED,wFAAwF;AACxF,SAAS,WAAW,CAAC,QAAuB;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,mBAAmB;YACtB,OAAO,8FAA8F,CAAC;QACxG,KAAK,yBAAyB;YAC5B,OAAO,2FAA2F,CAAC;QACrG,KAAK,YAAY;YACf,OAAO,iGAAiG,CAAC;QAC3G,KAAK,iBAAiB;YACpB,OAAO,4GAA4G,CAAC;QACtH,KAAK,8BAA8B;YACjC,OAAO,sGAAsG,CAAC;QAChH,KAAK,qBAAqB;YACxB,OAAO,oGAAoG,CAAC;QAC9G,KAAK,2BAA2B;YAC9B,OAAO,kGAAkG,CAAC;QAC5G,KAAK,kBAAkB;YACrB,OAAO,6EAA6E,CAAC;QACvF;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,OAAgC;IAClE,OAAO,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5C,CAAC,CAAC,GAAG,GAAG,oBAAoB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,YAAY,IAAI;QACtE,CAAC,CAAC,GAAG,CAAC;AACV,CAAC;AAED,gFAAgF;AAChF,SAAS,YAAY,CAAC,OAAgC,EAAE,KAAa;IACnE,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,GAAG,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;QAC3F,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,SAAS,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACzE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,SAAS,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;KACpF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,KAAwC;IAC5D,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,QAAQ,CAAC,QAAuB,EAAE,IAAsB,EAAE,IAAoB;IACrF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,8BAA8B;YACjC,OAAO,SAAS,CACd,OAAO,IAAI,YAAY,OAAO,GAAG,EACjC,MAAM,IAAI,4BAA4B,MAAM,GAAG,EAC/C,6BAA6B,MAAM,IAAI,UAAU,eAAe,CACjE,CAAC;QACJ,KAAK,mBAAmB;YACtB,OAAO,SAAS,CACd,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAC1C,MAAM,IAAI,4BAA4B,MAAM,GAAG,EAC/C,OAAO,IAAI,oBAAoB,OAAO,qBAAqB,EAC3D,4DAA4D,aAAa,CAAC,MAAM,IAAI,eAAe,EAAE,OAAO,CAAC,uEAAuE,EACpL,0CAA0C,CAC3C,CAAC;QACJ,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACnD,OAAO,SAAS,CACd,IAAI,IAAI,KAAK,IAAI,iCAAiC,IAAI,WAAW,KAAK,eAAe,EACrF,sCAAsC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EACjE,OAAO,IAAI,oBAAoB,OAAO,qBAAqB,EAC3D,2EAA2E,aAAa,CAAC,MAAM,IAAI,eAAe,EAAE,OAAO,CAAC,GAAG,CAChI,CAAC;QACJ,CAAC;QACD,KAAK,YAAY;YACf,OAAO,yCAAyC,aAAa,CAAC,MAAM,IAAI,eAAe,EAAE,OAAO,CAAC,2FAA2F,CAAC;QAC/L,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC;gBACvH,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChE,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,SAAS,CACd,SAAS,IAAI,kCAAkC,SAAS,SAAS,EACjE,6EAA6E,aAAa,CAAC,MAAM,IAAI,eAAe,EAAE,OAAO,CAAC,GAAG,EACjI,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,SAAS,CACd,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,EAC5E,MAAM,IAAI,4BAA4B,MAAM,GAAG,EAC/C,OAAO,IAAI,oBAAoB,OAAO,qBAAqB,EAC3D,iCAAiC,MAAM,IAAI,YAAY,uBAAuB,CAC/E,CAAC;QACJ,CAAC;QACD,KAAK,2BAA2B;YAC9B,OAAO,sCAAsC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,4DAA4D,MAAM,IAAI,YAAY,GAAG,CAAC;QAC7J,KAAK,cAAc;YACjB,OAAO,0CAA0C,MAAM,IAAI,YAAY,sBAAsB,CAAC;QAChG,KAAK,aAAa;YAChB,OAAO,0CAA0C,MAAM,IAAI,YAAY,sBAAsB,CAAC;QAChG,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5G,OAAO,mCAAmC,OAAO,CAAC,CAAC,CAAC,oBAAoB,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,6DAA6D,MAAM,IAAI,YAAY,GAAG,CAAC;QAChL,CAAC;QACD,KAAK,cAAc;YACjB,IAAI,IAAI,KAAK,WAAW;gBAAE,OAAO,wFAAwF,CAAC;YAC1H,OAAO,IAAI,KAAK,SAAS;gBACvB,CAAC,CAAC,gGAAgG;gBAClG,CAAC,CAAC,gFAAgF,CAAC;QACvF,KAAK,WAAW;YACd,OAAO,qDAAqD,CAAC;QAC/D,KAAK,cAAc;YACjB,OAAO,2BAA2B,IAAI,CAAC,mBAAmB,IAAI,EAAE,yDAAyD,CAAC;QAC5H,KAAK,iBAAiB;YACpB,OAAO,4GAA4G,CAAC;QACtH,KAAK,WAAW;YACd,OAAO,4EAA4E,CAAC;QACtF,KAAK,gBAAgB;YACnB,OAAO,iIAAiI,CAAC;QAC3I,KAAK,mBAAmB;YACtB,OAAO,oGAAoG,CAAC;QAC9G,KAAK,sBAAsB;YACzB,OAAO,oHAAoH,CAAC;QAC9H,KAAK,iBAAiB;YACpB,OAAO,sOAAsO,CAAC;QAChP,KAAK,mBAAmB;YACtB,OAAO,yIAAyI,CAAC;QACnJ,KAAK,cAAc;YACjB,OAAO,mIAAmI,CAAC;QAC7I,KAAK,kBAAkB;YACrB,OAAO,6LAA6L,CAAC;QACvM,KAAK,2BAA2B;YAC9B,OAAO,+FAA+F,CAAC;QACzG,KAAK,yBAAyB;YAC5B,OAAO,kEAAkE,CAAC;QAC5E,KAAK,uBAAuB;YAC1B,OAAO,gKAAgK,CAAC;QAC1K,KAAK,sBAAsB;YACzB,OAAO,sIAAsI,CAAC;QAChJ,KAAK,wBAAwB;YAC3B,OAAO,oOAAoO,CAAC;QAC9O,KAAK,kBAAkB;YACrB,OAAO,4EAA4E,CAAC;IACxF,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,IAAa,EACb,YAAqB,EACrB,eAAwB;IAExB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC;IAClE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC;IACxF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,QAAQ,MAAM,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEtF,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAChH,CAAC;IAED,IAAI,SAA6B,CAAC;IAClC,IAAI,QAAQ,KAAK,8BAA8B,EAAE,CAAC;QAChD,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;IAC/D,CAAC;SAAM,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAqB;QAC7B,MAAM;QACN,QAAQ;QACR,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,IAAI;QACJ,OAAO;QACP,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClC,mBAAmB,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACzG,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC;IACF,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ;QACzB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,IAAI,CAAC,SAAS,EAAE,EAAE,eAAe,MAAM,EAAE,CAAC;QAC1E,CAAC,CAAC,CAAC,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAa;IAC1D,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAwBD,MAAM,cAAc,GAAyC;IAC3D,wBAAwB,EAAE;QACxB,UAAU,EAAE,0IAA0I;QACtJ,SAAS,EAAE,KAAK;KACjB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,iGAAiG;QAC7G,SAAS,EAAE,KAAK;KACjB;IACD,wBAAwB,EAAE;QACxB,UAAU,EAAE,2HAA2H;QACvI,SAAS,EAAE,KAAK;KACjB;IACD,sBAAsB,EAAE;QACtB,UAAU,EAAE,+HAA+H;QAC3I,SAAS,EAAE,KAAK;KACjB;IACD,iBAAiB,EAAE;QACjB,UAAU,EAAE,sEAAsE;QAClF,SAAS,EAAE,KAAK;KACjB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,sFAAsF;QAClG,SAAS,EAAE,KAAK;KACjB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,wGAAwG;QACpH,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,UAAU,EAAE,6FAA6F,UAAU,yBAAyB;QAC5I,SAAS,EAAE,IAAI;KAChB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,4EAA4E;QACxF,SAAS,EAAE,IAAI;KAChB;IACD,4BAA4B,EAAE;QAC5B,UAAU,EAAE,uIAAuI;QACnJ,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,gDAAgD;QAC5D,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,UAAU,EAAE,mEAAmE;QAC/E,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,gGAAgG;QAC5G,SAAS,EAAE,IAAI;KAChB;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,cAAc,CAAC,IAAqB,CAAC,IAAI,cAAc,CAAC,aAAa,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAA0C;IACxE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC;IAC3C,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAa;QACtB,eAAe,IAAI,EAAE;QACrB,YAAY,KAAK,CAAC,OAAO,IAAI,qBAAqB,EAAE;QACpD,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,wCAAwC,EAAE;QAC9G,eAAe,IAAI,CAAC,UAAU,EAAE;KACjC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../../../core/src/services/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAuB,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA8DvC,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,8BAA8B,CAAC,CAAC,CAAC;AACrI,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACrF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,4BAA4B,EAAE,2BAA2B,CAAC,CAAC,CAAC;AAC7F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,CAAC;AACpJ,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACpI,qGAAqG;AACrG,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACnJ,+GAA+G;AAC/G,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,yBAAyB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAEhH,MAAM,aAAa,GAAG;IACpB,UAAU;IACV,mBAAmB;IACnB,yBAAyB;IACzB,qBAAqB;IACrB,cAAc;IACd,mBAAmB;IACnB,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;CACJ,CAAC;AAWX,SAAS,QAAQ,CAAC,IAAa;IAC7B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,IAA+B,CAAC;IAC/C,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAsB,CAAC;IAC3F,gGAAgG;IAChG,OAAO;QACL,IAAI,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;QACnE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,OAAO;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,KAAc;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,MAAc,EAAE,IAAY,EAAE,IAAoB,EAAE,SAAkB;IACxF,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,8BAA8B,CAAC;IACpE,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAC/F,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAC3G,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAChD,IAAI,KAAK,KAAK,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAC1D,+GAA+G;IAC/G,IAAI,KAAK,KAAK,sBAAsB;QAAE,OAAO,sBAAsB,CAAC;IACpE,6EAA6E;IAC7E,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;IAC1F,wHAAwH;IACxH,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7F,IAAI,KAAK,KAAK,uBAAuB;QAAE,OAAO,mBAAmB,CAAC;IAClE,IAAI,KAAK,KAAK,sBAAsB;QAAE,OAAO,sBAAsB,CAAC;IACpE,IAAI,KAAK,KAAK,sBAAsB;QAAE,OAAO,iBAAiB,CAAC;IAC/D,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACtD,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC7F,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACjE,IAAI,KAAK,KAAK,2BAA2B;QAAE,OAAO,2BAA2B,CAAC;IAC9E,IAAI,KAAK,KAAK,8BAA8B;QAAE,OAAO,yBAAyB,CAAC;IAC/E,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAC7D,wGAAwG;IACxG,IAAI,KAAK,KAAK,mBAAmB;QAAE,OAAO,wBAAwB,CAAC;IACnE,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,kBAAkB,CAAC;IACzD,iHAAiH;IACjH,IAAI,KAAK,KAAK,2BAA2B;QAAE,OAAO,cAAc,CAAC;IACjE,IAAI,KAAK,KAAK,0BAA0B;QAAE,OAAO,cAAc,CAAC;IAChE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG,CAAC,CAAC,OAAO,cAAc,CAAC;QAChC,KAAK,GAAG,CAAC,CAAC,OAAO,8BAA8B,CAAC;QAChD,KAAK,GAAG,CAAC,CAAC,OAAO,WAAW,CAAC;QAC7B,KAAK,GAAG,CAAC,CAAC,OAAO,WAAW,CAAC;QAC7B,KAAK,GAAG,CAAC,CAAC,OAAO,mBAAmB,CAAC;QACrC,KAAK,GAAG,CAAC,CAAC,OAAO,cAAc,CAAC;QAChC,KAAK,GAAG,CAAC,CAAC,OAAO,mBAAmB,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC;IACzC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,SAAS,GAA+B,IAAI,GAAG,CAAgB;IACnE,2BAA2B;IAC3B,yBAAyB;IACzB,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,2BAA2B;IAC3B,yBAAyB;IACzB,wBAAwB;CACzB,CAAC,CAAC;AAEH,2GAA2G;AAC3G,MAAM,oBAAoB,GAA+B,IAAI,GAAG,CAAgB,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACnK,MAAM,cAAc,GAA+B,IAAI,GAAG,CAAgB;IACxE,qBAAqB,EAAE,2BAA2B,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB;CACvG,CAAC,CAAC;AAEH,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3E,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,eAAe,SAAS,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED,wFAAwF;AACxF,SAAS,WAAW,CAAC,QAAuB;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,mBAAmB;YACtB,OAAO,8FAA8F,CAAC;QACxG,KAAK,yBAAyB;YAC5B,OAAO,2FAA2F,CAAC;QACrG,KAAK,YAAY;YACf,OAAO,iGAAiG,CAAC;QAC3G,KAAK,iBAAiB;YACpB,OAAO,4GAA4G,CAAC;QACtH,KAAK,8BAA8B;YACjC,OAAO,sGAAsG,CAAC;QAChH,KAAK,qBAAqB;YACxB,OAAO,oGAAoG,CAAC;QAC9G,KAAK,2BAA2B;YAC9B,OAAO,kGAAkG,CAAC;QAC5G,KAAK,kBAAkB;YACrB,OAAO,6EAA6E,CAAC;QACvF,2GAA2G;QAC3G,KAAK,2BAA2B;YAC9B,OAAO,+GAA+G,CAAC;QACzH;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,OAAgC;IAClE,OAAO,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5C,CAAC,CAAC,GAAG,GAAG,oBAAoB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,YAAY,IAAI;QACtE,CAAC,CAAC,GAAG,CAAC;AACV,CAAC;AAED,gFAAgF;AAChF,SAAS,YAAY,CAAC,OAAgC,EAAE,KAAa;IACnE,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,GAAG,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;QAC3F,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,SAAS,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACzE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,SAAS,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;KACpF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,KAAwC;IAC5D,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,QAAQ,CAAC,QAAuB,EAAE,IAAsB,EAAE,IAAoB;IACrF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,8BAA8B;YACjC,OAAO,SAAS,CACd,OAAO,IAAI,YAAY,OAAO,GAAG,EACjC,MAAM,IAAI,4BAA4B,MAAM,GAAG,EAC/C,6BAA6B,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,eAAe,CACxF,CAAC;QACJ,KAAK,mBAAmB;YACtB,OAAO,SAAS,CACd,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAC1C,MAAM,IAAI,4BAA4B,MAAM,GAAG,EAC/C,OAAO,IAAI,oBAAoB,OAAO,qBAAqB,EAC3D,4DAA4D,aAAa,CAAC,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,uEAAuE,EAC7M,0CAA0C,CAC3C,CAAC;QACJ,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACnD,OAAO,SAAS,CACd,IAAI,IAAI,KAAK,IAAI,iCAAiC,IAAI,WAAW,KAAK,eAAe,EACrF,sCAAsC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EACjE,OAAO,IAAI,oBAAoB,OAAO,qBAAqB,EAC3D,2EAA2E,aAAa,CAAC,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG,CACzJ,CAAC;QACJ,CAAC;QACD,KAAK,YAAY;YACf,OAAO,yCAAyC,aAAa,CAAC,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,2FAA2F,CAAC;QACxN,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC;gBACvH,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChE,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,SAAS,CACd,SAAS,IAAI,kCAAkC,SAAS,SAAS,EACjE,6EAA6E,aAAa,CAAC,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG,EAC1J,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,SAAS,CACd,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,EAC5E,MAAM,IAAI,4BAA4B,MAAM,GAAG,EAC/C,OAAO,IAAI,oBAAoB,OAAO,qBAAqB,EAC3D,iCAAiC,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,uBAAuB,CACxG,CAAC;QACJ,CAAC;QACD,KAAK,2BAA2B;YAC9B,OAAO,sCAAsC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,4DAA4D,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC;QACtL,KAAK,cAAc;YACjB,OAAO,0CAA0C,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,sBAAsB,CAAC;QACzH,KAAK,aAAa;YAChB,OAAO,0CAA0C,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,sBAAsB,CAAC;QACzH,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5G,OAAO,mCAAmC,OAAO,CAAC,CAAC,CAAC,oBAAoB,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,6DAA6D,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC;QACzM,CAAC;QACD,KAAK,cAAc;YACjB,IAAI,IAAI,KAAK,WAAW;gBAAE,OAAO,wFAAwF,CAAC;YAC1H,OAAO,IAAI,KAAK,SAAS;gBACvB,CAAC,CAAC,gGAAgG;gBAClG,CAAC,CAAC,gFAAgF,CAAC;QACvF,KAAK,WAAW;YACd,OAAO,qDAAqD,CAAC;QAC/D,KAAK,cAAc;YACjB,OAAO,2BAA2B,IAAI,CAAC,mBAAmB,IAAI,EAAE,yDAAyD,CAAC;QAC5H,KAAK,iBAAiB;YACpB,OAAO,4GAA4G,CAAC;QACtH,KAAK,WAAW;YACd,OAAO,4EAA4E,CAAC;QACtF,KAAK,gBAAgB;YACnB,OAAO,iIAAiI,CAAC;QAC3I,KAAK,mBAAmB;YACtB,OAAO,oGAAoG,CAAC;QAC9G,KAAK,sBAAsB;YACzB,OAAO,oHAAoH,CAAC;QAC9H,KAAK,iBAAiB;YACpB,OAAO,sOAAsO,CAAC;QAChP,KAAK,mBAAmB;YACtB,OAAO,yIAAyI,CAAC;QACnJ,KAAK,cAAc;YACjB,OAAO,mIAAmI,CAAC;QAC7I,KAAK,kBAAkB;YACrB,OAAO,6LAA6L,CAAC;QACvM,KAAK,2BAA2B;YAC9B,OAAO,+FAA+F,CAAC;QACzG,KAAK,yBAAyB;YAC5B,OAAO,kEAAkE,CAAC;QAC5E,KAAK,uBAAuB;YAC1B,OAAO,gKAAgK,CAAC;QAC1K,KAAK,sBAAsB;YACzB,OAAO,sIAAsI,CAAC;QAChJ,KAAK,wBAAwB;YAC3B,OAAO,oOAAoO,CAAC;QAC9O,KAAK,kBAAkB;YACrB,OAAO,4EAA4E,CAAC;IACxF,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,IAAa,EACb,YAAqB,EACrB,eAAwB;IAExB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC;IAClE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC;IACxF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,QAAQ,MAAM,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEtF,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAChH,CAAC;IAED,IAAI,SAA6B,CAAC;IAClC,IAAI,QAAQ,KAAK,8BAA8B,EAAE,CAAC;QAChD,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjF,CAAC;SAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,UAAU,CAAC,CAAC;IACxF,CAAC;SAAM,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAqB;QAC7B,MAAM;QACN,QAAQ;QACR,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,IAAI;QACJ,OAAO;QACP,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClC,mBAAmB,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACzG,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC;IACF,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ;QACzB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,IAAI,CAAC,SAAS,EAAE,EAAE,eAAe,MAAM,EAAE,CAAC;QAC1E,CAAC,CAAC,CAAC,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAa;IAC1D,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAwBD,MAAM,cAAc,GAAyC;IAC3D,wBAAwB,EAAE;QACxB,UAAU,EAAE,0IAA0I;QACtJ,SAAS,EAAE,KAAK;KACjB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,iGAAiG;QAC7G,SAAS,EAAE,KAAK;KACjB;IACD,wBAAwB,EAAE;QACxB,UAAU,EAAE,2HAA2H;QACvI,SAAS,EAAE,KAAK;KACjB;IACD,sBAAsB,EAAE;QACtB,UAAU,EAAE,+HAA+H;QAC3I,SAAS,EAAE,KAAK;KACjB;IACD,iBAAiB,EAAE;QACjB,UAAU,EAAE,sEAAsE;QAClF,SAAS,EAAE,KAAK;KACjB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,sFAAsF;QAClG,SAAS,EAAE,KAAK;KACjB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,wGAAwG;QACpH,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,UAAU,EAAE,6FAA6F,UAAU,yBAAyB;QAC5I,SAAS,EAAE,IAAI;KAChB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,4EAA4E;QACxF,SAAS,EAAE,IAAI;KAChB;IACD,4BAA4B,EAAE;QAC5B,UAAU,EAAE,uIAAuI;QACnJ,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,gDAAgD;QAC5D,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,UAAU,EAAE,mEAAmE;QAC/E,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,gGAAgG;QAC5G,SAAS,EAAE,IAAI;KAChB;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAqB,CAAC,IAAI,cAAc,CAAC,aAAa,CAAC;IACnF,gGAAgG;IAChG,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QACzC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,EAAE;QACjG,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAA0C;IACxE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC;IAC3C,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAa;QACtB,eAAe,IAAI,EAAE;QACrB,YAAY,KAAK,CAAC,OAAO,IAAI,qBAAqB,EAAE;QACpD,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,wCAAwC,EAAE;QAC9G,eAAe,IAAI,CAAC,UAAU,EAAE;KACjC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EVOLINK_FILES_BASE_URL points uploads at a staging files-api. HTTPS is
|
|
3
|
+
* required except for loopback development hosts.
|
|
4
|
+
*/
|
|
5
|
+
export declare function filesApiBaseUrl(): string;
|
|
6
|
+
/**
|
|
7
|
+
* The credential sent to files-api. Absent: the caller's own API key. Signed-in
|
|
8
|
+
* hosted connections have no key of their own, so they pass a short-lived
|
|
9
|
+
* upload token from the gateway (POST /v1/files/upload-token) instead.
|
|
10
|
+
*/
|
|
11
|
+
export interface FileUploadAuth {
|
|
12
|
+
bearer: string;
|
|
13
|
+
}
|
|
1
14
|
export interface FileUploadData {
|
|
2
15
|
file_id: string;
|
|
3
16
|
file_name: string;
|
|
@@ -17,8 +30,25 @@ interface FileApiResponse<T = unknown> {
|
|
|
17
30
|
data?: T;
|
|
18
31
|
request_id?: string;
|
|
19
32
|
}
|
|
20
|
-
export declare function fileBase64Upload(base64Data: string, uploadPath?: string, fileName?: string): Promise<FileApiResponse<FileUploadData>>;
|
|
21
|
-
export
|
|
22
|
-
|
|
33
|
+
export declare function fileBase64Upload(base64Data: string, uploadPath?: string, fileName?: string, auth?: FileUploadAuth): Promise<FileApiResponse<FileUploadData>>;
|
|
34
|
+
export interface StreamUploadOptions {
|
|
35
|
+
uploadPath?: string;
|
|
36
|
+
fileName?: string;
|
|
37
|
+
auth?: FileUploadAuth;
|
|
38
|
+
/** Tool name sent as X-Evo-Tool. */
|
|
39
|
+
tool?: string;
|
|
40
|
+
/** Aborts the upload, for example when the incoming body turns out too large. */
|
|
41
|
+
signal?: AbortSignal;
|
|
42
|
+
/** Overall timeout; defaults to EVOLINK_MCP_WRITE_TIMEOUT_MS. */
|
|
43
|
+
timeoutMs?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Streams a file to files-api as multipart/form-data without holding it in
|
|
47
|
+
* memory. With a known size the request carries Content-Length; otherwise it
|
|
48
|
+
* is sent chunked.
|
|
49
|
+
*/
|
|
50
|
+
export declare function fileStreamUploadFrom(source: AsyncIterable<Uint8Array>, size: number | undefined, mime: string, originalName: string, options?: StreamUploadOptions): Promise<FileApiResponse<FileUploadData>>;
|
|
51
|
+
export declare function fileStreamUpload(filePath: string, fileSize: number, mime: string, originalName: string, uploadPath?: string, fileName?: string, auth?: FileUploadAuth): Promise<FileApiResponse<FileUploadData>>;
|
|
52
|
+
export declare function fileUrlUpload(fileUrl: string, uploadPath?: string, fileName?: string, auth?: FileUploadAuth): Promise<FileApiResponse<FileUploadData>>;
|
|
23
53
|
export {};
|
|
24
54
|
//# sourceMappingURL=file-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-client.d.ts","sourceRoot":"","sources":["../../../../../core/src/services/file-client.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,eAAe,CAAC,CAAC,GAAG,OAAO;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwCD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"file-client.d.ts","sourceRoot":"","sources":["../../../../../core/src/services/file-client.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAcxC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,eAAe,CAAC,CAAC,GAAG,OAAO;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwCD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAK1C;AAUD,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EACjC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAuC1C;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAE1C;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAK1C"}
|
|
@@ -5,11 +5,32 @@ import { getApiKey } from '../config.js';
|
|
|
5
5
|
import { ApiHttpError } from './api-client.js';
|
|
6
6
|
import { classifyGatewayError, formatGatewayError } from './error-handler.js';
|
|
7
7
|
import { DEFAULT_WRITE_TIMEOUT_MS, evoHeaders, fetchWithTimeout, newRunId, parseRetryAfter, readJsonBody, responseRequestId, timeoutFromEnv, } from './http-policy.js';
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const DEFAULT_FILES_API_BASE_URL = 'https://files-api.evolink.ai';
|
|
9
|
+
/**
|
|
10
|
+
* EVOLINK_FILES_BASE_URL points uploads at a staging files-api. HTTPS is
|
|
11
|
+
* required except for loopback development hosts.
|
|
12
|
+
*/
|
|
13
|
+
export function filesApiBaseUrl() {
|
|
14
|
+
const override = (process.env.EVOLINK_FILES_BASE_URL ?? '').trim().replace(/\/+$/, '');
|
|
15
|
+
if (!override)
|
|
16
|
+
return DEFAULT_FILES_API_BASE_URL;
|
|
17
|
+
let parsed;
|
|
18
|
+
try {
|
|
19
|
+
parsed = new URL(override);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
throw new Error(`EVOLINK_FILES_BASE_URL is not a valid URL: ${override}`);
|
|
23
|
+
}
|
|
24
|
+
const loopback = parsed.hostname === 'localhost' || parsed.hostname === '127.0.0.1';
|
|
25
|
+
if (parsed.protocol !== 'https:' && !(parsed.protocol === 'http:' && loopback)) {
|
|
26
|
+
throw new Error('EVOLINK_FILES_BASE_URL must use HTTPS (or HTTP on localhost).');
|
|
27
|
+
}
|
|
28
|
+
return override;
|
|
29
|
+
}
|
|
30
|
+
function requestHeaders(tool, auth) {
|
|
10
31
|
const runId = newRunId();
|
|
11
32
|
return {
|
|
12
|
-
'Authorization': `Bearer ${getApiKey()}`,
|
|
33
|
+
'Authorization': `Bearer ${auth?.bearer ?? getApiKey()}`,
|
|
13
34
|
...evoHeaders(tool),
|
|
14
35
|
'Idempotency-Key': runId,
|
|
15
36
|
'X-Evo-Run-Id': runId,
|
|
@@ -34,21 +55,21 @@ async function parseResponse(response) {
|
|
|
34
55
|
body.request_id = requestId;
|
|
35
56
|
return body;
|
|
36
57
|
}
|
|
37
|
-
async function jsonUpload(path, body) {
|
|
38
|
-
const response = await fetchWithTimeout(`${
|
|
58
|
+
async function jsonUpload(path, body, auth) {
|
|
59
|
+
const response = await fetchWithTimeout(`${filesApiBaseUrl()}${path}`, {
|
|
39
60
|
method: 'POST',
|
|
40
|
-
headers: { ...requestHeaders('upload_file'), 'Content-Type': 'application/json' },
|
|
61
|
+
headers: { ...requestHeaders('upload_file', auth), 'Content-Type': 'application/json' },
|
|
41
62
|
body: JSON.stringify(body),
|
|
42
63
|
}, timeoutFromEnv('EVOLINK_MCP_WRITE_TIMEOUT_MS', DEFAULT_WRITE_TIMEOUT_MS));
|
|
43
64
|
return parseResponse(response);
|
|
44
65
|
}
|
|
45
|
-
export async function fileBase64Upload(base64Data, uploadPath, fileName) {
|
|
66
|
+
export async function fileBase64Upload(base64Data, uploadPath, fileName, auth) {
|
|
46
67
|
const body = { base64_data: base64Data };
|
|
47
68
|
if (uploadPath)
|
|
48
69
|
body.upload_path = uploadPath;
|
|
49
70
|
if (fileName)
|
|
50
71
|
body.file_name = fileName;
|
|
51
|
-
return jsonUpload('/api/v1/files/upload/base64', body);
|
|
72
|
+
return jsonUpload('/api/v1/files/upload/base64', body, auth);
|
|
52
73
|
}
|
|
53
74
|
function multipartField(name, value) {
|
|
54
75
|
return Buffer.from(`Content-Disposition: form-data; name="${name}"\r\n\r\n${value}\r\n`);
|
|
@@ -56,14 +77,19 @@ function multipartField(name, value) {
|
|
|
56
77
|
function safeDispositionValue(value) {
|
|
57
78
|
return value.replaceAll(/["\r\n]/g, '_');
|
|
58
79
|
}
|
|
59
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Streams a file to files-api as multipart/form-data without holding it in
|
|
82
|
+
* memory. With a known size the request carries Content-Length; otherwise it
|
|
83
|
+
* is sent chunked.
|
|
84
|
+
*/
|
|
85
|
+
export async function fileStreamUploadFrom(source, size, mime, originalName, options = {}) {
|
|
60
86
|
const boundary = `----evolink-${randomUUID()}`;
|
|
61
87
|
const prefix = Buffer.from(`--${boundary}\r\nContent-Disposition: form-data; name="file"; filename="${safeDispositionValue(originalName)}"\r\nContent-Type: ${mime}\r\n\r\n`);
|
|
62
88
|
const fields = [];
|
|
63
|
-
if (uploadPath)
|
|
64
|
-
fields.push(multipartField('uploadPath', uploadPath));
|
|
65
|
-
if (fileName)
|
|
66
|
-
fields.push(multipartField('fileName', fileName));
|
|
89
|
+
if (options.uploadPath)
|
|
90
|
+
fields.push(multipartField('uploadPath', options.uploadPath));
|
|
91
|
+
if (options.fileName)
|
|
92
|
+
fields.push(multipartField('fileName', options.fileName));
|
|
67
93
|
const tailParts = [Buffer.from('\r\n')];
|
|
68
94
|
for (const field of fields) {
|
|
69
95
|
tailParts.push(Buffer.from(`--${boundary}\r\n`), field);
|
|
@@ -72,29 +98,34 @@ export async function fileStreamUpload(filePath, fileSize, mime, originalName, u
|
|
|
72
98
|
const suffix = Buffer.concat(tailParts);
|
|
73
99
|
async function* multipartBody() {
|
|
74
100
|
yield prefix;
|
|
75
|
-
for await (const chunk of
|
|
101
|
+
for await (const chunk of source) {
|
|
76
102
|
yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
77
103
|
}
|
|
78
104
|
yield suffix;
|
|
79
105
|
}
|
|
80
|
-
const headers = requestHeaders('upload_file');
|
|
106
|
+
const headers = requestHeaders(options.tool ?? 'upload_file', options.auth);
|
|
81
107
|
headers['Content-Type'] = `multipart/form-data; boundary=${boundary}`;
|
|
82
|
-
|
|
108
|
+
if (size !== undefined)
|
|
109
|
+
headers['Content-Length'] = String(prefix.length + size + suffix.length);
|
|
83
110
|
const init = {
|
|
84
111
|
method: 'POST',
|
|
85
112
|
headers,
|
|
86
113
|
body: Readable.from(multipartBody()),
|
|
87
114
|
duplex: 'half',
|
|
115
|
+
signal: options.signal,
|
|
88
116
|
};
|
|
89
|
-
const response = await fetchWithTimeout(`${
|
|
117
|
+
const response = await fetchWithTimeout(`${filesApiBaseUrl()}/api/v1/files/upload/stream`, init, options.timeoutMs ?? timeoutFromEnv('EVOLINK_MCP_WRITE_TIMEOUT_MS', DEFAULT_WRITE_TIMEOUT_MS));
|
|
90
118
|
return parseResponse(response);
|
|
91
119
|
}
|
|
92
|
-
export async function
|
|
120
|
+
export async function fileStreamUpload(filePath, fileSize, mime, originalName, uploadPath, fileName, auth) {
|
|
121
|
+
return fileStreamUploadFrom(createReadStream(filePath), fileSize, mime, originalName, { uploadPath, fileName, auth });
|
|
122
|
+
}
|
|
123
|
+
export async function fileUrlUpload(fileUrl, uploadPath, fileName, auth) {
|
|
93
124
|
const body = { file_url: fileUrl };
|
|
94
125
|
if (uploadPath)
|
|
95
126
|
body.upload_path = uploadPath;
|
|
96
127
|
if (fileName)
|
|
97
128
|
body.file_name = fileName;
|
|
98
|
-
return jsonUpload('/api/v1/files/upload/url', body);
|
|
129
|
+
return jsonUpload('/api/v1/files/upload/url', body, auth);
|
|
99
130
|
}
|
|
100
131
|
//# sourceMappingURL=file-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-client.js","sourceRoot":"","sources":["../../../../../core/src/services/file-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EACL,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,MAAM,
|
|
1
|
+
{"version":3,"file":"file-client.js","sourceRoot":"","sources":["../../../../../core/src/services/file-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
export declare const PREVIEW_LIMITS: {
|
|
3
|
+
readonly count: 2;
|
|
4
|
+
readonly edge: 384;
|
|
5
|
+
readonly outputBytes: number;
|
|
6
|
+
readonly imageBytes: number;
|
|
7
|
+
readonly videoBytes: number;
|
|
8
|
+
readonly timeoutMs: 15000;
|
|
9
|
+
readonly callBudgetMs: 55000;
|
|
10
|
+
};
|
|
11
|
+
export interface PreviewSource {
|
|
12
|
+
taskId: string;
|
|
13
|
+
url: string;
|
|
14
|
+
kind: 'image' | 'video';
|
|
15
|
+
}
|
|
16
|
+
export type Thumbnailer = (source: PreviewSource, signal: AbortSignal) => Promise<Buffer | undefined>;
|
|
17
|
+
/** Force a known local demuxer: do not let a mislabeled HTML, SVG or playlist choose its own decoder. */
|
|
18
|
+
export declare function previewFormat(data: Buffer, kind: PreviewSource['kind']): string | undefined;
|
|
19
|
+
/** Render only a small JPEG preview; the original file is never modified or replaced. */
|
|
20
|
+
export declare function decodePreview(data: Buffer, kind: PreviewSource['kind'], signal: AbortSignal): Promise<Buffer | undefined>;
|
|
21
|
+
export declare const createThumbnail: Thumbnailer;
|
|
22
|
+
/** Optional user-facing image blocks accompany, rather than replace, the original text and resource links. */
|
|
23
|
+
export declare function addResultPreviews(result: CallToolResult, thumbnailer?: Thumbnailer, parentSignal?: AbortSignal, remainingMs?: number): Promise<CallToolResult>;
|
|
24
|
+
//# sourceMappingURL=media-preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-preview.d.ts","sourceRoot":"","sources":["../../../../../core/src/services/media-preview.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,oCAAoC,CAAC;AAGvF,eAAO,MAAM,cAAc;;;;;;;;CAIjB,CAAC;AAEX,MAAM,WAAW,aAAa;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE;AACvF,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtG,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAW3F;AAED,yFAAyF;AACzF,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoC/H;AAGD,eAAO,MAAM,eAAe,EAAE,WAQ7B,CAAC;AAoBF,8GAA8G;AAC9G,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,GAAE,WAA6B,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,WAAW,GAAE,MAAiC,GAAG,OAAO,CAAC,cAAc,CAAC,CAoC/M"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { mkdtemp, writeFile, rm } from 'node:fs/promises';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { downloadPreview } from './preview-download.js';
|
|
6
|
+
export const PREVIEW_LIMITS = {
|
|
7
|
+
count: 2, edge: 384, outputBytes: 96 * 1024,
|
|
8
|
+
imageBytes: 8 * 1024 * 1024, videoBytes: 32 * 1024 * 1024,
|
|
9
|
+
timeoutMs: 15_000, callBudgetMs: 55_000,
|
|
10
|
+
};
|
|
11
|
+
/** Force a known local demuxer: do not let a mislabeled HTML, SVG or playlist choose its own decoder. */
|
|
12
|
+
export function previewFormat(data, kind) {
|
|
13
|
+
if (kind === 'image') {
|
|
14
|
+
if (data.subarray(0, 8).equals(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10])))
|
|
15
|
+
return 'png_pipe';
|
|
16
|
+
if (data[0] === 0xff && data[1] === 0xd8 && data[2] === 0xff)
|
|
17
|
+
return 'jpeg_pipe';
|
|
18
|
+
if (data.toString('ascii', 0, 4) === 'RIFF' && data.toString('ascii', 8, 12) === 'WEBP')
|
|
19
|
+
return 'webp_pipe';
|
|
20
|
+
if (/^GIF8[79]a$/.test(data.toString('ascii', 0, 6)))
|
|
21
|
+
return 'gif';
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
if (['ftyp', 'moov', 'mdat', 'wide', 'free'].includes(data.toString('ascii', 4, 8)))
|
|
25
|
+
return 'mov';
|
|
26
|
+
if (data.subarray(0, 4).equals(Buffer.from([0x1a, 0x45, 0xdf, 0xa3])))
|
|
27
|
+
return 'matroska';
|
|
28
|
+
}
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
/** Render only a small JPEG preview; the original file is never modified or replaced. */
|
|
32
|
+
export async function decodePreview(data, kind, signal) {
|
|
33
|
+
const format = previewFormat(data, kind);
|
|
34
|
+
if (!format || signal.aborted)
|
|
35
|
+
return undefined;
|
|
36
|
+
const directory = await mkdtemp(join(tmpdir(), 'evolink-preview-'));
|
|
37
|
+
try {
|
|
38
|
+
const input = join(directory, 'source');
|
|
39
|
+
await writeFile(input, data, { mode: 0o600 });
|
|
40
|
+
signal.throwIfAborted();
|
|
41
|
+
return await new Promise(resolve => {
|
|
42
|
+
const child = spawn('ffmpeg', [
|
|
43
|
+
'-hide_banner', '-loglevel', 'error', '-nostdin', '-max_alloc', '67108864',
|
|
44
|
+
'-threads', '1', '-filter_threads', '1', '-protocol_whitelist', 'file,pipe',
|
|
45
|
+
'-max_pixels', '16777216', '-f', format, '-i', input,
|
|
46
|
+
'-map', '0:v:0', '-frames:v', '1', '-an', '-sn', '-dn',
|
|
47
|
+
'-vf', `scale=w='min(${PREVIEW_LIMITS.edge},iw)':h='min(${PREVIEW_LIMITS.edge},ih)':force_original_aspect_ratio=decrease`,
|
|
48
|
+
'-threads', '1', '-c:v', 'mjpeg', '-q:v', '7', '-f', 'image2pipe', 'pipe:1',
|
|
49
|
+
], { stdio: ['ignore', 'pipe', 'ignore'] });
|
|
50
|
+
const chunks = [];
|
|
51
|
+
let size = 0, oversized = false;
|
|
52
|
+
const abort = () => child.kill('SIGKILL');
|
|
53
|
+
signal.addEventListener('abort', abort, { once: true });
|
|
54
|
+
if (signal.aborted)
|
|
55
|
+
abort();
|
|
56
|
+
child.stdout.on('data', (chunk) => {
|
|
57
|
+
size += chunk.length;
|
|
58
|
+
if (size > PREVIEW_LIMITS.outputBytes) {
|
|
59
|
+
oversized = true;
|
|
60
|
+
abort();
|
|
61
|
+
}
|
|
62
|
+
else
|
|
63
|
+
chunks.push(chunk);
|
|
64
|
+
});
|
|
65
|
+
child.on('error', () => { signal.removeEventListener('abort', abort); resolve(undefined); });
|
|
66
|
+
child.on('close', code => {
|
|
67
|
+
signal.removeEventListener('abort', abort);
|
|
68
|
+
resolve(code === 0 && !signal.aborted && !oversized ? Buffer.concat(chunks) : undefined);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
await rm(directory, { recursive: true, force: true });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
let inFlight = 0;
|
|
77
|
+
export const createThumbnail = async (source, signal) => {
|
|
78
|
+
// Extra previews are skipped during bursts; original delivery never queues behind a decoder.
|
|
79
|
+
if (inFlight >= 4)
|
|
80
|
+
return undefined;
|
|
81
|
+
inFlight++;
|
|
82
|
+
try {
|
|
83
|
+
const data = await downloadPreview(source.url, source.kind === 'image' ? PREVIEW_LIMITS.imageBytes : PREVIEW_LIMITS.videoBytes, signal);
|
|
84
|
+
return await decodePreview(data, source.kind, signal);
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
inFlight--;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
function sourcesOf(result) {
|
|
91
|
+
const structured = result.structuredContent;
|
|
92
|
+
if (!structured || result.isError || structured.ok === false)
|
|
93
|
+
return [];
|
|
94
|
+
const tasks = Array.isArray(structured.tasks) ? structured.tasks : [structured];
|
|
95
|
+
const sources = [];
|
|
96
|
+
const seen = new Set();
|
|
97
|
+
for (const task of tasks) {
|
|
98
|
+
if (!task || typeof task !== 'object' || task.status !== 'completed' || !Array.isArray(task.results))
|
|
99
|
+
continue;
|
|
100
|
+
for (const link of task.results) {
|
|
101
|
+
if (!link || typeof link.url !== 'string' || !['image', 'video'].includes(link.kind) || seen.has(link.url))
|
|
102
|
+
continue;
|
|
103
|
+
seen.add(link.url);
|
|
104
|
+
sources.push({ taskId: task.task_id, url: link.url, kind: link.kind });
|
|
105
|
+
if (sources.length === PREVIEW_LIMITS.count)
|
|
106
|
+
return sources;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return sources;
|
|
110
|
+
}
|
|
111
|
+
/** Optional user-facing image blocks accompany, rather than replace, the original text and resource links. */
|
|
112
|
+
export async function addResultPreviews(result, thumbnailer = createThumbnail, parentSignal, remainingMs = PREVIEW_LIMITS.timeoutMs) {
|
|
113
|
+
const sources = sourcesOf(result);
|
|
114
|
+
if (!sources.length || parentSignal?.aborted || remainingMs <= 0)
|
|
115
|
+
return result;
|
|
116
|
+
const controller = new AbortController();
|
|
117
|
+
const abort = () => controller.abort();
|
|
118
|
+
parentSignal?.addEventListener('abort', abort, { once: true });
|
|
119
|
+
const timeout = setTimeout(abort, Math.min(PREVIEW_LIMITS.timeoutMs, remainingMs));
|
|
120
|
+
const images = [];
|
|
121
|
+
const metadata = [];
|
|
122
|
+
try {
|
|
123
|
+
for (const source of sources) {
|
|
124
|
+
if (controller.signal.aborted)
|
|
125
|
+
break;
|
|
126
|
+
try {
|
|
127
|
+
const data = await new Promise((resolve, reject) => {
|
|
128
|
+
const cancelled = () => resolve(undefined);
|
|
129
|
+
controller.signal.addEventListener('abort', cancelled, { once: true });
|
|
130
|
+
Promise.resolve().then(() => thumbnailer(source, controller.signal)).then(resolve, reject)
|
|
131
|
+
.finally(() => controller.signal.removeEventListener('abort', cancelled));
|
|
132
|
+
if (controller.signal.aborted)
|
|
133
|
+
cancelled();
|
|
134
|
+
});
|
|
135
|
+
if (!data || controller.signal.aborted || data.length > PREVIEW_LIMITS.outputBytes || previewFormat(data, 'image') !== 'jpeg_pipe')
|
|
136
|
+
continue;
|
|
137
|
+
const contentIndex = result.content.length + images.length;
|
|
138
|
+
// Fractional priority makes some Codex clients reject the entire result.
|
|
139
|
+
images.push({ type: 'image', data: data.toString('base64'), mimeType: 'image/jpeg', annotations: { audience: ['user'] } });
|
|
140
|
+
metadata.push({ task_id: source.taskId, source_url: source.url, kind: source.kind === 'video' ? 'video_poster' : 'image_thumbnail', content_index: contentIndex, mime_type: 'image/jpeg' });
|
|
141
|
+
}
|
|
142
|
+
catch { /* A preview failure must not hide a successful paid generation or prompt a retry. */ }
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
finally {
|
|
146
|
+
clearTimeout(timeout);
|
|
147
|
+
parentSignal?.removeEventListener('abort', abort);
|
|
148
|
+
}
|
|
149
|
+
if (!images.length)
|
|
150
|
+
return result;
|
|
151
|
+
return {
|
|
152
|
+
...result, content: [...result.content, ...images],
|
|
153
|
+
structuredContent: { ...result.structuredContent, previews: metadata, preview_note: 'Small JPEG previews of the original results; video previews are still cover frames. Use the original links to view or download full-quality media. Preview display depends on the client.' },
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=media-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-preview.js","sourceRoot":"","sources":["../../../../../core/src/services/media-preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type MediaKind, type ModelParams } from '../data/model-params.js';
|
|
2
|
+
import type { ServerConfig } from '../config.js';
|
|
2
3
|
import { type PricedModel } from './pricing-client.js';
|
|
3
4
|
/** A model as the tools see it: documented parameters, published prices, or both. */
|
|
4
5
|
export interface CatalogEntry {
|
|
@@ -6,18 +7,20 @@ export interface CatalogEntry {
|
|
|
6
7
|
kind: MediaKind;
|
|
7
8
|
spec?: ModelParams;
|
|
8
9
|
priced?: PricedModel;
|
|
10
|
+
aliases?: string[];
|
|
11
|
+
title?: string;
|
|
9
12
|
}
|
|
10
13
|
export interface Catalog {
|
|
11
14
|
entries: CatalogEntry[];
|
|
12
15
|
/** Why prices are missing, when the pricing list could not be loaded. */
|
|
13
16
|
pricingWarning?: string;
|
|
14
17
|
}
|
|
15
|
-
/**
|
|
16
|
-
export declare function loadCatalog(): Promise<Catalog>;
|
|
18
|
+
/** Live available IDs are authoritative; their published aliases join documentation and prices. */
|
|
19
|
+
export declare function loadCatalog(config?: ServerConfig): Promise<Catalog>;
|
|
17
20
|
export declare function findEntry(catalog: Catalog, id: string): CatalogEntry | undefined;
|
|
18
21
|
export declare function suggestModels(catalog: Catalog, id: string, kind?: MediaKind): string[];
|
|
19
22
|
/** Looks a model up for one request; prices are best effort. */
|
|
20
|
-
export declare function resolveModel(id: string): Promise<{
|
|
23
|
+
export declare function resolveModel(id: string, config?: ServerConfig): Promise<{
|
|
21
24
|
catalog: Catalog;
|
|
22
25
|
entry?: CatalogEntry;
|
|
23
26
|
}>;
|