fix(agent): replace jsdom with linkedom to fix Docker EISDIR error (#186)

jsdom relies on Node.js-specific APIs that Bun cannot properly resolve
when running a bundled artifact. This caused an EISDIR error in Docker
containers (Bun tried to read the jsdom directory as a file).

Replace jsdom with linkedom, a lightweight pure-JS DOM implementation
that is fully compatible with Bun and @mozilla/readability. Also remove
the --external jsdom build flag since linkedom bundles cleanly.

Closes #181
This commit is contained in:
BBQ
2026-03-04 22:11:08 +08:00
committed by GitHub
parent 9ceabf68c4
commit a8b960db80
5 changed files with 166 additions and 63 deletions
+2 -4
View File
@@ -7,17 +7,15 @@
"start": "pnpm run build && bun run dist/index.js"
},
"dependencies": {
"@memoh/config": "workspace:*",
"@memoh/agent": "workspace:*",
"@elysiajs/bearer": "^1.4.2",
"@elysiajs/cors": "^1.4.1",
"@memoh/agent": "workspace:*",
"@memoh/config": "workspace:*",
"@modelcontextprotocol/sdk": "^1.25.2",
"@mozilla/readability": "^0.6.0",
"@types/jsdom": "^27.0.0",
"@types/turndown": "^5.0.6",
"ai": "^6.0.25",
"elysia": "latest",
"jsdom": "^27.4.0",
"toml": "^3.0.0",
"turndown": "^7.2.2",
"zod": "^4.3.5"