v2.18.1
What's Changed
Fixed
-
Every Google Gemini request failed while this server was connected.
stop_all_appsdeclaredconfirm: z.literal(true), which zod emits asconst: true;@ai-sdk/googlerewrites a JSON Schemaconstintoenum: [const]when it converts the tool list, and Google'senumaccepts strings only.generateContentanswered400 Invalid value at 'tools[0].function_declarations[42].parameters.properties[0].value.enum[0]' (TYPE_STRING), true— and it rejects the request, not the offending declaration, so all 44 tools went down with the one. The symptom is a client that cannot make a single Gemini call until it disables this tool by name, which does not look like a schema problem from the outside. Anthropic and the OpenAI-compatible providers accepted the same list unchanged, which is why it survived from #261 to here.confirmis nowz.boolean()and the handler's existingconfirm !== truecheck is the gate. Nothing is loosened: a literal only ever required the model to typetrue, and a model willing to stop the estate types it either way — the real confirmation is the #261 elicitation prompt, in front of a human, and it is untouched. Anything that is not a boolean ("true",1, omitted) is still refused by the parser before the handler runs, andfalseis refused before any Coolify call is made.A test now walks every tool's schema over a real
tools/listround trip and fails on any non-stringenumorconst, so the next literal is caught at the tool that adds it rather than by a provider six models away.
Security
- Bumped transitive dependencies past fresh npm advisories (#324).
🖱️ One-click Claude Desktop install: download coolify-mcp.mcpb below and drag it into Settings → Extensions.