@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.
Files changed (122) hide show
  1. package/README.md +2 -2
  2. package/dist/core/src/branding.d.ts +3 -0
  3. package/dist/core/src/branding.d.ts.map +1 -0
  4. package/dist/core/src/branding.js +8 -0
  5. package/dist/core/src/branding.js.map +1 -0
  6. package/dist/core/src/config.d.ts +1 -1
  7. package/dist/core/src/config.d.ts.map +1 -1
  8. package/dist/core/src/config.js +3 -1
  9. package/dist/core/src/config.js.map +1 -1
  10. package/dist/core/src/data/model-constraints.d.ts +8 -0
  11. package/dist/core/src/data/model-constraints.d.ts.map +1 -0
  12. package/dist/core/src/data/model-constraints.js +25 -0
  13. package/dist/core/src/data/model-constraints.js.map +1 -0
  14. package/dist/core/src/data/model-params.d.ts +17 -0
  15. package/dist/core/src/data/model-params.d.ts.map +1 -1
  16. package/dist/core/src/data/model-params.generated.d.ts.map +1 -1
  17. package/dist/core/src/data/model-params.generated.js +1 -1
  18. package/dist/core/src/data/model-params.generated.js.map +1 -1
  19. package/dist/core/src/data/model-params.js +6 -1
  20. package/dist/core/src/data/model-params.js.map +1 -1
  21. package/dist/core/src/request-context.d.ts +19 -0
  22. package/dist/core/src/request-context.d.ts.map +1 -1
  23. package/dist/core/src/request-context.js +13 -0
  24. package/dist/core/src/request-context.js.map +1 -1
  25. package/dist/core/src/server.d.ts +21 -3
  26. package/dist/core/src/server.d.ts.map +1 -1
  27. package/dist/core/src/server.js +52 -13
  28. package/dist/core/src/server.js.map +1 -1
  29. package/dist/core/src/services/api-client.d.ts +15 -0
  30. package/dist/core/src/services/api-client.d.ts.map +1 -1
  31. package/dist/core/src/services/api-client.js +26 -0
  32. package/dist/core/src/services/api-client.js.map +1 -1
  33. package/dist/core/src/services/catalog-client.d.ts +14 -0
  34. package/dist/core/src/services/catalog-client.d.ts.map +1 -0
  35. package/dist/core/src/services/catalog-client.js +42 -0
  36. package/dist/core/src/services/catalog-client.js.map +1 -0
  37. package/dist/core/src/services/error-handler.d.ts.map +1 -1
  38. package/dist/core/src/services/error-handler.js +27 -14
  39. package/dist/core/src/services/error-handler.js.map +1 -1
  40. package/dist/core/src/services/file-client.d.ts +33 -3
  41. package/dist/core/src/services/file-client.d.ts.map +1 -1
  42. package/dist/core/src/services/file-client.js +50 -19
  43. package/dist/core/src/services/file-client.js.map +1 -1
  44. package/dist/core/src/services/media-preview.d.ts +24 -0
  45. package/dist/core/src/services/media-preview.d.ts.map +1 -0
  46. package/dist/core/src/services/media-preview.js +156 -0
  47. package/dist/core/src/services/media-preview.js.map +1 -0
  48. package/dist/core/src/services/model-catalog.d.ts +6 -3
  49. package/dist/core/src/services/model-catalog.d.ts.map +1 -1
  50. package/dist/core/src/services/model-catalog.js +38 -16
  51. package/dist/core/src/services/model-catalog.js.map +1 -1
  52. package/dist/core/src/services/param-validator.d.ts.map +1 -1
  53. package/dist/core/src/services/param-validator.js +36 -0
  54. package/dist/core/src/services/param-validator.js.map +1 -1
  55. package/dist/core/src/services/preview-download.d.ts +11 -0
  56. package/dist/core/src/services/preview-download.d.ts.map +1 -0
  57. package/dist/core/src/services/preview-download.js +106 -0
  58. package/dist/core/src/services/preview-download.js.map +1 -0
  59. package/dist/core/src/services/pricing-client.d.ts +21 -3
  60. package/dist/core/src/services/pricing-client.d.ts.map +1 -1
  61. package/dist/core/src/services/pricing-client.js +86 -4
  62. package/dist/core/src/services/pricing-client.js.map +1 -1
  63. package/dist/core/src/services/upload-policy.d.ts +2 -0
  64. package/dist/core/src/services/upload-policy.d.ts.map +1 -1
  65. package/dist/core/src/services/upload-policy.js +8 -0
  66. package/dist/core/src/services/upload-policy.js.map +1 -1
  67. package/dist/core/src/services/upload-slots.d.ts +63 -0
  68. package/dist/core/src/services/upload-slots.d.ts.map +1 -0
  69. package/dist/core/src/services/upload-slots.js +24 -0
  70. package/dist/core/src/services/upload-slots.js.map +1 -0
  71. package/dist/core/src/services/utm.d.ts +29 -0
  72. package/dist/core/src/services/utm.d.ts.map +1 -0
  73. package/dist/core/src/services/utm.js +64 -0
  74. package/dist/core/src/services/utm.js.map +1 -0
  75. package/dist/core/src/tool-guidance.d.ts +6 -0
  76. package/dist/core/src/tool-guidance.d.ts.map +1 -0
  77. package/dist/core/src/tool-guidance.js +49 -0
  78. package/dist/core/src/tool-guidance.js.map +1 -0
  79. package/dist/core/src/tools/check-balance.d.ts.map +1 -1
  80. package/dist/core/src/tools/check-balance.js +13 -9
  81. package/dist/core/src/tools/check-balance.js.map +1 -1
  82. package/dist/core/src/tools/estimate-cost.d.ts.map +1 -1
  83. package/dist/core/src/tools/estimate-cost.js +18 -12
  84. package/dist/core/src/tools/estimate-cost.js.map +1 -1
  85. package/dist/core/src/tools/generate.d.ts.map +1 -1
  86. package/dist/core/src/tools/generate.js +67 -14
  87. package/dist/core/src/tools/generate.js.map +1 -1
  88. package/dist/core/src/tools/get-model.d.ts +2 -1
  89. package/dist/core/src/tools/get-model.d.ts.map +1 -1
  90. package/dist/core/src/tools/get-model.js +27 -7
  91. package/dist/core/src/tools/get-model.js.map +1 -1
  92. package/dist/core/src/tools/get-task.d.ts.map +1 -1
  93. package/dist/core/src/tools/get-task.js +3 -2
  94. package/dist/core/src/tools/get-task.js.map +1 -1
  95. package/dist/core/src/tools/list-tasks.d.ts.map +1 -1
  96. package/dist/core/src/tools/list-tasks.js +10 -3
  97. package/dist/core/src/tools/list-tasks.js.map +1 -1
  98. package/dist/core/src/tools/prepare-upload.d.ts +6 -0
  99. package/dist/core/src/tools/prepare-upload.d.ts.map +1 -0
  100. package/dist/core/src/tools/prepare-upload.js +134 -0
  101. package/dist/core/src/tools/prepare-upload.js.map +1 -0
  102. package/dist/core/src/tools/search-models.d.ts +2 -1
  103. package/dist/core/src/tools/search-models.d.ts.map +1 -1
  104. package/dist/core/src/tools/search-models.js +11 -5
  105. package/dist/core/src/tools/search-models.js.map +1 -1
  106. package/dist/core/src/tools/shared.d.ts +7 -2
  107. package/dist/core/src/tools/shared.d.ts.map +1 -1
  108. package/dist/core/src/tools/shared.js +12 -4
  109. package/dist/core/src/tools/shared.js.map +1 -1
  110. package/dist/core/src/tools/task-format.d.ts +16 -0
  111. package/dist/core/src/tools/task-format.d.ts.map +1 -1
  112. package/dist/core/src/tools/task-format.js +85 -11
  113. package/dist/core/src/tools/task-format.js.map +1 -1
  114. package/dist/core/src/tools/upload-file.d.ts +10 -0
  115. package/dist/core/src/tools/upload-file.d.ts.map +1 -1
  116. package/dist/core/src/tools/upload-file.js +36 -6
  117. package/dist/core/src/tools/upload-file.js.map +1 -1
  118. package/dist/core/src/version.d.ts +1 -1
  119. package/dist/core/src/version.js +1 -1
  120. package/dist/evolink-media/src/index.js +2 -0
  121. package/dist/evolink-media/src/index.js.map +1 -1
  122. 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
- return TASK_ERROR_MAP[code] ?? TASK_ERROR_MAP.unknown_error;
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":"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"}
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../../../core/src/services/error-handler.ts"],"names":[],"mappings":"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"}
@@ -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 declare function fileStreamUpload(filePath: string, fileSize: number, mime: string, originalName: string, uploadPath?: string, fileName?: string): Promise<FileApiResponse<FileUploadData>>;
22
- export declare function fileUrlUpload(fileUrl: string, uploadPath?: string, fileName?: string): Promise<FileApiResponse<FileUploadData>>;
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,GAChB,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAK1C;AAUD,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,GAChB,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAsC1C;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAK1C"}
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 FILES_API_BASE_URL = 'https://files-api.evolink.ai';
9
- function requestHeaders(tool) {
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(`${FILES_API_BASE_URL}${path}`, {
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
- export async function fileStreamUpload(filePath, fileSize, mime, originalName, uploadPath, fileName) {
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 createReadStream(filePath)) {
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
- headers['Content-Length'] = String(prefix.length + fileSize + suffix.length);
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(`${FILES_API_BASE_URL}/api/v1/files/upload/stream`, init, timeoutFromEnv('EVOLINK_MCP_WRITE_TIMEOUT_MS', DEFAULT_WRITE_TIMEOUT_MS));
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 fileUrlUpload(fileUrl, uploadPath, fileName) {
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":"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"}
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
- /** Merges the bundled parameter index with the live price list; works without prices if the list is unreachable. */
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
  }>;