@plurnk/plurnk-schemes-http 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { MimetypeClassifier, Results, } from "@plurnk/plurnk-schemes";
2
2
  import Guard, { GuardBlockedError } from "./Guard.js";
3
3
  import { responseMimetype } from "./ContentType.js";
4
- import { tavilyConfiguration, tavilyExtract, tavilyExtractIdentity, } from "./TavilyExtract.js";
4
+ import MaterializerRegistry from "./Materializer.js";
5
5
  import { requirePositiveIntegerEnv } from "./Config.js";
6
6
  import ErrorDetail from "./ErrorDetail.js";
7
7
  export const DEFAULT_WEB_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36";
@@ -9,14 +9,10 @@ export const MARKDOWN_ACCEPT = "text/markdown, text/html;q=0.9, */*;q=0.1";
9
9
  export const PROJECTION_ID_HEADER = "x-plurnk-projection-id";
10
10
  export const CACHE_VARIANT_HEADER = "x-plurnk-cache-variant";
11
11
  export const MATERIALIZER_ID_HEADER = "x-plurnk-materializer-id";
12
- export const TAVILY_REQUEST_ID_HEADER = "x-plurnk-tavily-request-id";
13
- export const TAVILY_CREDITS_HEADER = "x-plurnk-tavily-credits";
14
- export const TAVILY_STATUS_HEADER = "x-plurnk-tavily-status";
15
- export const TAVILY_REASON_HEADER = "x-plurnk-tavily-reason";
16
- export const TAVILY_RETRY_AFTER_HEADER = "x-plurnk-tavily-retry-after";
17
- export const TAVILY_ELAPSED_HEADER = "x-plurnk-tavily-elapsed-ms";
18
- export const TAVILY_ERROR_HEADER = "x-plurnk-tavily-error";
19
- export const TAVILY_SOURCE_URL_HEADER = "x-plurnk-tavily-source-url";
12
+ // The operator's materializer selection ({§http-materializer-plugins}): a
13
+ // discovered materializer id; unset/empty means the built-in local projection
14
+ // is the only body producer.
15
+ export const MATERIALIZER_ENV = "PLURNK_SCHEMES_HTTP_MATERIALIZER";
20
16
  const ORIGIN_MARKDOWN_MATERIALIZER_ID = "origin-markdown:v1";
21
17
  const LOCAL_UNCONFIGURED_MATERIALIZER_ID = "local-projection:v1:unconfigured";
22
18
  const LOCAL_INELIGIBLE_MATERIALIZER_ID = "local-projection:v1:ineligible";
@@ -55,9 +51,28 @@ const replaceHeader = (headers, name, value) => [
55
51
  export default class WebFetcher {
56
52
  static validateConfiguration() {
57
53
  requirePositiveIntegerEnv("PLURNK_SCHEMES_HTTP_FETCH_TIMEOUT");
58
- tavilyConfiguration();
54
+ if (WebFetcher.#materializerConfigured()) {
55
+ void MaterializerRegistry.current().discover();
56
+ }
57
+ }
58
+ static #materializerConfigured() {
59
+ return (process.env[MATERIALIZER_ENV]?.trim() ?? "").length > 0;
60
+ }
61
+ // {§http-materializer-plugins} — resolve the operator-selected materializer
62
+ // and consult its per-request eligibility; null → built-in projection.
63
+ static async #selectedMaterializer(url, signal) {
64
+ const id = (process.env[MATERIALIZER_ENV]?.trim() ?? "");
65
+ if (id.length === 0)
66
+ return null;
67
+ const registry = await MaterializerRegistry.current().discover();
68
+ const materializer = registry.materializerFor(id);
69
+ if (materializer === null) {
70
+ throw new Error(`${MATERIALIZER_ENV} names '${id}', but no installed http-materializer package provides it.`);
71
+ }
72
+ const identity = await materializer.eligible(url, { signal });
73
+ return identity === null ? null : { materializer, identity };
59
74
  }
60
- static unavailable(url, cause, allowTavily) {
75
+ static unavailable(url, cause, allowConfiguredMaterializer) {
61
76
  const detail = ErrorDetail.preview(cause, ErrorDetail.configuredLimit());
62
77
  const originFailure = {
63
78
  status: 502,
@@ -77,7 +92,7 @@ export default class WebFetcher {
77
92
  `x-plurnk-origin-error: ${safeEvidence(detail)}`,
78
93
  ].join("\n"),
79
94
  requestHeaders: [],
80
- allowTavily,
95
+ allowConfiguredMaterializer: allowConfiguredMaterializer,
81
96
  originUnavailable: true,
82
97
  originFailure,
83
98
  };
@@ -211,23 +226,22 @@ export default class WebFetcher {
211
226
  ? undefined
212
227
  : { content: fetched.body, mimetype: fetched.mimetype };
213
228
  const originOutcome = WebFetcher.#originOutcome(fetched);
214
- const tavilyIdentity = fetched.allowTavily === true
215
- ? tavilyExtractIdentity()
229
+ const selected = fetched.allowConfiguredMaterializer === true
230
+ ? await WebFetcher.#selectedMaterializer(fetched.url, signal)
216
231
  : null;
217
- if (tavilyIdentity !== null) {
218
- const tavily = await tavilyExtract(fetched.url, { signal });
219
- if (tavily === null)
220
- throw new Error("Tavily configuration disappeared during materialization.");
232
+ if (selected !== null) {
233
+ const { materializer, identity } = selected;
234
+ const result = await materializer.extract(fetched.url, { signal });
221
235
  const evidence = [
222
- WebFetcher.materializerEvidence(tavily.outcome === "success"
223
- ? tavilyIdentity
224
- : `local-fallback:${tavilyIdentity}`),
225
- ...WebFetcher.#tavilyEvidence(tavily),
236
+ WebFetcher.materializerEvidence(result.outcome === "success"
237
+ ? identity
238
+ : `local-fallback:${identity}`),
239
+ ...result.evidence.map(({ name, value }) => `${name}: ${value}`),
226
240
  ];
227
- if (tavily.outcome === "success") {
241
+ if (result.outcome === "success") {
228
242
  const header = WebFetcher.#appendEvidence(fetched.header, evidence);
229
243
  return {
230
- body: { content: tavily.markdown, mimetype: "text/markdown" },
244
+ body: { content: result.body, mimetype: "text/markdown" },
231
245
  ...(html === undefined ? {} : { html }),
232
246
  ...(header === undefined ? {} : { header }),
233
247
  bodyOutcome: success(),
@@ -236,15 +250,23 @@ export default class WebFetcher {
236
250
  : originOutcome,
237
251
  };
238
252
  }
239
- if (tavily.outcome === "hard" || html === undefined) {
253
+ if (result.outcome === "hard" || html === undefined) {
240
254
  const header = WebFetcher.#appendEvidence(fetched.header, [
241
- WebFetcher.materializerEvidence(tavilyIdentity),
242
- ...WebFetcher.#tavilyEvidence(tavily),
255
+ WebFetcher.materializerEvidence(identity),
256
+ ...result.evidence.map(({ name, value }) => `${name}: ${value}`),
243
257
  ]);
258
+ const problem = result.outcome === "hard"
259
+ ? result.problem
260
+ : (result.problem ?? {
261
+ status: 502,
262
+ code: "materializer-recoverable",
263
+ detail: `The materializer could not extract ${fetched.url} (${result.reason}).`,
264
+ retryable: true,
265
+ });
244
266
  return {
245
267
  ...(html === undefined ? {} : { html }),
246
268
  ...(header === undefined ? {} : { header }),
247
- bodyOutcome: WebFetcher.#tavilyFailure(fetched.url, tavily),
269
+ bodyOutcome: failure(problem.status, problem.code, problem.detail, problem.retryable),
248
270
  htmlOutcome: html === undefined
249
271
  ? failure(502, "html-unavailable", `Server-source HTML for ${fetched.url} was unavailable.`, true)
250
272
  : originOutcome,
@@ -255,15 +277,17 @@ export default class WebFetcher {
255
277
  return {
256
278
  html,
257
279
  header: WebFetcher.#appendEvidence(fetched.header, evidence),
258
- bodyOutcome: WebFetcher.#tavilyFailure(fetched.url, tavily),
280
+ bodyOutcome: result.problem === undefined
281
+ ? failure(502, "materializer-recoverable", `The materializer could not extract ${fetched.url} (${result.reason}) and no local projection was possible.`, true)
282
+ : failure(result.problem.status, result.problem.code, result.problem.detail, result.problem.retryable),
259
283
  htmlOutcome: originOutcome,
260
284
  };
261
285
  }
262
286
  return WebFetcher.#materialized(projected, {
263
287
  html,
264
288
  header: fetched.header,
265
- materializerIdentity: `local-fallback:${tavilyIdentity}`,
266
- additionalEvidence: WebFetcher.#tavilyEvidence(tavily),
289
+ materializerIdentity: `local-fallback:${identity}`,
290
+ additionalEvidence: result.evidence.map(({ name, value }) => `${name}: ${value}`),
267
291
  bodyOutcome: originOutcome.failure === undefined
268
292
  ? success(203)
269
293
  : originOutcome,
@@ -280,7 +304,7 @@ export default class WebFetcher {
280
304
  };
281
305
  }
282
306
  const projected = await WebFetcher.#project(html, projection);
283
- const materializerIdentity = fetched.allowTavily === true
307
+ const materializerIdentity = fetched.allowConfiguredMaterializer === true
284
308
  ? LOCAL_UNCONFIGURED_MATERIALIZER_ID
285
309
  : LOCAL_INELIGIBLE_MATERIALIZER_ID;
286
310
  if (projected === null) {
@@ -311,48 +335,6 @@ export default class WebFetcher {
311
335
  ...(statusText === "" ? {} : { originStatusText: statusText }),
312
336
  });
313
337
  }
314
- static #tavilyFailure(url, result) {
315
- const facts = {
316
- provider: "tavily",
317
- reason: result.reason,
318
- ...(result.status === undefined ? {} : { providerStatus: result.status }),
319
- ...(result.requestId === undefined ? {} : { requestId: result.requestId }),
320
- ...(result.retryAfter === undefined ? {} : { retryAfter: result.retryAfter }),
321
- };
322
- if (result.reason === "rate-limit") {
323
- return failure(429, "tavily-rate-limited", `Tavily Extract rate-limited ${url}.`, true, facts);
324
- }
325
- if (result.reason === "timeout") {
326
- return failure(504, "tavily-timeout", `Tavily Extract timed out for ${url}.`, true, facts);
327
- }
328
- if (result.reason === "authentication") {
329
- return failure(502, "tavily-authentication-failed", "Tavily rejected the configured API credentials.", false, facts);
330
- }
331
- if (result.reason === "malformed-response") {
332
- return failure(502, "tavily-invalid-response", "Tavily returned an invalid Extract response.", false, facts);
333
- }
334
- if (result.reason === "provider-rejection") {
335
- return failure(502, "tavily-provider-rejected", `Tavily rejected extraction for ${url}.`, false, facts);
336
- }
337
- return failure(502, `tavily-${result.reason}`, `Tavily Extract failed for ${url}.`, true, facts);
338
- }
339
- static #tavilyEvidence(result) {
340
- return [
341
- `${TAVILY_STATUS_HEADER}: ${result.status ?? "transport-failure"}`,
342
- `${TAVILY_ELAPSED_HEADER}: ${result.elapsedMs}`,
343
- result.requestId === undefined ? null : `${TAVILY_REQUEST_ID_HEADER}: ${safeEvidence(result.requestId)}`,
344
- result.credits === undefined ? null : `${TAVILY_CREDITS_HEADER}: ${result.credits}`,
345
- result.outcome === "success" || result.retryAfter === undefined
346
- ? null
347
- : `${TAVILY_RETRY_AFTER_HEADER}: ${safeEvidence(result.retryAfter)}`,
348
- result.outcome === "success"
349
- ? result.sourceUrl === undefined ? null : `${TAVILY_SOURCE_URL_HEADER}: ${safeEvidence(result.sourceUrl)}`
350
- : `${TAVILY_REASON_HEADER}: ${result.reason}`,
351
- result.outcome === "success" || result.error === undefined
352
- ? null
353
- : `${TAVILY_ERROR_HEADER}: ${safeEvidence(result.error)}`,
354
- ].filter((line) => line !== null);
355
- }
356
338
  static async classifyBinary(body, mimetype, projection) {
357
339
  try {
358
340
  return await projection.isBinary(mimetype);
@@ -430,15 +412,15 @@ export default class WebFetcher {
430
412
  return `${MATERIALIZER_ID_HEADER}: ${identity}`;
431
413
  }
432
414
  static materializerCurrent(storedIdentity) {
433
- const tavilyIdentity = tavilyExtractIdentity();
415
+ const materializerId = process.env[MATERIALIZER_ENV]?.trim() ?? "";
434
416
  if (storedIdentity === ORIGIN_MARKDOWN_MATERIALIZER_ID
435
417
  || storedIdentity === LOCAL_INELIGIBLE_MATERIALIZER_ID)
436
418
  return true;
437
419
  if (storedIdentity === LOCAL_UNCONFIGURED_MATERIALIZER_ID)
438
- return tavilyIdentity === null;
439
- return tavilyIdentity !== null
440
- && (storedIdentity === tavilyIdentity
441
- || storedIdentity === `local-fallback:${tavilyIdentity}`);
420
+ return materializerId.length === 0;
421
+ return materializerId.length > 0
422
+ && (storedIdentity === materializerId
423
+ || storedIdentity === `local-fallback:${materializerId}`);
442
424
  }
443
425
  async fetch(url, opts) {
444
426
  opts?.signal?.throwIfAborted();
@@ -476,10 +458,10 @@ export default class WebFetcher {
476
458
  if (cause instanceof GuardBlockedError)
477
459
  return null;
478
460
  const publiclyAdmitted = guarded || await Guard.isPublicUrl(target);
479
- const allowTavily = requestHeaders.length === 0 && publiclyAdmitted;
480
- return (allowTavily && tavilyExtractIdentity() !== null)
461
+ const allowConfiguredMaterializer = requestHeaders.length === 0 && publiclyAdmitted;
462
+ return (allowConfiguredMaterializer && WebFetcher.#materializerConfigured())
481
463
  || opts?.preserveUnavailable === true
482
- ? WebFetcher.unavailable(url, cause, allowTavily)
464
+ ? WebFetcher.unavailable(url, cause, allowConfiguredMaterializer)
483
465
  : null;
484
466
  }
485
467
  if (opts?.acceptHttpErrors !== true && !response.ok) {
@@ -488,11 +470,11 @@ export default class WebFetcher {
488
470
  }
489
471
  const responseHeaders = [...response.headers];
490
472
  const mimetype = responseMimetype(response.headers.get("content-type"));
491
- const tavilyConfigured = tavilyExtractIdentity() !== null;
473
+ const materializerConfigured = WebFetcher.#materializerConfigured();
492
474
  const publiclyAdmitted = guarded
493
- || !tavilyConfigured
475
+ || !materializerConfigured
494
476
  || (requestHeaders.length === 0 && await Guard.isPublicUrl(target));
495
- const allowTavily = requestHeaders.length === 0 && publiclyAdmitted;
477
+ const allowConfiguredMaterializer = requestHeaders.length === 0 && publiclyAdmitted;
496
478
  const header = WebFetcher.#header(response, requestHeaders, url);
497
479
  const common = {
498
480
  url,
@@ -503,14 +485,14 @@ export default class WebFetcher {
503
485
  response,
504
486
  header,
505
487
  requestHeaders,
506
- allowTavily,
488
+ allowConfiguredMaterializer: allowConfiguredMaterializer,
507
489
  };
508
490
  const unavailableAfterResponse = (cause) => {
509
491
  if (opts?.signal?.aborted === true)
510
492
  throw opts.signal.reason;
511
- if (!(allowTavily && tavilyConfigured) && opts?.preserveUnavailable !== true)
493
+ if (!(allowConfiguredMaterializer && WebFetcher.#materializerConfigured()) && opts?.preserveUnavailable !== true)
512
494
  return null;
513
- const unavailable = WebFetcher.unavailable(url, cause, allowTavily);
495
+ const unavailable = WebFetcher.unavailable(url, cause, allowConfiguredMaterializer);
514
496
  const detail = unavailable.originFailure?.detail ?? `HTTP GET ${url} failed.`;
515
497
  return {
516
498
  ...common,
@@ -1 +1 @@
1
- {"version":3,"file":"WebFetcher.js","sourceRoot":"","sources":["../src/WebFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebFetcher.js","sourceRoot":"","sources":["../src/WebFetcher.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export { default } from "./Http.ts";
2
2
  export { default as Http } from "./Http.ts";
3
3
  export { default as Ws } from "./Ws.ts";
4
4
  export { default as WebFetcher } from "./WebFetcher.ts";
5
+ export { default as MaterializerRegistry, type HttpMaterializer, type MaterializerResult } from "./Materializer.ts";
5
6
  export { PROJECTION_ID_HEADER, WebMaterializationError } from "./WebFetcher.ts";
6
7
  export type { WebFetchResult, WebMaterializedResult } from "./WebFetcher.ts";
7
8
  export { default as Guard, GuardBlockedError } from "./Guard.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACpH,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export { default as Http } from "./Http.js";
5
5
  export { default as Ws } from "./Ws.js";
6
6
  // Automatic entry-acquisition primitive {§prefetch} and its URL check.
7
7
  export { default as WebFetcher } from "./WebFetcher.js";
8
+ export { default as MaterializerRegistry } from "./Materializer.js";
8
9
  export { PROJECTION_ID_HEADER, WebMaterializationError } from "./WebFetcher.js";
9
10
  export { default as Guard, GuardBlockedError } from "./Guard.js";
10
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,0CAA0C;AAC1C,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAExC,uEAAuE;AACvE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,0CAA0C;AAC1C,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAExC,uEAAuE;AACvE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAkD,MAAM,mBAAmB,CAAC;AACpH,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
package/docs/http.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # http(s)://
2
2
 
3
+ ## Summary
4
+
5
+ Read and modify web resources through addressable HTTP(S) entries.
6
+
3
7
  Use a web URL as an addressable entry. Every exact READ acquires or refreshes a
4
8
  complete representation when needed, then core selects the channel and applies
5
9
  the requested text scope. HTML becomes a readable model-facing body (normally
@@ -23,19 +27,19 @@ Caller cancellation of an exact acquisition returns `499 cancelled`.
23
27
  | Response | `body` | Other channel |
24
28
  | ------------------------------------ | --------------------------------------------------- | ---------------------------------------------- |
25
29
  | Negotiated origin Markdown | Exact origin Markdown | Independently requested server HTML in `#html` |
26
- | GET HTML | Tavily Markdown or local HTML-reader projection | Original server HTML in `#html` |
30
+ | GET HTML | Materializer Markdown or local HTML-reader projection | Original server HTML in `#html` |
27
31
  | GET `text/event-stream` | Event `data` chunks after READ `102` | Initial response in `#header` |
28
32
  | Configured textual response | Complete Fetch-decoded text under its declared type | Status and headers in `#header` |
29
33
  | Origin HTTP `4xx`/`5xx` | Preserve available origin or independently produced text | Exact status on each origin-backed channel |
30
34
  | Binary with a readable projection | Derived Unicode under the projection output type | Origin type and projection ID in `#header` |
31
35
  | Binary without a readable projection | No fabricated text representation | Exact `415` Problem |
32
36
 
33
- Generic public HTML uses configured Tavily as its body producer. A recoverable
37
+ Generic public HTML uses the selected materializer as its body producer. A recoverable
34
38
  timeout, transport error, `429`, `5xx`, or per-URL extraction failure uses the
35
39
  local HTML reader and records terminal body status `203`. Authentication,
36
40
  provider rejection, and malformed provider responses are hard failures and do
37
41
  not silently switch producers. Any authored target metadata makes HTML use the
38
- local reader directly. Origin Markdown always wins without Tavily.
42
+ local reader directly. Origin Markdown always wins without the materializer.
39
43
 
40
44
  Projection presence is structural: a returned projection is accepted even
41
45
  when its content is empty. `422 no-readable-projection` means the local route
@@ -50,15 +54,15 @@ without fabricating an entry. Input above the configured byte ceiling returns
50
54
  owns lifecycle evidence in `#header`; do not retry a mutation solely to
51
55
  retrieve its binary body.
52
56
 
53
- `#header` contains origin and package acquisition evidence. A Tavily attempt
57
+ `#header` contains origin and package acquisition evidence. A materializer attempt
54
58
  adds its route, status, timing, any reported request ID and credits, and bounded
55
59
  failure evidence. `body`, `header`, and `html` carry independent durable
56
60
  producer outcomes; the selected channel determines success. Thus `#html` or
57
- `#header` can remain readable after a body failure, while a Tavily body can
61
+ `#header` can remain readable after a body failure, while a materializer body can
58
62
  succeed without fabricating unavailable server HTML. A SEND signal is never the
59
63
  remote HTTP status. A direct non-success origin response is still materialized:
60
64
  origin-backed channels carry its exact durable `http-response-status` Problem,
61
- while independently produced Tavily content and acquisition headers retain
65
+ while independently produced materializer content and acquisition headers retain
62
66
  their own outcomes.
63
67
 
64
68
  For SSE, the response and persisted `#header` establish acquisition. READ then
@@ -79,7 +83,7 @@ ETag or Last-Modified value identifies the nominated representation; otherwise
79
83
  acquisition fails without serving the stored body. Responses to POST, PUT, and
80
84
  DELETE are not reused as later GET representations. A projected GET is reused
81
85
  only while the installed reader has the same projection identity. Page bodies
82
- likewise require the same origin-Markdown, local, Tavily depth/version, or
86
+ likewise require the same origin-Markdown, local, materializer-id, or
83
87
  local-fallback route. Once stale, a page composite is fully reacquired without
84
88
  old validators; an origin 304 cannot certify provider or auxiliary material.
85
89
 
@@ -101,9 +105,9 @@ blocks, one header per block:
101
105
  Percent-encode `)`, `<`, and `}` inside a header value.
102
106
  An exact FIND forwards these headers when it must acquire the URL, but the
103
107
  result remains intentionally ineligible for later cache reuse. Target headers
104
- are never forwarded to Tavily, so HTML requests carrying any explicit metadata
105
- use the local HTML-reader projection. Executor-supplied HTML also stays local;
106
- only generic web acquisition grants Tavily spending authority.
108
+ are never forwarded to the materializer, so HTML requests carrying any explicit
109
+ metadata use the local HTML-reader projection. Executor-supplied HTML also
110
+ stays local; only generic web acquisition grants materializer authority.
107
111
 
108
112
  GET acquisition of a GitHub `…/blob/…` URL uses its
109
113
  `raw.githubusercontent.com` source. The addressed GitHub URL remains entry
package/docs/wss.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # wss:// — WebSocket
2
2
 
3
+ ## Summary
4
+
5
+ Maintain persistent, bidirectional WebSocket connections as addressable entries.
6
+
3
7
  Use WebSocket for a persistent, bidirectional connection. `wss` is a
4
8
  stateful scheme, not an HTTP content type: READ claims a workspace address and
5
9
  owns its socket until terminal settlement, while EDIT, SEND, and KILL address
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-schemes-http",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "HTTP(S) request/response and WebSocket scheme handlers for the plurnk agent runtime.",
5
5
  "keywords": [
6
6
  "plurnk",
@@ -49,6 +49,11 @@
49
49
  "types": "./dist/index.d.ts",
50
50
  "default": "./dist/index.js"
51
51
  },
52
+ "./materializer": {
53
+ "plurnk-dev": "./src/Materializer.ts",
54
+ "types": "./dist/Materializer.d.ts",
55
+ "default": "./dist/Materializer.js"
56
+ },
52
57
  "./package.json": "./package.json"
53
58
  },
54
59
  "files": [
@@ -69,7 +74,7 @@
69
74
  "prepack": "npm run build"
70
75
  },
71
76
  "peerDependencies": {
72
- "@plurnk/plurnk-schemes": "^1.7.0"
77
+ "@plurnk/plurnk-schemes": "^1.8.0"
73
78
  },
74
79
  "dependencies": {
75
80
  "eventsource-parser": "^4.0.0"
@@ -1,35 +0,0 @@
1
- export declare const TAVILY_DEPTH = "PLURNK_SCHEMES_HTTP_TAVILY_DEPTH";
2
- export declare const TAVILY_TIMEOUT_MS = "PLURNK_SCHEMES_HTTP_TAVILY_TIMEOUT_MS";
3
- export type TavilyDepth = "basic" | "advanced";
4
- export type TavilyFailureReason = "authentication" | "provider-rejection" | "rate-limit" | "server" | "failed-result" | "timeout" | "network" | "malformed-response";
5
- interface TavilyEvidence {
6
- readonly status?: number;
7
- readonly requestId?: string;
8
- readonly credits?: number;
9
- readonly retryAfter?: string;
10
- readonly error?: string;
11
- readonly elapsedMs: number;
12
- }
13
- export interface TavilyExtractSuccess extends TavilyEvidence {
14
- readonly outcome: "success";
15
- readonly markdown: string;
16
- readonly sourceUrl?: string;
17
- }
18
- export interface TavilyExtractFailure extends TavilyEvidence {
19
- readonly outcome: "recoverable" | "hard";
20
- readonly reason: TavilyFailureReason;
21
- }
22
- export type TavilyExtractResult = TavilyExtractSuccess | TavilyExtractFailure;
23
- export interface TavilyConfiguration {
24
- readonly apiKey: string;
25
- readonly depth: TavilyDepth;
26
- readonly timeoutMs: number;
27
- readonly identity: string;
28
- }
29
- export declare const tavilyConfiguration: () => TavilyConfiguration | null;
30
- export declare const tavilyExtractIdentity: () => string | null;
31
- export declare const tavilyExtract: (url: string, opts?: {
32
- signal?: AbortSignal;
33
- }) => Promise<TavilyExtractResult | null>;
34
- export {};
35
- //# sourceMappingURL=TavilyExtract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TavilyExtract.d.ts","sourceRoot":"","sources":["../src/TavilyExtract.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,qCAAqC,CAAC;AAC/D,eAAO,MAAM,iBAAiB,0CAA0C,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;AAC/C,MAAM,MAAM,mBAAmB,GACzB,gBAAgB,GAChB,oBAAoB,GACpB,YAAY,GACZ,QAAQ,GACR,eAAe,GACf,SAAS,GACT,SAAS,GACT,oBAAoB,CAAC;AAE3B,UAAU,cAAc;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;CACxC;AAED,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAUD,eAAO,MAAM,mBAAmB,QAAO,mBAAmB,GAAG,IAW5D,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,MAAM,GAAG,IAA+C,CAAC;AAoDlG,eAAO,MAAM,aAAa,QACjB,MAAM,SACJ;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KAChC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAuIpC,CAAC"}