diff --git a/cartridges/domains/ci-cd/cicd-squabbler-mcp/README.adoc b/cartridges/domains/ci-cd/cicd-squabbler-mcp/README.adoc index a8b0fd4..5f3b0c9 100644 --- a/cartridges/domains/ci-cd/cicd-squabbler-mcp/README.adoc +++ b/cartridges/domains/ci-cd/cicd-squabbler-mcp/README.adoc @@ -1,4 +1,5 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 +// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) = cicd-squabbler-mcp CI/CD gate-fighter cartridge — makes diff --git a/cartridges/domains/ci-cd/cicd-squabbler-mcp/mod.js b/cartridges/domains/ci-cd/cicd-squabbler-mcp/mod.js index c959e79..78a6ff7 100644 --- a/cartridges/domains/ci-cd/cicd-squabbler-mcp/mod.js +++ b/cartridges/domains/ci-cd/cicd-squabbler-mcp/mod.js @@ -44,11 +44,13 @@ export async function handleTool(toolName, args) { return post("/api/v1/fight", payload); } case "squabble_diagnose": { - const { checks } = args ?? {}; + // Accept both the documented bare shape ({checks}) and the + // gate-wrapped shape ({gate:{checks}}) callers generalise from + // squabble_fight by analogy — the backend tolerates both too. + const checks = args?.checks ?? args?.gate?.checks; if (!Array.isArray(checks)) { - return { status: 400, data: { error: "checks (array) is required" } }; + return { status: 400, data: { error: "checks (array) is required — pass {checks:[...]} or {gate:{checks:[...]}}" } }; } - // The backend takes the Gate object directly. return post("/api/v1/diagnose", { checks }); } default: