smart-web-mcp 1.10.14 → 1.10.15
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 +8 -0
- package/dist/dev-runtime.d.ts +2 -2
- package/dist/dev-runtime.js +40 -3
- package/dist/dev-runtime.js.map +1 -1
- package/dist/dev.js +2 -1
- package/dist/dev.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -13,6 +13,7 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
13
13
|
* Consolidate case-colliding PR templates while retaining checks, traceability and release guidance. Add a tracked-path case-collision gate so fresh Windows checkouts remain clean. See #936.
|
|
14
14
|
* Execute the provider benchmark CLI on Windows and paths with spaces or directory aliases by comparing canonical file paths. Preserve import-only library behavior and nonzero invalid-option exits instead of silently returning success without output. See #932.
|
|
15
15
|
* Accept literal adaptive scraper prefix arguments for interpreter/runner commands without a shell. Validate configuration before spawning, keep configured arguments out of failure messages, and run portable Node recovery fixtures on Windows. See [command configuration](docs/adaptive-scraper-command.md) and #935.
|
|
16
|
+
* Accept native absolute managed-runtime paths and opt-in atomic JSON release pointers. Capture an immutable release for each call, preserve in-flight dependency trees, and reject malformed/conflicting pointer configuration. Exercise the existing coherence assertions through Windows pointer files and POSIX symlinks without changing OS security settings. See [runtime pointers](docs/runtime-pointers.md) and #938.
|
|
16
17
|
* Execute npm through its JavaScript CLI on Windows for metadata/package checks, keeping arguments literal without a command shell.
|
|
17
18
|
* Add an opt-in evidence-oriented smartfetch MCP view with a validated envelope and explicit outcome/coverage. Preserve source content and legacy diagnostics while avoiding repeated transport data. Extract prose from Next.js Flight children instead of promoting shell/import records as articles. See [MCP evidence](docs/mcp-evidence.md) and #922.
|
|
18
19
|
* Try existing captures for weak known-paywall originals or explicit paywall previews before automatic browser/relay recovery, so an origin login wall cannot preempt independent archive acquisition. Reserve browser time after failed early archive discovery and do not repeat it; preserve explicit browser/profile requests, origin cooldowns, network guards and historical provenance. Live archive429/timeouts remain retrieval failures.
|
|
@@ -489,6 +490,13 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
489
490
|
- Korean public API helpers now validate outbound URLs and redirects before fetching, blocking localhost, private, and reserved targets unless `network.allowPrivateHosts` is explicitly enabled.
|
|
490
491
|
- 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.
|
|
491
492
|
|
|
493
|
+
## [1.10.15](https://github.com/jojo-labs/smart-web/compare/v1.10.14...v1.10.15) (2026-10-25)
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
### Bug Fixes
|
|
497
|
+
|
|
498
|
+
* support atomic managed runtime pointers on Windows ([#939](https://github.com/jojo-labs/smart-web/issues/939)) ([830d970](https://github.com/jojo-labs/smart-web/commit/830d970d0e0660c56d1921597b669250eaadbd70))
|
|
499
|
+
|
|
492
500
|
## [1.10.14](https://github.com/jojo-labs/smart-web/compare/v1.10.13...v1.10.14) (2026-10-25)
|
|
493
501
|
|
|
494
502
|
|
package/dist/dev-runtime.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ type LoaderOptions = {
|
|
|
4
4
|
beforeSnapshot?: () => Promise<void>;
|
|
5
5
|
};
|
|
6
6
|
export declare function resolveReleaseRuntimeDir(installedDistDir: string, env?: NodeJS.ProcessEnv): string;
|
|
7
|
-
export declare function createVersionedModuleLoader(baseDir: string, options?: LoaderOptions): (relativePath: string) => Promise<Record<string, unknown>>;
|
|
8
|
-
export declare function createReloadingRuntime(baseDir: string): SmartWebRuntime;
|
|
7
|
+
export declare function createVersionedModuleLoader(baseDir: string | (() => string), options?: LoaderOptions): (relativePath: string) => Promise<Record<string, unknown>>;
|
|
8
|
+
export declare function createReloadingRuntime(baseDir: string | (() => string)): SmartWebRuntime;
|
|
9
9
|
export {};
|
package/dist/dev-runtime.js
CHANGED
|
@@ -1,13 +1,50 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
+
import { closeSync, fstatSync, openSync, readSync } from "node:fs";
|
|
2
3
|
import { copyFile, mkdtemp, mkdir, readFile, readdir, realpath, symlink, writeFile } from "node:fs/promises";
|
|
3
|
-
import { basename, join, relative, resolve, dirname } from "node:path";
|
|
4
|
+
import { basename, isAbsolute, join, relative, resolve, dirname } from "node:path";
|
|
4
5
|
import { pathToFileURL } from "node:url";
|
|
5
6
|
import { resolveSmartWebTempRoot } from "./runtime-temp.js";
|
|
6
7
|
export function resolveReleaseRuntimeDir(installedDistDir, env = process.env) {
|
|
7
8
|
const managed = env.SMART_WEB_RUNTIME_DIST_DIR;
|
|
9
|
+
const pointer = env.SMART_WEB_RUNTIME_POINTER_FILE;
|
|
10
|
+
if (managed && pointer)
|
|
11
|
+
throw new Error("Configure either SMART_WEB_RUNTIME_DIST_DIR or SMART_WEB_RUNTIME_POINTER_FILE, not both");
|
|
12
|
+
if (pointer) {
|
|
13
|
+
if (!isAbsolute(pointer))
|
|
14
|
+
throw new Error("SMART_WEB_RUNTIME_POINTER_FILE must be an absolute path");
|
|
15
|
+
const handle = openSync(pointer, "r");
|
|
16
|
+
try {
|
|
17
|
+
if (!fstatSync(handle).isFile())
|
|
18
|
+
throw new Error("Runtime pointer must be a regular file");
|
|
19
|
+
const buffer = Buffer.alloc(65537);
|
|
20
|
+
let offset = 0;
|
|
21
|
+
while (offset < buffer.length) {
|
|
22
|
+
const bytes = readSync(handle, buffer, offset, buffer.length - offset, null);
|
|
23
|
+
if (!bytes)
|
|
24
|
+
break;
|
|
25
|
+
offset += bytes;
|
|
26
|
+
}
|
|
27
|
+
if (offset > 65536)
|
|
28
|
+
throw new Error("Runtime pointer exceeds 64 KiB");
|
|
29
|
+
let data;
|
|
30
|
+
try {
|
|
31
|
+
data = JSON.parse(buffer.subarray(0, offset).toString("utf8").replace(/^\uFEFF/, ""));
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
throw new Error("Runtime pointer contains invalid JSON");
|
|
35
|
+
}
|
|
36
|
+
if (!data || typeof data !== "object" || Array.isArray(data) || !("format" in data) || data.format !== 1 || !("distDir" in data) || typeof data.distDir !== "string" || !isAbsolute(data.distDir) || Object.keys(data).some(key => !["format", "distDir"].includes(key))) {
|
|
37
|
+
throw new Error("Runtime pointer must contain format=1 and an absolute distDir");
|
|
38
|
+
}
|
|
39
|
+
return data.distDir;
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
closeSync(handle);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
8
45
|
if (!managed)
|
|
9
46
|
return installedDistDir;
|
|
10
|
-
if (!managed
|
|
47
|
+
if (!isAbsolute(managed))
|
|
11
48
|
throw new Error("SMART_WEB_RUNTIME_DIST_DIR must be an absolute path");
|
|
12
49
|
return managed;
|
|
13
50
|
}
|
|
@@ -72,7 +109,7 @@ export function createVersionedModuleLoader(baseDir, options) {
|
|
|
72
109
|
return async function load(relativePath) {
|
|
73
110
|
// Resolve the immutable release before scanning: the current symlink may
|
|
74
111
|
// switch while the snapshot copies files and links its dependency tree.
|
|
75
|
-
const releaseDir = await realpath(baseDir);
|
|
112
|
+
const releaseDir = await realpath(typeof baseDir === "function" ? baseDir() : baseDir);
|
|
76
113
|
const files = await collectRuntimeFiles(releaseDir);
|
|
77
114
|
const fingerprint = `${releaseDir}|${await fingerprintRuntime(releaseDir, files)}`;
|
|
78
115
|
if (!snapshot || snapshot.fingerprint !== fingerprint) {
|
package/dist/dev-runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-runtime.js","sourceRoot":"","sources":["../src/dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"dev-runtime.js","sourceRoot":"","sources":["../src/dev-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/dev.js
CHANGED
|
@@ -10,7 +10,8 @@ const packageVersion = JSON.parse(readFileSync(new URL("../package.json", import
|
|
|
10
10
|
const distDir = dirname(fileURLToPath(import.meta.url));
|
|
11
11
|
sanitizeSmartWebTempEnv();
|
|
12
12
|
async function main() {
|
|
13
|
-
const
|
|
13
|
+
const initialRoot = resolveReleaseRuntimeDir(distDir);
|
|
14
|
+
const runtime = createReloadingRuntime(process.env.SMART_WEB_RUNTIME_POINTER_FILE ? () => resolveReleaseRuntimeDir(distDir) : initialRoot);
|
|
14
15
|
const server = createSmartWebServer(`${packageVersion}-dev`, runtime);
|
|
15
16
|
await connectSmartWebStdio(server);
|
|
16
17
|
}
|
package/dist/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAiB,CAAA;AACtH,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACvD,uBAAuB,EAAE,CAAA;AAEzB,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,sBAAsB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAiB,CAAA;AACtH,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACvD,uBAAuB,EAAE,CAAA;AAEzB,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IAC1I,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,cAAc,MAAM,EAAE,OAAO,CAAC,CAAA;IACrE,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACpC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
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.10.
|
|
4
|
+
"version": "1.10.15",
|
|
5
5
|
"packageManager": "npm@11.13.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",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"dev:mcp": "node dist/dev.js",
|
|
69
69
|
"dev:watch": "tsc -p tsconfig.json --watch --preserveWatchOutput",
|
|
70
70
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
71
|
-
"test": "node --import tsx --test src/npm-process.test.ts src/mcp-evidence.test.ts src/reddit-continuation.test.ts src/reddit-practical.test.ts src/browser-continuation.test.ts src/generic-discussion.test.ts src/github-discussion.test.ts src/blind-post.test.ts src/cli-fetch-options.test.ts src/body-export.test.ts src/private-files.test.ts src/assessment.test.ts src/browser-session.test.ts src/shared.test.ts src/extraction.test.ts src/assets.test.ts src/dev-runtime.test.ts src/release-scripts.test.ts src/provider-benchmark-script.test.ts src/smartsearch-quality-benchmark-script.test.ts src/no-secret-surface-watchdog-script.test.ts src/partial-handoff-watchdog-script.test.ts src/render.test.ts src/providers.test.ts src/hackernews-recovery.test.ts src/smartcrawl.test.ts src/smartcrawl-export.test.ts src/provider-policy.test.ts src/archive-fallback.test.ts src/mcp.test.ts src/korea/korea.test.ts src/korea/coupang-recovery.test.ts src/search-browser.test.ts src/search-integrity.test.ts src/fetch-isolation.test.ts src/fetch-deadline.test.ts src/search-quality.test.ts src/smartbrowser.test.ts src/browser-participation.test.ts src/retirement.test.ts src/dcinside-comments.test.ts src/ppomppu-comments.test.ts src/clien-comments.test.ts src/naver-blog.test.ts src/naver-cafe.test.ts src/operator-canary.test.ts src/operator-canary-cli.test.ts src/operator-cdp.test.ts src/operator-cancellation.test.ts src/operator-restart.test.ts src/case-paths.test.ts src/cli-entry.test.ts src/adaptive-command.test.ts",
|
|
71
|
+
"test": "node --import tsx --test src/npm-process.test.ts src/mcp-evidence.test.ts src/reddit-continuation.test.ts src/reddit-practical.test.ts src/browser-continuation.test.ts src/generic-discussion.test.ts src/github-discussion.test.ts src/blind-post.test.ts src/cli-fetch-options.test.ts src/body-export.test.ts src/private-files.test.ts src/assessment.test.ts src/browser-session.test.ts src/shared.test.ts src/extraction.test.ts src/assets.test.ts src/dev-runtime.test.ts src/release-scripts.test.ts src/provider-benchmark-script.test.ts src/smartsearch-quality-benchmark-script.test.ts src/no-secret-surface-watchdog-script.test.ts src/partial-handoff-watchdog-script.test.ts src/render.test.ts src/providers.test.ts src/hackernews-recovery.test.ts src/smartcrawl.test.ts src/smartcrawl-export.test.ts src/provider-policy.test.ts src/archive-fallback.test.ts src/mcp.test.ts src/korea/korea.test.ts src/korea/coupang-recovery.test.ts src/search-browser.test.ts src/search-integrity.test.ts src/fetch-isolation.test.ts src/fetch-deadline.test.ts src/search-quality.test.ts src/smartbrowser.test.ts src/browser-participation.test.ts src/retirement.test.ts src/dcinside-comments.test.ts src/ppomppu-comments.test.ts src/clien-comments.test.ts src/naver-blog.test.ts src/naver-cafe.test.ts src/operator-canary.test.ts src/operator-canary-cli.test.ts src/operator-cdp.test.ts src/operator-cancellation.test.ts src/operator-restart.test.ts src/case-paths.test.ts src/cli-entry.test.ts src/adaptive-command.test.ts src/runtime-pointer.test.ts",
|
|
72
72
|
"test:bun:fast": "bun test src/extraction.test.ts src/assets.test.ts",
|
|
73
73
|
"test:e2e": "node --import tsx --test src/packaged-mcp.test.ts",
|
|
74
74
|
"test:browser": "node --import tsx --test --test-concurrency=1 src/operator-browser.e2e.test.ts src/browser-actions.e2e.test.ts src/dcinside-pages.e2e.test.ts src/naver-cafe.e2e.test.ts src/operator-cancellation.e2e.test.ts src/reddit-continuation.e2e.test.ts",
|