mirror of
https://github.com/hanzoai/extension.git
synced 2026-10-31 19:21:00 +00:00
server.js was mcp's dist/cli.js, which leaves the MCP SDK, commander, glob and zod to node_modules; the .dxt and the npm package ship none, and the CLI also read its version from a ../package.json that sits beside neither. dxt's build now bundles mcp's src/cli.ts with every dependency inlined, as CommonJS because a .dxt has no package.json to declare ESM, and the version is imported so the bundler inlines it. The native optionals stay external: @lancedb/lancedb and @xenova/transformers back the legacy vector tools and jsautogui backs --enable-autogui, none of them on the default surface, and each tool answers an error naming the missing package. getSystemPrompt imported tools/index.js dynamically though cli.ts already imports it. That made esbuild wrap the module graph, zod included, in lazy init, and the SDK read zod before it ran: the bundle died at load with "Class2 is not a constructor". It is a static import. The build writes dist/: server.js, the manifest stamped with package.json's version, the icon, and hanzo-ai.dxt zipped with yazl, since the runners have no zip. The manifest failed the schema Claude Desktop installs by (mcpb validate, and the older dxt validate): `compatibility.runtime` is `runtimes`, and `user_config` has no `env` key. The server reads none of those variables anyway, and nothing implements anonymous mode, allowed paths or a write switch, so those settings go; disabledTools reaches the --disable-tools flag the server has. The tool list names `ui`, which it serves, not `computer`, which it does not. Claude-Session: https://claude.ai/code/session_01Dc8DXc3fEQCRHUa6XWK4Ku