{"name":"python-code-validator","version":"1.29.0","description":"Proves AI-generated Python does what you asked: syntax, lint, types, an AST security policy and a credential scan, then runs the code in a throwaway container against the examples you state and repairs it until they pass — returning a fix only when running it satisfies every one of them.","api":"v1","tags":["code-validation","intent-check","security-scan","code-repair","sandboxed-execution","a2a"],"modes":["static","repair","execute"],"languages":["python"],"price_hint":"0.0002 xDAI per call","input_schema":{"$defs":{"Language":{"description":"Source languages a validator can accept.","enum":["python","javascript","typescript","html","sql","solidity","other"],"title":"Language","type":"string"},"Mode":{"description":"How much work the service is allowed to do.\n\n``static``\n    Never executes the submitted code. Parsing, linting and security\n    scanning only. This is the default and the only mode that is safe to\n    expose without a container sandbox.\n``repair``\n    Static mode plus deterministic auto-fixes and refactors.\n``execute``\n    Repair plus running the code inside a sandbox to prove it works.","enum":["static","repair","execute"],"title":"Mode","type":"string"},"Options":{"description":"Per-request tuning knobs.","properties":{"timeout_s":{"anyOf":[{"exclusiveMinimum":0,"maximum":60,"type":"number"},{"type":"null"}],"default":null,"description":"Wall-clock budget for running the code. Omitted means the service's own default (MSVC_DEFAULT_TIMEOUT_S). Only execute mode runs anything; a deployment may cap this below the 60 the schema allows and refuses a larger value.","title":"Timeout S"},"max_iterations":{"default":3,"description":"How many fix/verify rounds the repair loop may take. Ignored in static mode, which changes nothing.","maximum":10,"minimum":1,"title":"Max Iterations","type":"integer"},"transpile_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Target language for a transpiled copy, e.g. 'javascript'. The copy is made from the code as it ends up, so in repair and execute mode it translates the repaired source rather than the submitted one.","title":"Transpile To"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Exact stdout the code must produce in execute mode. A mismatch is an 'expected-output' diagnostic and makes the response invalid, even when the program exits cleanly. Ignored in the other modes, which produce no output.","title":"Expected Output"},"examples":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"What the code is supposed to do, as doctest lines ('>>> f(2)' on one line, '4' on the next) or as plain assertions ('assert f(2) == 4'). In execute mode they are run in the sandbox: an example that does not hold is a 'python:example-mismatch' error and makes the response invalid, and repair searches for a single-token change that makes every one of them pass. This is the only way the service can tell code that runs from code that is right, so send it whenever you know what you asked for. Examples already written in the code ('>>> ' in any string) are used the same way without this option. Ignored in the other modes, which run nothing.","title":"Examples"},"optimize":{"default":false,"description":"Run constant folding / dead-code elimination. Off by default: the optimiser rewrites the program, and a rewrite is only returned when it provably keeps every effectful construct.","title":"Optimize","type":"boolean"}},"title":"Options","type":"object"}},"description":"A validation job submitted by an agent.","properties":{"code":{"description":"The source to check, as a whole file where possible: diagnostics carry the line and column of the text you send, and a fragment hides the imports and definitions the type check needs. A deployment may accept fewer bytes than the 200000 here.","maxLength":200000,"minLength":1,"title":"Code","type":"string"},"language":{"$ref":"#/$defs/Language","default":"python","description":"The language of the code. A service that does not handle it refuses the request rather than guessing; the enum is shared across services, so it lists more than any one of them accepts."},"mode":{"$ref":"#/$defs/Mode","default":"static","description":"How much work to do, cheapest first. Each mode contains the one before it, so repair also reports everything static found. Only execute runs the code, and only repair and execute can bill or change the source."},"options":{"$ref":"#/$defs/Options","description":"Tuning knobs. Most of them only take effect in the mode that does the corresponding work; see each field."}},"required":["code"],"title":"ValidateRequest","type":"object"},"output_schema":{"$defs":{"AIReport":{"description":"What the optional AI refinement backend contributed.\n\nAbsent from a response when no backend is configured. Present but with\n``consulted=False`` when the deterministic fixers settled the code on their\nown, so a caller can tell \"the model was never needed\" apart from \"the\nmodel was asked and came back empty-handed\".","properties":{"consulted":{"default":false,"title":"Consulted","type":"boolean"},"backend":{"default":"","title":"Backend","type":"string"},"calls":{"default":0,"title":"Calls","type":"integer"},"duration_ms":{"default":0,"title":"Duration Ms","type":"integer"},"outcome":{"default":"not-consulted","title":"Outcome","type":"string"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Detail"}},"title":"AIReport","type":"object"},"Diagnostic":{"description":"A correctness problem found in the code.","properties":{"severity":{"$ref":"#/$defs/Severity"},"rule":{"title":"Rule","type":"string"},"message":{"title":"Message","type":"string"},"line":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Line"},"column":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Column"}},"required":["severity","rule","message"],"title":"Diagnostic","type":"object"},"Meta":{"description":"Provenance of a response, so results stay reproducible.","properties":{"service":{"title":"Service","type":"string"},"version":{"title":"Version","type":"string"},"api":{"default":"v1","title":"Api","type":"string"},"engine":{"additionalProperties":{"type":"string"},"title":"Engine","type":"object"},"ai":{"anyOf":[{"$ref":"#/$defs/AIReport"},{"type":"null"}],"default":null},"mode":{"$ref":"#/$defs/Mode","default":"static"},"duration_ms":{"default":0,"title":"Duration Ms","type":"integer"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Request Id"}},"required":["service","version"],"title":"Meta","type":"object"},"Mode":{"description":"How much work the service is allowed to do.\n\n``static``\n    Never executes the submitted code. Parsing, linting and security\n    scanning only. This is the default and the only mode that is safe to\n    expose without a container sandbox.\n``repair``\n    Static mode plus deterministic auto-fixes and refactors.\n``execute``\n    Repair plus running the code inside a sandbox to prove it works.","enum":["static","repair","execute"],"title":"Mode","type":"string"},"RuntimeReport":{"description":"Outcome of executing the code in a sandbox.","properties":{"ran":{"default":false,"title":"Ran","type":"boolean"},"returncode":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Returncode"},"stdout":{"default":"","title":"Stdout","type":"string"},"stderr":{"default":"","title":"Stderr","type":"string"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Duration Ms"},"timed_out":{"default":false,"title":"Timed Out","type":"boolean"},"sandbox":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Sandbox"}},"title":"RuntimeReport","type":"object"},"SecurityFinding":{"description":"A security problem reported by one of the scanners.","properties":{"tool":{"title":"Tool","type":"string"},"id":{"title":"Id","type":"string"},"severity":{"$ref":"#/$defs/Severity"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Confidence"},"message":{"title":"Message","type":"string"},"line":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Line"},"cwe":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Cwe"}},"required":["tool","id","severity","message"],"title":"SecurityFinding","type":"object"},"Severity":{"description":"Severity of a single finding.","enum":["error","warning","info"],"title":"Severity","type":"string"}},"description":"The result an agent gets back and pays for.","properties":{"valid":{"title":"Valid","type":"boolean"},"score":{"maximum":1.0,"minimum":0.0,"title":"Score","type":"number"},"diagnostics":{"items":{"$ref":"#/$defs/Diagnostic"},"title":"Diagnostics","type":"array"},"security":{"items":{"$ref":"#/$defs/SecurityFinding"},"title":"Security","type":"array"},"fixes":{"items":{"type":"string"},"title":"Fixes","type":"array"},"fixed_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Fixed Code"},"transpiled":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Transpiled"},"runtime":{"$ref":"#/$defs/RuntimeReport"},"meta":{"$ref":"#/$defs/Meta"}},"required":["valid","score","meta"],"title":"ValidateResponse","type":"object"}}