{"$id":"https://ptc-runner.dev/schemas/ptc-application-manifest.schema.json","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"description":"Model-authorable application selection. Runtime loading remains authoritative.","properties":{"$schema":{"maxLength":2048,"minLength":1,"type":"string"},"contracts":{"additionalProperties":false,"properties":{"input_schema":{"additionalProperties":false,"properties":{"path":{"maxLength":1024,"minLength":1,"pattern":"^[a-z0-9][a-z0-9._-]{0,127}(?:/[a-z0-9][a-z0-9._-]{0,127}){0,15}$(?![\\s\\S])","type":"string"}},"required":["path"],"type":"object"},"result_schema":{"additionalProperties":false,"properties":{"path":{"maxLength":1024,"minLength":1,"pattern":"^[a-z0-9][a-z0-9._-]{0,127}(?:/[a-z0-9][a-z0-9._-]{0,127}){0,15}$(?![\\s\\S])","type":"string"}},"required":["path"],"type":"object"}},"type":"object"},"events":{"additionalProperties":false,"properties":{"policy":{"default":"normal","enum":["normal","private"]},"run_id":{"maxLength":256,"minLength":1,"type":"string"},"trace_id":{"maxLength":256,"minLength":1,"type":"string"}},"type":"object"},"input":{"oneOf":[{"additionalProperties":false,"properties":{"value":{"type":"object"}},"required":["value"],"type":"object"},{"additionalProperties":false,"properties":{"path":{"maxLength":1024,"minLength":1,"pattern":"^[a-z0-9][a-z0-9._-]{0,127}(?:/[a-z0-9][a-z0-9._-]{0,127}){0,15}$(?![\\s\\S])","type":"string"}},"required":["path"],"type":"object"}]},"labels":{"additionalProperties":false,"properties":{"model":{"pattern":"^(?:[A-Za-z0-9][A-Za-z0-9._:/@+-]{0,255}|sha256:[0-9a-f]{64})$","type":"string"},"name":{"pattern":"^(?:[A-Za-z0-9][A-Za-z0-9._:/@+-]{0,255}|sha256:[0-9a-f]{64})$","type":"string"},"provider":{"pattern":"^(?:[A-Za-z0-9][A-Za-z0-9._:/@+-]{0,255}|sha256:[0-9a-f]{64})$","type":"string"},"tags":{"additionalProperties":false,"properties":{"environment":{"enum":["development","test","staging","production"]},"mode":{"enum":["agent","deterministic","direct","wrapper","repl"]},"stage":{"enum":["started","planning","executing","validating","completed","failed"]},"suite":{"enum":["unit","integration","e2e","conformance","privacy"]}},"type":"object"}},"type":"object"},"limits":{"additionalProperties":false,"properties":{"capability_argument_bytes":{"maximum":2592000000,"minimum":1,"type":"integer"},"capability_result_bytes":{"maximum":2592000000,"minimum":1,"type":"integer"},"entry_source_bytes":{"maximum":2592000000,"minimum":1,"type":"integer"},"evaluation_admission_timeout_ms":{"maximum":2592000000,"minimum":1,"type":"integer"},"evaluation_heap_words":{"maximum":2592000000,"minimum":1,"type":"integer"},"evaluation_history_bytes":{"maximum":2592000000,"minimum":1,"type":"integer"},"evaluation_memory_bytes":{"maximum":2592000000,"minimum":1,"type":"integer"},"evaluation_timeout_ms":{"maximum":2592000000,"minimum":1,"type":"integer"},"event_payload_bytes":{"maximum":2592000000,"minimum":1,"type":"integer"},"live_provider_tasks":{"maximum":2592000000,"minimum":1,"type":"integer"},"mission_capability_calls":{"maximum":2592000000,"minimum":1,"type":"integer"},"mission_capability_calls_per_name":{"maximum":2592000000,"minimum":1,"type":"integer"},"normal_event_bytes":{"maximum":2592000000,"minimum":1,"type":"integer"},"normal_event_count":{"maximum":2592000000,"minimum":1,"type":"integer"},"parallel_timeout_ms":{"maximum":2592000000,"minimum":1,"type":"integer"},"protocol_errors":{"maximum":2592000000,"minimum":1,"type":"integer"},"provider_heap_words":{"maximum":2592000000,"minimum":1,"type":"integer"},"run_duration_ms":{"maximum":2592000000,"minimum":1,"type":"integer"},"subordinate_evaluations":{"maximum":2592000000,"minimum":1,"type":"integer"},"subordinate_source_bytes":{"maximum":2592000000,"minimum":1,"type":"integer"},"subordinate_source_checks":{"maximum":2592000000,"minimum":1,"type":"integer"},"terminal_result_bytes":{"maximum":2592000000,"minimum":1,"type":"integer"},"workflow_capability_calls":{"maximum":2592000000,"minimum":1,"type":"integer"},"workflow_capability_calls_per_name":{"maximum":2592000000,"minimum":1,"type":"integer"},"workflow_heap_words":{"maximum":2592000000,"minimum":1,"type":"integer"},"workflow_timeout_ms":{"maximum":2592000000,"minimum":1,"type":"integer"}},"type":"object"},"missions":{"additionalProperties":{"additionalProperties":false,"properties":{"components":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"library":{"pattern":"^[a-z][a-z0-9._-]{0,127}$","type":"string"}},"required":["library"],"type":"object"},{"additionalProperties":false,"properties":{"dependencies":{"items":{"pattern":"^[a-z][a-z0-9._-]{0,127}$","type":"string"},"maxItems":128,"type":"array","uniqueItems":true},"id":{"pattern":"^[a-z][a-z0-9._-]{0,127}$","type":"string"},"path":{"maxLength":1024,"minLength":1,"pattern":"^[a-z0-9][a-z0-9._-]{0,127}(?:/[a-z0-9][a-z0-9._-]{0,127}){0,15}$(?![\\s\\S])","type":"string"}},"required":["id","path"],"type":"object"}]},"maxItems":128,"type":"array"},"data":{"type":"object"},"providers":{"items":{"pattern":"^[a-z][a-z0-9._-]{0,127}$","type":"string"},"maxItems":32,"type":"array","uniqueItems":true}},"type":"object"},"maxProperties":16,"propertyNames":{"pattern":"^[a-z][a-z0-9._-]{0,127}$"},"type":"object"},"providers":{"additionalProperties":false,"properties":{"mission":{"items":{"additionalProperties":false,"properties":{"config":{"type":"object"},"name":{"pattern":"^[a-z][a-z0-9._-]{0,127}$","type":"string"}},"required":["name"],"type":"object"},"maxItems":32,"type":"array"},"workflow":{"items":{"additionalProperties":false,"properties":{"config":{"type":"object"},"name":{"pattern":"^[a-z][a-z0-9._-]{0,127}$","type":"string"}},"required":["name"],"type":"object"},"maxItems":32,"type":"array"}},"type":"object"},"version":{"const":1},"workflow":{"additionalProperties":false,"properties":{"components":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"library":{"pattern":"^[a-z][a-z0-9._-]{0,127}$","type":"string"}},"required":["library"],"type":"object"},{"additionalProperties":false,"properties":{"dependencies":{"items":{"pattern":"^[a-z][a-z0-9._-]{0,127}$","type":"string"},"maxItems":128,"type":"array","uniqueItems":true},"id":{"pattern":"^[a-z][a-z0-9._-]{0,127}$","type":"string"},"path":{"maxLength":1024,"minLength":1,"pattern":"^[a-z0-9][a-z0-9._-]{0,127}(?:/[a-z0-9][a-z0-9._-]{0,127}){0,15}$(?![\\s\\S])","type":"string"}},"required":["id","path"],"type":"object"}]},"maxItems":128,"type":"array"},"entry":{"pattern":"^[a-z][a-z0-9._-]{0,127}/[a-z][a-z0-9._?!-]{0,127}$","type":"string"}},"required":["components","entry"],"type":"object"}},"required":["version","workflow","input"],"title":"PtcRunner application manifest","type":"object"}
