obscura-mcp-server 0.1.1 → 0.2.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 (41) hide show
  1. package/.github/workflows/release.yml +95 -0
  2. package/INSTALL.md +7 -7
  3. package/README.md +7 -1
  4. package/biome.json +1 -7
  5. package/bun.lock +48 -23
  6. package/dist/index.js +36541 -28483
  7. package/lefthook.yml +11 -0
  8. package/package.json +23 -10
  9. package/scripts/smoke-test.ts +138 -0
  10. package/src/formatters/clean.test.ts +81 -0
  11. package/src/formatters/clean.ts +39 -24
  12. package/src/formatters/html.test.ts +30 -0
  13. package/src/formatters/markdown.test.ts +26 -0
  14. package/src/formatters/text.test.ts +24 -0
  15. package/src/formatters/text.ts +20 -13
  16. package/src/index.ts +1 -1
  17. package/src/tools/fetch/fetch.test.ts +73 -0
  18. package/src/tools/fetch/fetch.ts +2 -6
  19. package/src/tools/fetch/index.test.ts +77 -0
  20. package/src/tools/fetch/index.ts +1 -1
  21. package/src/tools/query/fetch.test.ts +90 -0
  22. package/src/tools/query/fetch.ts +88 -66
  23. package/src/tools/query/index.test.ts +63 -0
  24. package/src/tools/query/index.ts +1 -1
  25. package/src/tools/query/obscura.test.ts +79 -0
  26. package/src/tools/query/obscura.ts +13 -4
  27. package/src/tools/search/fetch.test.ts +95 -0
  28. package/src/tools/search/fetch.ts +26 -27
  29. package/src/tools/search/index.test.ts +50 -0
  30. package/src/tools/search/index.ts +1 -1
  31. package/src/tools/search/obscura.test.ts +115 -0
  32. package/src/tools/search/obscura.ts +2 -2
  33. package/src/utils/exec.test.ts +83 -0
  34. package/src/utils/exec.ts +35 -4
  35. package/src/utils/fetch-timeout.ts +22 -0
  36. package/src/utils/http.ts +14 -0
  37. package/src/utils/lru.test.ts +66 -0
  38. package/src/utils/lru.ts +66 -0
  39. package/src/utils/obscura.test.ts +48 -0
  40. package/src/utils/obscura.ts +65 -21
  41. package/.specs/config.yaml +0 -25
@@ -0,0 +1,95 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags: ["v*"]
7
+ pull_request:
8
+ branches: [main]
9
+ workflow_dispatch:
10
+
11
+ concurrency:
12
+ group: release-${{ github.ref }}
13
+ cancel-in-progress: false
14
+
15
+ permissions:
16
+ contents: read
17
+ id-token: write
18
+
19
+ jobs:
20
+ ci:
21
+ name: CI
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+
26
+ - uses: oven-sh/setup-bun@v2
27
+ with:
28
+ bun-version: latest
29
+
30
+ - name: Install dependencies
31
+ run: bun install --frozen-lockfile
32
+
33
+ - name: Lint
34
+ run: bun run check
35
+
36
+ - name: Type check
37
+ run: bunx tsc --noEmit || true
38
+
39
+ - name: Test with coverage
40
+ run: bun test --coverage
41
+
42
+ - name: Smoke test
43
+ run: bun run smoke
44
+
45
+ - name: Build
46
+ run: bun run build
47
+
48
+ - name: Upload artifact
49
+ uses: actions/upload-artifact@v4
50
+ with:
51
+ name: dist
52
+ path: dist/
53
+ if-no-files-found: error
54
+ retention-days: 7
55
+
56
+ publish:
57
+ name: Publish to npm
58
+ runs-on: ubuntu-latest
59
+ needs: ci
60
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
61
+ environment:
62
+ name: npm
63
+ url: https://www.npmjs.com/package/obscura-mcp-server
64
+ steps:
65
+ - uses: actions/checkout@v4
66
+
67
+ - uses: oven-sh/setup-bun@v2
68
+ with:
69
+ bun-version: latest
70
+
71
+ - uses: actions/setup-node@v4
72
+ with:
73
+ node-version: "20"
74
+ registry-url: https://registry.npmjs.org/
75
+
76
+ - name: Install dependencies
77
+ run: bun install --frozen-lockfile
78
+
79
+ - name: Build
80
+ run: bun run build
81
+
82
+ - name: Verify tag matches package version
83
+ run: |
84
+ TAG="${GITHUB_REF#refs/tags/v}"
85
+ PKG_VERSION="$(node -p "require('./package.json').version")"
86
+ if [ "$TAG" != "$PKG_VERSION" ]; then
87
+ echo "Tag v$TAG does not match package.json version $PKG_VERSION"
88
+ exit 1
89
+ fi
90
+ echo "Publishing version $PKG_VERSION"
91
+
92
+ - name: Publish to npm
93
+ run: npm publish --provenance --access public
94
+ env:
95
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/INSTALL.md CHANGED
@@ -13,7 +13,7 @@ Once published to npm:
13
13
  "mcpServers": {
14
14
  "obscura": {
15
15
  "command": "bunx",
16
- "args": ["obscura-mcp-server"]
16
+ "args": ["-y", "obscura-mcp-server"]
17
17
  }
18
18
  }
19
19
  }
@@ -89,7 +89,7 @@ bun install
89
89
  "servers": {
90
90
  "obscura": {
91
91
  "command": "bunx",
92
- "args": ["obscura-mcp-server"]
92
+ "args": ["-y", "obscura-mcp-server"]
93
93
  }
94
94
  }
95
95
  }
@@ -114,7 +114,7 @@ Restart VSCode after editing.
114
114
  "obscura": {
115
115
  "type": "stdio",
116
116
  "command": "bunx",
117
- "args": ["obscura-mcp-server"]
117
+ "args": ["-y", "obscura-mcp-server"]
118
118
  }
119
119
  }
120
120
  }
@@ -150,7 +150,7 @@ Cursor also supports UI configuration: Settings → Features → Model Context P
150
150
  "mcp": {
151
151
  "obscura": {
152
152
  "type": "local",
153
- "command": ["bunx", "obscura-mcp-server"],
153
+ "command": ["bunx", "-y", "obscura-mcp-server"],
154
154
  "environment": {
155
155
  "OBSCURA_PATH": "/usr/local/bin/obscura"
156
156
  },
@@ -175,7 +175,7 @@ Cursor also supports UI configuration: Settings → Features → Model Context P
175
175
  "mcpServers": {
176
176
  "obscura": {
177
177
  "command": "bunx",
178
- "args": ["obscura-mcp-server"]
178
+ "args": ["-y", "obscura-mcp-server"]
179
179
  }
180
180
  }
181
181
  }
@@ -202,7 +202,7 @@ claude mcp list
202
202
  "mcpServers": {
203
203
  "obscura": {
204
204
  "command": "bunx",
205
- "args": ["obscura-mcp-server"]
205
+ "args": ["-y", "obscura-mcp-server"]
206
206
  }
207
207
  }
208
208
  }
@@ -227,7 +227,7 @@ Then configure the adapter to point to the Obscura MCP server:
227
227
  "mcpServers": {
228
228
  "obscura": {
229
229
  "command": "bunx",
230
- "args": ["obscura-mcp-server"]
230
+ "args": ["-y", "obscura-mcp-server"]
231
231
  }
232
232
  }
233
233
  }
package/README.md CHANGED
@@ -47,7 +47,7 @@ Add to your MCP servers config:
47
47
  "mcpServers": {
48
48
  "obscura": {
49
49
  "command": "bunx",
50
- "args": ["obscura-mcp-server"]
50
+ "args": ["-y", "obscura-mcp-server"]
51
51
  }
52
52
  }
53
53
  }
@@ -106,6 +106,12 @@ bun run check
106
106
 
107
107
  # Lint and fix
108
108
  bun run lint:fix
109
+
110
+ # Unit tests + coverage
111
+ bun test --coverage
112
+
113
+ # Smoke test (boots the server and calls every tool)
114
+ bun run smoke
109
115
  ```
110
116
 
111
117
  ## License
package/biome.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.13/schema.json",
2
+ "$schema": "https://biomejs.dev/schemas/2.5.3/schema.json",
3
3
  "vcs": {
4
4
  "enabled": true,
5
5
  "clientKind": "git",
@@ -11,12 +11,6 @@
11
11
  "indentWidth": 2,
12
12
  "lineWidth": 100
13
13
  },
14
- "linter": {
15
- "enabled": true,
16
- "rules": {
17
- "recommended": true
18
- }
19
- },
20
14
  "javascript": {
21
15
  "formatter": {
22
16
  "quoteStyle": "double",
package/bun.lock CHANGED
@@ -5,40 +5,41 @@
5
5
  "": {
6
6
  "name": "obscura-mcp-server",
7
7
  "dependencies": {
8
- "@modelcontextprotocol/sdk": "^1.29.0",
9
- "fuse.js": "^7.3.0",
10
- "node-html-parser": "^7.1.0",
11
- "turndown": "^7.2.4",
12
- "zod": "^4.3.6",
8
+ "@modelcontextprotocol/sdk": "1.29.0",
9
+ "fuse.js": "7.5.0",
10
+ "node-html-parser": "9.0.0",
11
+ "turndown": "7.2.4",
12
+ "zod": "4.4.3",
13
13
  },
14
14
  "devDependencies": {
15
- "@biomejs/biome": "^2.4.13",
15
+ "@biomejs/biome": "2.5.3",
16
16
  "@types/bun": "latest",
17
- "@types/turndown": "^5.0.6",
17
+ "@types/turndown": "5.0.6",
18
+ "lefthook": "2.1.10",
18
19
  },
19
20
  "peerDependencies": {
20
- "typescript": "^6.0.3",
21
+ "typescript": "^7.0.2",
21
22
  },
22
23
  },
23
24
  },
24
25
  "packages": {
25
- "@biomejs/biome": ["@biomejs/biome@2.4.13", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.13", "@biomejs/cli-darwin-x64": "2.4.13", "@biomejs/cli-linux-arm64": "2.4.13", "@biomejs/cli-linux-arm64-musl": "2.4.13", "@biomejs/cli-linux-x64": "2.4.13", "@biomejs/cli-linux-x64-musl": "2.4.13", "@biomejs/cli-win32-arm64": "2.4.13", "@biomejs/cli-win32-x64": "2.4.13" }, "bin": { "biome": "bin/biome" } }, "sha512-gLXOwkOBBg0tr7bDsqlkIh4uFeKuMjxvqsrb1Tukww1iDmHcfr4Uu8MoQxp0Rcte+69+osRNWXwHsu/zxT6XqA=="],
26
+ "@biomejs/biome": ["@biomejs/biome@2.5.3", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.5.3", "@biomejs/cli-darwin-x64": "2.5.3", "@biomejs/cli-linux-arm64": "2.5.3", "@biomejs/cli-linux-arm64-musl": "2.5.3", "@biomejs/cli-linux-x64": "2.5.3", "@biomejs/cli-linux-x64-musl": "2.5.3", "@biomejs/cli-win32-arm64": "2.5.3", "@biomejs/cli-win32-x64": "2.5.3" }, "bin": { "biome": "bin/biome" } }, "sha512-MrJswFdei9EfDwwUy2tQrPDpK0AO+RmMFvBoaaJ6ayBc3sUbHdCE+XG5N8vp+5So41ZupZJQm0roHFFhMGVD7A=="],
26
27
 
27
- "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.4.13", "", { "os": "darwin", "cpu": "arm64" }, "sha512-2KImO1jhNFBa2oWConyr0x6flxbQpGKv6902uGXpYM62Xyem8U80j441SyUJ8KyngsmKbQjeIv1q2CQfDkNnYg=="],
28
+ "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.5.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-QhYP9muVQ0nUO5zztFuPbEwi4+94sJWVjaZds9aMi1l/KNZBiUjdiSUrGHsTaMGDXrYl+r4AS2sUKfgH3w+V3g=="],
28
29
 
29
- "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.4.13", "", { "os": "darwin", "cpu": "x64" }, "sha512-BKrJklbaFN4p1Ts4kPBczo+PkbsHQg57kmJ+vON9u2t6uN5okYHaSr7h/MutPCWQgg2lglaWoSmm+zhYW+oOkg=="],
30
+ "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.5.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-NC1Ss13UaW7QZX+y8j44bF7AP0jSJdBl6iRhe0MAkvaSqZy+mWg3GaXsrb+eSoHoGDBtaXWEbMVV0iVN2cZ7cQ=="],
30
31
 
31
- "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.4.13", "", { "os": "linux", "cpu": "arm64" }, "sha512-NzkUDSqfvMBrPplKgVr3aXLHZ2NEELvvF4vZxXulEylKWIGqlvNEcwUcj9OLrn75TD3lJ/GIqCVlBwd1MZCuYQ=="],
32
+ "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.5.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-ksx1KWeyYW18ILL04msF/J4ZBtBDN33znYK8Z/aNv/vlBVxL9/g3mGP+omgHJKy4+KWbK87vcmmpmurfNjSgiA=="],
32
33
 
33
- "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.4.13", "", { "os": "linux", "cpu": "arm64" }, "sha512-U5MsuBQW25dXaYtqWWSPM3P96H6Y+fHuja3TQpMNnylocHW0tEbtFTDlUj6oM+YJLntvEkQy4grBvQNUD4+RCg=="],
34
+ "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.5.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-fccix0w6xp6csCXgxeC0dU/3ecgRQal0y+cv2SP9ajNlhe7Yrk2Ug7UDe2j9AT9ZDYitkXpvUKgZjjuoYeP4Vg=="],
34
35
 
35
- "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.4.13", "", { "os": "linux", "cpu": "x64" }, "sha512-Az3ZZedYRBo9EQzNnD9SxFcR1G5QsGo6VEc2hIyVPZ1rdKwee/7E9oeBBZFpE8Z44ekxsDQBqbiWGW5ShOhUSQ=="],
36
+ "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.5.3", "", { "os": "linux", "cpu": "x64" }, "sha512-yMkJtilsgvILDcVkh187aVLTb64xYsrxYajx5kym+r1ULkO5HUOfu9AYKLGQbOVLwJtT2utNw7hhFNg+17mUYA=="],
36
37
 
37
- "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.4.13", "", { "os": "linux", "cpu": "x64" }, "sha512-Z601MienRgTBDza/+u2CH3RSrWoXo9rtr8NK6A4KJzqGgfxx+H3VlyLgTJ4sRo40T3pIsqpTmiOQEvYzQvBRvQ=="],
38
+ "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.5.3", "", { "os": "linux", "cpu": "x64" }, "sha512-O/yU9YKRUiHhmcjF2f38PSjseVk3G4VLWYc0G2HWpzdBVREV6G8IGWIVEFf7MFPfWIzNUIvPsEjeAZQIOgnLcQ=="],
38
39
 
39
- "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.4.13", "", { "os": "win32", "cpu": "arm64" }, "sha512-Px9PS2B5/Q183bUwy/5VHqp3J2lzdOCeVGzMpphYfl8oSa7VDCqenBdqWpy6DCy/en4Rbf/Y1RieZF6dJPcc9A=="],
40
+ "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.5.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-cX5z+GYwRcqEok0AH3KSfQGgqYd0Nomfp6Fbe1uiTtELE38hdH2k842wQ9wLNaF/JJ7r4rjJQ4VR+ce+fRmQbw=="],
40
41
 
41
- "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.4.13", "", { "os": "win32", "cpu": "x64" }, "sha512-tTcMkXyBrmHi9BfrD2VNHs/5rYIUKETqsBlYOvSAABwBkJhSDVb5e7wPukftsQbO3WzQkXe6kaztC6WtUOXSoQ=="],
42
+ "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.5.3", "", { "os": "win32", "cpu": "x64" }, "sha512-ExSaJWi4/u6+GXCszlSKpWSjKNbDseAYqqkCznsCsZ/4uidZ/BEqsCc5/3ctlq6dfIubdIIRSVLC/PG9xPl70Q=="],
42
43
 
43
44
  "@hono/node-server": ["@hono/node-server@1.19.14", "", { "peerDependencies": { "hono": "^4" } }, "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw=="],
44
45
 
@@ -104,7 +105,7 @@
104
105
 
105
106
  "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="],
106
107
 
107
- "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
108
+ "entities": ["entities@8.0.0", "", {}, "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA=="],
108
109
 
109
110
  "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
110
111
 
@@ -136,7 +137,7 @@
136
137
 
137
138
  "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
138
139
 
139
- "fuse.js": ["fuse.js@7.3.0", "", {}, "sha512-plz8RVjfcDedTGfVngWH1jmJvBvAwi1v2jecfDerbEnMcmOYUEEwKFTHbNoCiYyzaK2Ws8lABkTCcRSqCY1q4w=="],
140
+ "fuse.js": ["fuse.js@7.5.0", "", {}, "sha512-sQtrEfA+ez/3G0cCZecF70oqpCRttCexYUG4mUrtWL49ULUzUyxokt5kyqwtKzj1270RaKih+hcP3qLcumccow=="],
140
141
 
141
142
  "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
142
143
 
@@ -148,8 +149,6 @@
148
149
 
149
150
  "hasown": ["hasown@2.0.3", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg=="],
150
151
 
151
- "he": ["he@1.2.0", "", { "bin": { "he": "bin/he" } }, "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="],
152
-
153
152
  "hono": ["hono@4.12.15", "", {}, "sha512-qM0jDhFEaCBb4TxoW7f53Qrpv9RBiayUHo0S52JudprkhvpjIrGoU1mnnr29Fvd1U335ZFPZQY1wlkqgfGXyLg=="],
154
153
 
155
154
  "http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="],
@@ -172,6 +171,28 @@
172
171
 
173
172
  "json-schema-typed": ["json-schema-typed@8.0.2", "", {}, "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA=="],
174
173
 
174
+ "lefthook": ["lefthook@2.1.10", "", { "optionalDependencies": { "lefthook-darwin-arm64": "2.1.10", "lefthook-darwin-x64": "2.1.10", "lefthook-freebsd-arm64": "2.1.10", "lefthook-freebsd-x64": "2.1.10", "lefthook-linux-arm64": "2.1.10", "lefthook-linux-x64": "2.1.10", "lefthook-openbsd-arm64": "2.1.10", "lefthook-openbsd-x64": "2.1.10", "lefthook-windows-arm64": "2.1.10", "lefthook-windows-x64": "2.1.10" }, "bin": { "lefthook": "bin/index.js" } }, "sha512-K7mM4WoqMwqfXYK11EHy+lSH1uW8XHni3Yn/bSqyerPkUPygGdf3xn18JoV5HyA06xuQL3ofGAOjG01QX9oJ4w=="],
175
+
176
+ "lefthook-darwin-arm64": ["lefthook-darwin-arm64@2.1.10", "", { "os": "darwin", "cpu": "arm64" }, "sha512-nw+X8wRNDoUUV6WSteyKBbcLySq+fsmZt5WV/s50ZJpysmsDKJOUMln6SllNfP+60dzUahAO7REco/2633BsLg=="],
177
+
178
+ "lefthook-darwin-x64": ["lefthook-darwin-x64@2.1.10", "", { "os": "darwin", "cpu": "x64" }, "sha512-KQ/bHmvpkFdHMn4pZnUdTf+GuSC+aBBgBTxZT4GW+6cSf+qbErKZBhK7cH6BmILsvx43+VzEArvHYY7YOfRFOQ=="],
179
+
180
+ "lefthook-freebsd-arm64": ["lefthook-freebsd-arm64@2.1.10", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-8su6DwydP7+pv7kG0zCtjphqsw4ouOnfexRUErapy5GTxYBoUOhYz3RSHTSWNRsK6W4jva7FPUh2Lp5/PSn30w=="],
181
+
182
+ "lefthook-freebsd-x64": ["lefthook-freebsd-x64@2.1.10", "", { "os": "freebsd", "cpu": "x64" }, "sha512-GeAJEFxko3Lk+AsnS3NleAFrpyMLFUKOlgJvPKuU0xHwVEI/z+ZoCcmuO0BX+4CS0NLbZhC/YQAvBASqDvvVdQ=="],
183
+
184
+ "lefthook-linux-arm64": ["lefthook-linux-arm64@2.1.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-1sHTCmpTWjVMs+yKPBLRNT1kuuIr1yjietlk7rCB6wFPVOS6Ph3o2zPFH2AvW1UymHlqwyHXzBr9EtDpQ7j1mQ=="],
185
+
186
+ "lefthook-linux-x64": ["lefthook-linux-x64@2.1.10", "", { "os": "linux", "cpu": "x64" }, "sha512-z/VlRB3bh6mBvW3r1rwnJ5vP8z+Krx5gJzkZ4veDXh+6FlRTx8wtd3g3fllOv/yZMxkgmL3fQoFXv05Esa7vBQ=="],
187
+
188
+ "lefthook-openbsd-arm64": ["lefthook-openbsd-arm64@2.1.10", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-430zL8sSIKw5P0YXGG6PB+eAhHa06n0PXuaERaAQE4Ss3odfqwnl5Mq9hQmkEnOS1EGiQEKkd0UHv/i4PtMNIQ=="],
189
+
190
+ "lefthook-openbsd-x64": ["lefthook-openbsd-x64@2.1.10", "", { "os": "openbsd", "cpu": "x64" }, "sha512-bgkO8PphGZVDhQgCJ524aYYPI5491pVmCiLPGjBIo1AvOSlIyw4N1Y+1C3QfqwEmechzw+Aq16SNc8pqv6UuXg=="],
191
+
192
+ "lefthook-windows-arm64": ["lefthook-windows-arm64@2.1.10", "", { "os": "win32", "cpu": "arm64" }, "sha512-5Q6etF0Fla2DDA4ilDySrdNgiR5+W7cJZwnZ69Je3kvWCaWm4wnkuc8FEdjp3kiL2x3ZXipdI00f5vpO8aWmog=="],
193
+
194
+ "lefthook-windows-x64": ["lefthook-windows-x64@2.1.10", "", { "os": "win32", "cpu": "x64" }, "sha512-c/XH8YZtylG4XaxzqFfXluvq2LXq2W/p54Bnzn3+Z7E5X2Fk3JlFJAibulMbIt2+w8T7UI/r97ok5GqE4kGaeA=="],
195
+
175
196
  "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
176
197
 
177
198
  "media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="],
@@ -186,7 +207,7 @@
186
207
 
187
208
  "negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="],
188
209
 
189
- "node-html-parser": ["node-html-parser@7.1.0", "", { "dependencies": { "css-select": "^5.1.0", "he": "1.2.0" } }, "sha512-iJo8b2uYGT40Y8BTyy5ufL6IVbN8rbm/1QK2xffXU/1a/v3AAa0d1YAoqBNYqaS4R/HajkWIpIfdE6KcyFh1AQ=="],
210
+ "node-html-parser": ["node-html-parser@9.0.0", "", { "dependencies": { "css-select": "^5.1.0", "entities": "^8.0.0" } }, "sha512-MhdaHPyxnyYu/sf0TpiRvDnTrkum0UKHC7FdbDGIUQNlx3I7xzwXoyV0eMUMv/XU+lkJT1glOUzpDPq7b2p1Ew=="],
190
211
 
191
212
  "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="],
192
213
 
@@ -258,8 +279,12 @@
258
279
 
259
280
  "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
260
281
 
261
- "zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="],
282
+ "zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="],
262
283
 
263
284
  "zod-to-json-schema": ["zod-to-json-schema@3.25.2", "", { "peerDependencies": { "zod": "^3.25.28 || ^4" } }, "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA=="],
285
+
286
+ "@modelcontextprotocol/sdk/zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="],
287
+
288
+ "dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
264
289
  }
265
290
  }