smart-web-mcp 1.10.13 → 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 +16 -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/dist/settings.d.ts +1 -0
- package/dist/settings.js +1 -0
- package/dist/settings.js.map +1 -1
- package/dist/smartfetch/adaptive-scraper.js +13 -2
- package/dist/smartfetch/adaptive-scraper.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,8 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
12
12
|
* Make browser cancellation/late-connector regressions advance a controlled clock only after the intended phase begins, retaining cleanup and first-outcome assertions under suite load (#947).
|
|
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
|
+
* 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.
|
|
15
17
|
* Execute npm through its JavaScript CLI on Windows for metadata/package checks, keeping arguments literal without a command shell.
|
|
16
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.
|
|
17
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.
|
|
@@ -488,6 +490,20 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
488
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.
|
|
489
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.
|
|
490
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
|
+
|
|
500
|
+
## [1.10.14](https://github.com/jojo-labs/smart-web/compare/v1.10.13...v1.10.14) (2026-10-25)
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
### Bug Fixes
|
|
504
|
+
|
|
505
|
+
* **scraper:** support literal interpreter prefixes without a shell ([#937](https://github.com/jojo-labs/smart-web/issues/937)) ([4e11195](https://github.com/jojo-labs/smart-web/commit/4e1119569f0b1fe6890224b8127ed5640b33aa8f))
|
|
506
|
+
|
|
491
507
|
## [1.10.13](https://github.com/jojo-labs/smart-web/compare/v1.10.12...v1.10.13) (2026-10-25)
|
|
492
508
|
|
|
493
509
|
|
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/dist/settings.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export type SmartWebSettings = {
|
|
|
39
39
|
enableArchiveMd?: boolean;
|
|
40
40
|
enableAdaptiveScraper?: boolean;
|
|
41
41
|
adaptiveScraperCommand?: string;
|
|
42
|
+
adaptiveScraperArgs?: string[];
|
|
42
43
|
adaptiveScraperTimeoutMs?: number;
|
|
43
44
|
outputBudget?: {
|
|
44
45
|
preset?: "compact" | "balanced" | "full";
|
package/dist/settings.js
CHANGED
package/dist/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC1H,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,12 +52,18 @@ export async function maybeUseAdaptiveScraper(url, active, timeoutMs) {
|
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
54
|
const command = adaptiveScraperCommand();
|
|
55
|
+
const prefix = configValue("fetch.adaptiveScraperArgs") ?? [];
|
|
56
|
+
if (!Array.isArray(prefix) || prefix.length > 32 || prefix.some(value => typeof value !== "string" || value.includes("\0")) || prefix.reduce((length, value) => length + value.length, 0) > 32768) {
|
|
57
|
+
const error = { category: "parse_error", code: "adaptive_scraper_invalid_arguments", message: "fetch.adaptiveScraperArgs must be a bounded array of literal strings." };
|
|
58
|
+
return { active, errors: [error], attempted: false, succeeded: false, reason: error.message };
|
|
59
|
+
}
|
|
55
60
|
const commandTimeoutMs = adaptiveScraperTimeoutMs(timeoutMs);
|
|
56
61
|
const tempDir = await mkdtemp(join(tmpdir(), "smart-web-adaptive-scraper-"));
|
|
57
62
|
const outputPath = join(tempDir, "content.txt");
|
|
58
63
|
const timeoutSeconds = Math.max(1, Math.ceil(commandTimeoutMs / 1000));
|
|
59
64
|
try {
|
|
60
65
|
await execFileAsync(command, [
|
|
66
|
+
...prefix,
|
|
61
67
|
"extract",
|
|
62
68
|
"get",
|
|
63
69
|
url,
|
|
@@ -70,6 +76,8 @@ export async function maybeUseAdaptiveScraper(url, active, timeoutMs) {
|
|
|
70
76
|
], {
|
|
71
77
|
timeout: commandTimeoutMs + 1500,
|
|
72
78
|
maxBuffer: 1024 * 1024,
|
|
79
|
+
shell: false,
|
|
80
|
+
windowsHide: true,
|
|
73
81
|
});
|
|
74
82
|
const text = (await readFile(outputPath, "utf8")).trim();
|
|
75
83
|
if (isMissingPageShell({ title: text.split(/\r?\n/, 1)[0] || "", text })) {
|
|
@@ -112,11 +120,14 @@ export async function maybeUseAdaptiveScraper(url, active, timeoutMs) {
|
|
|
112
120
|
};
|
|
113
121
|
}
|
|
114
122
|
catch (error) {
|
|
115
|
-
const
|
|
123
|
+
const failure = (error && typeof error === "object" ? error : {});
|
|
124
|
+
const timeout = failure.code === "ETIMEDOUT" || (failure.killed === true && failure.code == null);
|
|
125
|
+
const code = typeof failure.code === "string" && /^[A-Z0-9_]{1,48}$/.test(failure.code) ? failure.code : typeof failure.code === "number" && Number.isInteger(failure.code) ? `exit_${failure.code}` : "process_error";
|
|
126
|
+
const message = `Adaptive scraper process ${timeout ? "timed out" : "failed"} (${code}). Check the executable and literal prefix arguments.`;
|
|
116
127
|
return {
|
|
117
128
|
active,
|
|
118
129
|
errors: [{
|
|
119
|
-
category:
|
|
130
|
+
category: timeout ? "timeout" : "unavailable",
|
|
120
131
|
code: "adaptive_scraper_failed",
|
|
121
132
|
message,
|
|
122
133
|
}],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptive-scraper.js","sourceRoot":"","sources":["../../src/smartfetch/adaptive-scraper.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adaptive-scraper.js","sourceRoot":"","sources":["../../src/smartfetch/adaptive-scraper.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.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",
|
|
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",
|