{
  "file": "F27-hooks-subagents-tools.md",
  "bullet": "Bad bodies (`F27.validation`).",
  "ids": [
    "F27.validation"
  ],
  "line": 246,
  "script": "control-agent-server api POST /api/hooks --expect 422 --check detail.0.loc.0 eq body --save F27.validation/hooks-no-body\ncontrol-agent-server api POST /api/hooks --json '{\"project_dir\": 123}' --expect 422 --check detail.0.loc.1 eq project_dir\ncontrol-agent-server api POST /api/sub-agents --expect 422 --check detail.0.loc.0 eq body\ncontrol-agent-server api POST /api/sub-agents --json '{\"load_user\": \"maybe\"}' --expect 422 --check detail.0.loc.1 eq load_user \\\n  --save F27.validation/sub-agents-bad-bool\ncontrol-agent-server api POST /api/sub-agents --json '{\"project_dir\": [\"x\"]}' --expect 422 --check detail.0.loc.1 eq project_dir\n",
  "exit_code": 0,
  "elapsed_ms": 2871,
  "failed_line": null,
  "failed_command": null,
  "stdout": "{\n  \"ok\": true,\n  \"status\": 422,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/hooks\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 422,\n    \"headers\": {\n      \"content-length\": \"82\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": [\n        {\n          \"type\": \"missing\",\n          \"loc\": [\n            \"body\"\n          ],\n          \"msg\": \"Field required\",\n          \"input\": null\n        }\n      ]\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 223,\n  \"checks\": [\n    {\n      \"check\": \"detail.0.loc.0 eq body\",\n      \"ok\": true,\n      \"actual\": \"body\"\n    }\n  ],\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-030559-0256-map-f27/evidence/F27.validation/hooks-no-body.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 422,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/hooks\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": {\n      \"project_dir\": 123\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 422,\n    \"headers\": {\n      \"content-length\": \"115\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": [\n        {\n          \"type\": \"string_type\",\n          \"loc\": [\n            \"body\",\n            \"project_dir\"\n          ],\n          \"msg\": \"Input should be a valid string\",\n          \"input\": 123\n        }\n      ]\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 95,\n  \"checks\": [\n    {\n      \"check\": \"detail.0.loc.1 eq project_dir\",\n      \"ok\": true,\n      \"actual\": \"project_dir\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 422,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/sub-agents\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 422,\n    \"headers\": {\n      \"content-length\": \"82\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": [\n        {\n          \"type\": \"missing\",\n          \"loc\": [\n            \"body\"\n          ],\n          \"msg\": \"Field required\",\n          \"input\": null\n        }\n      ]\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 94,\n  \"checks\": [\n    {\n      \"check\": \"detail.0.loc.0 eq body\",\n      \"ok\": true,\n      \"actual\": \"body\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 422,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/sub-agents\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": {\n      \"load_user\": \"maybe\"\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 422,\n    \"headers\": {\n      \"content-length\": \"146\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": [\n        {\n          \"type\": \"bool_parsing\",\n          \"loc\": [\n            \"body\",\n            \"load_user\"\n          ],\n          \"msg\": \"Input should be a valid boolean, unable to interpret input\",\n          \"input\": \"maybe\"\n        }\n      ]\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 48,\n  \"checks\": [\n    {\n      \"check\": \"detail.0.loc.1 eq load_user\",\n      \"ok\": true,\n      \"actual\": \"load_user\"\n    }\n  ],\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-030559-0256-map-f27/evidence/F27.validation/sub-agents-bad-bool.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 422,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/sub-agents\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": {\n      \"project_dir\": [\n        \"x\"\n      ]\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 422,\n    \"headers\": {\n      \"content-length\": \"117\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": [\n        {\n          \"type\": \"string_type\",\n          \"loc\": [\n            \"body\",\n            \"project_dir\"\n          ],\n          \"msg\": \"Input should be a valid string\",\n          \"input\": [\n            \"x\"\n          ]\n        }\n      ]\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 59,\n  \"checks\": [\n    {\n      \"check\": \"detail.0.loc.1 eq project_dir\",\n      \"ok\": true,\n      \"actual\": \"project_dir\"\n    }\n  ]\n}\n",
  "stderr": ""
}
