@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
@@ -12,6 +12,17 @@
12
12
  * - GitHub releases (api.github.com)
13
13
  *
14
14
  * @module tools/WebSearchRegistryVerifier
15
+ *
16
+ * @remarks Size note (~1470 lines, documented exception to the <=700
17
+ * policy): the verifier intentionally keeps one module per concern-free
18
+ * boundary — URL candidate detection, the five ecosystem adapters (npm,
19
+ * PyPI, crates.io, NuGet, GitHub), semantic-version ranking, and the
20
+ * TTL/LRU caches — because the adapters share the failure-normalization
21
+ * and cache-key invariants that a split would otherwise duplicate. The
22
+ * bounded JSON transport (capped streaming, timeouts, Link pagination)
23
+ * was extracted to {@link WebSearchRegistryHttpReader} per the AR-9
24
+ * touch-extraction rule; a per-ecosystem file split remains the documented
25
+ * follow-up for the adapters themselves.
15
26
  */
16
27
  import type { WebSearchResultEntry } from "../client/EnriProxyClient.js";
17
28
  /**
@@ -97,18 +108,31 @@ export interface WebSearchRegistryVerifierDeps {
97
108
  * Enriches web search results with registry version verification.
98
109
  */
99
110
  export declare class WebSearchRegistryVerifier {
111
+ /**
112
+ * Capped JSON HTTP reader owning the registry transport concerns.
113
+ */
114
+ private readonly httpReader;
100
115
  /**
101
116
  * NuGet V3 service index endpoint.
102
117
  */
103
118
  private static readonly NUGET_SERVICE_INDEX_URL;
119
+ /**
120
+ * Maximum bytes read from one npm packument (full-version manifest).
121
+ *
122
+ * @remarks
123
+ * Popular packages legitimately exceed the shared 5 MB registry cap
124
+ * (thousands of versions with full metadata); parity with the EnriCode
125
+ * client plane's 16 MiB download budget for the same endpoint.
126
+ */
127
+ private static readonly NPM_PACKUMENT_MAX_BYTES;
104
128
  /**
105
129
  * Default concurrency for registry verification.
106
130
  */
107
131
  private static readonly DEFAULT_CONCURRENCY;
108
132
  /**
109
- * Maximum JSON payload accepted from a registry endpoint.
133
+ * Time one cached error entity stays fresh before a retry.
110
134
  */
111
- private static readonly MAX_JSON_BYTES;
135
+ private static readonly ERROR_CACHE_TTL_MS;
112
136
  /**
113
137
  * Maximum cached verification entries (LRU eviction beyond this count).
114
138
  */
@@ -121,6 +145,16 @@ export declare class WebSearchRegistryVerifier {
121
145
  * In-memory TTL cache.
122
146
  */
123
147
  private readonly cache;
148
+ /**
149
+ * In-flight verification promises keyed by cache key.
150
+ *
151
+ * @remarks
152
+ * Single-flight coalescing: concurrent MCP requests verifying the same
153
+ * entity join one registry fetch instead of racing duplicates. Entries
154
+ * are removed when the verification settles (success, error or caller
155
+ * abort), so the map never outlives its requests.
156
+ */
157
+ private readonly inFlight;
124
158
  /**
125
159
  * Cached NuGet service index resolution.
126
160
  */
@@ -146,14 +180,40 @@ export declare class WebSearchRegistryVerifier {
146
180
  * @returns Candidate list
147
181
  */
148
182
  private collectCandidates;
183
+ /**
184
+ * Maximum `releases` pages followed per GitHub verification.
185
+ */
186
+ private static readonly GITHUB_RELEASES_MAX_PAGES;
149
187
  /**
150
188
  * Verifies a single candidate, using cache when available.
151
189
  *
152
190
  * @param kind - Registry kind
153
191
  * @param name - Candidate name
192
+ * @param signal - Optional caller abort signal forwarded to registry fetches
154
193
  * @returns Verification result
155
194
  */
156
195
  private verifyCandidate;
196
+ /**
197
+ * Reports whether one failure is a caller cancellation.
198
+ *
199
+ * @remarks
200
+ * Internal subfetch timeouts are reclassified as `TimeoutError` upstream
201
+ * and stay cacheable like any transient error; only genuine caller aborts
202
+ * (or errors shaped like one, e.g. a Spanish "cancelada" message) skip
203
+ * the error cache.
204
+ *
205
+ * @param error - Failure from a registry fetch.
206
+ * @param signal - Caller abort signal threaded into the verification.
207
+ * @returns True for caller cancellations.
208
+ */
209
+ private static isCallerCancellation;
210
+ /**
211
+ * Maps transport failures to stable Spanish text.
212
+ *
213
+ * @param error - Failure from a registry fetch.
214
+ * @returns Spanish description for the cached error entity.
215
+ */
216
+ private static describeFetchError;
157
217
  /**
158
218
  * Runs tasks with a fixed concurrency limit.
159
219
  *
@@ -166,6 +226,7 @@ export declare class WebSearchRegistryVerifier {
166
226
  * Verifies npm package versions via the npm registry.
167
227
  *
168
228
  * @param packageName - npm package name (may be scoped)
229
+ * @param signal - Optional caller abort signal
169
230
  * @returns Verified registry entity
170
231
  */
171
232
  private verifyNpm;
@@ -173,6 +234,7 @@ export declare class WebSearchRegistryVerifier {
173
234
  * Verifies PyPI project versions via the PyPI JSON API.
174
235
  *
175
236
  * @param projectName - PyPI project name
237
+ * @param signal - Optional caller abort signal
176
238
  * @returns Verified registry entity
177
239
  */
178
240
  private verifyPyPi;
@@ -180,6 +242,7 @@ export declare class WebSearchRegistryVerifier {
180
242
  * Verifies crates.io package versions via the crates.io API.
181
243
  *
182
244
  * @param crateName - Crate name
245
+ * @param signal - Optional caller abort signal
183
246
  * @returns Verified registry entity
184
247
  */
185
248
  private verifyCrates;
@@ -187,24 +250,32 @@ export declare class WebSearchRegistryVerifier {
187
250
  * Verifies NuGet package versions via NuGet V3 endpoints.
188
251
  *
189
252
  * @param packageId - NuGet package ID
253
+ * @param signal - Optional caller abort signal
190
254
  * @returns Verified registry entity
191
255
  */
192
256
  private verifyNuGet;
193
257
  /**
194
258
  * Verifies GitHub repository releases via GitHub REST API.
195
259
  *
260
+ * @remarks
261
+ * `latest_stable` comes from `/releases/latest` (GitHub's own newest
262
+ * non-prerelease, non-draft pick, immune to first-page truncation);
263
+ * prerelease candidates page through `/releases?per_page=100` following
264
+ * the `Link` header (up to {@link GITHUB_RELEASES_MAX_PAGES} pages, i.e.
265
+ * 300 newest releases — beyond that the first pages are what we keep).
266
+ *
196
267
  * @param repoSlug - Repository slug in the form "owner/repo"
268
+ * @param signal - Optional caller abort signal
197
269
  * @returns Verified registry entity
198
270
  */
199
271
  private verifyGitHub;
200
272
  /**
201
- * Performs an HTTP GET expecting a JSON response.
273
+ * Parses one GitHub release entry into a version candidate.
202
274
  *
203
- * @param url - Target URL
204
- * @param options - Request options
205
- * @returns Parsed JSON object/array
275
+ * @param raw - Release entry from the GitHub API
276
+ * @returns Candidate, or null for drafts/entries without a tag
206
277
  */
207
- private fetchJson;
278
+ private tryParseGitHubReleaseCandidate;
208
279
  /**
209
280
  * Attempts to parse the npm package name from an npmjs.com URL.
210
281
  *
@@ -264,6 +335,10 @@ export declare class WebSearchRegistryVerifier {
264
335
  /**
265
336
  * Best-effort prerelease detection for PyPI version strings.
266
337
  *
338
+ * @remarks
339
+ * Covers PEP 440 separators and attached suffixes (`1.0b1`, `2.0beta1`)
340
+ * where the marker follows digits without a delimiter.
341
+ *
267
342
  * @param version - Version string
268
343
  * @returns True when prerelease-like
269
344
  */
@@ -284,13 +359,32 @@ export declare class WebSearchRegistryVerifier {
284
359
  * @returns Best candidate or null
285
360
  */
286
361
  private pickBestVersionCandidate;
362
+ /**
363
+ * Parses one ISO timestamp to epoch milliseconds.
364
+ *
365
+ * @param value - Timestamp string, if present.
366
+ * @returns Epoch milliseconds, or null when missing or unparsable.
367
+ */
368
+ private tryParseTimeMs;
287
369
  /**
288
370
  * Parses SemVer strings (best-effort).
289
371
  *
372
+ * @remarks
373
+ * Accepts two to four numeric components (`1.2` → `1.2.0`, `1.2.3.4`
374
+ * keeps the fourth as a build tiebreak) so partial registry versions
375
+ * still rank instead of dropping out.
376
+ *
290
377
  * @param raw - Version string
291
378
  * @returns Parsed semver or null
292
379
  */
293
380
  private tryParseSemVer;
381
+ /**
382
+ * Parses versions with attached prerelease suffixes (`2024.1b1`, `2.0rc2`).
383
+ *
384
+ * @param normalized - Version string without a leading "v".
385
+ * @returns Parsed semver or null.
386
+ */
387
+ private tryParseAttachedPrerelease;
294
388
  /**
295
389
  * Compares two SemVer values.
296
390
  *
@@ -316,6 +410,7 @@ export declare class WebSearchRegistryVerifier {
316
410
  /**
317
411
  * Resolves NuGet V3 endpoints from the service index, with caching.
318
412
  *
413
+ * @param signal - Optional caller abort signal
319
414
  * @returns Service index cache
320
415
  */
321
416
  private getNuGetServiceIndex;
@@ -325,6 +420,7 @@ export declare class WebSearchRegistryVerifier {
325
420
  * @param registrationsBaseUrl - Registrations base URL
326
421
  * @param lowerId - Lowercase package ID
327
422
  * @param version - Version string
423
+ * @param signal - Optional caller abort signal
328
424
  * @returns Published ISO 8601 timestamp or null
329
425
  */
330
426
  private tryFetchNuGetLeafPublishedAt;
@@ -1 +1 @@
1
- {"version":3,"file":"WebSearchRegistryVerifier.d.ts","sourceRoot":"","sources":["../../src/tools/WebSearchRegistryVerifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebSearchRegistryVerifier.d.ts","sourceRoot":"","sources":["../../src/tools/WebSearchRegistryVerifier.ts"],"names":[],"mappings":"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"}