{
  "file": "F09-model-switching-plugins.md",
  "bullet": "Mid-conversation switch with a cipher token (`F09.switch-llm-encrypted-key`).",
  "ids": [
    "F09.switch-llm-encrypted-key"
  ],
  "line": 186,
  "script": "RID=$(control-agent-server conversation start --tools none --no-autotitle --prompt 'Reply with the single word: ok' --wait --until finished --timeout 240 --print-id)\ncontrol-agent-server api GET \"<redacted:session-cookie>/$RID\" --quiet --check stats.usage_to_metrics.default.model_name eq deepseek/deepseek-flash\ncontrol-agent-server api POST \"<redacted:session-cookie>/$RID/switch_llm\" \\\n  --json \"{\\\"llm\\\": {\\\"model\\\": \\\"deepseek/deepseek-flash\\\", \\\"api_key\\\": \\\"$ENC\\\", \\\"usage_id\\\": \\\"qa-f09-enc\\\", \\\"num_retries\\\": 0}}\" \\\n  --expect 200 --save F09.switch-llm-encrypted-key/switch\ncontrol-agent-server api GET \"<redacted:session-cookie>/$RID\" --quiet --check agent.llm.usage_id eq qa-f09-enc --check agent.llm.api_key missing\ncontrol-agent-server conversation send \"$RID\" --text 'Reply with the single word: ok' --wait --until finished,error --timeout 240\ncontrol-agent-server api GET \"<redacted:session-cookie>/$RID\" --until-ok 60 --quiet --check execution_status eq finished \\\n  --check stats.usage_to_metrics.qa-f09-enc.model_name eq deepseek/deepseek-flash \\\n  --check stats.usage_to_metrics.qa-f09-enc.accumulated_token_usage.prompt_tokens gt 0 --save F09.switch-llm-encrypted-key/stats\n",
  "exit_code": 0,
  "elapsed_ms": 8559,
  "failed_line": null,
  "failed_command": null,
  "stdout": "{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/322fa040-93e4-4015-ad38-5e3dcba30510\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"6207\",\n      \"content-type\": \"application/json\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 69,\n  \"checks\": [\n    {\n      \"check\": \"stats.usage_to_metrics.default.model_name eq deepseek/deepseek-flash\",\n      \"ok\": true,\n      \"actual\": \"deepseek/deepseek-flash\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"<redacted:session-cookie>/322fa040-93e4-4015-ad38-5e3dcba30510/switch_llm\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": {\n      \"llm\": {\n        \"model\": \"deepseek/deepseek-flash\",\n        \"api_key\": \"<redacted:encrypted>\",\n        \"usage_id\": \"qa-f09-enc\",\n        \"num_retries\": 0\n      }\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"16\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"success\": true\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 117,\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-021812-2254-map-f09/evidence/F09.switch-llm-encrypted-key/switch.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/322fa040-93e4-4015-ad38-5e3dcba30510\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"6590\",\n      \"content-type\": \"application/json\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 144,\n  \"checks\": [\n    {\n      \"check\": \"agent.llm.usage_id eq qa-f09-enc\",\n      \"ok\": true,\n      \"actual\": \"qa-f09-enc\"\n    },\n    {\n      \"check\": \"agent.llm.api_key missing\",\n      \"ok\": true,\n      \"actual\": \"null\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"body\": {\n    \"success\": true\n  },\n  \"wait\": {\n    \"ok\": true,\n    \"status\": \"finished\",\n    \"transitions\": [\n      \"running\",\n      \"finished\"\n    ],\n    \"waited_ms\": 1081\n  }\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/322fa040-93e4-4015-ad38-5e3dcba30510\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"7066\",\n      \"content-type\": \"application/json\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 168,\n  \"checks\": [\n    {\n      \"check\": \"execution_status eq finished\",\n      \"ok\": true,\n      \"actual\": \"finished\"\n    },\n    {\n      \"check\": \"stats.usage_to_metrics.qa-f09-enc.model_name eq deepseek/deepseek-flash\",\n      \"ok\": true,\n      \"actual\": \"deepseek/deepseek-flash\"\n    },\n    {\n      \"check\": \"stats.usage_to_metrics.qa-f09-enc.accumulated_token_usage.prompt_tokens gt 0\",\n      \"ok\": true,\n      \"actual\": \"4150\"\n    }\n  ],\n  \"attempts\": 1,\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-021812-2254-map-f09/evidence/F09.switch-llm-encrypted-key/stats.json\"\n}\n",
  "stderr": ""
}
