Files
zeekay da73310642 dxt ships a server that runs on its own
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
2026-09-29 12:50:30 -07:00

23 lines
425 B
JSON

{
"name": "@hanzo/dxt",
"version": "1.8.2",
"description": "Hanzo AI extension for Claude Desktop",
"main": "dist/server.js",
"scripts": {
"build": "node scripts/build.js"
},
"license": "MIT",
"publishConfig": {
"access": "public"
},
"files": [
"dist/server.js",
"dist/manifest.json",
"dist/icon.png"
],
"devDependencies": {
"esbuild": "catalog:",
"yazl": "catalog:"
}
}