smart-web-mcp 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on Keep a Changelog[^1] and this project uses SemVer.
6
6
 
7
7
  ## Unreleased
8
+ * Consume validated public provider responses in one bounded GET rather than discarding a first successful body and requesting it again. Redirects still receive per-hop URL/origin checks, cross-origin headers are stripped, and JSON parser errors remain failures; a provider's actual 429 remains unavailable, not a recovered page.
8
9
  * Expose existing bounded private pre-projection comment export through explicit CLI `fetch --export-comments`; reject caller-selected paths and preserve partial inline delivery. A complete source export does not make unavailable comments readable.
9
10
  * Preserve declared-versus-collected Reddit comment coverage for public JSON and archived threads. A readable post with fewer returned comments than its source declares remains partial, even without inline clipping; this does not recover inaccessible comments.
10
11
  * Deliver validated Hacker News API reply trees as flat, parent-linked comment rows before inline projection or private export. Counts now refer to addressable replies, not just roots; bounded inline output still marks omitted rows partial.
@@ -406,6 +407,13 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
406
407
  - Korean public API helpers now validate outbound URLs and redirects before fetching, blocking localhost, private, and reserved targets unless `network.allowPrivateHosts` is explicitly enabled.
407
408
  - CI now declares read-only default repository permissions, Dependabot auto-merge pins the reusable workflow without forwarding all caller secrets, and the workflow check enforces those guards.
408
409
 
410
+ ## [1.3.1](https://github.com/jojo-labs/smart-web/compare/v1.3.0...v1.3.1) (2026-10-03)
411
+
412
+
413
+ ### Bug Fixes
414
+
415
+ * consume validated provider responses once ([#699](https://github.com/jojo-labs/smart-web/issues/699)) ([8ca64d2](https://github.com/jojo-labs/smart-web/commit/8ca64d2f001b4fa2eb0eb5aa76b235332d57b808))
416
+
409
417
  ## [1.3.0](https://github.com/jojo-labs/smart-web/compare/v1.2.4...v1.3.0) (2026-10-03)
410
418
 
411
419
 
@@ -1,4 +1,4 @@
1
- import { configEnabled, fetchJson, fetchText, resolveValidatedUrl, validateOutboundUrl } from "../shared.js";
1
+ import { configEnabled, validateOutboundUrl } from "../shared.js";
2
2
  function localOnlyMode() {
3
3
  return configEnabled("network.localOnly", false, { private: true });
4
4
  }
@@ -60,40 +60,42 @@ async function enforcePolicy(url, options) {
60
60
  return { ok: true };
61
61
  }
62
62
  export async function fetchProviderText(url, timeoutMs, init, options) {
63
- const allowed = await enforcePolicy(url, options);
64
- if (!allowed.ok) {
65
- return { ok: false, status: 0, text: "", error: allowed.error };
66
- }
67
- const resolveOptions = { timeoutMs };
68
- const resolved = await resolveValidatedUrl(url, resolveOptions);
69
- if (!resolved.ok) {
70
- return {
71
- ok: false,
72
- status: 0,
73
- text: "",
74
- error: { category: "block", code: resolved.reason, message: resolved.message },
75
- };
76
- }
77
- const finalAllowed = await enforcePolicy(resolved.url, options);
78
- if (!finalAllowed.ok) {
79
- return { ok: false, status: 0, text: "", error: finalAllowed.error };
80
- }
81
- const safeInit = init ? { ...init, redirect: "error" } : { redirect: "error" };
82
- if (init?.headers !== undefined && !isSameOrigin(resolved.url, url)) {
83
- const sanitized = sanitizeCrossOriginRedirectHeaders(init.headers);
84
- if (sanitized !== undefined)
85
- safeInit.headers = sanitized;
63
+ const controller = new AbortController();
64
+ const signal = init?.signal ? AbortSignal.any([init.signal, controller.signal]) : controller.signal;
65
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
66
+ let current = url;
67
+ try {
68
+ for (let hop = 0; hop <= 5; hop++) {
69
+ signal.throwIfAborted();
70
+ const allowed = await enforcePolicy(current, options);
71
+ if (!allowed.ok)
72
+ return { ok: false, status: 0, text: "", error: allowed.error };
73
+ signal.throwIfAborted();
74
+ const headers = isSameOrigin(current, url) ? init?.headers : sanitizeCrossOriginRedirectHeaders(init?.headers);
75
+ const response = await fetch(current, { ...init, ...(headers ? { headers } : {}), signal, redirect: "manual" });
76
+ if ([301, 302, 303, 307, 308].includes(response.status)) {
77
+ const location = response.headers.get("location");
78
+ void response.body?.cancel().catch(() => { });
79
+ if (hop === 5)
80
+ return { ok: false, status: response.status, text: "", error: { category: "block", code: "too_many_redirects", message: "Too many provider redirects" } };
81
+ if (!location)
82
+ return { ok: false, status: response.status, text: "", error: { category: "block", code: "redirect_missing_location", message: "Provider redirect omitted Location" } };
83
+ current = new URL(location, current).toString();
84
+ continue;
85
+ }
86
+ const text = await response.text();
87
+ if (!response.ok)
88
+ return { ok: false, status: response.status, text, error: { category: "unavailable", code: "provider_fetch_failed", message: `status=${response.status}` } };
89
+ return { ok: true, status: response.status, text, final_url: current };
90
+ }
91
+ return { ok: false, status: 0, text: "", error: { category: "block", code: "too_many_redirects", message: "Too many provider redirects" } };
92
+ }
93
+ catch (error) {
94
+ return { ok: false, status: 0, text: "", error: { category: "unavailable", code: "provider_fetch_failed", message: error instanceof Error ? error.message : String(error) } };
86
95
  }
87
- const result = await fetchText(resolved.url, timeoutMs, safeInit);
88
- if (!result.ok) {
89
- return {
90
- ok: false,
91
- status: result.status,
92
- text: result.text,
93
- error: { category: "unavailable", code: "provider_fetch_failed", message: result.error || `status=${result.status}` },
94
- };
96
+ finally {
97
+ clearTimeout(timer);
95
98
  }
96
- return { ok: true, status: result.status, text: result.text, final_url: resolved.url };
97
99
  }
98
100
  export async function fetchProviderJson(url, timeoutMs, init, options) {
99
101
  if (options.deadlineAt === undefined)
@@ -131,49 +133,16 @@ async function fetchProviderJsonAttempt(url, timeoutMs, init, options) {
131
133
  const expired = () => init?.signal?.aborted || (options.deadlineAt !== undefined && Date.now() >= options.deadlineAt);
132
134
  if (expired())
133
135
  return providerDeadlineFailure();
134
- const allowed = await enforcePolicy(url, options);
136
+ const result = await fetchProviderText(url, timeoutMs, init, options);
135
137
  if (expired())
136
138
  return providerDeadlineFailure();
137
- if (!allowed.ok) {
138
- return { ok: false, status: 0, text: "", data: null, error: allowed.error };
139
- }
140
- const resolveOptions = { timeoutMs, ...(init?.signal ? { signal: init.signal } : {}) };
141
- const resolved = await resolveValidatedUrl(url, resolveOptions);
142
- if (expired())
143
- return providerDeadlineFailure();
144
- if (!resolved.ok) {
145
- return {
146
- ok: false,
147
- status: 0,
148
- text: "",
149
- data: null,
150
- error: { category: "block", code: resolved.reason, message: resolved.message },
151
- };
152
- }
153
- const finalAllowed = await enforcePolicy(resolved.url, options);
154
- if (expired())
155
- return providerDeadlineFailure();
156
- if (!finalAllowed.ok) {
157
- return { ok: false, status: 0, text: "", data: null, error: finalAllowed.error };
158
- }
159
- const safeInit = init ? { ...init, redirect: "error" } : { redirect: "error" };
160
- if (init?.headers !== undefined && !isSameOrigin(resolved.url, url)) {
161
- const sanitized = sanitizeCrossOriginRedirectHeaders(init.headers);
162
- if (sanitized !== undefined)
163
- safeInit.headers = sanitized;
139
+ if (!result.ok)
140
+ return { ...result, data: null };
141
+ try {
142
+ return { ok: true, status: result.status, text: result.text, data: result.text ? JSON.parse(result.text) : null };
164
143
  }
165
- const result = await fetchJson(resolved.url, timeoutMs, safeInit);
166
- if (expired())
167
- return providerDeadlineFailure();
168
- if (!result.ok) {
169
- return {
170
- ok: false,
171
- status: result.status,
172
- text: result.text,
173
- data: null,
174
- error: { category: "unavailable", code: "provider_fetch_failed", message: result.error || `status=${result.status}` },
175
- };
144
+ catch (error) {
145
+ return { ok: false, status: result.status, text: result.text, data: null, error: { category: "unavailable", code: "provider_fetch_failed", message: error instanceof Error ? error.message : String(error) } };
176
146
  }
177
- return { ok: true, status: result.status, text: result.text, data: result.data };
178
147
  }
179
148
  //# sourceMappingURL=provider-policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-policy.js","sourceRoot":"","sources":["../../src/smartfetch/provider-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-policy.js","sourceRoot":"","sources":["../../src/smartfetch/provider-policy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "smart-web-mcp",
3
3
  "mcpName": "io.github.jojo-labs/smart-web",
4
- "version": "1.3.0",
4
+ "version": "1.3.1",
5
5
  "packageManager": "npm@11.9.0",
6
6
  "description": "Local MCP for web search, direct-URL fetch, site crawling, docs export, and bounded smartbrowser local browser actions.",
7
7
  "homepage": "https://github.com/jojo-labs/smart-web",