Commit Graph
14 Commits
Author SHA1 Message Date
admin 9bbd179a40 fix(esmole): publish typed add_connection inputSchema
add_connection advertised an empty `{ properties: {} }` while the server
validated strictly, so clients could not see field types or the required
`type` literal and sent port/verifyTls as strings.

Cause: the connection schema was wrapped in `.superRefine`, producing a
ZodEffects with no `.shape`. The MCP SDK's normalizeObjectSchema returns
undefined for it and falls back to EMPTY_OBJECT_JSON_SCHEMA. update_connection
passed a raw shape, so it serialized fine - hence the asymmetry.

Split the schema: a strict z.object (connectionObjectSchema) is advertised as
the wire schema, and the refined connectionConfigSchema is passed as a new
optional parseSchema applied in the handler. Strict unknown-key rejection and
the apiKey-or-user+password check are both preserved. fullSchema is now typed
as a ZodObject so a ZodEffects can no longer be passed by mistake.
2026-06-16 23:15:08 +05:00
admin 82fe30a1f1 fix(esmole): declare ssh2 runtime dependency 2026-06-16 21:50:21 +05:00
admin 987ecd6fdc build: dbmole Dockerfile for monorepo; esmole README 2026-06-16 21:44:25 +05:00
admin 4dc2089547 build: esmole Dockerfile
Build from repo root so @dbmole/core resolves; tsup bundles core into
dist while undici/MCP SDK/zod/ssh2 ship as pruned node_modules.

Mark ssh2 external in tsup: it is pulled in transitively by the bundled
core and ships an optional native crypto addon (pure-JS fallback). Inlining
would force esbuild to resolve a .node binary that need not exist on the
target; node-gyp also cannot reliably build it on alpine. Externalizing lets
ssh2 resolve from node_modules at runtime.

npm nests undici under packages/esmole-mcp/node_modules, so the runtime
stage copies both the root and the per-package node_modules.
2026-06-16 21:38:41 +05:00
admin dd6ca2deff fix(esmole): truncate all tool responses; guard normalizes leading slash 2026-06-16 21:21:20 +05:00
admin ab5416f443 test(esmole): integration against ES 7 and 8 2026-06-16 21:12:55 +05:00
admin 5aad5f9304 feat(esmole): server wiring and stdio entry 2026-06-16 21:07:48 +05:00
admin 49fb98c18b feat(esmole): es_request, es_search, es_list_indices, es_get_mapping, es_cluster_health 2026-06-16 21:04:12 +05:00
admin 889e844768 feat(esmole): store, sources, registry, manager, backend binders 2026-06-16 20:56:03 +05:00
admin 42712d508c feat(esmole): undici HTTP backend with TLS servername 2026-06-16 20:51:21 +05:00
admin b2a9c3323f feat(esmole): mapping flatten 2026-06-16 20:48:10 +05:00
admin 7381db1189 feat(esmole): readonly request guard 2026-06-16 20:46:23 +05:00
admin a424963418 feat(esmole): connection schema 2026-06-16 20:44:11 +05:00
admin c902231786 chore: scaffold esmole-mcp package 2026-06-16 20:41:25 +05:00