{
  "file": "F14-files.md",
  "bullet": "Session key required (`F14.auth`).",
  "ids": [
    "F14.auth"
  ],
  "line": 134,
  "script": "control-agent-server api GET /api/file/home --auth none --expect 401\ncontrol-agent-server api GET /api/file/search_subdirs --auth none --query path=\"$F\" --expect 401\ncontrol-agent-server api POST /api/file/upload --auth none --query path=\"$F/noauth/x.bin\" --file file=\"$F/blob.bin\" --expect 401\ncontrol-agent-server api GET /api/file/download --auth bad --query path=\"$F/blob.bin\" --expect 401\ncontrol-agent-server api POST /api/file/create_directory --auth none --query path=\"$F/noauth-dir\" --expect 401\ncontrol-agent-server api GET /api/file/archive --auth none --query path=\"$REPO\" --expect 401\ncontrol-agent-server api GET \"/api/file/download-trajectory/$CID\" --auth none --expect 401\ncontrol-agent-server api POST \"<redacted:session-cookie>/$CID/file/upload\" --auth none --query path=\"$WS/noauth.bin\" --file file=\"$F/blob.bin\" --expect 401\ncontrol-agent-server api GET \"<redacted:session-cookie>/$CID/file/download\" --auth none --query path=\"$WS/qa-f14-agent.txt\" --expect 401\ncontrol-agent-server api POST \"<redacted:session-cookie>/$CID/file/create_directory\" --auth none --query path=\"$WS/noauth-dir\" --expect 401\ncontrol-agent-server api GET \"<redacted:session-cookie>/$CID/file/archive\" --auth none --query path=\"$WS\" --expect 401\ncontrol-agent-server api GET \"<redacted:session-cookie>/$CID/file/download-trajectory/$CID\" --auth none --expect 401 \\\n  --check detail eq Unauthorized --save F14.auth/scoped-trajectory\ntest ! -e \"$F/noauth\"\ntest ! -e \"$F/noauth-dir\"\ntest ! -e \"$WS/noauth.bin\"\ntest ! -e \"$WS/noauth-dir\"\n",
  "exit_code": 0,
  "elapsed_ms": 27439,
  "failed_line": null,
  "failed_command": null,
  "stdout": "{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/file/home\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 318\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/file/search_subdirs\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14\"\n      ]\n    ],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 508\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/file/upload\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14/noauth/x.bin\"\n      ]\n    ],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": [\n      \"file\"\n    ]\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 306\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/file/download\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14/blob.bin\"\n      ]\n    ],\n    \"auth\": \"bad\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 405\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/file/create_directory\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14/noauth-dir\"\n      ]\n    ],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 415\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/file/archive\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14-repo\"\n      ]\n    ],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 195\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/file/download-trajectory/96de8cfb-c9b8-4de3-966b-eb833ed3e6dd\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 341\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"<redacted:session-cookie>/96de8cfb-c9b8-4de3-966b-eb833ed3e6dd/file/upload\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/workspaces/022234-899208/noauth.bin\"\n      ]\n    ],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": [\n      \"file\"\n    ]\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 329\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/96de8cfb-c9b8-4de3-966b-eb833ed3e6dd/file/download\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/workspaces/022234-899208/qa-f14-agent.txt\"\n      ]\n    ],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 495\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"<redacted:session-cookie>/96de8cfb-c9b8-4de3-966b-eb833ed3e6dd/file/create_directory\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/workspaces/022234-899208/noauth-dir\"\n      ]\n    ],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 404\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/96de8cfb-c9b8-4de3-966b-eb833ed3e6dd/file/archive\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/workspaces/022234-899208\"\n      ]\n    ],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 383\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/96de8cfb-c9b8-4de3-966b-eb833ed3e6dd/file/download-trajectory/96de8cfb-c9b8-4de3-966b-eb833ed3e6dd\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 337,\n  \"checks\": [\n    {\n      \"check\": \"detail eq Unauthorized\",\n      \"ok\": true,\n      \"actual\": \"Unauthorized\"\n    }\n  ],\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/evidence/F14.auth/scoped-trajectory.json\"\n}\n",
  "stderr": ""
}
