@bedolla/enriweb 0.1.6 → 0.1.8

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 (56) hide show
  1. package/README.md +48 -20
  2. package/dist/client/EnriProxyClient.d.ts +143 -6
  3. package/dist/client/EnriProxyClient.d.ts.map +1 -1
  4. package/dist/client/EnriProxyClient.js +208 -33
  5. package/dist/client/EnriProxyClient.js.map +1 -1
  6. package/dist/index.js +58 -18
  7. package/dist/index.js.map +1 -1
  8. package/dist/package-info.d.ts +26 -0
  9. package/dist/package-info.d.ts.map +1 -1
  10. package/dist/package-info.js +29 -2
  11. package/dist/package-info.js.map +1 -1
  12. package/dist/server/EnriWebServer.d.ts +33 -0
  13. package/dist/server/EnriWebServer.d.ts.map +1 -1
  14. package/dist/server/EnriWebServer.js +322 -23
  15. package/dist/server/EnriWebServer.js.map +1 -1
  16. package/dist/shared/Utf8SafeTextSlicer.d.ts +47 -0
  17. package/dist/shared/Utf8SafeTextSlicer.d.ts.map +1 -0
  18. package/dist/shared/Utf8SafeTextSlicer.js +97 -0
  19. package/dist/shared/Utf8SafeTextSlicer.js.map +1 -0
  20. package/dist/shared/validation.d.ts +13 -1
  21. package/dist/shared/validation.d.ts.map +1 -1
  22. package/dist/shared/validation.js +27 -14
  23. package/dist/shared/validation.js.map +1 -1
  24. package/dist/tools/WebFetchNpmProjection.d.ts +143 -0
  25. package/dist/tools/WebFetchNpmProjection.d.ts.map +1 -0
  26. package/dist/tools/WebFetchNpmProjection.js +480 -0
  27. package/dist/tools/WebFetchNpmProjection.js.map +1 -0
  28. package/dist/tools/WebFetchParamsParser.d.ts +26 -0
  29. package/dist/tools/WebFetchParamsParser.d.ts.map +1 -0
  30. package/dist/tools/WebFetchParamsParser.js +157 -0
  31. package/dist/tools/WebFetchParamsParser.js.map +1 -0
  32. package/dist/tools/WebFetchRangesExecutor.d.ts +86 -0
  33. package/dist/tools/WebFetchRangesExecutor.d.ts.map +1 -0
  34. package/dist/tools/WebFetchRangesExecutor.js +277 -0
  35. package/dist/tools/WebFetchRangesExecutor.js.map +1 -0
  36. package/dist/tools/WebFetchTool.d.ts +186 -81
  37. package/dist/tools/WebFetchTool.d.ts.map +1 -1
  38. package/dist/tools/WebFetchTool.js +142 -425
  39. package/dist/tools/WebFetchTool.js.map +1 -1
  40. package/dist/tools/WebFetchToolTextFormatter.d.ts +57 -0
  41. package/dist/tools/WebFetchToolTextFormatter.d.ts.map +1 -0
  42. package/dist/tools/WebFetchToolTextFormatter.js +135 -0
  43. package/dist/tools/WebFetchToolTextFormatter.js.map +1 -0
  44. package/dist/tools/WebSearchRegistryHttpReader.d.ts +116 -0
  45. package/dist/tools/WebSearchRegistryHttpReader.d.ts.map +1 -0
  46. package/dist/tools/WebSearchRegistryHttpReader.js +157 -0
  47. package/dist/tools/WebSearchRegistryHttpReader.js.map +1 -0
  48. package/dist/tools/WebSearchRegistryVerifier.d.ts +103 -7
  49. package/dist/tools/WebSearchRegistryVerifier.d.ts.map +1 -1
  50. package/dist/tools/WebSearchRegistryVerifier.js +375 -135
  51. package/dist/tools/WebSearchRegistryVerifier.js.map +1 -1
  52. package/dist/tools/WebSearchTool.d.ts +78 -0
  53. package/dist/tools/WebSearchTool.d.ts.map +1 -1
  54. package/dist/tools/WebSearchTool.js +191 -21
  55. package/dist/tools/WebSearchTool.js.map +1 -1
  56. package/package.json +3 -2
@@ -6,10 +6,75 @@
6
6
  * - POST /v1/tools/web_fetch
7
7
  *
8
8
  * @module client/EnriProxyClient
9
+ *
10
+ * @remarks Size note (~950 lines, documented exception to the <=700 policy):
11
+ * one file currently owns the transport (dual-timeout raw HTTP, abort
12
+ * labeling, response-size ceilings), the wire payload builders, the typed
13
+ * response contracts, and the Spanish error mapping. The planned split is a
14
+ * dedicated `EnriProxyHttpTransport` module; until that batch, moving any
15
+ * single piece would duplicate the carefully paired timeout/abort/cap
16
+ * invariants that the tests pin together.
9
17
  */
10
18
  import { request as httpRequest } from "node:http";
11
19
  import { request as httpsRequest } from "node:https";
12
20
  import { URL } from "node:url";
21
+ import { sliceUtf8Safe } from "../shared/Utf8SafeTextSlicer.js";
22
+ /**
23
+ * Default ceiling for one proxied response body.
24
+ *
25
+ * @remarks
26
+ * Generous for the default 200k-char budget; larger `max_chars` budgets
27
+ * derive a higher ceiling via {@link resolveMaxResponseBytes}.
28
+ */
29
+ const DEFAULT_MAX_RESPONSE_BYTES = 20 * 1024 * 1024;
30
+ /**
31
+ * Derives the per-request response size ceiling from the content budget.
32
+ *
33
+ * @remarks
34
+ * EnriProxy answers JSON, so every character may expand up to ~6 bytes
35
+ * (`\uXXXX` escapes, quotes, newlines). A known `maxChars` raises the
36
+ * ceiling to `6 × maxChars + 1MB` so a legitimate ~4M-char capture rich in
37
+ * escapes is not rejected mid-stream.
38
+ *
39
+ * @param maxChars - Requested content budget in characters, when known.
40
+ * @returns Maximum accepted response body in bytes.
41
+ */
42
+ export function resolveMaxResponseBytes(maxChars) {
43
+ if (maxChars === undefined) {
44
+ return DEFAULT_MAX_RESPONSE_BYTES;
45
+ }
46
+ return Math.max(DEFAULT_MAX_RESPONSE_BYTES, 6 * maxChars + 1024 * 1024);
47
+ }
48
+ /**
49
+ * Upper character budget accepted from one tool call.
50
+ *
51
+ * @remarks
52
+ * Single source of truth for the shared 4M wire ceiling: the client clamps
53
+ * every request payload with it and the tool layer imports the same constant
54
+ * so the documented ceiling cannot drift between modules.
55
+ */
56
+ export const MAX_WIRE_MAX_CHARS = 4_000_000;
57
+ /**
58
+ * Detects a delete-cursor web fetch request.
59
+ *
60
+ * @param params - Web fetch request union member
61
+ * @returns True when the request deletes a cursor.
62
+ */
63
+ function isDeleteRequest(params) {
64
+ return "action" in params && params.action === "delete";
65
+ }
66
+ /**
67
+ * Normalizes one max_chars budget to a positive integer within the ceiling.
68
+ *
69
+ * @param value - Raw budget value.
70
+ * @returns Normalized budget, or undefined when unusable.
71
+ */
72
+ function normalizeMaxChars(value) {
73
+ if (typeof value !== "number" || !Number.isFinite(value)) {
74
+ return undefined;
75
+ }
76
+ return Math.min(MAX_WIRE_MAX_CHARS, Math.max(1, Math.trunc(value)));
77
+ }
13
78
  /**
14
79
  * Error thrown when EnriProxy returns a non-2xx HTTP response.
15
80
  */
@@ -75,7 +140,7 @@ export class EnriProxyClient {
75
140
  * @param signal - Optional caller abort signal
76
141
  * @returns Search response
77
142
  */
78
- async webSearch(params, signal) {
143
+ async webSearch(params, signal, options) {
79
144
  const url = this.buildUrl("/v1/tools/web_search");
80
145
  const payload = {
81
146
  query: params.query
@@ -98,28 +163,29 @@ export class EnriProxyClient {
98
163
  if (typeof params.searchPrompt === "string" && params.searchPrompt.trim()) {
99
164
  payload["search_prompt"] = params.searchPrompt.trim();
100
165
  }
101
- const result = await this.requestJson("POST", url, payload, this.timeoutMs, signal);
166
+ const result = await this.requestJson("POST", url, payload, this.timeoutMs, signal, options);
102
167
  if (result.status < 200 || result.status >= 300) {
103
- throw new EnriProxyHttpError(`La búsqueda web falló (HTTP ${result.status}).`, result.status, result.headers, result.body.slice(0, 4000));
168
+ throw new EnriProxyHttpError(`La búsqueda web falló (HTTP ${result.status}). ${EnriProxyClient.describeHttpStatus(result.status)}`.trimEnd(), result.status, result.headers, result.body.slice(0, 4000));
104
169
  }
105
170
  try {
106
171
  return JSON.parse(result.body);
107
172
  }
108
173
  catch (error) {
109
- throw new Error(`Respuesta no JSON de EnriProxy en /v1/tools/web_search (HTTP ${String(result.status)}): ${error instanceof Error ? error.message : String(error)}`);
174
+ throw new Error(`Respuesta no JSON de EnriProxy en /v1/tools/web_search (HTTP ${String(result.status)}): ${EnriProxyClient.describeUnparseableBody(error)}`);
110
175
  }
111
176
  }
112
- /**
113
- * Executes a web fetch via EnriProxy.
114
- *
115
- * @param params - Fetch parameters
116
- * @param signal - Optional caller abort signal
117
- * @returns Fetch response
118
- */
119
- async webFetch(params, signal) {
177
+ async webFetch(params, signal, options) {
120
178
  const url = this.buildUrl("/v1/tools/web_fetch");
121
179
  const payload = {};
122
- if ("cursor" in params) {
180
+ if (isDeleteRequest(params)) {
181
+ const cursor = params.cursor.trim();
182
+ if (!cursor) {
183
+ throw new Error("webFetch requiere un cursor no vacío.");
184
+ }
185
+ payload["cursor"] = cursor;
186
+ payload["action"] = "delete";
187
+ }
188
+ else if ("cursor" in params) {
123
189
  const cursor = params.cursor.trim();
124
190
  if (!cursor) {
125
191
  throw new Error("webFetch requiere un cursor no vacío.");
@@ -129,10 +195,16 @@ export class EnriProxyClient {
129
195
  payload["offset_chars"] = Math.max(0, Math.trunc(params.offsetChars));
130
196
  }
131
197
  if (typeof params.limitChars === "number" && Number.isFinite(params.limitChars)) {
132
- payload["limit_chars"] = Math.max(1, Math.trunc(params.limitChars));
198
+ const limitChars = Math.trunc(params.limitChars);
199
+ // A zero limit means "no explicit limit" (tool contract); only send
200
+ // positive limits so direct callers agree with the tool layer.
201
+ if (limitChars !== 0) {
202
+ payload["limit_chars"] = Math.max(1, limitChars);
203
+ }
133
204
  }
134
- if (typeof params.maxChars === "number" && Number.isFinite(params.maxChars)) {
135
- payload["max_chars"] = Math.max(1, Math.trunc(params.maxChars));
205
+ const cursorMaxChars = normalizeMaxChars(params.maxChars);
206
+ if (cursorMaxChars !== undefined) {
207
+ payload["max_chars"] = cursorMaxChars;
136
208
  }
137
209
  }
138
210
  else {
@@ -140,8 +212,9 @@ export class EnriProxyClient {
140
212
  if (typeof params.prompt === "string" && params.prompt.trim()) {
141
213
  payload["prompt"] = params.prompt.trim();
142
214
  }
143
- if (typeof params.maxChars === "number") {
144
- payload["max_chars"] = params.maxChars;
215
+ const urlMaxChars = normalizeMaxChars(params.maxChars);
216
+ if (urlMaxChars !== undefined) {
217
+ payload["max_chars"] = urlMaxChars;
145
218
  }
146
219
  if (params.format === "markdown" || params.format === "text" || params.format === "html") {
147
220
  payload["format"] = params.format;
@@ -162,19 +235,72 @@ export class EnriProxyClient {
162
235
  payload["include_metadata"] = false;
163
236
  }
164
237
  if (typeof params.anchor === "string" && params.anchor.trim()) {
165
- payload["anchor"] = params.anchor.trim().replace(/^#+/, "").slice(0, 300);
238
+ const anchor = sliceUtf8Safe(params.anchor.trim().replace(/^#+/, "").trim(), 0, 300);
239
+ if (anchor) {
240
+ payload["anchor"] = anchor;
241
+ }
166
242
  }
167
243
  }
168
- const result = await this.requestJson("POST", url, payload, this.timeoutMs, signal);
244
+ const requestMaxChars = isDeleteRequest(params)
245
+ ? undefined
246
+ : normalizeMaxChars(params.maxChars);
247
+ const transportOptions = {
248
+ ...options,
249
+ maxResponseBytes: options?.maxResponseBytes ?? resolveMaxResponseBytes(requestMaxChars)
250
+ };
251
+ const result = await this.requestJson("POST", url, payload, this.timeoutMs, signal, transportOptions);
169
252
  if (result.status < 200 || result.status >= 300) {
170
- throw new EnriProxyHttpError(`El fetch web falló (HTTP ${result.status}).`, result.status, result.headers, result.body.slice(0, 4000));
253
+ throw new EnriProxyHttpError(`El fetch web falló (HTTP ${result.status}). ${EnriProxyClient.describeHttpStatus(result.status)}`.trimEnd(), result.status, result.headers, result.body.slice(0, 4000));
171
254
  }
255
+ let parsed;
172
256
  try {
173
- return JSON.parse(result.body);
257
+ parsed = JSON.parse(result.body);
174
258
  }
175
259
  catch (error) {
176
- throw new Error(`Respuesta no JSON de EnriProxy en /v1/tools/web_fetch (HTTP ${String(result.status)}): ${error instanceof Error ? error.message : String(error)}`);
260
+ throw new Error(`Respuesta no JSON de EnriProxy en /v1/tools/web_fetch (HTTP ${String(result.status)}): ${EnriProxyClient.describeUnparseableBody(error)}`);
261
+ }
262
+ if (isDeleteRequest(params)) {
263
+ const record = typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
264
+ ? parsed
265
+ : {};
266
+ return {
267
+ deleted: record["deleted"] === true,
268
+ cursor: typeof record["cursor"] === "string" ? record["cursor"] : params.cursor
269
+ };
270
+ }
271
+ return parsed;
272
+ }
273
+ /**
274
+ * Summarizes a response-body parse failure as a bounded Spanish tail.
275
+ *
276
+ * @remarks
277
+ * V8's parser message ("Unexpected token …") is English jargon that would
278
+ * reach the model verbatim through the tool result; it is reduced to a
279
+ * Spanish label plus at most 80 characters of raw parser detail.
280
+ *
281
+ * @param error - Failure thrown while parsing the proxy response body.
282
+ * @returns Short Spanish summary for a model-facing error message.
283
+ */
284
+ static describeUnparseableBody(error) {
285
+ const raw = error instanceof Error ? error.message : String(error);
286
+ return `cuerpo de respuesta no parseable (${sliceUtf8Safe(raw, 0, 80)})`;
287
+ }
288
+ /**
289
+ * Summarizes one non-2xx HTTP status as bounded Spanish guidance.
290
+ *
291
+ * @remarks
292
+ * The raw HTTP client does not follow redirects: an `ENRIPROXY_URL` behind
293
+ * a 301/302/303/307/308 would otherwise surface as a bare status code with
294
+ * no hint that the server configuration (not the call) must change.
295
+ *
296
+ * @param status - HTTP status returned by the server.
297
+ * @returns Spanish guidance suffix (may be empty).
298
+ */
299
+ static describeHttpStatus(status) {
300
+ if (status === 301 || status === 302 || status === 303 || status === 307 || status === 308) {
301
+ return "El servidor respondió con una redirección que este cliente no sigue: configure ENRIPROXY_URL con la URL final (sin redirección) y reintente.";
177
302
  }
303
+ return "";
178
304
  }
179
305
  /**
180
306
  * Builds an absolute URL relative to the configured base URL.
@@ -201,13 +327,13 @@ export class EnriProxyClient {
201
327
  * @param signal - Optional caller abort signal
202
328
  * @returns HTTP result
203
329
  */
204
- async requestJson(method, url, jsonBody, timeoutMs, signal) {
330
+ async requestJson(method, url, jsonBody, timeoutMs, signal, options) {
205
331
  const body = JSON.stringify(jsonBody);
206
332
  const headers = {
207
333
  "Content-Type": "application/json",
208
334
  "Content-Length": String(Buffer.byteLength(body))
209
335
  };
210
- return this.requestRaw(method, url, headers, Buffer.from(body, "utf8"), timeoutMs, signal);
336
+ return this.requestRaw(method, url, headers, Buffer.from(body, "utf8"), timeoutMs, signal, options);
211
337
  }
212
338
  /**
213
339
  * Sends an HTTP request with optional headers and body.
@@ -217,19 +343,43 @@ export class EnriProxyClient {
217
343
  * @param headers - Request headers
218
344
  * @param body - Request body
219
345
  * @param timeoutMs - Timeout in milliseconds
220
- * @param signal - Optional caller abort signal (destroys the request on abort)
346
+ * @param signal - Optional abort signal (destroys the request on abort)
347
+ * @param options - Optional transport options (caller signal labeling, size ceiling)
221
348
  * @returns HTTP result
222
349
  */
223
- async requestRaw(method, url, headers, body, timeoutMs, signal) {
350
+ async requestRaw(method, url, headers, body, timeoutMs, signal, options) {
224
351
  const isHttps = url.protocol === "https:";
225
352
  const reqFn = isHttps ? httpsRequest : httpRequest;
226
353
  const requestHeaders = {
227
354
  Authorization: `Bearer ${this.apiKey}`,
228
355
  ...(headers ?? {})
229
356
  };
357
+ // When the caller wraps its signal (caller abort + subfetch timeout) it
358
+ // also passes `callerSignal`: an abort with a live caller signal means
359
+ // the subfetch timeout fired, not a client cancellation.
360
+ const callerSignal = options?.callerSignal;
361
+ const abortMessage = () => {
362
+ if (callerSignal !== undefined && !callerSignal.aborted) {
363
+ return `La petición expiró después de ${String(options?.subfetchTimeoutMs ?? timeoutMs)}ms`;
364
+ }
365
+ return "La petición fue cancelada por el cliente.";
366
+ };
230
367
  return await new Promise((resolve, reject) => {
368
+ let settled = false;
369
+ const settleResolve = (result) => {
370
+ if (!settled) {
371
+ settled = true;
372
+ resolve(result);
373
+ }
374
+ };
375
+ const settleReject = (error) => {
376
+ if (!settled) {
377
+ settled = true;
378
+ reject(error);
379
+ }
380
+ };
231
381
  if (signal?.aborted) {
232
- reject(new Error("La petición fue cancelada por el cliente."));
382
+ settleReject(new Error(abortMessage()));
233
383
  return;
234
384
  }
235
385
  const req = reqFn(url, {
@@ -238,19 +388,25 @@ export class EnriProxyClient {
238
388
  }, (res) => {
239
389
  const chunks = [];
240
390
  let received = 0;
241
- const maxResponseBytes = 20 * 1024 * 1024;
391
+ const maxResponseBytes = options?.maxResponseBytes ?? DEFAULT_MAX_RESPONSE_BYTES;
242
392
  res.on("data", (chunk) => {
243
393
  received += chunk.length;
244
394
  if (received > maxResponseBytes) {
245
395
  cleanupAbort();
246
- req.destroy(new Error("La respuesta excedió el tamaño máximo permitido."));
396
+ settleReject(new Error("La respuesta excedió el tamaño máximo permitido."));
397
+ req.destroy();
247
398
  return;
248
399
  }
249
400
  chunks.push(chunk);
250
401
  });
402
+ res.on("error", (error) => {
403
+ cleanupAbort();
404
+ req.destroy();
405
+ settleReject(error);
406
+ });
251
407
  res.on("end", () => {
252
408
  cleanupAbort();
253
- resolve({
409
+ settleResolve({
254
410
  status: res.statusCode ?? 0,
255
411
  headers: res.headers,
256
412
  body: Buffer.concat(chunks).toString("utf8")
@@ -258,16 +414,25 @@ export class EnriProxyClient {
258
414
  });
259
415
  });
260
416
  const cleanupAbort = () => {
417
+ try {
418
+ req.setTimeout(0);
419
+ }
420
+ catch {
421
+ // Best-effort timer disarm on finished sockets.
422
+ }
423
+ if (totalBudgetTimer !== undefined) {
424
+ clearTimeout(totalBudgetTimer);
425
+ }
261
426
  if (signal !== undefined) {
262
427
  signal.removeEventListener("abort", onAbort);
263
428
  }
264
429
  };
265
430
  const onAbort = () => {
266
- req.destroy(new Error("La petición fue cancelada por el cliente."));
431
+ req.destroy(new Error(abortMessage()));
267
432
  };
268
433
  const onError = (error) => {
269
434
  cleanupAbort();
270
- reject(error);
435
+ settleReject(error);
271
436
  };
272
437
  const onTimeout = () => {
273
438
  cleanupAbort();
@@ -277,7 +442,17 @@ export class EnriProxyClient {
277
442
  signal.addEventListener("abort", onAbort, { once: true });
278
443
  }
279
444
  req.on("error", onError);
445
+ // Socket-inactivity timeout (per-chunk deadline): a slow-drip response
446
+ // could otherwise extend the documented budget indefinitely.
280
447
  req.setTimeout(timeoutMs, onTimeout);
448
+ // Total-budget timer: bounds the whole request wall-clock time so the
449
+ // documented ENRIWEB_TIMEOUT_MS / ENRIWEB_SEARCH_TIMEOUT_MS budgets
450
+ // hold even when chunks keep arriving (matching EnriCode's
451
+ // AbortSignal.timeout semantics).
452
+ const totalBudgetTimer = setTimeout(() => {
453
+ req.destroy(new Error(`La petición expiró después de ${timeoutMs}ms (presupuesto total)`));
454
+ }, timeoutMs);
455
+ totalBudgetTimer.unref?.();
281
456
  if (body && body.length > 0) {
282
457
  req.write(body);
283
458
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EnriProxyClient.js","sourceRoot":"","sources":["../../src/client/EnriProxyClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnriProxyClient.js","sourceRoot":"","sources":["../../src/client/EnriProxyClient.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,12 +7,13 @@
7
7
  * @module index
8
8
  */
9
9
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
10
- import { EnriProxyClient } from "./client/EnriProxyClient.js";
10
+ import { EnriProxyClient, MAX_WIRE_MAX_CHARS } from "./client/EnriProxyClient.js";
11
11
  import { WebSearchTool } from "./tools/WebSearchTool.js";
12
12
  import { WebFetchTool } from "./tools/WebFetchTool.js";
13
13
  import { WebSearchRegistryVerifier } from "./tools/WebSearchRegistryVerifier.js";
14
14
  import { EnriWebServer } from "./server/EnriWebServer.js";
15
15
  import { packageInfoService } from "./package-info.js";
16
+ import { assertHttpUrl } from "./shared/validation.js";
16
17
  /**
17
18
  * Environment variable for EnriProxy base URL.
18
19
  */
@@ -25,6 +26,10 @@ const ENRIPROXY_API_KEY_ENV = "ENRIPROXY_API_KEY";
25
26
  * Environment variable for default request timeout in milliseconds.
26
27
  */
27
28
  const ENRIWEB_TIMEOUT_MS_ENV = "ENRIWEB_TIMEOUT_MS";
29
+ /**
30
+ * Environment variable for the `web_search` request timeout in milliseconds.
31
+ */
32
+ const ENRIWEB_SEARCH_TIMEOUT_MS_ENV = "ENRIWEB_SEARCH_TIMEOUT_MS";
28
33
  /**
29
34
  * Environment variable for the default `web_fetch` max_chars limit.
30
35
  */
@@ -39,9 +44,23 @@ const ENRIWEB_GITHUB_TOKEN_ENV = "ENRIWEB_GITHUB_TOKEN";
39
44
  */
40
45
  const DEFAULT_ENRIPROXY_URL = "http://127.0.0.1:8787";
41
46
  /**
42
- * Default request timeout in milliseconds.
47
+ * Default `web_fetch` request timeout in milliseconds.
48
+ *
49
+ * @remarks
50
+ * Exceeds EnriProxy's total fetch budget (150 s) so slow tier chains
51
+ * (CycleTLS floor ~35 s, stealth renders, embedding-reducer cold start)
52
+ * finish before the client gives up; matches EnriCode's 180 s remote fetch
53
+ * budget.
43
54
  */
44
- const DEFAULT_TIMEOUT_MS = 60 * 1000;
55
+ const DEFAULT_FETCH_TIMEOUT_MS = 180 * 1000;
56
+ /**
57
+ * Default `web_search` request timeout in milliseconds.
58
+ *
59
+ * @remarks
60
+ * Covers the SearXNG budget plus batched queries and server-side auto-fetch,
61
+ * matching EnriCode's remote search budget.
62
+ */
63
+ const DEFAULT_SEARCH_TIMEOUT_MS = 320 * 1000;
45
64
  /**
46
65
  * Default maximum `web_fetch` content length.
47
66
  *
@@ -54,6 +73,14 @@ const DEFAULT_TIMEOUT_MS = 60 * 1000;
54
73
  * truncated by the client or written to a tool-results file for paging.
55
74
  */
56
75
  const DEFAULT_WEB_FETCH_MAX_CHARS = 200_000;
76
+ /**
77
+ * Upper character budget accepted for the `web_fetch` default.
78
+ *
79
+ * @remarks
80
+ * The shared 4M wire ceiling (single source in the client) so the
81
+ * environment cannot configure an unbounded default.
82
+ */
83
+ const MAX_DEFAULT_WEB_FETCH_MAX_CHARS = MAX_WIRE_MAX_CHARS;
57
84
  /**
58
85
  * Default timeout (ms) for registry enrichment requests.
59
86
  */
@@ -66,6 +93,21 @@ const DEFAULT_REGISTRY_CACHE_TTL_MS = 5 * 60 * 1000;
66
93
  * Default maximum entities verified per `web_search` call.
67
94
  */
68
95
  const DEFAULT_REGISTRY_MAX_ENTITIES_PER_CALL = 6;
96
+ /**
97
+ * Parses one positive-integer environment value with strict digits.
98
+ *
99
+ * @param raw - Raw environment value, if set.
100
+ * @param fallback - Default used when unset, blank, or invalid.
101
+ * @returns Parsed value or the fallback.
102
+ */
103
+ function parsePositiveIntEnv(raw, fallback) {
104
+ const trimmed = (raw ?? "").trim();
105
+ if (!/^\d+$/u.test(trimmed)) {
106
+ return fallback;
107
+ }
108
+ const parsed = Number.parseInt(trimmed, 10);
109
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
110
+ }
69
111
  /**
70
112
  * Entry point for the MCP server.
71
113
  */
@@ -84,8 +126,9 @@ async function main() {
84
126
  console.log("Variables de entorno:");
85
127
  console.log(" ENRIPROXY_URL (opcional, default: http://127.0.0.1:8787)");
86
128
  console.log(" ENRIPROXY_API_KEY (requerida)");
87
- console.log(" ENRIWEB_TIMEOUT_MS (opcional, default: 60000)");
88
- console.log(" ENRIWEB_WEB_FETCH_DEFAULT_MAX_CHARS (opcional, default: 200000)");
129
+ console.log(" ENRIWEB_TIMEOUT_MS (opcional, default: 180000, timeout de web_fetch)");
130
+ console.log(" ENRIWEB_SEARCH_TIMEOUT_MS (opcional, default: 320000, timeout de web_search)");
131
+ console.log(" ENRIWEB_WEB_FETCH_DEFAULT_MAX_CHARS (opcional, default: 200000, máximo 4000000)");
89
132
  console.log(" ENRIWEB_GITHUB_TOKEN (opcional, mejora los límites de la API de GitHub)");
90
133
  process.exit(0);
91
134
  }
@@ -95,27 +138,24 @@ async function main() {
95
138
  }
96
139
  const serverUrl = (process.env[ENRIPROXY_URL_ENV] ?? DEFAULT_ENRIPROXY_URL).trim();
97
140
  const apiKey = (process.env[ENRIPROXY_API_KEY_ENV] ?? "").trim();
98
- const timeoutMsRaw = (process.env[ENRIWEB_TIMEOUT_MS_ENV] ?? "").trim();
99
- const defaultWebFetchMaxCharsRaw = (process.env[ENRIWEB_WEB_FETCH_DEFAULT_MAX_CHARS_ENV] ?? "").trim();
100
- const timeoutMs = timeoutMsRaw ? Number.parseInt(timeoutMsRaw, 10) : DEFAULT_TIMEOUT_MS;
101
- const defaultWebFetchMaxChars = defaultWebFetchMaxCharsRaw
102
- ? Number.parseInt(defaultWebFetchMaxCharsRaw, 10)
103
- : DEFAULT_WEB_FETCH_MAX_CHARS;
141
+ if (!apiKey) {
142
+ throw new Error("Falta ENRIPROXY_API_KEY: configure la API key de EnriProxy antes de iniciar el MCP.");
143
+ }
144
+ assertHttpUrl(serverUrl, ENRIPROXY_URL_ENV);
145
+ const timeoutMs = parsePositiveIntEnv(process.env[ENRIWEB_TIMEOUT_MS_ENV], DEFAULT_FETCH_TIMEOUT_MS);
146
+ const searchTimeoutMs = parsePositiveIntEnv(process.env[ENRIWEB_SEARCH_TIMEOUT_MS_ENV], DEFAULT_SEARCH_TIMEOUT_MS);
147
+ const defaultWebFetchMaxChars = Math.min(parsePositiveIntEnv(process.env[ENRIWEB_WEB_FETCH_DEFAULT_MAX_CHARS_ENV], DEFAULT_WEB_FETCH_MAX_CHARS), MAX_DEFAULT_WEB_FETCH_MAX_CHARS);
104
148
  const githubToken = (process.env[ENRIWEB_GITHUB_TOKEN_ENV] ?? "").trim();
105
149
  const createClient = (baseUrl, key, timeout) => new EnriProxyClient({
106
150
  baseUrl,
107
151
  apiKey: key,
108
152
  timeoutMs: timeout
109
153
  });
110
- const resolvedTimeoutMs = Number.isFinite(timeoutMs) && timeoutMs > 0 ? timeoutMs : DEFAULT_TIMEOUT_MS;
111
- const resolvedDefaultWebFetchMaxChars = Number.isFinite(defaultWebFetchMaxChars) && defaultWebFetchMaxChars > 0
112
- ? defaultWebFetchMaxChars
113
- : DEFAULT_WEB_FETCH_MAX_CHARS;
114
154
  const webSearchTool = new WebSearchTool({
115
155
  createClient,
116
156
  defaultServerUrl: serverUrl,
117
157
  defaultApiKey: apiKey,
118
- defaultTimeoutMs: resolvedTimeoutMs,
158
+ defaultTimeoutMs: searchTimeoutMs,
119
159
  registryVerifier: new WebSearchRegistryVerifier({
120
160
  fetchImpl: fetch,
121
161
  timeoutMs: DEFAULT_REGISTRY_TIMEOUT_MS,
@@ -128,8 +168,8 @@ async function main() {
128
168
  createClient,
129
169
  defaultServerUrl: serverUrl,
130
170
  defaultApiKey: apiKey,
131
- defaultTimeoutMs: resolvedTimeoutMs,
132
- defaultMaxChars: resolvedDefaultWebFetchMaxChars
171
+ defaultTimeoutMs: timeoutMs,
172
+ defaultMaxChars: defaultWebFetchMaxChars
133
173
  });
134
174
  const server = new EnriWebServer({
135
175
  name: "EnriWeb",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,34 @@
1
+ /**
2
+ * Resolves the installed package version for MCP server metadata.
3
+ *
4
+ * @remarks
5
+ * The manifest is resolved relative to this module (not the process cwd), so
6
+ * global installs and dev checkouts both resolve their own package.json. The
7
+ * first successful read is cached for the process lifetime; an unreadable
8
+ * manifest degrades to "0.0.0" instead of failing server startup.
9
+ */
1
10
  export declare class PackageInfoService {
11
+ /**
12
+ * Manifest require function bound to this module's location.
13
+ */
2
14
  private readonly require;
15
+ /**
16
+ * Cached version string, or null before the first resolution.
17
+ */
3
18
  private cachedVersion;
19
+ /**
20
+ * Creates a new {@link PackageInfoService}.
21
+ */
4
22
  constructor();
23
+ /**
24
+ * Gets the installed package version.
25
+ *
26
+ * @returns Manifest version, or "0.0.0" when the manifest is unreadable.
27
+ */
5
28
  getVersion(): string;
6
29
  }
30
+ /**
31
+ * Process-wide package info service instance.
32
+ */
7
33
  export declare const packageInfoService: PackageInfoService;
8
34
  //# sourceMappingURL=package-info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-info.d.ts","sourceRoot":"","sources":["../src/package-info.ts"],"names":[],"mappings":"AAIA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,aAAa,CAAuB;;IAMrC,UAAU,IAAI,MAAM;CAkB5B;AAED,eAAO,MAAM,kBAAkB,EAAE,kBAA6C,CAAC"}
1
+ {"version":3,"file":"package-info.d.ts","sourceRoot":"","sources":["../src/package-info.ts"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC;;OAEG;IACH,OAAO,CAAC,aAAa,CAAuB;IAE5C;;OAEG;;IAKH;;;;OAIG;IACI,UAAU,IAAI,MAAM;CAoB5B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAA6C,CAAC"}