smart-web-mcp 0.29.0 → 0.30.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.
- package/CHANGELOG.md +19 -5
- package/README.md +9 -55
- package/dist/settings.d.ts +0 -6
- package/dist/settings.js +0 -3
- package/dist/settings.js.map +1 -1
- package/dist/smartfetch/providers/index.js +1 -3
- package/dist/smartfetch/providers/index.js.map +1 -1
- package/dist/smartsearch.js +178 -164
- package/dist/smartsearch.js.map +1 -1
- package/package.json +2 -2
- package/dist/smartfetch/providers/firecrawl.d.ts +0 -19
- package/dist/smartfetch/providers/firecrawl.js +0 -117
- package/dist/smartfetch/providers/firecrawl.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,7 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
8
8
|
|
|
9
9
|
### Added
|
|
10
10
|
|
|
11
|
+
- Removed hosted API-key provider lanes (Firecrawl, Exa, Tavily, Browserless) from the smart-web runtime/benchmark surface so the default product remains no-secret/local-first.
|
|
11
12
|
- `smartfetch` now accepts an MCP `output_budget` preset (`compact`, `balanced`, or `full`) and `fetch.outputBudget.preset` settings, so token-sensitive hosts can request smaller structured payloads without hand-tuning every numeric cap.
|
|
12
13
|
- Added MCP host-profile guidance for Hermes/Raon, Codex, OpenCode, and Claude Code, including budget-control precedence and compact/balanced/full follow-up retrieval guidance.
|
|
13
14
|
- Added deterministic MCP smoke coverage proving large `smartfetch` structured payloads stay out of `content[0].text` unless `format: "json"` is explicitly requested.
|
|
@@ -42,13 +43,10 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
42
43
|
- Added an explicit `--allow-naver-map-live-smoke` provider benchmark gate and `benchmark:providers:live:naver-map` alias for public Naver Map browser-lane live evidence.
|
|
43
44
|
- Added an explicit `--allow-naver-cafe-live-smoke` provider benchmark gate and `benchmark:providers:live:naver-cafe` alias for public Naver Cafe partial-honesty live evidence.
|
|
44
45
|
- Added `--allow-all-no-secret-live-smokes` and `benchmark:providers:live:no-secret` so maintenance jobs can archive one all-no-secret live calibration artifact without enabling credentialed search lanes.
|
|
45
|
-
- Added an explicit `--allow-external-search-live-smoke` provider benchmark gate and `benchmark:providers:live:external-search` alias for credentialed Exa/Tavily search live-smoke policy calibration.
|
|
46
|
-
- Added a Tavily `smartsearch` runtime provider behind `search.tavilyApiKey` / `search.enableTavily`, plus credentialed external-search live-smoke support when `TAVILY_API_KEY` or `SMART_WEB_TAVILY_API_KEY` is explicitly configured.
|
|
47
46
|
- Added `--json-file <path>` and an npm alias for provider benchmark JSON artifacts without stdout capture.
|
|
48
47
|
- Added `--gap-file <path>` and `benchmark:providers:gaps` for compact provider evidence gap JSON artifacts.
|
|
49
48
|
- Added `benchmark:providers:live:no-secret:gaps` for refreshing the compact all-no-secret live provider evidence gap artifact without archiving the full Markdown/JSON report.
|
|
50
49
|
- Added a provider benchmark report archive index in `reports/README.md` that points maintenance jobs at the current no-secret artifacts and labels older cumulative reports as historical calibration snapshots.
|
|
51
|
-
- Added deterministic Exa/Tavily-style `search_external` provider benchmark fixtures so credentialed search lanes can be measured without paid/live requests before any external-search live-smoke work.
|
|
52
50
|
- Added fixture skipped-case lane/reason metadata to provider benchmark live-vs-fixture and evidence-gap artifacts so credential-gated fixtures are not misread as absent fixtures.
|
|
53
51
|
- Added `scripts/partial-handoff-watchdog.mjs` and `npm run watchdog:partial-handoff` to run a no-secret drift watchdog over representative partial/blocked/handoff outputs and fail on chrome URL, script, or style-shell leakage.
|
|
54
52
|
- Added `--report-file <path>` to the partial/handoff watchdog so durable runners can persist the full JSON report while keeping stdout human-readable.
|
|
@@ -61,6 +59,7 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
61
59
|
- Added Instagram unavailable/login output to the partial/handoff watchdog representative set.
|
|
62
60
|
- Added X/Twitter and Reddit unavailable/authwall outputs to the partial/handoff watchdog representative set.
|
|
63
61
|
- Added no-secret X/Twitter profile/timeline syndication handling with explicit blocked/rate-limited guidance when the public endpoint is unavailable.
|
|
62
|
+
- Added deterministic and gated live provider benchmark coverage for public X/Twitter post retrieval, including `--allow-x-twitter-live-smoke` and `benchmark:providers:live:x-twitter`.
|
|
64
63
|
- Added DCInside unavailable/deleted post output to the partial/handoff watchdog representative set.
|
|
65
64
|
- Added Telegram missing/private post output to the partial/handoff watchdog representative set.
|
|
66
65
|
- Added an explicit `smartcrawl-export.v1` schema version to smartcrawl export manifests and summaries.
|
|
@@ -68,10 +67,11 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
68
67
|
- Added resolved crawl options to smartcrawl export manifests for reproducible docs exports.
|
|
69
68
|
- Added versioned `smartcrawl-resource-handles.json` files to smartcrawl docs exports so hosts can consume local Markdown file handles without parsing the full crawl manifest.
|
|
70
69
|
- Added ordered `recommended_resources` to `smartcrawl-resource-handles.json`, pointing hosts at the summary, resource-handle manifest, and first Markdown document without requiring role-order heuristics.
|
|
71
|
-
- Expanded provider benchmark corpus coverage across static articles, JS-rendered pages, authwalls, long docs/Wikipedia, Naver Blog/Cafe/Map, Hacker News, YouTube, BOJ/Codeforces, relay
|
|
70
|
+
- Expanded provider benchmark corpus coverage across static articles, JS-rendered pages, authwalls, long docs/Wikipedia, Naver Blog/Cafe/Map, Hacker News, YouTube, BOJ/Codeforces, relay and docs export surfaces.
|
|
72
71
|
|
|
73
72
|
### Changed
|
|
74
73
|
|
|
74
|
+
- `smartsearch` now preserves path-scoped `site:` queries for crawl handoff start URLs and routes `site:github.com/owner/repo ...` repo-doc searches plus `site:npmjs.com/package/name ...` exact package lookups through no-key native APIs.
|
|
75
75
|
- Provider benchmark live-vs-fixture and evidence-gap artifacts now mark all-skipped fixture rows as `fixtureEvidence: "skipped"` with `fixture-skipped-*` comparison states, while still using `unlock-skipped-fixture-prerequisites` for credential-gated follow-up queues.
|
|
76
76
|
- The partial/handoff watchdog now uses a non-existent Wikidocs article id for its unavailable-shell representative, avoiding false failures when public Wikidocs articles render as healthy content.
|
|
77
77
|
- X/Twitter oEmbed fallback output now includes available author/date metadata and suppresses `ref_src` tracking links from compact post links.
|
|
@@ -141,6 +141,20 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
141
141
|
- Korean public API helpers now validate outbound URLs and redirects before fetching, blocking localhost, private, and reserved targets unless `network.allowPrivateHosts` is explicitly enabled.
|
|
142
142
|
- 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.
|
|
143
143
|
|
|
144
|
+
## [0.30.0](https://github.com/jojo-labs/smart-web/compare/v0.29.1...v0.30.0) (2026-06-22)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
### Features
|
|
148
|
+
|
|
149
|
+
* improve no-key smartsearch routing ([#366](https://github.com/jojo-labs/smart-web/issues/366)) ([ece7e03](https://github.com/jojo-labs/smart-web/commit/ece7e0365b56413faec44e8c00108682410a0e5d))
|
|
150
|
+
|
|
151
|
+
## [0.29.1](https://github.com/jojo-labs/smart-web/compare/v0.29.0...v0.29.1) (2026-06-22)
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
### Refactoring
|
|
155
|
+
|
|
156
|
+
* remove hosted provider lanes ([#362](https://github.com/jojo-labs/smart-web/issues/362)) ([b1871a9](https://github.com/jojo-labs/smart-web/commit/b1871a953305612cb2df63600d6341c099ac3131))
|
|
157
|
+
|
|
144
158
|
## [0.29.0](https://github.com/jojo-labs/smart-web/compare/v0.28.0...v0.29.0) (2026-06-21)
|
|
145
159
|
|
|
146
160
|
|
|
@@ -1218,7 +1232,7 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
1218
1232
|
### Added
|
|
1219
1233
|
|
|
1220
1234
|
- initial public release of `smart-web-mcp`
|
|
1221
|
-
- `smartsearch` with
|
|
1235
|
+
- `smartsearch` with site-native, SearXNG, DuckDuckGo, and Brave HTML fallback chain
|
|
1222
1236
|
- `smartfetch` with impit and Playwright escalation
|
|
1223
1237
|
- Reddit, X, and DCInside target-specific handling
|
|
1224
1238
|
- npm publication and MCP Registry publication
|
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ If `smart-web` returns reproducible incorrect or misleading output, open a GitHu
|
|
|
33
33
|
- paywalled article pages prefer lawful archive recovery and search-indexed reference previews before telling the host to escalate elsewhere
|
|
34
34
|
- LinkedIn authwall handling prefers compliant public fallbacks such as archives and search-indexed reference metadata before giving up
|
|
35
35
|
- legal paper fallback for academic URLs: DOI-aware OpenAlex, Unpaywall, Semantic Scholar, CORE discovery, and Europe PMC enrichment plus bioRxiv/medRxiv API fallback when a direct paper page is thin or blocked
|
|
36
|
-
- site-native public search fallbacks cover Reddit, GitHub repository discovery, npm, Hacker News, Stack Exchange, and Velog when a matching `site:` query is available
|
|
36
|
+
- site-native public search fallbacks cover Reddit, GitHub repository discovery/repo-docs queries, npm search/exact packages, Hacker News, Stack Exchange, and Velog when a matching `site:` query is available
|
|
37
37
|
- YouTube watch, shorts, embed, live, and youtu.be video URLs get best-effort public caption enrichment by default while non-video YouTube pages stay on the generic fetch path
|
|
38
38
|
- structured output with `assessment` and `pipeline` fields for host-side decision making
|
|
39
39
|
- local-first defaults with privacy-aware search/fetch behavior
|
|
@@ -85,7 +85,7 @@ When compact output omits needed content, make a follow-up `smartfetch` call for
|
|
|
85
85
|
## Supported high-signal surfaces
|
|
86
86
|
|
|
87
87
|
- communities: Reddit, DCInside, LinkedIn public posts with public fallback recovery, Algumon
|
|
88
|
-
- search-native surfaces: Reddit, GitHub repository discovery, npm, Hacker News, Stack Exchange, Velog
|
|
88
|
+
- search-native surfaces: Reddit, GitHub repository discovery and repo-docs path scopes, npm search and exact package path scopes, Hacker News, Stack Exchange, Velog
|
|
89
89
|
- competitive-programming surfaces: solved.ac problem/search/profile routes, BOJ problem/workbook/user pages, Codeforces problem/profile pages, AtCoder task/contest pages, QOJ problem pages, Jungol problem pages
|
|
90
90
|
- local map place pages: Naver Map, Kakao Map, and redirected `naver.me` place-share links
|
|
91
91
|
- reference/article pages: NamuWiki, Wikipedia, Naver Blog, Tistory, Velog
|
|
@@ -236,10 +236,6 @@ npx -y smart-web-mcp --init-settings
|
|
|
236
236
|
},
|
|
237
237
|
|
|
238
238
|
"search": {
|
|
239
|
-
// API keys — leave empty to skip that provider
|
|
240
|
-
"exaApiKey": "",
|
|
241
|
-
"tavilyApiKey": "",
|
|
242
|
-
"braveSearchApiKey": "",
|
|
243
239
|
// Self-hosted SearXNG instance URL
|
|
244
240
|
"searxngBaseUrl": "",
|
|
245
241
|
"enableSearxng": true
|
|
@@ -336,44 +332,7 @@ Out of the box `smart-web` works with sensible defaults. Create a settings file
|
|
|
336
332
|
}
|
|
337
333
|
```
|
|
338
334
|
|
|
339
|
-
In `private` mode, relay-style provider requests are blocked,
|
|
340
|
-
|
|
341
|
-
#### Private with Exa allowed back in
|
|
342
|
-
|
|
343
|
-
```json
|
|
344
|
-
{
|
|
345
|
-
"profile": "private",
|
|
346
|
-
"search": {
|
|
347
|
-
"exaApiKey": "...",
|
|
348
|
-
"enableExa": true
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
#### Private with Tavily allowed back in
|
|
354
|
-
|
|
355
|
-
```json
|
|
356
|
-
{
|
|
357
|
-
"profile": "private",
|
|
358
|
-
"search": {
|
|
359
|
-
"tavilyApiKey": "...",
|
|
360
|
-
"enableTavily": true
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
#### With Exa, Tavily, and Brave API keys
|
|
366
|
-
|
|
367
|
-
```json
|
|
368
|
-
{
|
|
369
|
-
"profile": "balanced",
|
|
370
|
-
"search": {
|
|
371
|
-
"exaApiKey": "exa-...",
|
|
372
|
-
"tavilyApiKey": "tvly-...",
|
|
373
|
-
"braveSearchApiKey": "BSA-..."
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
```
|
|
335
|
+
In `private` mode, relay-style provider requests are blocked, public no-key search fallbacks are disabled, and SearXNG bases must resolve to localhost or private addresses. Hosted API-key search providers such as Exa, Tavily, and Brave Search are intentionally not part of the default smartsearch runtime; use local/site-native search, DuckDuckGo/Brave HTML fallbacks, or self-hosted SearXNG instead.
|
|
377
336
|
|
|
378
337
|
#### Disable Playwright auto-install
|
|
379
338
|
|
|
@@ -469,9 +428,6 @@ These keys live inside `settings.json` when you need to force one provider on or
|
|
|
469
428
|
|
|
470
429
|
**Search**
|
|
471
430
|
|
|
472
|
-
- `search.enableExa`
|
|
473
|
-
- `search.enableTavily`
|
|
474
|
-
- `search.enableBrave`
|
|
475
431
|
- `search.enableSearxng`
|
|
476
432
|
- `search.enableDuckDuckGo`
|
|
477
433
|
- `search.enableBraveHtml`
|
|
@@ -534,26 +490,24 @@ npm run benchmark:providers:live:blocked
|
|
|
534
490
|
npm run benchmark:providers:live:naver-blog
|
|
535
491
|
npm run benchmark:providers:live:naver-map
|
|
536
492
|
npm run benchmark:providers:live:naver-cafe
|
|
493
|
+
npm run benchmark:providers:live:x-twitter
|
|
537
494
|
npm run benchmark:providers:live:no-secret
|
|
538
495
|
npm run benchmark:providers:live:no-secret:gaps
|
|
539
|
-
npm run benchmark:providers:live:external-search
|
|
540
496
|
npm run benchmark:providers:trend
|
|
541
497
|
npm run watchdog:partial-handoff
|
|
542
498
|
```
|
|
543
499
|
|
|
544
|
-
The default report is availability-only and safe for CI. `--run-measurements` (`npm run benchmark:providers:measure`) adds deterministic fixture records for available local/core
|
|
500
|
+
The default report is availability-only and safe for CI. `--run-measurements` (`npm run benchmark:providers:measure`) adds deterministic fixture records for available local/core and optional no-key lanes: success, useful character counts, projected/text character counts, useful-to-projected and useful-to-text yield ratios, latency, extractor/provider id, confidence, partial status, error class, lane label/family/category metadata, provider-family/category lane-status rollups, surface coverage, and recommendation sections grouped by lane, case, and surface.
|
|
545
501
|
|
|
546
502
|
Reports carry the `provider-benchmark.v1` schema version plus non-fatal git and runtime metadata so archived JSON, Markdown, and NDJSON trend artifacts are parseable, traceable, and comparable as the harness evolves. Markdown, text, JSON, and NDJSON outputs include aggregate fixture yield averages, compact yield rollups by provider family/category/lane, and a best-current-evidence surface table that ranks measured/skipped candidates so review jobs can compare token efficiency and build-vs-wrap posture between core, browser, relay, and specialist paths without reprocessing the full measurement table.
|
|
547
503
|
|
|
548
|
-
Measurement artifacts also include a live-readiness manifest listing each lane's env/command/settings prerequisites, a deterministic fixture smoke, a safe MCP live-smoke candidate, and surfaces that still lack live evidence. `--run-live-smokes` (`npm run benchmark:providers:live`) is an explicit gated mode that runs only no-secret, core-surface live checks for static articles, long docs/Wikipedia, Hacker News, and docs export;
|
|
549
|
-
|
|
550
|
-
Live smoke artifacts record per-case `present`/`missing`/`skipped` evidence next to fixture evidence without printing secret values. When fixture rows exist but all are skipped by missing credentials or commands, comparison and gap artifacts report fixture evidence as `skipped` with a `fixture-skipped-*` comparison instead of implying the fixture rows are absent. Browser-lane live smoke rows also include a secret-safe Playwright preflight diagnostic with executable path, launch timing, `domcontentloaded` navigation timing, HTTP status/final URL, and truncated failure reason so runtime/cache/network failures can be separated from smartfetch normalization failures.
|
|
504
|
+
Measurement artifacts also include a live-readiness manifest listing each lane's env/command/settings prerequisites, a deterministic fixture smoke, a safe MCP live-smoke candidate, and surfaces that still lack live evidence. `--run-live-smokes` (`npm run benchmark:providers:live`) is an explicit gated mode that runs only no-secret, core-surface live checks for static articles, long docs/Wikipedia, Hacker News, and docs export; optional no-secret lanes remain gated until explicitly allowlisted: `--allow-jina-live-smoke` (`npm run benchmark:providers:live:jina`) exercises the public Jina Reader relay with a secret-stripped settings file, `--allow-competitive-programming-live-smoke` (`npm run benchmark:providers:live:cp`) adds a public BOJ/Codeforces representative smoke for the competitive-programming specialist surface, `--allow-browser-live-smoke` (`npm run benchmark:providers:live:browser`) runs a Playwright `--force-dynamic` smoke for the JS-rendered article surface only when the local browser lane is available, `--allow-youtube-live-smoke` (`npm run benchmark:providers:live:youtube`) adds the public YouTube seed-lane representative smoke, `--allow-blocked-authwall-live-smoke` (`npm run benchmark:providers:live:blocked`) adds a deterministic HTTP Basic Auth challenge smoke that treats honest blocked/error/handoff signals as positive calibration without private credentials, `--allow-naver-blog-live-smoke` (`npm run benchmark:providers:live:naver-blog`) adds a stable public Naver Blog representative smoke for Korean specialist-lane calibration, `--allow-naver-map-live-smoke` (`npm run benchmark:providers:live:naver-map`) adds a stable public Naver Map place smoke with browser-preflight diagnostics, `--allow-naver-cafe-live-smoke` (`npm run benchmark:providers:live:naver-cafe`) adds a stable public Naver Cafe shared-link smoke that treats useful no-credential partial output as honest calibration, and `--allow-x-twitter-live-smoke` (`npm run benchmark:providers:live:x-twitter`) adds a public X/Twitter post smoke that keeps no-secret social-provider drift visible without private cookies. `--allow-all-no-secret-live-smokes` (`npm run benchmark:providers:live:no-secret`) enables every no-secret gate in one run; hosted API-key search lanes are excluded from the benchmark surface by product policy.
|
|
551
505
|
|
|
552
|
-
|
|
506
|
+
Live smoke artifacts record per-case `present`/`missing`/`skipped` evidence next to fixture evidence without printing secret values. When fixture rows exist but all are skipped by missing local commands, comparison and gap artifacts report fixture evidence as `skipped` with a `fixture-skipped-*` comparison instead of implying the fixture rows are absent. Browser-lane live smoke rows also include a secret-safe Playwright preflight diagnostic with executable path, launch timing, `domcontentloaded` navigation timing, HTTP status/final URL, and truncated failure reason so runtime/cache/network failures can be separated from smartfetch normalization failures.
|
|
553
507
|
|
|
554
|
-
The same JSON, text, Markdown, and NDJSON outputs include a compact live-vs-fixture comparison rollup so replacement reviews can distinguish calibrated surfaces from fixture-only, skipped-live, live-disagreeing, and fixture-skipped-by-prerequisite surfaces. Secret-safe provider diagnostics list prerequisite names with satisfied/missing status and never print env values. Use `npm run benchmark:providers:json-file` or add `--json-file <path>` to write the full JSON artifact without relying on stdout capture. Use `npm run benchmark:providers:report` or add `--report-file <path>` with measurement mode to write a Markdown review artifact containing lane availability, diagnostics, surface/corpus coverage, measurement highlights, yield comparisons, per-surface evidence, live readiness, live-smoke diagnostics, and build-vs-wrap recommendations without changing stdout or JSON behavior. Use `npm run benchmark:providers:gaps` or add `--gap-file <path>` with measurement mode to write a compact `provider-benchmark-gaps.v1` JSON artifact containing only the ranked provider evidence gap queue, summary counts, git/runtime metadata, and safe smoke candidates. Use `npm run benchmark:providers:trend` or add `--trend-file <path>` with measurement mode to append compact NDJSON trend records with aggregate lane, prerequisite, measurement, recommendation, surface-evidence, and fixture-yield counts. Unknown `--flag` options fail fast so typoed benchmark jobs do not produce misleading artifacts. The corpus covers static articles, JS-rendered articles, blocked/authwall-like pages, long docs/Wikipedia pages, Naver Blog/Cafe/Map, Hacker News, YouTube, BOJ/Codeforces, relay,
|
|
508
|
+
The same JSON, text, Markdown, and NDJSON outputs include a compact live-vs-fixture comparison rollup so replacement reviews can distinguish calibrated surfaces from fixture-only, skipped-live, live-disagreeing, and fixture-skipped-by-prerequisite surfaces. Secret-safe provider diagnostics list prerequisite names with satisfied/missing status and never print env values. Use `npm run benchmark:providers:json-file` or add `--json-file <path>` to write the full JSON artifact without relying on stdout capture. Use `npm run benchmark:providers:report` or add `--report-file <path>` with measurement mode to write a Markdown review artifact containing lane availability, diagnostics, surface/corpus coverage, measurement highlights, yield comparisons, per-surface evidence, live readiness, live-smoke diagnostics, and build-vs-wrap recommendations without changing stdout or JSON behavior. Use `npm run benchmark:providers:gaps` or add `--gap-file <path>` with measurement mode to write a compact `provider-benchmark-gaps.v1` JSON artifact containing only the ranked provider evidence gap queue, summary counts, git/runtime metadata, and safe smoke candidates. Use `npm run benchmark:providers:trend` or add `--trend-file <path>` with measurement mode to append compact NDJSON trend records with aggregate lane, prerequisite, measurement, recommendation, surface-evidence, and fixture-yield counts. Unknown `--flag` options fail fast so typoed benchmark jobs do not produce misleading artifacts. The corpus covers static articles, JS-rendered articles, blocked/authwall-like pages, long docs/Wikipedia pages, Naver Blog/Cafe/Map, Hacker News, YouTube, X/Twitter, BOJ/Codeforces, relay, and docs export surfaces. Optional local/no-secret lanes without commands remain explicit skips instead of silently failing; API-key provider candidates are excluded from the default corpus and reports by product policy.
|
|
555
509
|
|
|
556
|
-
Provider benchmark reports also include `providerEvidenceGaps`: a ranked next-action queue built from the live-vs-fixture rollup. Each gap records the surface, priority score, selected and candidate lanes, follow-up action, unlock prerequisites, fixture/live useful chars, fixture skipped-case lanes/reasons, live-smoke failure error classes/reasons, and safe live smoke candidate so replacement reviews can pick the next provider experiment without scanning every measurement row or re-running a timed live calibration. Use `npm run benchmark:providers:live:no-secret:gaps` to refresh only the compact all-no-secret gap artifact at `reports/provider-benchmark-live-no-secret-gaps.json`. When fixture rows exist but were skipped by missing
|
|
510
|
+
Provider benchmark reports also include `providerEvidenceGaps`: a ranked next-action queue built from the live-vs-fixture rollup. Each gap records the surface, priority score, selected and candidate lanes, follow-up action, unlock prerequisites, fixture/live useful chars, fixture skipped-case lanes/reasons, live-smoke failure error classes/reasons, and safe live smoke candidate so replacement reviews can pick the next provider experiment without scanning every measurement row or re-running a timed live calibration. Use `npm run benchmark:providers:live:no-secret:gaps` to refresh only the compact all-no-secret gap artifact at `reports/provider-benchmark-live-no-secret-gaps.json`. When fixture rows exist but were skipped by missing local commands, the live-vs-fixture and gap actions are `unlock-skipped-fixture-prerequisites` rather than fixture-creation actions.
|
|
557
511
|
|
|
558
512
|
See `reports/README.md` for the curated report archive index. It identifies `provider-benchmark-live-no-secret.{json,md}` and `provider-benchmark-live-no-secret-gaps.json` as the current maintenance artifacts, and labels older cumulative live-smoke reports as historical calibration snapshots.
|
|
559
513
|
|
package/dist/settings.d.ts
CHANGED
|
@@ -5,13 +5,7 @@ export type SmartWebSettings = {
|
|
|
5
5
|
tempDir?: string;
|
|
6
6
|
};
|
|
7
7
|
search?: {
|
|
8
|
-
exaApiKey?: string;
|
|
9
|
-
tavilyApiKey?: string;
|
|
10
|
-
braveSearchApiKey?: string;
|
|
11
8
|
searxngBaseUrl?: string;
|
|
12
|
-
enableExa?: boolean;
|
|
13
|
-
enableTavily?: boolean;
|
|
14
|
-
enableBrave?: boolean;
|
|
15
9
|
enableSearxng?: boolean;
|
|
16
10
|
enableDuckDuckGo?: boolean;
|
|
17
11
|
enableBraveHtml?: boolean;
|
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,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC/G,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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"}
|
|
@@ -6,7 +6,6 @@ import { atcoderProvider } from "./atcoder.js";
|
|
|
6
6
|
import { commerceProvider } from "./commerce.js";
|
|
7
7
|
import { codeforcesProvider } from "./codeforces.js";
|
|
8
8
|
import { dcinsideProvider } from "./dcinside.js";
|
|
9
|
-
import { firecrawlProvider } from "./firecrawl.js";
|
|
10
9
|
import { genericProvider } from "./generic.js";
|
|
11
10
|
import { hackernewsProvider } from "./hackernews.js";
|
|
12
11
|
import { instagramProvider } from "./instagram.js";
|
|
@@ -30,7 +29,7 @@ import { wikipediaProvider } from "./wikipedia.js";
|
|
|
30
29
|
import { wikidocsProvider } from "./wikidocs.js";
|
|
31
30
|
import { xProvider } from "./x.js";
|
|
32
31
|
import { youtubeProvider } from "./youtube.js";
|
|
33
|
-
const providers = [hackernewsProvider, redditProvider, xProvider, threadsProvider, instagramProvider, telegramProvider, dcinsideProvider, youtubeProvider, naverMapProvider, naverMapSearchProvider, kakaoMapProvider, naverBlogProvider, naverCafeProvider, tistoryProvider, velogProvider, linkedinProvider, algumonProvider, namuwikiProvider, wikipediaProvider, wikidocsProvider, solvedacProvider, acmicpcProvider, codeforcesProvider, atcoderProvider, qojProvider, jungolProvider, arxivProvider, archiveProvider, sciencedirectProvider, commerceProvider,
|
|
32
|
+
const providers = [hackernewsProvider, redditProvider, xProvider, threadsProvider, instagramProvider, telegramProvider, dcinsideProvider, youtubeProvider, naverMapProvider, naverMapSearchProvider, kakaoMapProvider, naverBlogProvider, naverCafeProvider, tistoryProvider, velogProvider, linkedinProvider, algumonProvider, namuwikiProvider, wikipediaProvider, wikidocsProvider, solvedacProvider, acmicpcProvider, codeforcesProvider, atcoderProvider, qojProvider, jungolProvider, arxivProvider, archiveProvider, sciencedirectProvider, commerceProvider, genericProvider];
|
|
34
33
|
const providerDefaults = {
|
|
35
34
|
hackernews: { targetFamily: "hackernews_post", priority: 90, capabilities: ["community_post", "supports_assets"], policy: { crossOriginMode: "allow" } },
|
|
36
35
|
reddit: { targetFamily: "reddit_post", priority: 90, capabilities: ["community_post", "supports_assets", "canonical_url"], policy: { crossOriginMode: "allow", preserveCanonicalUrl: true } },
|
|
@@ -62,7 +61,6 @@ const providerDefaults = {
|
|
|
62
61
|
archive: { targetFamily: "generic", priority: 84, capabilities: ["article_extract", "canonical_url"], policy: { preserveCanonicalUrl: true, allowJinaReader: true, allowArchiveFallback: true } },
|
|
63
62
|
sciencedirect: { targetFamily: "generic", priority: 84, capabilities: ["article_extract", "supports_assets", "canonical_url"], policy: { preserveCanonicalUrl: true } },
|
|
64
63
|
commerce: { targetFamily: "generic", priority: 80, capabilities: ["commerce_catalog", "requires_browser", "interactive_surface", "supports_assets"], policy: { crossOriginMode: "same_origin" } },
|
|
65
|
-
firecrawl: { targetFamily: "generic", priority: 15, capabilities: ["article_extract", "supports_assets"], policy: { crossOriginMode: "allow" } },
|
|
66
64
|
generic: { targetFamily: "generic", priority: 10, capabilities: ["article_extract", "supports_assets"], policy: { allowJinaReader: true, allowArchiveFallback: true } },
|
|
67
65
|
};
|
|
68
66
|
function withProviderDefaults(provider) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/smartfetch/providers/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/smartfetch/providers/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,SAAS,GAAyB,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAA;AAE3kB,MAAM,gBAAgB,GAA8G;IAClI,UAAU,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE;IACxJ,MAAM,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC7L,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACpM,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC/L,SAAS,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACnM,QAAQ,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACjM,QAAQ,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE;IAC3J,OAAO,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,eAAe,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC/L,WAAW,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC9K,kBAAkB,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE;IACtJ,WAAW,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC9K,YAAY,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC1M,YAAY,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE;IACtM,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACtM,KAAK,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAClM,QAAQ,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC5O,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAClJ,QAAQ,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC3M,SAAS,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC7M,QAAQ,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC3M,QAAQ,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACtJ,OAAO,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACjM,UAAU,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACpM,OAAO,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACjM,GAAG,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAC7L,MAAM,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAChM,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IAClN,OAAO,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACjM,aAAa,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACvK,QAAQ,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE;IACjM,OAAO,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;CACxK,CAAA;AAED,SAAS,oBAAoB,CAAC,QAA4B;IACxD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,OAAQ,CAAA;IAC3E,OAAO;QACL,GAAG,QAAQ;QACX,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY;QAC5D,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;QAChD,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY;QAC5D,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;KAC3C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;AAClG,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,GAAW,EAAE,MAAsB;IAC3E,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3F,OAAO,OAAO,IAAI,oBAAoB,CAAC,eAAe,CAAC,CAAA;AACzD,CAAC"}
|
package/dist/smartsearch.js
CHANGED
|
@@ -17,17 +17,6 @@ function siteNativeFallbackBlockedReason(label) {
|
|
|
17
17
|
return `${label} site fallback disabled by private profile`;
|
|
18
18
|
return "";
|
|
19
19
|
}
|
|
20
|
-
function exaEnabled() {
|
|
21
|
-
return configEnabled("search.enableExa", true, { private: false });
|
|
22
|
-
}
|
|
23
|
-
function tavilyEnabled() {
|
|
24
|
-
if (localOnlyMode() && configText("search.enableTavily") === "")
|
|
25
|
-
return false;
|
|
26
|
-
return configEnabled("search.enableTavily", true, { private: false });
|
|
27
|
-
}
|
|
28
|
-
function braveEnabled() {
|
|
29
|
-
return configEnabled("search.enableBrave", true, { private: false });
|
|
30
|
-
}
|
|
31
20
|
function searxngEnabled() {
|
|
32
21
|
return configEnabled("search.enableSearxng", true);
|
|
33
22
|
}
|
|
@@ -37,18 +26,28 @@ function duckduckgoEnabled() {
|
|
|
37
26
|
function normalizeHost(input) {
|
|
38
27
|
return input.toLowerCase().replace(/^www\./, "");
|
|
39
28
|
}
|
|
40
|
-
function
|
|
29
|
+
function extractSiteScope(query) {
|
|
41
30
|
const match = query.match(/(?:^|\s)site:([^\s]+)/i);
|
|
42
|
-
|
|
31
|
+
if (!match?.[1])
|
|
32
|
+
return null;
|
|
33
|
+
const raw = match[1].replace(/^https?:\/\//i, "").replace(/\/+$/, "");
|
|
34
|
+
const [hostPart = "", ...pathParts] = raw.split("/");
|
|
35
|
+
const host = normalizeHost(hostPart);
|
|
36
|
+
if (!host)
|
|
37
|
+
return null;
|
|
38
|
+
const path = pathParts.join("/").replace(/^\/+|\/+$/g, "");
|
|
39
|
+
return { host, path };
|
|
40
|
+
}
|
|
41
|
+
function extractSiteOperator(query) {
|
|
42
|
+
return extractSiteScope(query)?.host || "";
|
|
43
43
|
}
|
|
44
44
|
function stripSiteOperators(query) {
|
|
45
45
|
return query.replace(/(?:^|\s)site:[^\s]+/gi, " ").replace(/\s+/g, " ").trim();
|
|
46
46
|
}
|
|
47
|
-
function
|
|
48
|
-
if (!host)
|
|
47
|
+
function siteScopeToStartUrl(scope) {
|
|
48
|
+
if (!scope?.host)
|
|
49
49
|
return "";
|
|
50
|
-
|
|
51
|
-
return normalized ? `https://${normalized}/` : "";
|
|
50
|
+
return scope.path ? `https://${scope.host}/${scope.path}` : `https://${scope.host}/`;
|
|
52
51
|
}
|
|
53
52
|
function inferCrawlMode(startUrl, requestedMode) {
|
|
54
53
|
if (requestedMode)
|
|
@@ -83,6 +82,51 @@ function looksLikeGitHubRepoDiscovery(query) {
|
|
|
83
82
|
const nonRepoIntent = /^(issue|issues|pull|pulls|pr|blob|raw|wiki|commit|commits|code|tree|file|files|docs?|release|releases|discussion|discussions|workflow|workflows|action|actions)$/;
|
|
84
83
|
return !tokens.some((token) => nonRepoIntent.test(token));
|
|
85
84
|
}
|
|
85
|
+
function parseGitHubRepoScope(query) {
|
|
86
|
+
const scope = extractSiteScope(query);
|
|
87
|
+
if (scope?.host !== "github.com")
|
|
88
|
+
return null;
|
|
89
|
+
const parts = scope.path.split("/").filter(Boolean);
|
|
90
|
+
if (parts.length < 2)
|
|
91
|
+
return null;
|
|
92
|
+
const owner = parts[0];
|
|
93
|
+
const repo = parts[1];
|
|
94
|
+
if (!owner || !repo)
|
|
95
|
+
return null;
|
|
96
|
+
return {
|
|
97
|
+
owner,
|
|
98
|
+
repo,
|
|
99
|
+
scopePath: parts.slice(2).join("/"),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function parseNpmPackageScope(query) {
|
|
103
|
+
const scope = extractSiteScope(query);
|
|
104
|
+
if (scope?.host !== "npmjs.com")
|
|
105
|
+
return "";
|
|
106
|
+
const parts = scope.path.split("/").filter(Boolean);
|
|
107
|
+
if (parts[0] !== "package" || parts.length < 2)
|
|
108
|
+
return "";
|
|
109
|
+
if (parts[1]?.startsWith("@") && parts[2])
|
|
110
|
+
return `${parts[1]}/${parts[2]}`;
|
|
111
|
+
return parts[1] || "";
|
|
112
|
+
}
|
|
113
|
+
function searchTokens(query) {
|
|
114
|
+
return stripSiteOperators(query)
|
|
115
|
+
.toLowerCase()
|
|
116
|
+
.split(/[^a-z0-9가-힣@._-]+/iu)
|
|
117
|
+
.map((item) => item.trim())
|
|
118
|
+
.filter(Boolean);
|
|
119
|
+
}
|
|
120
|
+
function docsLikeGitHubPath(path) {
|
|
121
|
+
const lower = path.toLowerCase();
|
|
122
|
+
return /^docs\//.test(lower)
|
|
123
|
+
|| /\/docs\//.test(lower)
|
|
124
|
+
|| /(?:^|\/)(?:readme|contributing|changelog|license|security)(?:\.[^.\/]+)?$/i.test(path)
|
|
125
|
+
|| /\.(?:md|mdx|rst|adoc|txt)$/i.test(path);
|
|
126
|
+
}
|
|
127
|
+
function encodeGitHubBlobPath(path) {
|
|
128
|
+
return path.split("/").map((part) => encodeURIComponent(part)).join("/");
|
|
129
|
+
}
|
|
86
130
|
function buildSearchResponse(response, handoff) {
|
|
87
131
|
const assessment = assessSearchResponse(response, handoff);
|
|
88
132
|
return handoff ? { ...response, handoff, assessment } : { ...response, assessment };
|
|
@@ -119,8 +163,8 @@ function assessSearchResponse(response, handoff) {
|
|
|
119
163
|
async function maybeRunCrawlHandoff(response, options, runtime) {
|
|
120
164
|
if (!options.siteCrawl)
|
|
121
165
|
return buildSearchResponse(response);
|
|
122
|
-
const
|
|
123
|
-
const startUrl = String(options.crawlUrl ||
|
|
166
|
+
const siteScope = extractSiteScope(options.query);
|
|
167
|
+
const startUrl = String(options.crawlUrl || siteScopeToStartUrl(siteScope)).trim();
|
|
124
168
|
if (!startUrl) {
|
|
125
169
|
const handoff = {
|
|
126
170
|
tool: "smartcrawl",
|
|
@@ -344,6 +388,109 @@ async function searchGitHub(query, numResults, timeoutMs) {
|
|
|
344
388
|
return { ok: false, note: `GitHub parse error: ${message}` };
|
|
345
389
|
}
|
|
346
390
|
}
|
|
391
|
+
async function searchGitHubRepoDocs(query, numResults, timeoutMs) {
|
|
392
|
+
const repoScope = parseGitHubRepoScope(query);
|
|
393
|
+
if (!repoScope)
|
|
394
|
+
return { ok: false, note: "GitHub repository docs fallback skipped without owner/repo site scope" };
|
|
395
|
+
const repoResult = await fetchText(`https://api.github.com/repos/${encodeURIComponent(repoScope.owner)}/${encodeURIComponent(repoScope.repo)}`, timeoutMs, {
|
|
396
|
+
headers: {
|
|
397
|
+
accept: "application/vnd.github+json",
|
|
398
|
+
"user-agent": DEFAULT_USER_AGENT,
|
|
399
|
+
},
|
|
400
|
+
});
|
|
401
|
+
if (!repoResult.ok)
|
|
402
|
+
return { ok: false, note: repoResult.error || `GitHub repository metadata error ${repoResult.status}` };
|
|
403
|
+
let defaultBranch = "main";
|
|
404
|
+
try {
|
|
405
|
+
const repoData = repoResult.text ? JSON.parse(repoResult.text) : {};
|
|
406
|
+
defaultBranch = String(repoData.default_branch || defaultBranch).trim() || defaultBranch;
|
|
407
|
+
}
|
|
408
|
+
catch {
|
|
409
|
+
defaultBranch = "main";
|
|
410
|
+
}
|
|
411
|
+
const result = await fetchText(`https://api.github.com/repos/${encodeURIComponent(repoScope.owner)}/${encodeURIComponent(repoScope.repo)}/git/trees/${encodeURIComponent(defaultBranch)}?recursive=1`, timeoutMs, {
|
|
412
|
+
headers: {
|
|
413
|
+
accept: "application/vnd.github+json",
|
|
414
|
+
"user-agent": DEFAULT_USER_AGENT,
|
|
415
|
+
},
|
|
416
|
+
});
|
|
417
|
+
if (!result.ok)
|
|
418
|
+
return { ok: false, note: result.error || `GitHub repository docs error ${result.status}` };
|
|
419
|
+
try {
|
|
420
|
+
const data = result.text ? JSON.parse(result.text) : {};
|
|
421
|
+
const raw = Array.isArray(data?.tree) ? data.tree : [];
|
|
422
|
+
const tokens = searchTokens(query);
|
|
423
|
+
const genericDocsTokens = new Set(["doc", "docs", "documentation", "guide", "manual"]);
|
|
424
|
+
const rankingTokens = tokens.filter((token) => !genericDocsTokens.has(token));
|
|
425
|
+
const terms = rankingTokens.length > 0 ? rankingTokens : tokens;
|
|
426
|
+
const scopePath = repoScope.scopePath.toLowerCase();
|
|
427
|
+
const ranked = raw
|
|
428
|
+
.map((item) => {
|
|
429
|
+
const entry = item;
|
|
430
|
+
const path = String(entry.path || "").trim();
|
|
431
|
+
if (entry.type !== "blob" || !path || !docsLikeGitHubPath(path))
|
|
432
|
+
return null;
|
|
433
|
+
const lower = path.toLowerCase();
|
|
434
|
+
let score = 0;
|
|
435
|
+
for (const term of terms) {
|
|
436
|
+
if (lower.includes(term))
|
|
437
|
+
score += 3;
|
|
438
|
+
}
|
|
439
|
+
if (scopePath && lower.startsWith(scopePath))
|
|
440
|
+
score += 4;
|
|
441
|
+
if (lower.startsWith("docs/") || lower.includes("/docs/"))
|
|
442
|
+
score += 2;
|
|
443
|
+
if (/(?:^|\/)readme\./i.test(path))
|
|
444
|
+
score += 1;
|
|
445
|
+
return score > 0 ? { path, score } : null;
|
|
446
|
+
})
|
|
447
|
+
.filter((item) => Boolean(item))
|
|
448
|
+
.sort((a, b) => b.score - a.score || a.path.localeCompare(b.path));
|
|
449
|
+
const results = uniqueResults(ranked.map((item) => ({
|
|
450
|
+
title: `${repoScope.owner}/${repoScope.repo}/${item.path}`,
|
|
451
|
+
url: `https://github.com/${repoScope.owner}/${repoScope.repo}/blob/${encodeURIComponent(defaultBranch)}/${encodeGitHubBlobPath(item.path)}`,
|
|
452
|
+
snippet: `GitHub repository document · path:${item.path}`,
|
|
453
|
+
engine: "github_repo_docs",
|
|
454
|
+
}))).slice(0, numResults);
|
|
455
|
+
return { ok: results.length > 0, results, note: results.length > 0 ? "" : "GitHub repository docs search returned no matching documents" };
|
|
456
|
+
}
|
|
457
|
+
catch (error) {
|
|
458
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
459
|
+
return { ok: false, note: `GitHub repository docs parse error: ${message}` };
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
async function searchNpmPackage(packageName, timeoutMs) {
|
|
463
|
+
const result = await fetchText(`https://registry.npmjs.org/${encodeURIComponent(packageName)}`, timeoutMs, {
|
|
464
|
+
headers: {
|
|
465
|
+
accept: "application/json,text/plain,*/*",
|
|
466
|
+
"user-agent": DEFAULT_USER_AGENT,
|
|
467
|
+
},
|
|
468
|
+
});
|
|
469
|
+
if (!result.ok)
|
|
470
|
+
return { ok: false, note: result.error || `npm package error ${result.status}` };
|
|
471
|
+
try {
|
|
472
|
+
const data = result.text ? JSON.parse(result.text) : {};
|
|
473
|
+
const record = data;
|
|
474
|
+
const name = String(record.name || packageName).trim();
|
|
475
|
+
const latest = String(record["dist-tags"]?.latest || record.version || "").trim();
|
|
476
|
+
const maintainer = Array.isArray(record.maintainers) ? String(record.maintainers[0]?.name || "").trim() : "";
|
|
477
|
+
const results = uniqueResults([{
|
|
478
|
+
title: name,
|
|
479
|
+
url: `https://www.npmjs.com/package/${name}`,
|
|
480
|
+
snippet: [
|
|
481
|
+
String(record.description || "").trim(),
|
|
482
|
+
latest ? `v${latest}` : "",
|
|
483
|
+
maintainer ? `by ${maintainer}` : "",
|
|
484
|
+
].filter(Boolean).join(" · "),
|
|
485
|
+
engine: "npm",
|
|
486
|
+
}]);
|
|
487
|
+
return { ok: results.length > 0, results, note: "" };
|
|
488
|
+
}
|
|
489
|
+
catch (error) {
|
|
490
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
491
|
+
return { ok: false, note: `npm package parse error: ${message}` };
|
|
492
|
+
}
|
|
493
|
+
}
|
|
347
494
|
async function searchNpm(query, numResults, timeoutMs) {
|
|
348
495
|
const q = stripSiteOperators(query) || query;
|
|
349
496
|
const result = await fetchText(`https://registry.npmjs.org/-/v1/search?text=${encodeURIComponent(q)}&size=${Math.min(numResults, 20)}`, timeoutMs, {
|
|
@@ -417,117 +564,6 @@ async function searchWikipedia(query, numResults, timeoutMs) {
|
|
|
417
564
|
return { ok: false, note: `Wikipedia parse error: ${message}` };
|
|
418
565
|
}
|
|
419
566
|
}
|
|
420
|
-
async function searchExa(query, numResults, searchType, contextMaxCharacters, timeoutMs) {
|
|
421
|
-
const apiKey = configText("search.exaApiKey");
|
|
422
|
-
if (!apiKey)
|
|
423
|
-
return { ok: false, note: "search.exaApiKey not configured" };
|
|
424
|
-
const result = await fetchText("https://api.exa.ai/search", timeoutMs, {
|
|
425
|
-
method: "POST",
|
|
426
|
-
headers: {
|
|
427
|
-
"content-type": "application/json",
|
|
428
|
-
"x-api-key": apiKey,
|
|
429
|
-
},
|
|
430
|
-
body: JSON.stringify({
|
|
431
|
-
query,
|
|
432
|
-
type: searchType === "deep" ? "auto" : searchType,
|
|
433
|
-
numResults: Math.min(numResults, 10),
|
|
434
|
-
contents: {
|
|
435
|
-
highlights: {
|
|
436
|
-
maxCharacters: Math.min(Math.max(contextMaxCharacters, 1000), 4000),
|
|
437
|
-
},
|
|
438
|
-
},
|
|
439
|
-
}),
|
|
440
|
-
});
|
|
441
|
-
if (!result.ok)
|
|
442
|
-
return { ok: false, note: result.error || `Exa error ${result.status}` };
|
|
443
|
-
try {
|
|
444
|
-
const data = result.text ? JSON.parse(result.text) : {};
|
|
445
|
-
const raw = Array.isArray(data?.results) ? data.results : [];
|
|
446
|
-
const results = uniqueResults(raw.map((item) => ({
|
|
447
|
-
title: String(item?.title || item?.url || "").trim(),
|
|
448
|
-
url: String(item?.url || "").trim(),
|
|
449
|
-
snippet: String(item?.highlights?.join(" ") || item?.summary || item?.text || item?.publishedDate || "").trim(),
|
|
450
|
-
engine: "exa",
|
|
451
|
-
}))).slice(0, numResults);
|
|
452
|
-
return { ok: results.length > 0, results, note: results.length > 0 ? "" : "Exa returned no results" };
|
|
453
|
-
}
|
|
454
|
-
catch (error) {
|
|
455
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
456
|
-
return { ok: false, note: `Exa parse error: ${message}` };
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
function tavilySearchDepth(searchType) {
|
|
460
|
-
if (searchType === "deep")
|
|
461
|
-
return "advanced";
|
|
462
|
-
if (searchType === "fast")
|
|
463
|
-
return "fast";
|
|
464
|
-
return "basic";
|
|
465
|
-
}
|
|
466
|
-
async function searchTavily(query, numResults, searchType, timeoutMs) {
|
|
467
|
-
const apiKey = configText("search.tavilyApiKey");
|
|
468
|
-
if (!apiKey)
|
|
469
|
-
return { ok: false, note: "search.tavilyApiKey not configured" };
|
|
470
|
-
const result = await fetchText("https://api.tavily.com/search", timeoutMs, {
|
|
471
|
-
method: "POST",
|
|
472
|
-
headers: {
|
|
473
|
-
"content-type": "application/json",
|
|
474
|
-
authorization: `Bearer ${apiKey}`,
|
|
475
|
-
},
|
|
476
|
-
body: JSON.stringify({
|
|
477
|
-
query,
|
|
478
|
-
search_depth: tavilySearchDepth(searchType),
|
|
479
|
-
max_results: Math.min(numResults, 20),
|
|
480
|
-
include_answer: false,
|
|
481
|
-
include_raw_content: false,
|
|
482
|
-
}),
|
|
483
|
-
});
|
|
484
|
-
if (!result.ok)
|
|
485
|
-
return { ok: false, note: result.error || `Tavily error ${result.status}` };
|
|
486
|
-
try {
|
|
487
|
-
const data = result.text ? JSON.parse(result.text) : {};
|
|
488
|
-
const raw = Array.isArray(data?.results) ? data.results : [];
|
|
489
|
-
const results = uniqueResults(raw.map((item) => ({
|
|
490
|
-
title: String(item?.title || item?.url || "").trim(),
|
|
491
|
-
url: String(item?.url || "").trim(),
|
|
492
|
-
snippet: String(item?.content || item?.raw_content || item?.score || "").trim(),
|
|
493
|
-
engine: "tavily",
|
|
494
|
-
}))).slice(0, numResults);
|
|
495
|
-
return { ok: results.length > 0, results, note: results.length > 0 ? "" : "Tavily returned no results" };
|
|
496
|
-
}
|
|
497
|
-
catch (error) {
|
|
498
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
499
|
-
return { ok: false, note: `Tavily parse error: ${message}` };
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
async function searchBrave(query, numResults, timeoutMs) {
|
|
503
|
-
const apiKey = configText("search.braveSearchApiKey");
|
|
504
|
-
if (!apiKey)
|
|
505
|
-
return { ok: false, note: "search.braveSearchApiKey not configured" };
|
|
506
|
-
const result = await fetchText(`https://api.search.brave.com/res/v1/web/search?q=${encodeURIComponent(query)}&count=${Math.min(numResults, 20)}`, timeoutMs, {
|
|
507
|
-
headers: {
|
|
508
|
-
Accept: "application/json",
|
|
509
|
-
"Accept-Encoding": "gzip",
|
|
510
|
-
"X-Subscription-Token": apiKey,
|
|
511
|
-
},
|
|
512
|
-
});
|
|
513
|
-
if (!result.ok)
|
|
514
|
-
return { ok: false, note: result.error || `Brave error ${result.status}` };
|
|
515
|
-
try {
|
|
516
|
-
const data = result.text ? JSON.parse(result.text) : {};
|
|
517
|
-
const raw = Array.isArray(data?.web?.results) ? data.web.results : [];
|
|
518
|
-
const results = uniqueResults(raw.map((item) => ({
|
|
519
|
-
title: String(item?.title || item?.url || "").trim(),
|
|
520
|
-
url: String(item?.url || "").trim(),
|
|
521
|
-
snippet: String(item?.description || "").trim(),
|
|
522
|
-
engine: "brave",
|
|
523
|
-
}))).slice(0, numResults);
|
|
524
|
-
return { ok: results.length > 0, results, note: results.length > 0 ? "" : "Brave returned no results" };
|
|
525
|
-
}
|
|
526
|
-
catch (error) {
|
|
527
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
528
|
-
return { ok: false, note: `Brave parse error: ${message}` };
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
567
|
async function searchDuckDuckGo(query, numResults, timeoutMs) {
|
|
532
568
|
const result = await fetchText(`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, timeoutMs, {
|
|
533
569
|
headers: {
|
|
@@ -676,6 +712,14 @@ export async function runSmartsearch(options, runtime = {}) {
|
|
|
676
712
|
if (blockedReason) {
|
|
677
713
|
notes.push(blockedReason);
|
|
678
714
|
}
|
|
715
|
+
else if (parseGitHubRepoScope(query)) {
|
|
716
|
+
const githubRepoDocs = await searchGitHubRepoDocs(query, numResults, timeoutMs);
|
|
717
|
+
fallbacks.push("github_repo_docs");
|
|
718
|
+
if (githubRepoDocs.ok)
|
|
719
|
+
return maybeRunCrawlHandoff({ engine: "github_repo_docs", query, results: githubRepoDocs.results, fallbacks_tried: fallbacks, notes }, options, runtime);
|
|
720
|
+
if (githubRepoDocs.note)
|
|
721
|
+
notes.push(githubRepoDocs.note);
|
|
722
|
+
}
|
|
679
723
|
else if (!looksLikeGitHubRepoDiscovery(query)) {
|
|
680
724
|
notes.push("GitHub native repo fallback skipped for non-repository intent");
|
|
681
725
|
}
|
|
@@ -694,7 +738,10 @@ export async function runSmartsearch(options, runtime = {}) {
|
|
|
694
738
|
notes.push(blockedReason);
|
|
695
739
|
}
|
|
696
740
|
else {
|
|
697
|
-
const
|
|
741
|
+
const exactPackage = parseNpmPackageScope(query);
|
|
742
|
+
const npm = exactPackage
|
|
743
|
+
? await searchNpmPackage(exactPackage, timeoutMs)
|
|
744
|
+
: await searchNpm(query, numResults, timeoutMs);
|
|
698
745
|
fallbacks.push("npm");
|
|
699
746
|
if (npm.ok)
|
|
700
747
|
return maybeRunCrawlHandoff({ engine: "npm", query, results: npm.results, fallbacks_tried: fallbacks, notes }, options, runtime);
|
|
@@ -716,39 +763,6 @@ export async function runSmartsearch(options, runtime = {}) {
|
|
|
716
763
|
notes.push(wikipedia.note);
|
|
717
764
|
}
|
|
718
765
|
}
|
|
719
|
-
if (exaEnabled()) {
|
|
720
|
-
const exa = await searchExa(query, numResults, searchType, contextMaxCharacters, timeoutMs);
|
|
721
|
-
fallbacks.push("exa");
|
|
722
|
-
if (exa.ok)
|
|
723
|
-
return maybeRunCrawlHandoff({ engine: "exa", query, results: exa.results, fallbacks_tried: fallbacks, notes }, options, runtime);
|
|
724
|
-
if (exa.note)
|
|
725
|
-
notes.push(exa.note);
|
|
726
|
-
}
|
|
727
|
-
else {
|
|
728
|
-
notes.push("Exa disabled by configuration");
|
|
729
|
-
}
|
|
730
|
-
if (tavilyEnabled()) {
|
|
731
|
-
const tavily = await searchTavily(query, numResults, searchType, timeoutMs);
|
|
732
|
-
fallbacks.push("tavily");
|
|
733
|
-
if (tavily.ok)
|
|
734
|
-
return maybeRunCrawlHandoff({ engine: "tavily", query, results: tavily.results, fallbacks_tried: fallbacks, notes }, options, runtime);
|
|
735
|
-
if (tavily.note)
|
|
736
|
-
notes.push(tavily.note);
|
|
737
|
-
}
|
|
738
|
-
else {
|
|
739
|
-
notes.push("Tavily disabled by configuration");
|
|
740
|
-
}
|
|
741
|
-
if (braveEnabled()) {
|
|
742
|
-
const brave = await searchBrave(query, numResults, timeoutMs);
|
|
743
|
-
fallbacks.push("brave");
|
|
744
|
-
if (brave.ok)
|
|
745
|
-
return maybeRunCrawlHandoff({ engine: "brave", query, results: brave.results, fallbacks_tried: fallbacks, notes }, options, runtime);
|
|
746
|
-
if (brave.note)
|
|
747
|
-
notes.push(brave.note);
|
|
748
|
-
}
|
|
749
|
-
else {
|
|
750
|
-
notes.push("Brave disabled by configuration");
|
|
751
|
-
}
|
|
752
766
|
if (searxngEnabled() && searxngBaseUrl) {
|
|
753
767
|
const privacySensitive = localOnlyMode() || privateProfileMode();
|
|
754
768
|
if (privacySensitive && !await privacySafeSearxngBase(searxngBaseUrl)) {
|
package/dist/smartsearch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartsearch.js","sourceRoot":"","sources":["../src/smartsearch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"smartsearch.js","sourceRoot":"","sources":["../src/smartsearch.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": "0.
|
|
4
|
+
"version": "0.30.0",
|
|
5
5
|
"packageManager": "npm@11.9.0",
|
|
6
6
|
"description": "Local MCP for web search, direct-URL fetch, compact normalized output, site crawling, and docs export.",
|
|
7
7
|
"homepage": "https://github.com/jojo-labs/smart-web",
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"benchmark:providers:live:naver-blog": "node scripts/provider-benchmark.mjs --run-measurements --run-live-smokes --allow-jina-live-smoke --allow-competitive-programming-live-smoke --allow-browser-live-smoke --allow-youtube-live-smoke --allow-blocked-authwall-live-smoke --allow-naver-blog-live-smoke --json-file reports/provider-benchmark-live-naver-blog.json --report-file reports/provider-benchmark-live-naver-blog.md",
|
|
51
51
|
"benchmark:providers:live:naver-map": "node scripts/provider-benchmark.mjs --run-measurements --run-live-smokes --allow-jina-live-smoke --allow-competitive-programming-live-smoke --allow-browser-live-smoke --allow-youtube-live-smoke --allow-blocked-authwall-live-smoke --allow-naver-blog-live-smoke --allow-naver-map-live-smoke --json-file reports/provider-benchmark-live-naver-map.json --report-file reports/provider-benchmark-live-naver-map.md",
|
|
52
52
|
"benchmark:providers:live:naver-cafe": "node scripts/provider-benchmark.mjs --run-measurements --run-live-smokes --allow-jina-live-smoke --allow-competitive-programming-live-smoke --allow-browser-live-smoke --allow-youtube-live-smoke --allow-blocked-authwall-live-smoke --allow-naver-blog-live-smoke --allow-naver-map-live-smoke --allow-naver-cafe-live-smoke --json-file reports/provider-benchmark-live-naver-cafe.json --report-file reports/provider-benchmark-live-naver-cafe.md",
|
|
53
|
+
"benchmark:providers:live:x-twitter": "node scripts/provider-benchmark.mjs --run-measurements --run-live-smokes --allow-jina-live-smoke --allow-competitive-programming-live-smoke --allow-browser-live-smoke --allow-youtube-live-smoke --allow-blocked-authwall-live-smoke --allow-naver-blog-live-smoke --allow-naver-map-live-smoke --allow-naver-cafe-live-smoke --allow-x-twitter-live-smoke --json-file reports/provider-benchmark-live-x-twitter.json --report-file reports/provider-benchmark-live-x-twitter.md",
|
|
53
54
|
"benchmark:providers:live:no-secret": "node scripts/provider-benchmark.mjs --run-measurements --run-live-smokes --allow-all-no-secret-live-smokes --json-file reports/provider-benchmark-live-no-secret.json --report-file reports/provider-benchmark-live-no-secret.md",
|
|
54
55
|
"benchmark:providers:live:no-secret:gaps": "node scripts/provider-benchmark.mjs --run-measurements --run-live-smokes --allow-all-no-secret-live-smokes --gap-file reports/provider-benchmark-live-no-secret-gaps.json",
|
|
55
|
-
"benchmark:providers:live:external-search": "node scripts/provider-benchmark.mjs --run-measurements --run-live-smokes --allow-external-search-live-smoke --json-file reports/provider-benchmark-live-external-search.json --report-file reports/provider-benchmark-live-external-search.md",
|
|
56
56
|
"watchdog:partial-handoff": "npm run build && node scripts/partial-handoff-watchdog.mjs --json",
|
|
57
57
|
"benchmark:providers:trend": "node scripts/provider-benchmark.mjs --run-measurements --trend-file reports/provider-benchmark.ndjson",
|
|
58
58
|
"changelog:generate": "node scripts/generate-changelog-entry.mjs",
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { SmartfetchContext, SmartfetchNormalization, SmartfetchProvider } from "../provider-types.js";
|
|
2
|
-
/** Override fetch for testing. */
|
|
3
|
-
export declare function setFirecrawlFetch(fn: typeof fetch): void;
|
|
4
|
-
/**
|
|
5
|
-
* Returns true when the Firecrawl integration is available (API key is set).
|
|
6
|
-
* Callers should check this before using Firecrawl and fall back to existing
|
|
7
|
-
* behavior when false.
|
|
8
|
-
*/
|
|
9
|
-
export declare function firecrawlAvailable(): boolean;
|
|
10
|
-
/**
|
|
11
|
-
* Scrape a single URL using Firecrawl's scrape endpoint.
|
|
12
|
-
* Returns normalized smart-web output or null if Firecrawl is unavailable.
|
|
13
|
-
*/
|
|
14
|
-
export declare function firecrawlScrape(ctx: SmartfetchContext): Promise<SmartfetchNormalization | null>;
|
|
15
|
-
/**
|
|
16
|
-
* Firecrawl provider — used as a generic fallback when the API key is set.
|
|
17
|
-
* It matches any URL since Firecrawl handles generic page scraping.
|
|
18
|
-
*/
|
|
19
|
-
export declare const firecrawlProvider: SmartfetchProvider;
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
const FIRECRAWL_BASE = "https://api.firecrawl.dev";
|
|
2
|
-
let fetchFn = fetch;
|
|
3
|
-
/** Override fetch for testing. */
|
|
4
|
-
export function setFirecrawlFetch(fn) {
|
|
5
|
-
fetchFn = fn;
|
|
6
|
-
}
|
|
7
|
-
function apiKey() {
|
|
8
|
-
return process.env["FIRECRAWL_API_KEY"] ?? null;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Returns true when the Firecrawl integration is available (API key is set).
|
|
12
|
-
* Callers should check this before using Firecrawl and fall back to existing
|
|
13
|
-
* behavior when false.
|
|
14
|
-
*/
|
|
15
|
-
export function firecrawlAvailable() {
|
|
16
|
-
return apiKey() !== null;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Scrape a single URL using Firecrawl's scrape endpoint.
|
|
20
|
-
* Returns normalized smart-web output or null if Firecrawl is unavailable.
|
|
21
|
-
*/
|
|
22
|
-
export async function firecrawlScrape(ctx) {
|
|
23
|
-
const key = apiKey();
|
|
24
|
-
if (!key)
|
|
25
|
-
return null;
|
|
26
|
-
const params = {
|
|
27
|
-
url: ctx.resolvedUrl || ctx.url,
|
|
28
|
-
formats: ["markdown", "links"],
|
|
29
|
-
onlyMainContent: true,
|
|
30
|
-
timeout: Math.min(ctx.timeoutMs, 60000),
|
|
31
|
-
};
|
|
32
|
-
try {
|
|
33
|
-
const res = await fetchFn(`${FIRECRAWL_BASE}/v1/scrape`, {
|
|
34
|
-
method: "POST",
|
|
35
|
-
headers: {
|
|
36
|
-
"Authorization": `Bearer ${key}`,
|
|
37
|
-
"Content-Type": "application/json",
|
|
38
|
-
},
|
|
39
|
-
body: JSON.stringify(params),
|
|
40
|
-
signal: AbortSignal.timeout(Math.min(ctx.timeoutMs, 120000)),
|
|
41
|
-
});
|
|
42
|
-
if (!res.ok) {
|
|
43
|
-
const text = await res.text().catch(() => "");
|
|
44
|
-
return {
|
|
45
|
-
post: null,
|
|
46
|
-
thread: [],
|
|
47
|
-
comments: [],
|
|
48
|
-
outbound_links: [],
|
|
49
|
-
partial: true,
|
|
50
|
-
errors: [{ category: "block", code: `firecrawl_${res.status}`, message: `Firecrawl scrape returned ${res.status}: ${text.slice(0, 200)}` }],
|
|
51
|
-
method: "firecrawl_scrape",
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
const body = await res.json();
|
|
55
|
-
if (!body.success || !body.data) {
|
|
56
|
-
return {
|
|
57
|
-
post: null,
|
|
58
|
-
thread: [],
|
|
59
|
-
comments: [],
|
|
60
|
-
outbound_links: [],
|
|
61
|
-
partial: true,
|
|
62
|
-
errors: [{ category: "block", code: "firecrawl_no_data", message: body.error ?? "Firecrawl returned no data" }],
|
|
63
|
-
method: "firecrawl_scrape",
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
const { markdown, links, metadata } = body.data;
|
|
67
|
-
return {
|
|
68
|
-
post: markdown ? { text: markdown, title: metadata?.title ?? "", url: ctx.url } : null,
|
|
69
|
-
thread: [],
|
|
70
|
-
comments: [],
|
|
71
|
-
outbound_links: links ?? [],
|
|
72
|
-
partial: false,
|
|
73
|
-
errors: [],
|
|
74
|
-
method: "firecrawl_scrape",
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
catch (err) {
|
|
78
|
-
return {
|
|
79
|
-
post: null,
|
|
80
|
-
thread: [],
|
|
81
|
-
comments: [],
|
|
82
|
-
outbound_links: [],
|
|
83
|
-
partial: true,
|
|
84
|
-
errors: [{ category: "unavailable", code: "firecrawl_exception", message: `Firecrawl error: ${err instanceof Error ? err.message : String(err)}` }],
|
|
85
|
-
method: "firecrawl_scrape",
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Firecrawl provider — used as a generic fallback when the API key is set.
|
|
91
|
-
* It matches any URL since Firecrawl handles generic page scraping.
|
|
92
|
-
*/
|
|
93
|
-
export const firecrawlProvider = {
|
|
94
|
-
id: "firecrawl",
|
|
95
|
-
targetFamily: "generic",
|
|
96
|
-
priority: 15, // between generic(10) and arxiv(84) — runs as a mid-tier fallback
|
|
97
|
-
capabilities: ["article_extract", "supports_assets"],
|
|
98
|
-
policy: { crossOriginMode: "allow" },
|
|
99
|
-
matches: (_url, _target) => firecrawlAvailable(),
|
|
100
|
-
async normalize(ctx) {
|
|
101
|
-
const result = await firecrawlScrape(ctx);
|
|
102
|
-
if (!result) {
|
|
103
|
-
// Firecrawl not available — return empty partial so pipeline falls through
|
|
104
|
-
return {
|
|
105
|
-
post: null,
|
|
106
|
-
thread: [],
|
|
107
|
-
comments: [],
|
|
108
|
-
outbound_links: [],
|
|
109
|
-
partial: true,
|
|
110
|
-
errors: [],
|
|
111
|
-
method: "firecrawl_unavailable",
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
return result;
|
|
115
|
-
},
|
|
116
|
-
};
|
|
117
|
-
//# sourceMappingURL=firecrawl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"firecrawl.js","sourceRoot":"","sources":["../../../src/smartfetch/providers/firecrawl.ts"],"names":[],"mappings":"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"}
|