smart-web-mcp 0.8.4 → 0.9.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.
Files changed (96) hide show
  1. package/CHANGELOG.md +111 -8
  2. package/README.md +27 -17
  3. package/dist/assessment.js +1 -1
  4. package/dist/assessment.js.map +1 -1
  5. package/dist/browser-session.d.ts +1 -0
  6. package/dist/browser-session.js +11 -11
  7. package/dist/browser-session.js.map +1 -1
  8. package/dist/cli.js +5 -1
  9. package/dist/cli.js.map +1 -1
  10. package/dist/dev-runtime.js +2 -1
  11. package/dist/dev-runtime.js.map +1 -1
  12. package/dist/index.js +9 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/mcp-server.js +2 -2
  15. package/dist/mcp-server.js.map +1 -1
  16. package/dist/runtime-temp.d.ts +1 -1
  17. package/dist/runtime-temp.js +12 -17
  18. package/dist/runtime-temp.js.map +1 -1
  19. package/dist/settings.d.ts +25 -5
  20. package/dist/settings.js +55 -60
  21. package/dist/settings.js.map +1 -1
  22. package/dist/shared.d.ts +3 -3
  23. package/dist/shared.js +29 -9
  24. package/dist/shared.js.map +1 -1
  25. package/dist/smartcrawl.js +2 -2
  26. package/dist/smartcrawl.js.map +1 -1
  27. package/dist/smartfetch/academic-fallback.d.ts +7 -0
  28. package/dist/smartfetch/academic-fallback.js +777 -0
  29. package/dist/smartfetch/academic-fallback.js.map +1 -0
  30. package/dist/smartfetch/archive-fallback.js +7 -57
  31. package/dist/smartfetch/archive-fallback.js.map +1 -1
  32. package/dist/smartfetch/generic-fallbacks.d.ts +92 -0
  33. package/dist/smartfetch/generic-fallbacks.js +616 -0
  34. package/dist/smartfetch/generic-fallbacks.js.map +1 -0
  35. package/dist/smartfetch/jina-reader.js +62 -3
  36. package/dist/smartfetch/jina-reader.js.map +1 -1
  37. package/dist/smartfetch/paywall.d.ts +7 -0
  38. package/dist/smartfetch/paywall.js +77 -0
  39. package/dist/smartfetch/paywall.js.map +1 -0
  40. package/dist/smartfetch/pipeline.d.ts +1 -1
  41. package/dist/smartfetch/pipeline.js +4 -3
  42. package/dist/smartfetch/pipeline.js.map +1 -1
  43. package/dist/smartfetch/provider-policy.js +2 -2
  44. package/dist/smartfetch/provider-policy.js.map +1 -1
  45. package/dist/smartfetch/provider-types.d.ts +1 -0
  46. package/dist/smartfetch/providers/acmicpc.d.ts +2 -0
  47. package/dist/smartfetch/providers/acmicpc.js +57 -0
  48. package/dist/smartfetch/providers/acmicpc.js.map +1 -0
  49. package/dist/smartfetch/providers/article.d.ts +1 -2
  50. package/dist/smartfetch/providers/article.js +161 -1
  51. package/dist/smartfetch/providers/article.js.map +1 -1
  52. package/dist/smartfetch/providers/atcoder.d.ts +2 -0
  53. package/dist/smartfetch/providers/atcoder.js +54 -0
  54. package/dist/smartfetch/providers/atcoder.js.map +1 -0
  55. package/dist/smartfetch/providers/codeforces.d.ts +2 -0
  56. package/dist/smartfetch/providers/codeforces.js +54 -0
  57. package/dist/smartfetch/providers/codeforces.js.map +1 -0
  58. package/dist/smartfetch/providers/cp-common.d.ts +8 -0
  59. package/dist/smartfetch/providers/cp-common.js +62 -0
  60. package/dist/smartfetch/providers/cp-common.js.map +1 -0
  61. package/dist/smartfetch/providers/index.js +15 -1
  62. package/dist/smartfetch/providers/index.js.map +1 -1
  63. package/dist/smartfetch/providers/jungol.d.ts +2 -0
  64. package/dist/smartfetch/providers/jungol.js +43 -0
  65. package/dist/smartfetch/providers/jungol.js.map +1 -0
  66. package/dist/smartfetch/providers/kakao-map.d.ts +2 -0
  67. package/dist/smartfetch/providers/kakao-map.js +150 -0
  68. package/dist/smartfetch/providers/kakao-map.js.map +1 -0
  69. package/dist/smartfetch/providers/linkedin.js +5 -5
  70. package/dist/smartfetch/providers/linkedin.js.map +1 -1
  71. package/dist/smartfetch/providers/map-utils.d.ts +7 -0
  72. package/dist/smartfetch/providers/map-utils.js +56 -0
  73. package/dist/smartfetch/providers/map-utils.js.map +1 -0
  74. package/dist/smartfetch/providers/naver-map.d.ts +2 -0
  75. package/dist/smartfetch/providers/naver-map.js +183 -0
  76. package/dist/smartfetch/providers/naver-map.js.map +1 -0
  77. package/dist/smartfetch/providers/qoj.d.ts +2 -0
  78. package/dist/smartfetch/providers/qoj.js +54 -0
  79. package/dist/smartfetch/providers/qoj.js.map +1 -0
  80. package/dist/smartfetch/providers/reddit.js +2 -2
  81. package/dist/smartfetch/providers/reddit.js.map +1 -1
  82. package/dist/smartfetch/providers/solvedac.js +193 -2
  83. package/dist/smartfetch/providers/solvedac.js.map +1 -1
  84. package/dist/smartfetch/providers/x.js +4 -7
  85. package/dist/smartfetch/providers/x.js.map +1 -1
  86. package/dist/smartfetch/providers/youtube.js +2 -2
  87. package/dist/smartfetch/providers/youtube.js.map +1 -1
  88. package/dist/smartfetch.js +22 -9
  89. package/dist/smartfetch.js.map +1 -1
  90. package/dist/smartsearch.js +199 -26
  91. package/dist/smartsearch.js.map +1 -1
  92. package/dist/test-settings.d.ts +9 -0
  93. package/dist/test-settings.js +40 -0
  94. package/dist/test-settings.js.map +1 -0
  95. package/package.json +11 -10
  96. package/python/requirements-undetected-chromedriver.txt +2 -2
@@ -0,0 +1,40 @@
1
+ import { mkdirSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { dirname, join } from "node:path";
4
+ import { TEST_resetSettingsCache, configureSettingsPath, settingsTemplate } from "./settings.js";
5
+ let activeTestSettingsPath = join(tmpdir(), `smart-web-test-default-${process.pid}.json`);
6
+ function mergeObjects(base, patch) {
7
+ if (patch === undefined)
8
+ return base;
9
+ if (Array.isArray(base) || Array.isArray(patch) || typeof base !== "object" || base === null || typeof patch !== "object" || patch === null) {
10
+ return patch;
11
+ }
12
+ const output = { ...base };
13
+ for (const [key, value] of Object.entries(patch)) {
14
+ const current = output[key];
15
+ output[key] = value && typeof value === "object" && !Array.isArray(value)
16
+ ? mergeObjects((current && typeof current === "object" && !Array.isArray(current) ? current : {}), value)
17
+ : value;
18
+ }
19
+ return output;
20
+ }
21
+ export function useTestSettingsPath(namespace) {
22
+ const sanitized = namespace.replace(/[^a-z0-9_-]+/gi, "-").toLowerCase() || "default";
23
+ activeTestSettingsPath = join(tmpdir(), `smart-web-test-${sanitized}-${process.pid}.json`);
24
+ return activeTestSettingsPath;
25
+ }
26
+ export function currentTestSettingsPath() {
27
+ return activeTestSettingsPath;
28
+ }
29
+ export function writeTestSettings(patch) {
30
+ const next = mergeObjects(settingsTemplate(), patch);
31
+ mkdirSync(dirname(activeTestSettingsPath), { recursive: true });
32
+ writeFileSync(activeTestSettingsPath, `${JSON.stringify(next, null, 2)}\n`, "utf8");
33
+ configureSettingsPath(activeTestSettingsPath);
34
+ TEST_resetSettingsCache();
35
+ return activeTestSettingsPath;
36
+ }
37
+ export function resetTestSettings() {
38
+ return writeTestSettings({});
39
+ }
40
+ //# sourceMappingURL=test-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-settings.js","sourceRoot":"","sources":["../src/test-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,gBAAgB,EAAyB,MAAM,eAAe,CAAA;AAEvH,IAAI,sBAAsB,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,0BAA0B,OAAO,CAAC,GAAG,OAAO,CAAC,CAAA;AAUzF,SAAS,YAAY,CAAI,IAAO,EAAE,KAAiC;IACjE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC5I,OAAO,KAAU,CAAA;IACnB,CAAC;IACD,MAAM,MAAM,GAA4B,EAAE,GAAI,IAAgC,EAAE,CAAA;IAChF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACvE,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAM,EAAE,KAAuB,CAAC;YAChI,CAAC,CAAC,KAAK,CAAA;IACX,CAAC;IACD,OAAO,MAAW,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,SAAS,CAAA;IACrF,sBAAsB,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,SAAS,IAAI,OAAO,CAAC,GAAG,OAAO,CAAC,CAAA;IAC1F,OAAO,sBAAsB,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,sBAAsB,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAqC;IACrE,MAAM,IAAI,GAAG,YAAY,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAA;IACpD,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,aAAa,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACnF,qBAAqB,CAAC,sBAAsB,CAAC,CAAA;IAC7C,uBAAuB,EAAE,CAAA;IACzB,OAAO,sBAAsB,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAA;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "smart-web-mcp",
3
- "mcpName": "io.github.rich-jojo/smart-web",
4
- "version": "0.8.4",
3
+ "mcpName": "io.github.jojo-labs/smart-web",
4
+ "version": "0.9.0",
5
5
  "packageManager": "npm@11.9.0",
6
6
  "description": "Portable MCP server for web search, direct-URL fetch, site crawling, and docs export.",
7
- "homepage": "https://github.com/rich-jojo/smart-web",
7
+ "homepage": "https://github.com/jojo-labs/smart-web",
8
8
  "bugs": {
9
- "url": "https://github.com/rich-jojo/smart-web/issues"
9
+ "url": "https://github.com/jojo-labs/smart-web/issues"
10
10
  },
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "git+https://github.com/rich-jojo/smart-web.git"
13
+ "url": "git+https://github.com/jojo-labs/smart-web.git"
14
14
  },
15
15
  "type": "module",
16
16
  "exports": {
@@ -36,18 +36,19 @@
36
36
  "scripts": {
37
37
  "build": "rm -rf dist && tsc -p tsconfig.json",
38
38
  "changelog:generate": "node scripts/generate-changelog-entry.mjs",
39
- "release:notes": "node scripts/extract-changelog-section.mjs",
39
+ "release:notes": "node scripts/build-github-release-body.mjs",
40
40
  "dev": "tsx src/index.ts",
41
41
  "dev:mcp": "node dist/dev.js",
42
42
  "dev:watch": "tsc -p tsconfig.json --watch --preserveWatchOutput",
43
43
  "typecheck": "tsc -p tsconfig.json --noEmit",
44
44
  "test": "node --import tsx --test src/shared.test.ts src/assets.test.ts src/dev-runtime.test.ts src/release-scripts.test.ts src/render.test.ts src/providers.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",
45
+ "test:e2e": "node --import tsx --test src/packaged-mcp.test.ts",
45
46
  "test:file": "node --import tsx --test",
46
47
  "check:meta": "node scripts/check-metadata.mjs",
47
48
  "check:workflow": "node scripts/verify-release-workflow.mjs",
48
- "check": "npm run build && npm run check:meta && npm run check:workflow && npm run test",
49
- "hooks:install": "git rev-parse --is-inside-work-tree > /dev/null 2>&1 && git config core.hooksPath .githooks || true",
50
- "prepare": "npm run build && npm run hooks:install"
49
+ "check:smoke": "npm run typecheck && npm run check:meta && npm run check:workflow",
50
+ "check": "npm run build && npm run check:meta && npm run check:workflow && npm run test && npm run test:e2e",
51
+ "prepare": "npm run build"
51
52
  },
52
53
  "keywords": [
53
54
  "mcp",
@@ -63,7 +64,7 @@
63
64
  "smartcrawl",
64
65
  "docs-export"
65
66
  ],
66
- "author": "rich-jojo",
67
+ "author": "jojo-labs",
67
68
  "license": "MIT",
68
69
  "engines": {
69
70
  "node": ">=24 <25"
@@ -1,3 +1,3 @@
1
1
  undetected-chromedriver==3.5.5
2
- selenium==4.29.0
3
- setuptools==75.8.0
2
+ selenium==4.43.0
3
+ setuptools==82.0.1