{"openapi":"3.1.0","info":{"title":"Agent Approval Unit Builder","description":"Converts AI-generated findings, patches, payment requests, deployment proposals, memory writes, tool execution requests, or decision-support outputs into minimal human decision contracts (Approval Units). Approval Unit = Human Decision Contract. v0.1 is build-only: no approval execution, blockchain transactions, or payments.","version":"0.1.0"},"paths":{"/api/approval-unit/build":{"post":{"summary":"Build Approval Unit","description":"Build a minimal Approval Unit (Human Decision Contract) from an AI-generated output.\n\nApproval Unit = Human Decision Contract.\nDefines what the human is approving, what becomes allowed after approval,\nwhat remains blocked, and what human action is suggested next.\n\nv0.1: build-only. No approval execution, blockchain, or payments.\napproval_question is generated by rule-based templates (not LLM).","operationId":"build_approval_unit_api_approval_unit_build_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalUnitBuildRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalUnitBuildResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/remediation/verify":{"post":{"summary":"Verify Remediation","description":"Verify an AI-generated remediation candidate before routing to human review or Approval Unit Builder.\n\nv0.1: rule-based verification only.\nNo patch application, deployment, approval execution, payment execution,\nmemory write, tool execution, or blockchain transaction.","operationId":"verify_remediation_api_remediation_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemediationVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemediationVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payment-evidence/check":{"post":{"summary":"Check Payment Evidence","description":"Verify that an AI-agent payment produced the expected service response and audit evidence.\n\nv0.1: rule-based verification only.\nDoes not execute payments, act as a facilitator, make tax or legal decisions,\nguarantee output correctness, or store confidential content.\nStateless — no database writes.","operationId":"check_payment_evidence_api_payment_evidence_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentEvidenceCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentEvidenceCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ApprovalUnitBuildRequest":{"properties":{"source_type":{"type":"string","title":"Source Type"},"source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Id"},"approval_unit_type":{"type":"string","title":"Approval Unit Type"},"finding_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finding Id"},"claim_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Id"},"patch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patch Id"},"payment_request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Request Id"},"deployment_request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deployment Request Id"},"memory_write_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Memory Write Id"},"tool_call_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Call Id"},"review_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Task Id"},"title":{"type":"string","title":"Title"},"summary":{"type":"string","title":"Summary"},"risk_level":{"type":"string","title":"Risk Level"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"},"evidence_ids":{"items":{"type":"string"},"type":"array","title":"Evidence Ids","default":[]},"source_ids":{"items":{"type":"string"},"type":"array","title":"Source Ids","default":[]},"test_results":{"items":{"type":"string"},"type":"array","title":"Test Results","default":[]},"regression_risk":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regression Risk"},"rollback_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rollback Available"},"cost_impact":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cost Impact"},"blocked_actions_until_approval":{"items":{"type":"string"},"type":"array","title":"Blocked Actions Until Approval","default":[]},"allowed_human_actions":{"items":{"type":"string"},"type":"array","title":"Allowed Human Actions","default":["approve","reject","request_rework","request_more_evidence","escalate"]},"suggested_human_actions":{"items":{"type":"string"},"type":"array","title":"Suggested Human Actions","default":[]},"recommended_decision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommended Decision"},"reviewer_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer Role"},"approver_role":{"type":"string","title":"Approver Role","default":"human_approver"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},"type":"object","required":["source_type","approval_unit_type","title","summary","risk_level"],"title":"ApprovalUnitBuildRequest"},"ApprovalUnitBuildResponse":{"properties":{"approval_unit_id":{"type":"string","title":"Approval Unit Id"},"approval_unit_hash":{"type":"string","title":"Approval Unit Hash"},"approval_unit_type":{"type":"string","title":"Approval Unit Type"},"title":{"type":"string","title":"Title"},"approval_question":{"type":"string","title":"Approval Question"},"decision_required":{"type":"string","title":"Decision Required"},"decision_options":{"items":{"type":"string"},"type":"array","title":"Decision Options"},"approver_role":{"type":"string","title":"Approver Role"},"priority":{"type":"string","title":"Priority"},"risk_level":{"type":"string","title":"Risk Level"},"summary":{"type":"string","title":"Summary"},"evidence_summary":{"type":"string","title":"Evidence Summary"},"required_evidence":{"items":{"type":"string"},"type":"array","title":"Required Evidence"},"required_checks_before_approval":{"items":{"type":"string"},"type":"array","title":"Required Checks Before Approval"},"test_summary":{"type":"string","title":"Test Summary"},"regression_risk":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regression Risk"},"rollback_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rollback Available"},"suggested_human_actions":{"items":{"type":"string"},"type":"array","title":"Suggested Human Actions"},"recommended_human_action":{"type":"string","title":"Recommended Human Action"},"human_action_reason":{"type":"string","title":"Human Action Reason"},"allowed_human_actions":{"items":{"type":"string"},"type":"array","title":"Allowed Human Actions"},"blocked_actions_until_approval":{"items":{"type":"string"},"type":"array","title":"Blocked Actions Until Approval"},"if_approved":{"additionalProperties":true,"type":"object","title":"If Approved"},"if_rejected":{"additionalProperties":true,"type":"object","title":"If Rejected"},"if_request_rework":{"additionalProperties":true,"type":"object","title":"If Request Rework"},"if_request_more_evidence":{"additionalProperties":true,"type":"object","title":"If Request More Evidence"},"if_escalated":{"additionalProperties":true,"type":"object","title":"If Escalated"},"post_decision_route":{"type":"string","title":"Post Decision Route"},"decision_effect_summary":{"type":"string","title":"Decision Effect Summary"},"audit_required":{"type":"boolean","title":"Audit Required"},"blockchain_anchor_ready":{"type":"boolean","title":"Blockchain Anchor Ready"},"chain_anchor_status":{"type":"string","title":"Chain Anchor Status"},"chain_tx_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain Tx Hash"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["approval_unit_id","approval_unit_hash","approval_unit_type","title","approval_question","decision_required","decision_options","approver_role","priority","risk_level","summary","evidence_summary","required_evidence","required_checks_before_approval","test_summary","regression_risk","rollback_available","suggested_human_actions","recommended_human_action","human_action_reason","allowed_human_actions","blocked_actions_until_approval","if_approved","if_rejected","if_request_rework","if_request_more_evidence","if_escalated","post_decision_route","decision_effect_summary","audit_required","blockchain_anchor_ready","chain_anchor_status","chain_tx_hash","request_id","task_id","created_at"],"title":"ApprovalUnitBuildResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PaymentEvidenceCheckRequest":{"properties":{"payment_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Reference"},"payment_asset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Asset"},"amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Amount"},"paid_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paid Endpoint"},"expected_service_response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Expected Service Response"},"actual_service_response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Actual Service Response"},"delivery_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Status"},"evidence_ids":{"items":{"type":"string"},"type":"array","title":"Evidence Ids","default":[]},"transaction_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Reference"},"service_response_received":{"type":"boolean","title":"Service Response Received","default":false},"payer_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payer Agent Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"}},"type":"object","title":"PaymentEvidenceCheckRequest"},"PaymentEvidenceCheckResponse":{"properties":{"payment_evidence_status":{"type":"string","title":"Payment Evidence Status"},"service_response_received":{"type":"boolean","title":"Service Response Received"},"payment_response_matched":{"type":"boolean","title":"Payment Response Matched"},"missing_items":{"items":{"type":"string"},"type":"array","title":"Missing Items"},"mismatch_items":{"items":{"type":"string"},"type":"array","title":"Mismatch Items"},"audit_ready":{"type":"boolean","title":"Audit Ready"},"requires_human_review":{"type":"boolean","title":"Requires Human Review"},"recommended_next_step":{"type":"string","title":"Recommended Next Step"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["payment_evidence_status","service_response_received","payment_response_matched","missing_items","mismatch_items","audit_ready","requires_human_review","recommended_next_step","request_id","task_id","created_at"],"title":"PaymentEvidenceCheckResponse"},"RemediationVerifyRequest":{"properties":{"remediation_id":{"type":"string","title":"Remediation Id"},"finding_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finding Id"},"source_type":{"type":"string","title":"Source Type"},"source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Id"},"remediation_type":{"type":"string","title":"Remediation Type"},"title":{"type":"string","title":"Title"},"finding_summary":{"type":"string","title":"Finding Summary"},"remediation_summary":{"type":"string","title":"Remediation Summary"},"patch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patch Id"},"patch_diff_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patch Diff Id"},"configuration_change_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Configuration Change Id"},"dependency_update_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dependency Update Id"},"affected_files":{"items":{"type":"string"},"type":"array","title":"Affected Files","default":[]},"affected_services":{"items":{"type":"string"},"type":"array","title":"Affected Services","default":[]},"affected_environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affected Environment"},"severity":{"type":"string","title":"Severity"},"risk_level":{"type":"string","title":"Risk Level"},"exploitability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exploitability"},"evidence_ids":{"items":{"type":"string"},"type":"array","title":"Evidence Ids","default":[]},"source_ids":{"items":{"type":"string"},"type":"array","title":"Source Ids","default":[]},"test_results":{"items":{"type":"string"},"type":"array","title":"Test Results","default":[]},"security_retest_results":{"items":{"type":"string"},"type":"array","title":"Security Retest Results","default":[]},"static_analysis_results":{"items":{"type":"string"},"type":"array","title":"Static Analysis Results","default":[]},"dynamic_analysis_results":{"items":{"type":"string"},"type":"array","title":"Dynamic Analysis Results","default":[]},"regression_test_results":{"items":{"type":"string"},"type":"array","title":"Regression Test Results","default":[]},"rollback_plan_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rollback Plan Id"},"rollback_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rollback Available"},"blast_radius":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blast Radius"},"production_impact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Production Impact"},"staging_tested":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Staging Tested"},"production_deploy_requested":{"type":"boolean","title":"Production Deploy Requested","default":false},"generated_by_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated By Agent Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"}},"type":"object","required":["remediation_id","source_type","remediation_type","title","finding_summary","remediation_summary","severity","risk_level"],"title":"RemediationVerifyRequest"},"RemediationVerifyResponse":{"properties":{"gate_name":{"type":"string","title":"Gate Name"},"remediation_id":{"type":"string","title":"Remediation Id"},"finding_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finding Id"},"remediation_type":{"type":"string","title":"Remediation Type"},"decision":{"type":"string","title":"Decision"},"verification_status":{"type":"string","title":"Verification Status"},"readiness_level":{"type":"string","title":"Readiness Level"},"risk_level":{"type":"string","title":"Risk Level"},"severity":{"type":"string","title":"Severity"},"evidence_status":{"type":"string","title":"Evidence Status"},"test_status":{"type":"string","title":"Test Status"},"security_retest_status":{"type":"string","title":"Security Retest Status"},"regression_status":{"type":"string","title":"Regression Status"},"rollback_status":{"type":"string","title":"Rollback Status"},"blast_radius":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blast Radius"},"production_risk":{"type":"string","title":"Production Risk"},"allowed_next_steps":{"items":{"type":"string"},"type":"array","title":"Allowed Next Steps"},"blocked_next_steps":{"items":{"type":"string"},"type":"array","title":"Blocked Next Steps"},"recommended_route":{"type":"string","title":"Recommended Route"},"recommended_human_action":{"type":"string","title":"Recommended Human Action"},"human_action_reason":{"type":"string","title":"Human Action Reason"},"required_additional_evidence":{"items":{"type":"string"},"type":"array","title":"Required Additional Evidence"},"required_rework_items":{"items":{"type":"string"},"type":"array","title":"Required Rework Items"},"approval_unit_ready":{"type":"boolean","title":"Approval Unit Ready"},"approval_unit_type_suggestion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Unit Type Suggestion"},"blocked_actions_until_approval":{"items":{"type":"string"},"type":"array","title":"Blocked Actions Until Approval"},"audit_required":{"type":"boolean","title":"Audit Required"},"blockchain_anchor_ready":{"type":"boolean","title":"Blockchain Anchor Ready"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["gate_name","remediation_id","finding_id","remediation_type","decision","verification_status","readiness_level","risk_level","severity","evidence_status","test_status","security_retest_status","regression_status","rollback_status","blast_radius","production_risk","allowed_next_steps","blocked_next_steps","recommended_route","recommended_human_action","human_action_reason","required_additional_evidence","required_rework_items","approval_unit_ready","approval_unit_type_suggestion","blocked_actions_until_approval","audit_required","blockchain_anchor_ready","request_id","task_id","created_at"],"title":"RemediationVerifyResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}