{"openapi":"3.0.3","info":{"title":"Codex Machine Control API","version":"1.0.0","description":"Versioned JSON API for the Codex Machine control plane. This API is summary-first and optimized for environment status, task inspection, diagnostics, and the command-deck UI."},"servers":[{"url":"/"}],"paths":{"/api/v1/openapi.json":{"get":{"summary":"Return this OpenAPI document","responses":{"200":{"description":"OpenAPI document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiDocument"}}}}}}},"/api/v1/dashboard":{"get":{"summary":"Dashboard summary","responses":{"200":{"description":"Dashboard data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardPayload"}}}}}}},"/api/v1/questions":{"get":{"summary":"Question center summary","responses":{"200":{"description":"Questions payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionsPayload"}}}}}}},"/api/v1/environments/{env_name}/snapshot":{"get":{"summary":"Environment snapshot","parameters":[{"$ref":"#/components/parameters/EnvName"}],"responses":{"200":{"description":"Environment snapshot","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentSnapshot"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/environments/{env_name}/events":{"get":{"summary":"Environment events","parameters":[{"$ref":"#/components/parameters/EnvName"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"default":120},"description":"Maximum events to return."}],"responses":{"200":{"description":"Recent environment events","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventRecord"}}}}}}}},"/api/v1/environments/{env_name}/active-run":{"get":{"summary":"Active run inspector payload","parameters":[{"$ref":"#/components/parameters/EnvName"}],"responses":{"200":{"description":"Active run payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveRunView"}}}}}}},"/api/v1/environments/{env_name}/tasks":{"get":{"summary":"Tasks grouped by status","parameters":[{"$ref":"#/components/parameters/EnvName"}],"responses":{"200":{"description":"Task index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskIndex"}}}}}}},"/api/v1/environments/{env_name}/container-logs":{"get":{"summary":"Tail container logs","parameters":[{"$ref":"#/components/parameters/EnvName"}],"responses":{"200":{"description":"Plain-text container log tail","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/v1/environments/{env_name}/diagnostics":{"get":{"summary":"Environment diagnostics bundle payload","parameters":[{"$ref":"#/components/parameters/EnvName"},{"name":"log_tail","in":"query","schema":{"type":"integer","minimum":1,"default":400}},{"name":"event_limit","in":"query","schema":{"type":"integer","minimum":1,"default":120}}],"responses":{"200":{"description":"Environment diagnostics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentDiagnostics"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/environments/{env_name}/tasks/{task_id}/debug":{"get":{"summary":"Task debug view","parameters":[{"$ref":"#/components/parameters/EnvName"},{"$ref":"#/components/parameters/TaskId"}],"responses":{"200":{"description":"Task debug payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskDebugView"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/environments/{env_name}/tasks/{task_id}/diagnostics":{"get":{"summary":"Compact task diagnostics payload","parameters":[{"$ref":"#/components/parameters/EnvName"},{"$ref":"#/components/parameters/TaskId"}],"responses":{"200":{"description":"Compact task diagnostics payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskDiagnostics"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}}},"components":{"parameters":{"EnvName":{"name":"env_name","in":"path","required":true,"schema":{"type":"string"},"description":"Slugified environment name."},"TaskId":{"name":"task_id","in":"path","required":true,"schema":{"type":"string"},"description":"Task identifier."}},"responses":{"NotFound":{"description":"Requested resource was not found."}},"schemas":{"OpenApiDocument":{"type":"object","additionalProperties":true},"EventRecord":{"type":"object","properties":{"ts":{"type":"string"},"env":{"type":"string"},"type":{"type":"string"},"task_id":{"type":"string"},"node":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true},"TaskSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"workflow":{"type":"string"},"priority":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"current_node":{"type":"string"},"current_agent":{"type":"string"},"run_id":{"type":"string"},"branch":{"type":"string"},"worktree":{"type":"string"},"status_file":{"type":"string"},"runtime_archive":{"type":"string"},"last_error":{"type":"string"},"finalized_at":{"type":"string"},"final_commit":{"type":"string"},"merged_to":{"type":"string"},"merge_commit":{"type":"string"},"request":{"type":"string"},"path":{"type":"string"},"filename":{"type":"string"}},"additionalProperties":true},"TaskIndex":{"type":"object","properties":{"queued":{"type":"array","items":{"$ref":"#/components/schemas/TaskSummary"}},"active":{"type":"array","items":{"$ref":"#/components/schemas/TaskSummary"}},"blocked":{"type":"array","items":{"$ref":"#/components/schemas/TaskSummary"}},"done":{"type":"array","items":{"$ref":"#/components/schemas/TaskSummary"}},"failed":{"type":"array","items":{"$ref":"#/components/schemas/TaskSummary"}}},"additionalProperties":false},"RunSummary":{"type":"object","properties":{"task_id":{"type":"string"},"task_title":{"type":"string"},"run_id":{"type":"string"},"current_node":{"type":"string"},"current_agent":{"type":"string"},"current_node_started_at":{"type":"string"},"current_node_age":{"type":"string"},"attempt_count":{"type":"integer"},"quality_cycle":{"type":"integer"},"max_quality_cycles":{"type":"integer"},"repair_passes":{"type":"integer"},"max_repair_passes":{"type":"integer"},"last_failed_node":{"type":"string"},"last_failed_at":{"type":"string"},"last_failed_age":{"type":"string"},"blocker_summary":{"type":"string"},"blocker_source":{"type":"string"},"blocked_by":{"type":"string"},"preflight_status":{"type":"string"},"failure_streak_count":{"type":"integer"},"failure_streak_node":{"type":"string"},"failure_fingerprint":{"type":"string"},"status_phase":{"type":"string"},"status_result":{"type":"string"},"status_updated_at":{"type":"string"},"status_updated_age":{"type":"string"},"runtime_dir":{"type":"string"}},"additionalProperties":true},"EnvironmentSnapshot":{"type":"object","properties":{"name":{"type":"string"},"display_name":{"type":"string"},"repo_path":{"type":"string"},"workflow":{"type":"string"},"template":{"type":"string"},"paused":{"type":"boolean"},"network_access":{"type":"boolean"},"max_quality_cycles":{"type":"integer"},"max_repair_passes":{"type":"integer"},"queue_counts":{"type":"object","additionalProperties":{"type":"integer"}},"active_task":{"$ref":"#/components/schemas/TaskSummary"},"latest_event":{"$ref":"#/components/schemas/EventRecord"},"heartbeat":{"type":"object","additionalProperties":true},"container_name":{"type":"string"},"compose_project":{"type":"string"},"compose_path":{"type":"string"},"runtime_dir":{"type":"string"},"auth":{"type":"object","additionalProperties":true},"capabilities":{"type":"object","additionalProperties":true},"runtime_summary":{"$ref":"#/components/schemas/RunSummary"}},"additionalProperties":true},"DashboardPayload":{"type":"object","properties":{"environments":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentSnapshot"}},"events":{"type":"array","items":{"$ref":"#/components/schemas/EventRecord"}},"questions_pending":{"type":"integer"},"questions_answered":{"type":"integer"},"workflows":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false},"QuestionsPayload":{"type":"object","properties":{"questions":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","additionalProperties":true}}},"question_rounds":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","additionalProperties":true}}},"env_index":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EnvironmentSnapshot"}}},"additionalProperties":false},"ActiveRunView":{"type":"object","properties":{"has_active_run":{"type":"boolean"},"task":{"$ref":"#/components/schemas/TaskSummary"},"current_node":{"type":"string"},"graph_svg":{"type":"string"},"prompt":{"type":"string"},"output":{"type":"string"},"log":{"type":"string"},"status":{"type":"object","additionalProperties":true},"run_state":{"type":"object","additionalProperties":true},"summary":{"$ref":"#/components/schemas/RunSummary"}},"additionalProperties":true},"EnvironmentDiagnostics":{"type":"object","properties":{"environment":{"type":"object","additionalProperties":true},"snapshot":{"$ref":"#/components/schemas/EnvironmentSnapshot"},"docker_status":{"type":"object","additionalProperties":true},"auth":{"type":"object","additionalProperties":true},"runtime_summary":{"$ref":"#/components/schemas/RunSummary"},"tasks":{"type":"object","additionalProperties":{"type":"integer"}},"question_rounds":{"type":"object","additionalProperties":{"type":"integer"}},"events":{"type":"array","items":{"$ref":"#/components/schemas/EventRecord"}},"container_logs":{"type":"string"},"debug_bundle_limits":{"type":"object","additionalProperties":{"type":"integer"}}},"additionalProperties":true},"TaskDebugView":{"type":"object","additionalProperties":true},"TaskDiagnostics":{"type":"object","properties":{"task":{"$ref":"#/components/schemas/TaskSummary"},"task_path":{"type":"string"},"worktree":{"type":"string"},"runtime":{"type":"string"},"status":{"type":"object","additionalProperties":true},"run_state":{"type":"object","additionalProperties":true},"runtime_health":{"type":"object","additionalProperties":true},"bundle_manifest":{"type":"object","additionalProperties":true},"attempt_count":{"type":"integer"},"recent_attempts":{"type":"array","items":{"type":"object","additionalProperties":true}},"recent_logs":{"type":"array","items":{"type":"object","additionalProperties":true}},"recent_results":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":true}}}}