{"openapi":"3.0.3","info":{"title":"Tada","description":"Tada’s own API: the one the dashboard, the recorder and Rivet all speak. Every path here is also served under /beacon, an exact mirror kept for recorders published before the rename; it is left out of this document so each operation appears once. Paths that have been superseded are left out too: they are still served for recorders already published, and lib/api-docs.ts names what replaced each one.","version":"1"},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"A Supabase session token, or a personal key (tada_sk_…)."}},"schemas":{}},"paths":{"/":{"get":{"tags":["Internal"],"responses":{"200":{"description":"Default Response"}}}},"/health":{"get":{"tags":["Internal"],"responses":{"200":{"description":"Default Response"}}}},"/auth/welcome":{"post":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}}},"/auth/email-status":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":320,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["email"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/oauth/authorize":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"challenge":{"type":"string","pattern":"^[A-Za-z0-9\\-_]{43}$"},"redirect_uri":{"type":"string","maxLength":200,"format":"uri"},"state":{"type":"string","minLength":8,"maxLength":256}},"required":["challenge","redirect_uri"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/oauth/token":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","pattern":"^[a-f0-9]{16,128}$"},"code_verifier":{"type":"string","pattern":"^[A-Za-z0-9\\-._~]{43,128}$"}},"required":["code","code_verifier"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/auth/cli/authorize":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"challenge":{"type":"string","pattern":"^[A-Za-z0-9\\-_]{43}$"},"redirect_uri":{"type":"string","maxLength":200,"format":"uri"},"state":{"type":"string","minLength":8,"maxLength":256}},"required":["challenge","redirect_uri"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/auth/cli/token":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","pattern":"^[a-f0-9]{16,128}$"},"code_verifier":{"type":"string","pattern":"^[A-Za-z0-9\\-._~]{43,128}$"}},"required":["code","code_verifier"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/me":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"nullable":true,"type":"string","maxLength":200},"seen_welcome":{"type":"boolean"},"seen_welcome_screen":{"type":"boolean"},"heard_from":{"nullable":true,"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","minLength":3,"maxLength":320}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"},"user_id":{"type":"string"},"workspace_ids":{"type":"array","items":{"type":"string"}},"steps":{"type":"array","items":{"type":"object","properties":{"step":{"type":"string","enum":["schedules","billing","storage","voice","database","auth"]},"status":{"type":"string","enum":["done","skipped","failed"]},"detail":{"type":"string"},"error":{"type":"string"},"tables":{"type":"array","items":{"type":"string"}}},"required":["step","status"],"additionalProperties":false}}},"required":["deleted","user_id","workspace_ids","steps"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"},"user_id":{"type":"string"},"workspace_ids":{"type":"array","items":{"type":"string"}},"steps":{"type":"array","items":{"type":"object","properties":{"step":{"type":"string","enum":["schedules","billing","storage","voice","database","auth"]},"status":{"type":"string","enum":["done","skipped","failed"]},"detail":{"type":"string"},"error":{"type":"string"},"tables":{"type":"array","items":{"type":"string"}}},"required":["step","status"],"additionalProperties":false}}},"required":["deleted","user_id","workspace_ids","steps"],"additionalProperties":false}}}}}}},"/v1/videos":{"post":{"tags":["Demos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{"type":"string","minLength":1,"maxLength":200},"narrationMode":{"default":"captions","type":"string","enum":["captions","voice"]},"durationHint":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991}},"required":["title"]}}}},"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"taskId","required":false},{"schema":{"type":"string","enum":["ready","processing"]},"in":"query","name":"status","required":false},{"schema":{"default":50,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"in":"query","name":"before","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/videos/{videoId}/complete":{"post":{"tags":["Demos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cameraPlan":{"type":"object","properties":{"width":{"type":"number","minimum":0,"exclusiveMinimum":true},"height":{"type":"number","minimum":0,"exclusiveMinimum":true},"focus":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"clicks":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}}},"required":["width","height","focus","clicks"],"additionalProperties":{}},"captureScale":{"anyOf":[{"type":"number","enum":[1]},{"type":"number","enum":[2]}]},"durationS":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991},"segments":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"i":{"type":"integer","minimum":0,"maximum":500},"text":{"type":"string","maxLength":2000},"atS":{"type":"number","minimum":0}},"required":["i","text","atS"]}},"chapters":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"journey_id":{"type":"string","minLength":1,"maxLength":64},"name":{"type":"string","maxLength":200},"at_s":{"type":"number","minimum":0,"maximum":86400},"result":{"type":"string","enum":["passed","failed","skipped"]}},"required":["journey_id","name","at_s","result"]}},"clean":{"type":"object","properties":{"framesHash":{"type":"string","pattern":"^(murmur3|sha256|md5)=[0-9a-f]{16,128}$"},"kind":{"type":"string","enum":["frames","call"]}},"required":["framesHash"]},"appOnly":{"type":"boolean"},"loop":{"type":"boolean"},"appViewport":{"type":"object","properties":{"width":{"type":"integer","minimum":0,"maximum":10000},"height":{"type":"integer","minimum":0,"maximum":10000}},"required":["width","height"]},"addresses":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"at_s":{"type":"number","minimum":0,"maximum":86400},"url":{"type":"string","maxLength":2000}},"required":["at_s","url"]}},"voice":{"type":"string","minLength":1,"maxLength":40},"voiceId":{"type":"string","minLength":1,"maxLength":128},"presentation":{"type":"object","properties":{"captionStyle":{"type":"string","minLength":1,"maxLength":40},"cursorStyle":{"type":"string","minLength":1,"maxLength":40}},"required":["captionStyle","cursorStyle"]},"measured":{"type":"object","properties":{"captionLines":{"type":"integer","minimum":0,"maximum":10000},"luma":{"type":"object","properties":{"mean":{"type":"number","minimum":0,"maximum":255},"min":{"type":"number","minimum":0,"maximum":255},"max":{"type":"number","minimum":0,"maximum":255}},"required":["mean","min","max"]},"voiceLufs":{"nullable":true,"type":"number","minimum":-200,"maximum":20},"voicePeakDb":{"nullable":true,"type":"number","minimum":-200,"maximum":40},"frameRange":{"maxItems":64,"type":"array","items":{"type":"number","minimum":0,"maximum":255}},"voice":{"type":"object","properties":{"by":{"type":"string","enum":["provider","open","both","none"]},"open":{"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"stoodInForClone":{"type":"boolean"},"providerError":{"type":"string","maxLength":300},"openError":{"type":"string","maxLength":300},"openCode":{"type":"string","maxLength":40},"openMs":{"type":"number","minimum":0,"maximum":3600000}},"required":["by"]}}},"attestation":{"type":"object","properties":{"recorderVersion":{"type":"string","minLength":1},"verified":{"type":"boolean"},"checkpoints":{"type":"array","items":{"type":"string"}}},"required":["recorderVersion","verified"]}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/telemetry":{"post":{"tags":["Internal"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"recorderVersion":{"type":"string","maxLength":20},"walls":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","enum":["goto","reload","click","fill","select","fillRequired","press","drag","upload","createInbox","awaitEmail","signUp","signal","await","waitForText","expect","scroll","hover","wait","caption","pause","resume","check","dialog","download","other","switch","synonym"]},"reason":{"type":"string","enum":["timeout","element_not_found","bad_step","action_failed"]}},"required":["action","reason"]}}},"required":["recorderVersion","walls"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/flows":{"get":{"tags":["Flows"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"repo","required":false}],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Flows"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"steps":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1,"maxLength":500},"role":{"type":"string","minLength":1,"maxLength":40},"selector":{"type":"string","minLength":1,"maxLength":500},"expect":{"type":"string","minLength":1,"maxLength":500},"judge":{"type":"string","minLength":1,"maxLength":300}},"required":["action"]}},"repositoryId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["name","steps"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/repos":{"post":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200}},"required":["name"]}}}},"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Apps"],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/screen-coverage":{"get":{"tags":["Apps"],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/screens":{"get":{"summary":"The app’s screens","tags":["Apps"],"description":"Every screen Tada knows in the app, from Learn’s walks and from reading its code: `{ screens: [{ route, title }], walkedAt, unopened }`. `unopened` names the doors a walk saw and never opened. An app Tada has not mapped yet answers with no screens rather than an error.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}":{"delete":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"preview_url":{"nullable":true,"type":"string","format":"uri"},"trigger_branch":{"type":"string","minLength":1,"maxLength":255},"on_failure":{"type":"string","enum":["block","warn"]},"file_issues":{"type":"boolean"},"app_service":{"nullable":true,"type":"object","properties":{"id":{"nullable":true,"type":"string","minLength":1,"maxLength":200},"name":{"type":"string","minLength":1,"maxLength":200}},"required":["id","name"]},"learn_at":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"learn_time_zone":{"type":"string","minLength":1,"maxLength":64}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations":{"get":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/connect/status":{"get":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/films/{slug}/home":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[A-Za-z0-9_-]+$"},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/videos/{videoId}":{"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Demos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200}},"required":["title"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/videos/{videoId}/duplicate":{"post":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/videos/{videoId}/film":{"put":{"tags":["Demos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"aspect":{"type":"string","enum":["16:9","9:16","1:1","4:5"]},"ground":{"type":"object","properties":{"kind":{"type":"string"}},"required":["kind"],"additionalProperties":{}},"segments":{"minItems":1,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"}},"required":["kind"],"additionalProperties":{}}},"audio":{"nullable":true,"type":"object","properties":{"src":{"type":"string","minLength":1,"maxLength":512,"pattern":"^[A-Za-z0-9][A-Za-z0-9/_-]*\\.[A-Za-z0-9]{1,5}$"},"gainDb":{"type":"number"}},"required":["src"]},"clips":{"nullable":true,"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64},"src":{"type":"string","minLength":1,"maxLength":512,"pattern":"^[A-Za-z0-9][A-Za-z0-9/_-]*\\.[A-Za-z0-9]{1,5}$"},"atS":{"type":"number","minimum":0,"maximum":86400},"inS":{"type":"number","minimum":0},"outS":{"type":"number","minimum":0},"gainDb":{"type":"number","minimum":-80,"maximum":12},"role":{"type":"string","enum":["music","sound","voice"]},"segment":{"type":"integer","minimum":0,"maximum":9007199254740991},"fromRecording":{"type":"boolean"},"label":{"type":"string","maxLength":200}},"required":["id","src","atS","role"]}},"camera":{"nullable":true,"type":"object","properties":{"auto":{"type":"boolean"},"strength":{"type":"string","enum":["gentle","normal","strong"]}}}},"required":["aspect","ground","segments"],"additionalProperties":{}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/videos/{videoId}/narration":{"post":{"tags":["Demos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"segmentIndex":{"type":"integer","minimum":0,"maximum":500},"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["segmentIndex","text"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/keys":{"post":{"tags":["Keys"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80}}}}}},"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Keys"],"responses":{"200":{"description":"Default Response"}}}},"/v1/keys/{id}":{"delete":{"tags":["Keys"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/keys/workspace":{"post":{"tags":["Keys"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80}}}}}},"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Keys"],"responses":{"200":{"description":"Default Response"}}}},"/v1/keys/workspace/{id}":{"delete":{"tags":["Keys"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/tts":{"post":{"tags":["Voice"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"voice":{"default":"brian","type":"string","enum":["bella","lily","brian","daniel","ash","alloy","ballad","verse","marin","shimmer"]},"voiceId":{"type":"string","minLength":1,"maxLength":128},"segments":{"minItems":1,"maxItems":40,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":800}},"required":["text"]}}},"required":["segments"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/tts/timed":{"post":{"tags":["Voice"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"voice":{"default":"brian","type":"string","enum":["bella","lily","brian","daniel","ash","alloy","ballad","verse","marin","shimmer"]},"voiceId":{"type":"string","minLength":1,"maxLength":128},"segments":{"minItems":1,"maxItems":40,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":800}},"required":["text"]}}},"required":["segments"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/narration/{jobId}/tts":{"post":{"tags":["Voice","The runner"],"parameters":[{"schema":{"type":"string","enum":["1"]},"in":"query","name":"timed","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"jobId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/renders/{renderId}/tts":{"post":{"tags":["Voice","The runner"],"parameters":[{"schema":{"type":"string","enum":["1"]},"in":"query","name":"preset","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"renderId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/voice/enroll":{"post":{"tags":["Voice"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sampleBase64":{"type":"string","minLength":100,"maxLength":8000000},"consent":{"type":"boolean","enum":[true]}},"required":["sampleBase64","consent"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/voice":{"delete":{"tags":["Voice"],"responses":{"200":{"description":"Default Response"}}}},"/v1/usage":{"get":{"tags":["Billing"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"object","properties":{"id":{"type":"string","enum":["free","solo","team","scale","enterprise"]},"name":{"type":"string"},"priceCents":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overageCents":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"voice":{"type":"boolean"},"retentionDays":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blocksMerge":{"type":"boolean"}},"required":["id","name","priceCents","overageCents","voice","retentionDays"],"additionalProperties":false},"meters":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["runs","repositories"]},"label":{"type":"string"},"used":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"nullable":true,"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","label","used","limit"],"additionalProperties":false}},"overage":{"nullable":true,"type":"object","properties":{"runs":{"type":"integer","minimum":1,"maximum":9007199254740991},"cents":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["runs","cents"],"additionalProperties":false},"spendCapCents":{"nullable":true,"type":"integer","minimum":0,"maximum":9007199254740991},"byRepository":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"runs":{"type":"integer","minimum":0,"maximum":9007199254740991},"owner":{"nullable":true,"type":"string"}},"required":["id","name","runs","owner"],"additionalProperties":false}},"byPerson":{"nullable":true,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"runs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","name","runs"],"additionalProperties":false}},"team":{"type":"object","properties":{"role":{"type":"string","enum":["payer","member","solo"]},"payerName":{"nullable":true,"type":"string"},"ownPlanPaid":{"type":"boolean"}},"required":["role","payerName","ownPlanPaid"],"additionalProperties":false},"resetsAt":{"type":"string"},"enforced":{"type":"boolean"}},"required":["plan","meters","overage","spendCapCents","byRepository","byPerson","team","resetsAt","enforced"],"additionalProperties":false}}}}}}},"/v1/plans":{"get":{"tags":["Billing"],"responses":{"200":{"description":"Default Response"}}}},"/v1/billing/checkout":{"post":{"tags":["Billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"planId":{"type":"string"},"interval":{"default":"month","type":"string","enum":["month","year"]}},"required":["planId"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"plan":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/billing/portal":{"post":{"tags":["Billing"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"plan":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/billing/pack":{"post":{"tags":["Billing"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"plan":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/billing/spend-cap":{"put":{"tags":["Billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"capCents":{"nullable":true,"type":"integer","minimum":0,"maximum":100000000}},"required":["capCents"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"capCents":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["capCents"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"plan":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/billing/invoices":{"get":{"tags":["Billing"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"invoices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"created":{"type":"string"},"totalCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string"},"status":{"type":"string","enum":["open","paid","void","uncollectible"]},"url":{"nullable":true,"type":"string"},"pdf":{"nullable":true,"type":"string"}},"required":["id","created","totalCents","currency","status","url","pdf"],"additionalProperties":false}}},"required":["invoices"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/github/installations/claim-visible":{"post":{"tags":["Connections"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1},"state":{"type":"string","minLength":1}},"required":["code","state"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/github/installations/claim":{"post":{"tags":["Connections"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"installationId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991},"state":{"type":"string","minLength":1}},"required":["installationId","state"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/features":{"get":{"tags":["Features"],"parameters":[{"schema":{"default":"listed","type":"string","enum":["listed","all"]},"in":"query","name":"known","required":false,"description":"`all` adds what Tada learned walking the app, marked listed: false."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/areas":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/features":{"get":{"tags":["Features"],"responses":{"200":{"description":"Default Response"}}}},"/v1/drafts":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/running-checks":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/drafts/{runId}":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Other"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/demos":{"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"in":"query","name":"before","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/flaky-tests":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/findings":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/accept":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["reason"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/findings/noticed":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/findings/{findingId}/decide":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["kept","not_useful"]}},"required":["decision"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"findingId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/features/{featureId}":{"get":{"tags":["Features"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"featureId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/tests/{testId}/runs":{"get":{"tags":["Runs"],"parameters":[{"schema":{"default":20,"type":"integer","minimum":1,"maximum":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"testId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/features/{featureId}/verify":{"post":{"tags":["Features"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"journeys":{"minItems":1,"maxItems":24,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"steps":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1}},"required":["action"],"additionalProperties":{}}},"flowFile":{"type":"string","minLength":1,"maxLength":50000}},"required":["name","steps","flowFile"]}}},"required":["journeys"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"featureId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/journey":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flowFile":{"type":"string","minLength":1,"maxLength":50000}},"required":["flowFile"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/features/{featureId}/run":{"post":{"tags":["Features"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"featureId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/flows":{"get":{"tags":["Flows"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Flows"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"steps":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1,"maxLength":500},"role":{"type":"string","minLength":1,"maxLength":40},"selector":{"type":"string","minLength":1,"maxLength":500},"expect":{"type":"string","minLength":1,"maxLength":500},"judge":{"type":"string","minLength":1,"maxLength":300}},"required":["action"]}}},"required":["name","steps"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/flows/{flowId}":{"patch":{"tags":["Flows"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"steps":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1,"maxLength":500},"role":{"type":"string","minLength":1,"maxLength":40},"selector":{"type":"string","minLength":1,"maxLength":500},"expect":{"type":"string","minLength":1,"maxLength":500},"judge":{"type":"string","minLength":1,"maxLength":300}},"required":["action"]}},"enabled":{"type":"boolean"},"tags":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":60}},"externalRef":{"nullable":true,"type":"string","maxLength":200}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"flowId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Flows"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"flowId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/flows/{flowId}/record":{"post":{"tags":["Flows"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"nullable":true,"type":"object","properties":{"environmentId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"flowId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/flows/{flowId}/doc":{"put":{"tags":["Flows"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"doc":{}},"required":["doc"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"flowId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/doc":{"put":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"doc":{}},"required":["doc"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/resolve":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","pattern":"^[^/\\s]+\\/[^/\\s]+$"},"in":"query","name":"name","required":true,"description":"GitHub repository as owner/name, from the working tree's git remote"}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/discover-url":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/app-service":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/refresh":{"post":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/manifest":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/branches":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/environments":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"nullable":true,"type":"string","format":"uri"}},"required":["name"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/environments/{environmentId}":{"patch":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"nullable":true,"type":"string","format":"uri"},"confirmChange":{"type":"boolean"},"isDefault":{"type":"boolean"},"browserState":{"nullable":true,"type":"object","properties":{"localStorage":{"default":{},"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":4000},{"type":"number"},{"type":"boolean"}]}},"language":{"type":"object","properties":{"localStorage":{"type":"object","additionalProperties":{"type":"string","maxLength":200}},"sessionStorage":{"type":"object","additionalProperties":{"type":"string","maxLength":200}}}}}}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"environmentId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"environmentId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/schedules":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"flowId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"everyMinutes":{"type":"integer","minimum":15,"maximum":525600}},"required":["environmentId","everyMinutes"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/schedules/{scheduleId}":{"patch":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"everyMinutes":{"type":"integer","minimum":15,"maximum":525600},"enabled":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"scheduleId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"scheduleId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/accounts/{accountId}/session":{"put":{"summary":"Save the sign-in a run starts from","tags":["Runs"],"description":"Keeps a signed-in session for this test user, so a run opens the page it is about instead of signing in first. ⚠ USED ONLY ON THE ADDRESS IT WAS SAVED ON: a session from staging would look valid on a pull request’s own database and prove nothing. There is no GET: a session can be replaced or thrown away, never read back.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"origin":{"type":"string","format":"uri"},"entries":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"array","items":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"string","maxLength":20000}]},"minItems":2,"maxItems":2}}},"required":["origin","entries"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"summary":"Throw away the saved sign-in","tags":["Runs"],"description":"The next run signs in again from the sign-in form. Answers `{ ok: true }`.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/accounts/{accountId}/main":{"put":{"summary":"Make this login the main test account of its environment","tags":["Test users"],"description":"A check that names no role signs in as the main test account. Exactly one login per environment is the main one: this one, from now on. Answers `{ ok: true }`. Allowed with an API key: it reads and changes no password or sign-in.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs":{"get":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"repo","required":false},{"schema":{"type":"string","enum":["writing","queued","running","passed","blocked","errored"]},"in":"query","name":"status","required":false},{"schema":{"default":50,"type":"integer","minimum":1,"maximum":200},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"repositoryId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"targetUrl":{"type":"string","format":"uri"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200},"journey":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"feature":{"type":"string","minLength":1,"maxLength":200},"ticket":{"type":"string","minLength":1,"maxLength":60},"steps":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1}},"required":["action"],"additionalProperties":{}}},"device":{"type":"string","enum":["desktop","mobile","tablet"]},"initScript":{"type":"string","maxLength":20000},"hideSelectors":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"captureScale":{"anyOf":[{"type":"number","enum":[1]},{"type":"number","enum":[2]}]},"actAs":{"type":"string","minLength":1,"maxLength":40}},"required":["title","steps"]},"flowIds":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"scope":{"description":"Check some of an app's switched-on tests, chosen by tags, references or a feature, instead of all of them. Needs a repositoryId. A test that is switched off is never checked; a scope that covers only switched-off tests is refused and says so.","type":"object","properties":{"tags":{"description":"Check the switched-on tests carrying these tags.","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"match":{"description":"`any` (the default): a test carrying any of the tags. `all`: only tests carrying every one.","type":"string","enum":["any","all"]},"refs":{"description":"Check the switched-on tests with these references (the ids your own tool keeps on them).","minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"feature":{"description":"Deprecated: tags replace features. Check the switched-on tests of this feature, as one check of it.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"test":{"description":"A test to run: its id (`test_…`), or an inline test run once without saving it.","anyOf":[{"type":"string","minLength":1,"maxLength":60},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"steps":{"maxItems":200,"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"cast":{"maxItems":6,"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"lead":{"type":"string","maxLength":40},"agenda":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string"}},"required":["title"],"additionalProperties":{}}},"agendaLine":{"type":"string","maxLength":400},"closingLine":{"type":"string","maxLength":400},"record":{"type":"string","enum":["always","on_failure","never"]}},"required":["name"],"additionalProperties":{}}]},"intent":{"description":"What to check, in one sentence. Tada writes the test, then checks it. Needs a repositoryId.","type":"string","minLength":1,"maxLength":300},"attached":{"description":"Long text that says what to check: a pasted ticket, pasted steps, a text file. Sent with an intent; Tada writes the test from both.","minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"text":{"type":"string","minLength":1,"maxLength":50000}},"required":["name","text"]}},"presentation":{"type":"object","properties":{"layout":{"type":"string","enum":["call","landing"],"description":"'landing': a 16:10 film with the app filling the frame, for a website, plus a short muted loop. 'call' (the default): the usual film."},"captions":{"description":"With 'landing': draw the captions, small, at the bottom. Off unless true.","type":"boolean"}},"required":["layout"],"additionalProperties":false,"description":"How the passed check is filmed. Leave it out for the usual film."}}}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}":{"get":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/again":{"post":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/stop":{"post":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/asked/dismiss":{"post":{"tags":["Runs"],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":20},"in":"query","name":"point","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/parts":{"get":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/first-run":{"post":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/direct":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"repositoryId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"targetUrl":{"type":"string","format":"uri"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}}}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/usage/activity":{"get":{"tags":["Billing"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"repository_id","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/events":{"get":{"tags":["Runs"],"parameters":[{"schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"in":"query","name":"after","required":false},{"schema":{"default":500,"type":"integer","minimum":1,"maximum":500},"in":"query","name":"limit","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/live":{"get":{"tags":["Runs"],"parameters":[{"schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"in":"query","name":"after","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/claim":{"post":{"tags":["Runs","The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/runs/claim":{"post":{"tags":["Runs","The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/work/wait":{"post":{"tags":["The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/browser":{"get":{"tags":["The runner"],"parameters":[{"schema":{"type":"string","maxLength":200,"pattern":"^tron\\/(?:[A-Za-z0-9][A-Za-z0-9._-]*\\/)*[A-Za-z0-9][A-Za-z0-9._-]*\\.tar\\.(zst|gz)$"},"in":"query","name":"key","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/film/claim":{"post":{"tags":["The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/film/{jobId}":{"patch":{"tags":["The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"durationS":{"type":"number","minimum":0,"exclusiveMinimum":true}},"required":["ok"]},{"type":"object","properties":{"ok":{"type":"boolean","enum":[false]},"error":{"type":"string","minLength":1,"maxLength":2000}},"required":["ok","error"]}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"jobId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/narration/claim":{"post":{"tags":["The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/narration/{jobId}":{"patch":{"tags":["The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"r2Key":{"type":"string","minLength":1,"maxLength":500},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"heard":{"nullable":true,"type":"object","properties":{"spoken":{"nullable":true,"maxItems":500,"type":"array","items":{"nullable":true,"type":"object","properties":{"startS":{"type":"number"},"wordsAtS":{"maxItems":400,"type":"array","items":{"type":"number"}},"endS":{"type":"number"}},"required":["wordsAtS","endS"]}},"startsS":{"nullable":true,"maxItems":500,"type":"array","items":{"nullable":true,"type":"number"}}},"required":["spoken","startsS"]}},"required":["ok","r2Key","version"]},{"type":"object","properties":{"ok":{"type":"boolean","enum":[false]},"error":{"type":"string","minLength":1,"maxLength":2000}},"required":["ok","error"]}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"jobId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/narration/claim":{"post":{"tags":["The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/narration/{jobId}":{"patch":{"tags":["The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"r2Key":{"type":"string","minLength":1,"maxLength":500},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"heard":{"nullable":true,"type":"object","properties":{"spoken":{"nullable":true,"maxItems":500,"type":"array","items":{"nullable":true,"type":"object","properties":{"startS":{"type":"number"},"wordsAtS":{"maxItems":400,"type":"array","items":{"type":"number"}},"endS":{"type":"number"}},"required":["wordsAtS","endS"]}},"startsS":{"nullable":true,"maxItems":500,"type":"array","items":{"nullable":true,"type":"number"}}},"required":["spoken","startsS"]}},"required":["ok","r2Key","version"]},{"type":"object","properties":{"ok":{"type":"boolean","enum":[false]},"error":{"type":"string","minLength":1,"maxLength":2000}},"required":["ok","error"]}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"jobId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/film/claim":{"post":{"tags":["The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/film/{jobId}":{"patch":{"tags":["The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"durationS":{"type":"number","minimum":0,"exclusiveMinimum":true}},"required":["ok"]},{"type":"object","properties":{"ok":{"type":"boolean","enum":[false]},"error":{"type":"string","minLength":1,"maxLength":2000}},"required":["ok","error"]}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"jobId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/stills":{"post":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":6}},"required":["count"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"stills":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":400},"atS":{"type":"number","minimum":0},"failing":{"type":"boolean"},"path":{"type":"string","maxLength":400,"pattern":"^\\/[^?#\\s]*$"}},"required":["key","atS","failing"]}}},"required":["stills"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/clip":{"post":{"tags":["Runs","The runner"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":400},"durationS":{"type":"number","minimum":0,"maximum":120}},"required":["key","durationS"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/failure-video":{"post":{"tags":["Runs","The runner"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":400},"posterKey":{"nullable":true,"type":"string","minLength":1,"maxLength":400},"durationS":{"type":"number","minimum":0,"maximum":14400},"chapters":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"journey_id":{"type":"string","minLength":1,"maxLength":64},"name":{"type":"string","maxLength":200},"at_s":{"type":"number","minimum":0,"maximum":86400},"result":{"type":"string","enum":["passed","failed","skipped"]}},"required":["journey_id","name","at_s","result"]}}},"required":["key","posterKey","durationS"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/recording":{"post":{"tags":["Runs","The runner"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":400},"posterKey":{"nullable":true,"type":"string","minLength":1,"maxLength":400},"durationS":{"type":"number","minimum":0,"maximum":14400},"chapters":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"journey_id":{"type":"string","minLength":1,"maxLength":64},"name":{"type":"string","maxLength":200},"at_s":{"type":"number","minimum":0,"maximum":86400},"result":{"type":"string","enum":["passed","failed","skipped"]}},"required":["journey_id","name","at_s","result"]}}},"required":["key","posterKey","durationS"]},{"type":"object","properties":{"missing":{"type":"string","minLength":1,"maxLength":300}},"required":["missing"]}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}":{"patch":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["passed","blocked","errored"]},"flows_passed":{"type":"integer","minimum":0,"maximum":9007199254740991},"flows_total":{"type":"integer","minimum":0,"maximum":9007199254740991},"results":{"type":"array","items":{"type":"object","properties":{"flowId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"passed":{"type":"boolean"},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"action":{"type":"string"},"expect":{"type":"string"},"ok":{"type":"boolean"},"note":{"type":"string"},"detail":{"type":"string"},"notRun":{"type":"boolean"},"route":{"type":"string","maxLength":2000},"judged":{"type":"object","properties":{"question":{"type":"string","maxLength":2000},"answers":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"object","properties":{"verdict":{"type":"string","enum":["yes","no"]},"why":{"type":"string","maxLength":2000}},"required":["verdict","why"]}},"outcome":{"type":"string","enum":["yes","no","differed"]},"model":{"type":"string","maxLength":200}},"required":["question","answers","outcome","model"]},"role":{"type":"string","minLength":1,"maxLength":40},"replayed":{"type":"string","enum":["recording","old_way"]},"replayed_why":{"type":"string"},"appeared":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":2000}},"nearMiss":{"type":"object","properties":{"stepId":{"type":"string"},"wanted":{"type":"string"},"closest":{"maxItems":3,"type":"array","items":{"type":"string","maxLength":200}},"role":{"type":"string","maxLength":40},"landed":{"type":"string","maxLength":400}},"required":["stepId","wanted","closest"]},"requiredEmpty":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":40},"trigger":{"type":"string","maxLength":60},"options":{"minItems":1,"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"kind":{"type":"string","enum":["select","combobox"]}},"required":["label","trigger","options","kind"]}},"filled":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":40},"kind":{"type":"string","maxLength":20},"value":{"type":"string","maxLength":200}},"required":["label","kind","value"]}},"form":{"type":"object","properties":{"pressed":{"type":"string","minLength":1,"maxLength":120},"stayed":{"type":"boolean"},"went":{"type":"boolean"},"emptyBefore":{"maxItems":5,"type":"array","items":{"type":"string","maxLength":40}},"title":{"type":"string","maxLength":60},"fields":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":40},"kind":{"type":"string","maxLength":20},"required":{"type":"boolean"},"evidence":{"maxItems":3,"type":"array","items":{"type":"string","enum":["required","aria-required","star"]}},"filled":{"type":"boolean"},"invalid":{"type":"boolean"},"error":{"type":"string","maxLength":80}},"required":["label","kind","required","evidence","filled","invalid"]}},"errors":{"maxItems":3,"type":"array","items":{"type":"string","maxLength":80}}},"required":["pressed","stayed","title","fields","errors"]}},"required":["id","action","ok"]}},"skipped":{"type":"boolean"},"skipped_because":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"observed":{"type":"object","properties":{"watchedHost":{"nullable":true,"type":"string","maxLength":253},"serverErrors":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"errors":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"method":{"type":"string","minLength":1,"maxLength":16},"path":{"type":"string","maxLength":20000},"status":{"type":"integer","minimum":500,"maximum":599},"stepId":{"nullable":true,"type":"string","maxLength":200},"stepIndex":{"nullable":true,"type":"integer","minimum":0,"maximum":9007199254740991},"atS":{"nullable":true,"type":"number","minimum":0}},"required":["method","path","status","stepId","stepIndex","atS"]}}},"required":["total","errors"]},"slowest":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"method":{"type":"string","minLength":1,"maxLength":16},"path":{"type":"string","maxLength":20000},"waitMs":{"type":"number","minimum":0},"stepId":{"nullable":true,"type":"string","maxLength":200},"stepIndex":{"nullable":true,"type":"integer","minimum":0,"maximum":9007199254740991},"atS":{"nullable":true,"type":"number","minimum":0}},"required":["method","path","waitMs","stepId","stepIndex","atS"]}},"console":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"errors":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["error","exception"]},"text":{"type":"string","maxLength":4000},"times":{"type":"integer","minimum":1,"maximum":9007199254740991},"stepId":{"nullable":true,"type":"string","maxLength":200},"stepIndex":{"nullable":true,"type":"integer","minimum":0,"maximum":9007199254740991},"atS":{"nullable":true,"type":"number","minimum":0},"path":{"type":"string","maxLength":20000}},"required":["kind","text","times","stepId","stepIndex","atS"]}}},"required":["total","errors"]},"brokenLinks":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"links":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"method":{"type":"string","minLength":1,"maxLength":16},"path":{"type":"string","maxLength":20000},"status":{"type":"integer","minimum":400,"maximum":499},"times":{"type":"integer","minimum":1,"maximum":9007199254740991},"stepId":{"nullable":true,"type":"string","maxLength":200},"stepIndex":{"nullable":true,"type":"integer","minimum":0,"maximum":9007199254740991},"atS":{"nullable":true,"type":"number","minimum":0}},"required":["method","path","status","times","stepId","stepIndex","atS"]}}},"required":["total","links"]}},"required":["watchedHost","serverErrors","slowest"]},"routes":{"maxItems":1000,"type":"array","items":{"type":"string","maxLength":2000}},"language":{"type":"object","properties":{"written":{"type":"string","pattern":"^[a-z]{2,3}$"},"shown":{"type":"string","pattern":"^[a-z]{2,3}$"},"outcome":{"type":"string","enum":["switched","switch_failed","no_switch","seen_at_failure"]},"via":{"type":"string","maxLength":200}},"required":["written","shown","outcome"]}},"required":["flowId","name","passed","steps"]}},"video_id":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"error":{"nullable":true,"type":"string","maxLength":200000},"error_code":{"nullable":true,"type":"string","enum":["session_expired","no_runner","worker_died","run_timeout","flowless_claim","recording_failed","app_unreachable","app_closed","needs_person","judgment_unavailable","nothing_checked","writer_cannot","no_sign_in_here","preview_sign_in_refused","preview_needs_password"]},"judgments":{"type":"object","properties":{"judgments":{"type":"integer","minimum":0,"maximum":9007199254740991},"calls":{"type":"integer","minimum":0,"maximum":9007199254740991},"inputTokens":{"type":"number","minimum":0},"outputTokens":{"type":"number","minimum":0}},"required":["judgments","calls","inputTokens","outputTokens"]},"writing":{"type":"object","properties":{"usd":{"type":"number","minimum":0},"turns":{"type":"integer","minimum":0,"maximum":9007199254740991},"minutes":{"type":"number","minimum":0},"model":{"type":"string","maxLength":200},"tries":{"type":"integer","minimum":1,"maximum":10},"tried":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":400}},"reuse":{"type":"object","properties":{"offered":{"type":"integer","minimum":0,"maximum":100},"chosen":{"type":"string","maxLength":200},"steps":{"type":"integer","minimum":1,"maximum":40}},"required":["offered"]},"proven":{"type":"object","properties":{"environmentId":{"type":"string","maxLength":80},"steps":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","maxLength":600},"expect":{"type":"string","maxLength":600},"selector":{"type":"string","maxLength":600}},"required":["action"]}},"from":{"type":"object","properties":{"testId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":200},"steps":{"type":"integer","minimum":1,"maximum":40}},"required":["testId","name","steps"]}},"required":["environmentId","steps"]}},"required":["usd","turns","minutes","model"]},"points":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"n":{"type":"integer","minimum":1,"maximum":20},"title":{"type":"string","minLength":1,"maxLength":80},"sentence":{"type":"string","minLength":1,"maxLength":300},"expect":{"nullable":true,"type":"string","maxLength":300},"why":{"type":"string","maxLength":300},"state":{"type":"string","enum":["passed","blocked","not_reached","not_written"]}},"required":["n","title","sentence","expect","state"]}},"sign_in_offered":{"maxItems":16,"type":"array","items":{"type":"string","maxLength":40}},"way_in_trail":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"way":{"type":"string","maxLength":40},"outcome":{"type":"string","maxLength":40},"reason":{"type":"string","maxLength":400}},"required":["way","outcome"]}},"handed_back":{"type":"boolean"},"accounts_created":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","maxLength":40},"email":{"type":"string","maxLength":320,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":8,"maxLength":200},"name":{"type":"string","minLength":1,"maxLength":120}},"required":["role","email","password"]}},"learning":{"type":"boolean","enum":[true]},"no_recording":{"type":"boolean","enum":[true]},"screens":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"route":{"type":"string","minLength":1,"maxLength":300},"url":{"type":"string","maxLength":2000},"title":{"type":"string","maxLength":300},"headings":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":300}},"lines":{"maxItems":80,"type":"array","items":{"type":"string","maxLength":500}},"fields":{"maxItems":60,"type":"array","items":{}},"controls":{"maxItems":60,"type":"array","items":{}},"collection":{"type":"boolean"}},"required":["route","url","title","headings","lines","fields","controls","collection"]}},"journey_flow":{"type":"string","minLength":1,"maxLength":50000},"noticed":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["error_screen","server_error","page_error"]},"route":{"type":"string","maxLength":300},"sentence":{"type":"string","maxLength":300}},"required":["kind","route","sentence"]}}},"required":["status","flows_passed","flows_total"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/stop":{"get":{"tags":["Runs","The runner"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/browser":{"post":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"browser":{"type":"string","maxLength":80,"pattern":"^(tron|chromium) \\d+(\\.\\d+){0,3}$"}},"required":["browser"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/live":{"post":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"frame":{"type":"string","maxLength":400000,"pattern":"^[A-Za-z0-9+/]+={0,2}$"},"offscreen":{"type":"boolean"},"done":{"type":"boolean"},"actor":{"type":"string","minLength":1,"maxLength":64}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/events":{"post":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"object","properties":{"client_seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["flow_started","step_started","step_finished","flow_finished"]},"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"flow_id":{"type":"string","maxLength":200},"flow_name":{"type":"string","maxLength":500},"step_id":{"type":"string","maxLength":200},"step_index":{"type":"integer","minimum":0,"maximum":9007199254740991},"action":{"type":"string"},"expect":{"type":"string"},"ok":{"type":"boolean"},"note":{"type":"string"},"notRun":{"type":"boolean"}},"required":["client_seq","type"]}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/report":{"patch":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["blocked","errored","completed"]},"flows_passed":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"flows_total":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"results":{},"video_id":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"error":{"nullable":true,"type":"string","maxLength":200000}},"required":["status"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/stills":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":6}},"required":["count"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"stills":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":400},"atS":{"type":"number","minimum":0},"failing":{"type":"boolean"}},"required":["key","atS","failing"]}}},"required":["stills"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/clip":{"post":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":400},"durationS":{"type":"number","minimum":0,"maximum":120}},"required":["key","durationS"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/tunnels":{"post":{"tags":["Connections"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"localOrigin":{"type":"string","maxLength":200}},"required":["localOrigin"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/tunnels/{tunnelId}":{"patch":{"tags":["Connections"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["runId"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"tunnelId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Connections"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"tunnelId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/slack/authorize":{"get":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/slack/callback":{"get":{"tags":["Connections"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"code","required":false},{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"error","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/slack/channels":{"get":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/slack/destination":{"put":{"tags":["Connections"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channelId":{"type":"string","minLength":1},"channelName":{"type":"string","minLength":1}},"required":["channelId","channelName"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/slack":{"delete":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/railway/authorize":{"get":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/railway/callback":{"get":{"tags":["Connections"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"code","required":false},{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"error","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/railway":{"delete":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/bonsai":{"get":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}},"put":{"tags":["Connections"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":8,"maxLength":500}},"required":["token"]}}}},"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/bonsai/projects":{"get":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/bonsai/statuses":{"get":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/bonsai/apps/{repoId}":{"put":{"tags":["Connections"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"auto":{"type":"object","properties":{"on":{"type":"boolean"},"statusId":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["on"]}},"required":["projectId"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/integrations/bonsai/runs/{runId}":{"get":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/notify-rules":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}},"put":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"repositoryId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"news":{"minItems":1,"type":"array","items":{"type":"string","enum":["broke","fixed","needs-you"]}},"via":{"type":"string","enum":["slack","email"]},"slackChannelId":{"nullable":true,"type":"string","minLength":1,"maxLength":64},"slackChannelName":{"nullable":true,"type":"string","maxLength":200},"userIds":{"maxItems":50,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["repositoryId","news","via"]}}},"required":["rules"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/notification-prefs":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}},"put":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emailOn":{"type":"boolean"},"mutedApps":{"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"emailOff":{"maxItems":6,"type":"array","items":{"type":"string","enum":["broke","fixed","needs-you","held","comment","digest"]}}},"required":["emailOn","mutedApps","emailOff"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/internal/weekly-digest":{"post":{"tags":["Internal"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"considered":{"type":"integer","minimum":0,"maximum":9007199254740991},"sent":{"type":"integer","minimum":0,"maximum":9007199254740991},"skipped":{"type":"integer","minimum":0,"maximum":9007199254740991},"failed":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["considered","sent","skipped","failed"],"additionalProperties":false}}}}}}},"/v1/auth/sign-in-link":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":320,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"redirectTo":{"type":"string","format":"uri"}},"required":["email","redirectTo"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"boolean"}},"required":["sent"],"additionalProperties":false}}}}}}},"/auth/verify":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}}},"/webhooks/stripe":{"post":{"tags":["Webhooks"],"responses":{"200":{"description":"Default Response"}}}},"/v1/github/webhook":{"post":{"tags":["Connections"],"responses":{"200":{"description":"Default Response"}}}},"/webhooks/recall":{"post":{"tags":["Webhooks"],"responses":{"200":{"description":"Default Response"}}}},"/webhooks/recall/transcript/{token}":{"post":{"tags":["Webhooks"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"token","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/grounds/upload-url":{"post":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"contentType":{"type":"string","minLength":1,"maxLength":100},"contentLength":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":10485760}},"required":["contentType","contentLength"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/grounds/read-url":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":400},"in":"query","name":"key","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/demos/{videoId}/share":{"post":{"tags":["Demos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":320,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"type":"string","minLength":1,"maxLength":120}},"required":["email"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/share-history":{"get":{"tags":["Demos"],"responses":{"200":{"description":"Default Response"}}}},"/v1/users":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/memberships":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Account"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"workspace_id","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/workspaces":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/invites/mine":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/invites/{id}/accept":{"post":{"tags":["Account"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/workspace/name":{"patch":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60}},"required":["name"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/users/workspaces/own":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60}},"required":["name"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/users/invites":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":320,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"note":{"type":"string","maxLength":200}},"required":["email"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/users/events":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/invites/{id}/resend":{"post":{"tags":["Account"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/{userId}/make-owner":{"post":{"tags":["Account"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"userId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/invites/{id}":{"delete":{"tags":["Account"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/{userId}/give-back":{"post":{"tags":["Account"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"userId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/{userId}/role":{"patch":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["admin","member"]}},"required":["role"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"userId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/users/{userId}":{"delete":{"tags":["Account"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"userId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/invites/peek":{"get":{"tags":["Account"],"parameters":[{"schema":{"type":"string","minLength":16,"maxLength":200},"in":"query","name":"token","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/invites/sign-in-link":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":16,"maxLength":200}},"required":["token"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/invites/accept":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":16,"maxLength":200}},"required":["token"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/me/export":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}}},"/v1/workspace/settings":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"captions":{"type":"boolean"},"presentation":{"type":"object","properties":{"captionStyle":{"type":"string"},"cursorStyle":{"type":"string"},"accentColor":{"nullable":true,"type":"string"},"available":{"type":"object","properties":{"captionStyles":{"type":"array","items":{"type":"string"}},"cursorStyles":{"type":"array","items":{"type":"string"}},"retiredCursorStyles":{"type":"array","items":{"type":"string"}},"accentColors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hex":{"type":"string"},"label":{"type":"string"}},"required":["id","hex","label"],"additionalProperties":false}}},"required":["captionStyles","cursorStyles","retiredCursorStyles","accentColors"],"additionalProperties":false}},"required":["captionStyle","cursorStyle","accentColor","available"],"additionalProperties":false},"tadaLook":{"type":"object","properties":{"captionStyle":{"type":"string"},"cursorStyle":{"type":"string"}},"required":["captionStyle","cursorStyle"],"additionalProperties":false},"canEdit":{"type":"boolean"},"setBy":{"nullable":true,"type":"string"}},"required":["captions","presentation","tadaLook","canEdit","setBy"],"additionalProperties":false}}}}}},"patch":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"captions":{"type":"boolean"},"captionStyle":{"type":"string","enum":["luckiest","bagel","bungee","pop","pop-tilt","pop-titan","plain"]},"cursorStyle":{"type":"string","enum":["hand","arrow","dot","ring","mac","bibata","capitaine","phosphor"]},"accentColor":{"nullable":true,"type":"string","pattern":"^#(?:[0-9a-f]{3}|[0-9a-f]{6})$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"captions":{"type":"boolean"},"presentation":{"type":"object","properties":{"captionStyle":{"type":"string"},"cursorStyle":{"type":"string"},"accentColor":{"nullable":true,"type":"string"},"available":{"type":"object","properties":{"captionStyles":{"type":"array","items":{"type":"string"}},"cursorStyles":{"type":"array","items":{"type":"string"}},"retiredCursorStyles":{"type":"array","items":{"type":"string"}},"accentColors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hex":{"type":"string"},"label":{"type":"string"}},"required":["id","hex","label"],"additionalProperties":false}}},"required":["captionStyles","cursorStyles","retiredCursorStyles","accentColors"],"additionalProperties":false}},"required":["captionStyle","cursorStyle","accentColor","available"],"additionalProperties":false},"tadaLook":{"type":"object","properties":{"captionStyle":{"type":"string"},"cursorStyle":{"type":"string"}},"required":["captionStyle","cursorStyle"],"additionalProperties":false},"canEdit":{"type":"boolean"},"setBy":{"nullable":true,"type":"string"}},"required":["captions","presentation","tadaLook","canEdit","setBy"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/workspace/slug":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"},"oldSlugs":{"type":"array","items":{"type":"string"}},"canEdit":{"type":"boolean"},"setBy":{"nullable":true,"type":"string"}},"required":["slug","oldSlugs","canEdit","setBy"],"additionalProperties":false}}}}}},"patch":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"required":["slug"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"},"oldSlugs":{"type":"array","items":{"type":"string"}},"canEdit":{"type":"boolean"},"setBy":{"nullable":true,"type":"string"}},"required":["slug","oldSlugs","canEdit","setBy"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/talk":{"get":{"tags":["Voice"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"author":{"type":"string","enum":["customer","team","assistant"]},"body":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","author","body","createdAt"],"additionalProperties":false}},"unread":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["messages","unread"],"additionalProperties":false}}}}}}},"/v1/talk/messages":{"post":{"tags":["Voice"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":4000}},"required":["body"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"author":{"type":"string","enum":["customer","team","assistant"]},"body":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","author","body","createdAt"],"additionalProperties":false}}}}}}},"/v1/talk/read":{"post":{"tags":["Voice"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"],"additionalProperties":false}}}}}}},"/v1/rivet/models":{"get":{"tags":["Rivet"],"responses":{"200":{"description":"Default Response"}}}},"/v1/rivet/facts":{"get":{"tags":["Rivet"],"responses":{"200":{"description":"Default Response"}}}},"/v1/rivet/facts/{id}":{"delete":{"tags":["Rivet"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/rivet/threads":{"get":{"tags":["Rivet"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"threads":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"nullable":true,"type":"string"},"lastMessageAt":{"type":"string"}},"required":["id","title","lastMessageAt"],"additionalProperties":false}}},"required":["threads"],"additionalProperties":false}}}}}}},"/v1/rivet/threads/{id}":{"get":{"tags":["Rivet"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"title":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"messages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"author":{"type":"string","enum":["person","rivet"]},"body":{"type":"string"},"tools":{"type":"array","items":{}},"createdAt":{"type":"string"}},"required":["id","author","body","tools","createdAt"],"additionalProperties":false}}},"required":["id","title","createdAt","messages"],"additionalProperties":false}}}}}},"delete":{"tags":["Rivet"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/rivet/threads/{id}/verification":{"get":{"tags":["Rivet"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/rivet/threads/{id}/demo-follow-up":{"post":{"tags":["Rivet"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/rivet/stream":{"post":{"tags":["Rivet"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"threadId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"message":{"default":"","type":"string","maxLength":4000},"repositoryId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"intent":{"type":"string","enum":["first_flow","verification"]}}}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/rivet/playbook":{"get":{"tags":["Rivet"],"responses":{"200":{"description":"Default Response"}}}},"/mcp":{"post":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/features/learn/plan":{"post":{"tags":["Features"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"repositoryId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ticket":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"ref":{"nullable":true,"type":"string","minLength":1,"maxLength":60},"text":{"default":"","type":"string","maxLength":20000}},"required":["title"]},"agent":{"type":"object","properties":{"acceptanceCriteria":{"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":400}},"pages":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"route":{"type":"string","minLength":1,"maxLength":300},"reachedBy":{"type":"string","minLength":1,"maxLength":200},"purpose":{"type":"string","minLength":1,"maxLength":300}},"required":["route"]}},"roles":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"can":{"default":[],"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"cannot":{"default":[],"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}}},"required":["name"]}},"setup":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"changed":{"type":"object","properties":{"branch":{"type":"string","minLength":1,"maxLength":200},"summary":{"type":"string","minLength":1,"maxLength":2000}}},"outOfScope":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}}}},"proposal":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"The feature, named exactly as the ticket names it."},"ticketRef":{"nullable":true,"description":"The ticket id as the tracker writes it (SOL-123), or null.","type":"string","maxLength":60},"access":{"type":"string","enum":["permissions","sign_in","none"],"description":"permissions: who may see or do what once inside. sign_in: signing in and out itself. none: neither."},"journeys":{"minItems":1,"maxItems":24,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"as":{"nullable":true,"description":"The role it runs as, as the app names it; null for the default login.","type":"string","maxLength":40},"kind":{"type":"string","enum":["setup","invite","can","cant","revoke","direct_url","check"]},"says":{"type":"string","minLength":1,"maxLength":400,"description":"What should happen and why, said before it is shown."},"covers":{"default":[],"description":"The numbers of the acceptance criteria this journey proves. Empty when none were given.","maxItems":30,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"needs":{"default":[],"description":"Other journeys of this plan, by name, that must pass before this one can run, for example \"Access taken away\" needs \"Admin creates a viewer role\". Empty when it stands alone.","maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}}},"required":["name","as","kind","says"]}},"notBrowserCheckable":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"what":{"type":"string","minLength":1,"maxLength":300},"covers":{"default":[],"maxItems":30,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["what"]},"description":"What the ticket asks for that a browser cannot check, each with the criteria numbers it accounts for."},"uses":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":200},"description":"Other features this proof needs to exist first, by name."},"area":{"description":"The area of the app this feature lives in, as its sidebar names it (Companies): one Tada already knows when it fits.","nullable":true,"type":"string","minLength":1,"maxLength":80}},"required":["name","ticketRef","access","journeys","notBrowserCheckable","uses"]}},"required":["repositoryId","ticket"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/environments/{environmentId}/sign-in":{"post":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string","minLength":1,"maxLength":60},"viewport":{"type":"object","properties":{"width":{"type":"integer","minimum":360,"maximum":1440},"height":{"type":"integer","minimum":640,"maximum":1000}},"required":["width","height"]},"tab":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"environmentId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/sign-in/{sessionId}/exchange":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"after":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"events":{"maxItems":60,"type":"array","items":{"oneOf":[{"type":"object","properties":{"t":{"type":"string","enum":["down"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"b":{"type":"integer","minimum":0,"maximum":2},"n":{"type":"integer","minimum":1,"maximum":3}},"required":["t","x","y","b","n"]},{"type":"object","properties":{"t":{"type":"string","enum":["up"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"b":{"type":"integer","minimum":0,"maximum":2},"n":{"type":"integer","minimum":1,"maximum":3}},"required":["t","x","y","b","n"]},{"type":"object","properties":{"t":{"type":"string","enum":["move"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["t","x","y"]},{"type":"object","properties":{"t":{"type":"string","enum":["wheel"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"dx":{"type":"number","minimum":-4000,"maximum":4000},"dy":{"type":"number","minimum":-4000,"maximum":4000}},"required":["t","x","y","dx","dy"]},{"type":"object","properties":{"t":{"type":"string","enum":["key"]},"k":{"type":"string","minLength":1,"maxLength":32},"m":{"type":"integer","minimum":0,"maximum":15}},"required":["t","k","m"]},{"type":"object","properties":{"t":{"type":"string","enum":["text"]},"s":{"type":"string","minLength":1,"maxLength":4000}},"required":["t","s"]}]}},"finish":{"type":"boolean"},"hidden":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"sessionId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/sign-in/{sessionId}":{"delete":{"tags":["Account"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"sessionId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/sign-in/claim":{"post":{"tags":["The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/sign-in/{sessionId}/exchange":{"post":{"tags":["The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lease":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"frame":{"type":"string","maxLength":600000,"pattern":"^[A-Za-z0-9+/]+={0,2}$"},"host":{"type":"string","maxLength":300,"pattern":"^https?:\\/\\/[^/?#\\s]+$"}},"required":["lease"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"sessionId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/sign-in/{sessionId}/capture":{"post":{"tags":["The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"lease":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"notYet":{"type":"object","properties":{"host":{"type":"string","maxLength":300,"pattern":"^https?:\\/\\/[^/?#\\s]+$"}},"required":["host"]}},"required":["lease","notYet"]},{"type":"object","properties":{"lease":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"unsaved":{"type":"object","properties":{"cause":{"type":"string","enum":["too_large","unreachable","failed"]}},"required":["cause"]}},"required":["lease","unsaved"]},{"type":"object","properties":{"lease":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"origin":{"type":"string","maxLength":300,"format":"uri"},"localStorage":{"maxItems":5000,"type":"array","items":{"type":"array","items":{"anyOf":[{"type":"string","minLength":1,"maxLength":10000},{"type":"string","maxLength":2000000}]},"minItems":2,"maxItems":2}},"sessionStorage":{"maxItems":5000,"type":"array","items":{"type":"array","items":{"anyOf":[{"type":"string","minLength":1,"maxLength":10000},{"type":"string","maxLength":2000000}]},"minItems":2,"maxItems":2}},"cookies":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":4096},"value":{"type":"string","maxLength":8192},"domain":{"type":"string","minLength":1,"maxLength":255},"path":{"type":"string","minLength":1,"maxLength":1024},"expires":{"type":"number"},"httpOnly":{"type":"boolean"},"secure":{"type":"boolean"},"sameSite":{"type":"string","enum":["Strict","Lax","None"]}},"required":["name","value","domain","path","expires","httpOnly","secure","sameSite"]}},"dropped":{"maxItems":100,"type":"array","items":{"type":"string","maxLength":300}}},"required":["lease","origin","localStorage","sessionStorage","cookies"]}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"sessionId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/sign-in/{sessionId}/end":{"post":{"tags":["The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lease":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["closed","failed","expired"]},"reason":{"type":"string","maxLength":400}},"required":["lease","status"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"sessionId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/batch/boot":{"post":{"tags":["The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/batch/report":{"post":{"tags":["The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/internal/learn-batches":{"get":{"tags":["Internal"],"parameters":[{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}$"},"in":"query","name":"month","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/atlas":{"post":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"screens":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"route":{"type":"string","maxLength":500},"url":{"type":"string","maxLength":2000},"title":{"type":"string","maxLength":300},"headings":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},"lines":{"maxItems":80,"type":"array","items":{"type":"string","maxLength":200}},"fields":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":100},"type":{"type":"string","maxLength":40},"required":{"type":"boolean"},"purpose":{"type":"string","maxLength":60},"on":{"type":"boolean"}},"required":["label","type","required","purpose"]}},"controls":{"maxItems":60,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":100},"kind":{"type":"string","maxLength":20},"submits":{"type":"boolean"},"href":{"type":"string","maxLength":2000},"role":{"type":"string","enum":["tab","switch","radio","checkbox","toggle"]},"on":{"type":"boolean"},"opens":{"type":"boolean"},"options":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"name":{"type":"string","maxLength":100}},"required":["label","kind","submits","href"]}},"collection":{"type":"boolean"}},"required":["route","url","title","headings","lines","fields","controls","collection"]}},"unopened":{"maxItems":5000,"type":"array","items":{"type":"string","maxLength":2000}},"stopped":{"type":"string","maxLength":40},"signInWall":{"type":"boolean"},"door":{"type":"object","properties":{"landed":{"type":"object","properties":{"route":{"type":"string","maxLength":500},"kind":{"type":"string","maxLength":20}},"required":["route","kind"]},"offSite":{"type":"boolean"},"signIn":{"nullable":true,"type":"object","properties":{"url":{"type":"string","maxLength":2000},"route":{"type":"string","maxLength":500},"how":{"type":"string","maxLength":20}},"required":["url","route","how"]},"methods":{"maxItems":8,"type":"array","items":{"type":"string","maxLength":20}},"sso":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":40}},"providers":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":30}},"fieldKinds":{"maxItems":8,"type":"array","items":{"type":"string","maxLength":30}},"protection":{"type":"string","enum":["hosting_lock","bot_check","basic_auth","none"]},"status":{"maxItems":10,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":600}},"guard":{"nullable":true,"type":"object","properties":{"route":{"type":"string","maxLength":500},"status":{"maxItems":10,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":600}}},"required":["route","status"]},"signUp":{"nullable":true,"type":"object","properties":{"route":{"nullable":true,"type":"string","maxLength":500},"form":{"type":"boolean"}},"required":["route","form"]},"appOrigin":{"nullable":true,"type":"string","maxLength":300},"signedIn":{"nullable":true,"type":"object","properties":{"with":{"type":"string","enum":["session"]},"works":{"nullable":true,"type":"boolean"},"landed":{"nullable":true,"type":"string","maxLength":500},"cookies":{"maxItems":12,"type":"array","items":{"type":"string","maxLength":80}}},"required":["with","works","landed"]},"cost":{"type":"object","properties":{"loads":{"type":"integer","minimum":-9007199254740991,"maximum":1000},"requests":{"type":"integer","minimum":-9007199254740991,"maximum":1000},"seconds":{"type":"integer","minimum":-9007199254740991,"maximum":3600}},"required":["loads","requests","seconds"]}},"required":["landed","offSite","signIn","methods","sso","signUp","appOrigin","signedIn","cost"]}},"required":["screens","unopened","stopped","signInWall"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/explored":{"post":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"screens":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"route":{"type":"string","maxLength":500},"url":{"type":"string","maxLength":2000},"title":{"type":"string","maxLength":300},"headings":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},"lines":{"maxItems":80,"type":"array","items":{"type":"string","maxLength":200}},"fields":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":100},"type":{"type":"string","maxLength":40},"required":{"type":"boolean"},"purpose":{"type":"string","maxLength":60},"on":{"type":"boolean"}},"required":["label","type","required","purpose"]}},"controls":{"maxItems":60,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":100},"kind":{"type":"string","maxLength":20},"submits":{"type":"boolean"},"href":{"type":"string","maxLength":2000},"role":{"type":"string","enum":["tab","switch","radio","checkbox","toggle"]},"on":{"type":"boolean"},"opens":{"type":"boolean"},"options":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"name":{"type":"string","maxLength":100}},"required":["label","kind","submits","href"]}},"collection":{"type":"boolean"}},"required":["route","url","title","headings","lines","fields","controls","collection"]}},"flows":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":300},"steps":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1,"maxLength":500},"expect":{"type":"string","maxLength":500}},"required":["action"]}}},"required":["name","steps"]}},"walls":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["captcha","payment","sso","invite_only"]},"route":{"type":"string","maxLength":500},"sentence":{"type":"string","maxLength":300}},"required":["kind","route","sentence"]}},"ended":{"type":"string","maxLength":40},"reason":{"nullable":true,"type":"string","maxLength":300},"spend":{"type":"object","properties":{"usd":{"type":"number","minimum":0,"maximum":100000},"turns":{"type":"integer","minimum":0,"maximum":1000000},"minutes":{"type":"number","minimum":0,"maximum":1000000},"model":{"nullable":true,"type":"string","maxLength":200}},"required":["usd","turns","minutes","model"]},"notices":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["error_screen","server_error","page_error"]},"route":{"type":"string","maxLength":500},"sentence":{"type":"string","maxLength":300}},"required":["kind","route","sentence"]}}},"required":["screens","flows","walls","ended","reason","spend"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/repaired":{"post":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flowId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"of":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"steps":{"nullable":true,"maxItems":200,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1,"maxLength":500},"expect":{"type":"string","maxLength":500},"role":{"type":"string","minLength":1,"maxLength":40}},"required":["action"]}},"check":{"nullable":true,"type":"object","properties":{"status":{"type":"string","maxLength":20},"stoppedAt":{"nullable":true,"type":"integer","minimum":0,"maximum":9007199254740991},"note":{"nullable":true,"type":"string","maxLength":2000}},"required":["status","stoppedAt","note"]},"why":{"nullable":true,"type":"string","maxLength":400},"spend":{"type":"object","properties":{"usd":{"type":"number","minimum":0,"maximum":100000},"turns":{"type":"integer","minimum":0,"maximum":1000000},"minutes":{"type":"number","minimum":0,"maximum":1000000},"model":{"nullable":true,"type":"string","maxLength":200}},"required":["usd","turns","minutes","model"]}},"required":["flowId","of","steps","check","why","spend"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/learning":{"get":{"summary":"What Tada knows about the app","tags":["Apps"],"description":"One home for what Tada knows: the learning status line (`learning`, `flowsKnown`, `gaps`, `lastNight` and the rest), then `screens` (route, title, which roles saw it, when last seen; paged by `limit` and `cursor`), `knowsHowTo` (the saved tests that last passed), `roles` (test accounts and whether sign-in works), `unopened` (doors not yet opened) and `lastLearned`. Read-only.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":200},"in":"query","name":"limit","required":false},{"schema":{"type":"string","maxLength":500},"in":"query","name":"cursor","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/learning/schedule":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"put":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"timeZone":{"type":"string","minLength":1,"maxLength":64},"slots":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"at":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"depth":{"type":"string","enum":["full","changes"]}},"required":["at","depth"]}}},"required":["timeZone","slots"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/learning/{thingId}":{"get":{"summary":"One thing Tada knows","tags":["Apps"],"description":"A test (`test:<uuid>`: its steps, when it was proven, when it was last used, broken or not) or a screen (`screen:<route>`, route URL-encoded: its headings, fields and controls).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","minLength":1,"maxLength":600},"in":"path","name":"thingId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/look-around":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/look-around/probes/{probeId}/triage":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["useful","not_useful","intended"]}},"required":["decision"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"probeId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{id}/fix-test":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"nullable":true,"type":"object","properties":{"testId":{"type":"string","minLength":1,"maxLength":200}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{id}/fix-test/save":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"testId":{"type":"string","minLength":1,"maxLength":200},"steps":{"minItems":1,"maxItems":60,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1,"maxLength":300},"expect":{"type":"string","maxLength":300},"role":{"type":"string","minLength":1,"maxLength":40}},"required":["action"]}},"basedOn":{"type":"string","minLength":1,"maxLength":64}},"required":["testId","steps","basedOn"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{id}/fix-test/step":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"testId":{"type":"string","minLength":1,"maxLength":200},"stepId":{"type":"string","minLength":1,"maxLength":200}},"required":["testId","stepId"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{id}/fix-test/repair":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"testId":{"type":"string","minLength":1,"maxLength":200}},"required":["testId"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{id}/fix-test/expect":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"testId":{"type":"string","minLength":1,"maxLength":200},"stepId":{"type":"string","minLength":1,"maxLength":200}},"required":["testId","stepId"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{id}/fix-test/rule":{"post":{"tags":["Runs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"testId":{"type":"string","minLength":1,"maxLength":200},"rule":{"type":"string","minLength":1,"maxLength":80},"signature":{"type":"string","minLength":1,"maxLength":600}},"required":["testId","rule","signature"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/resident-sign-in":{"post":{"summary":"The runner keeps a test user’s session","tags":["The runner"],"description":"Tada’s own worker pool only, or the pass pinned to this very run. After a run signs a test user in, the session it ended with is sealed here so the next run on the same address starts signed in.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"origin":{"type":"string","maxLength":300,"format":"uri"},"localStorage":{"maxItems":5000,"type":"array","items":{"type":"array","items":{"anyOf":[{"type":"string","minLength":1,"maxLength":10000},{"type":"string","maxLength":2000000}]},"minItems":2,"maxItems":2}},"sessionStorage":{"maxItems":5000,"type":"array","items":{"type":"array","items":{"anyOf":[{"type":"string","minLength":1,"maxLength":10000},{"type":"string","maxLength":2000000}]},"minItems":2,"maxItems":2}},"cookies":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":4096},"value":{"type":"string","maxLength":8192},"domain":{"type":"string","minLength":1,"maxLength":255},"path":{"type":"string","minLength":1,"maxLength":1024},"expires":{"type":"number"},"httpOnly":{"type":"boolean"},"secure":{"type":"boolean"},"sameSite":{"type":"string","enum":["Strict","Lax","None"]}},"required":["name","value","domain","path","expires","httpOnly","secure","sameSite"]}},"dropped":{"maxItems":100,"type":"array","items":{"type":"string","maxLength":300}},"role":{"type":"string","minLength":1,"maxLength":60}},"required":["origin","localStorage","sessionStorage","cookies"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/sign-in-trace":{"post":{"summary":"The runner keeps a test user’s recorded sign-in","tags":["Runs","The runner"],"description":"Tada’s own worker pool only, or the pass pinned to this very check. The QA engine’s recording of one test user’s sign-in, made by the check that records it, is kept on the account so later checks replay it with no model. It holds no secret value.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string","pattern":"^[a-f0-9]{64}$"},"trace":{"type":"object","additionalProperties":{}}},"required":["accountId","key","trace"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/test-recording":{"post":{"summary":"The runner keeps a test’s recorded steps","tags":["Runs","The runner"],"description":"Tada’s own worker pool only, or the pass pinned to this very job. The QA engine’s recording of one test’s steps on one environment, made by the job that records it, is kept so later checks replay it with no model. It holds no secret value.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flowId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string","pattern":"^[a-f0-9]{64}$"},"stepsDigest":{"type":"string","pattern":"^[a-f0-9]{64}$"},"payload":{"type":"object","additionalProperties":{}}},"required":["flowId","key","stepsDigest","payload"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/test-recordings/wanted":{"post":{"summary":"The runner asks for tests to be recorded","tags":["Runs","The runner"],"description":"Tada’s own worker pool only, or the pass pinned to this very check. The tests this check found with no recording on the environment it drives, or one that no longer replays, are queued to be recorded by Tada’s own job, at most once a day each.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flowIds":{"maxItems":50,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["flowIds"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/written-test":{"post":{"summary":"The runner saves the test it wrote in the browser","tags":["Runs","The runner"],"description":"Tada’s own worker pool only, or the pass pinned to this very check. The steps the runner wrote on the app for a check asked in words are saved through the one save path as that check’s test, and the QA engine’s recording of them is kept. Answers `{ saved: true, testId, steps }`, or `{ saved: false, refusal }` with the sentence that says why.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"steps":{"minItems":1,"maxItems":40,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1,"maxLength":500},"expect":{"type":"string","maxLength":300},"role":{"type":"string","minLength":1,"maxLength":40}},"required":["action"]}},"notCovered":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"what":{"type":"string","maxLength":300},"why":{"type":"string","maxLength":300}},"required":["what","why"]}},"confirmed":{"maxItems":6,"type":"array","items":{"type":"object","properties":{"step":{"type":"integer","minimum":1,"maximum":40},"what":{"type":"string","minLength":1,"maxLength":120}},"required":["step","what"]}},"recording":{"nullable":true,"type":"object","properties":{"key":{"type":"string","pattern":"^[a-f0-9]{64}$"},"stepsDigest":{"type":"string","pattern":"^[a-f0-9]{64}$"},"payload":{"type":"object","additionalProperties":{}}},"required":["key","stepsDigest","payload"]},"reusedFrom":{"nullable":true,"type":"object","properties":{"testId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"steps":{"type":"integer","minimum":1,"maximum":40}},"required":["testId","steps"]},"language":{"type":"string","maxLength":35},"languageAfter":{"type":"string","maxLength":35},"points":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"n":{"type":"integer","minimum":1,"maximum":20},"title":{"type":"string","minLength":1,"maxLength":80},"sentence":{"type":"string","minLength":1,"maxLength":300},"expect":{"nullable":true,"type":"string","maxLength":300},"why":{"type":"string","maxLength":300}},"required":["n","title","sentence","expect"]}}},"required":["name","steps"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/sign-in-trace-refused":{"post":{"summary":"The runner says a recorded sign-in no longer replays","tags":["Runs","The runner"],"description":"Tada’s own worker pool only, or the pass pinned to this very check. The check replayed the recorded sign-in of one test user and it did not get in by itself. `why` is the runner’s reason. Answers `{ marked }`: false when the account holds another recording now.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string","pattern":"^[a-f0-9]{64}$"},"why":{"type":"string","enum":["not-self-finalized","not-signed-in","unreadable","no-recording"]}},"required":["accountId","key","why"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/environments/{environmentId}/residents-allowed":{"put":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"allowed":{"type":"boolean"}},"required":["allowed"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"environmentId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/cast":{"get":{"summary":"The workspace's cast","tags":["Other"],"description":"Every actor Tada plays in this workspace: `{ id, name, title, character, voice, first, inactive, roles }`, oldest first. An entry is always an actor, never a role or a sign-in: a role no person gave to an actor is the first actor's, and so is a sign-in whose label has no role yet (`implied` on its entry in `plays`). `inactive` is switched off: no checks, not counted in the plan. `roles` counts the roles they hold across every app, and `plays` lists each with its app and, per environment, `{ state, lastWorkedAt, needs, address, offered }`: whether its login gets in, when it last did, what a person can do, the address to invite, and with `a_person` which sign-in the app showed (`microsoft`, `google`, `github`, `apple`, `sso`, `passkey`, `authenticator`, `sms`; empty when not known). `first` is the actor every workspace starts with, answered again on its own beside `data`.","responses":{"200":{"description":"Default Response"}}}},"/v1/cast/{actor}/deactivate":{"post":{"summary":"Switch an actor off","tags":["Other"],"description":"The actor does no checks and is not counted in the plan's cast. Their roles and logins stay. 409 `first_actor_stays` for the workspace's first actor.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"actor","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/cast/{actor}/activate":{"post":{"summary":"Switch an actor back on","tags":["Other"],"description":"The actor does checks again, with every role and login they had. 402 when the plan has no room: switch another off first.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"actor","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/accounts/{accountId}/when-to-use":{"put":{"tags":["Test users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"whenToUse":{"nullable":true,"type":"string","maxLength":280}},"required":["whenToUse"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/sign-in-methods":{"get":{"summary":"The ways a test account can sign in today","tags":["Other"],"description":"Answers `{ methods, authenticator }`: the sign-in methods Tada can really sign in with, and whether it can make authenticator codes. A list kept in code.","responses":{"200":{"description":"Default Response"}}}},"/v1/sign-in-methods/authenticator-check":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"secret":{"type":"string","maxLength":2000}},"required":["secret"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/accounts/{accountId}/sign-in":{"put":{"tags":["Test users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string","enum":["password","google","github","magic_link","custom","sms","sso"]},"authenticatorSecret":{"nullable":true,"type":"string","maxLength":2000},"loginInstructions":{"nullable":true,"type":"string","maxLength":4000}},"required":["method"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Test users"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/accounts/{accountId}/record-sign-in":{"post":{"tags":["Test users"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/environments/{environmentId}/custom-account":{"post":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"loginInstructions":{"type":"string","minLength":1,"maxLength":4000},"email":{"nullable":true,"type":"string","maxLength":320},"password":{"nullable":true,"type":"string","maxLength":1000},"whenToUse":{"nullable":true,"type":"string","maxLength":280}},"required":["name","loginInstructions"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"environmentId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/apps/{app}/cast":{"get":{"summary":"The app's cast","tags":["Cast"],"description":"One entry per ACTOR Tada plays: who they are (name, job, character, voice) and `roles`, each role they hold with its routines and its logins, one per environment, with no secret. One actor may hold several roles; the count of entries is the size of the cast. The admin is the role whose login was asked for at connect.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"summary":"Add an actor","tags":["Cast"],"description":"A new person in the cast, with the first role they play (`actor`) and optionally that role's login: `login: { email, password }` hands over one you already seeded; `login: 'tada'` has Tada make it (planted through your app's own invite when Tada's admin is inside), its password on this answer once and never again. Refused when the environment is not open to test users. To give a role to an actor who is already in the cast, `PUT /cast/{actor}/roles/{role}`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":80},"title":{"type":"string","maxLength":60},"character":{"nullable":true,"type":"string","enum":["pip","juno","bea","moss","fern","tide","otto","nova","iris","lumi","ruby","sol"]},"voice":{"nullable":true,"type":"string","enum":["bella","lily","brian","daniel","mine"]},"routines":{"type":"object","additionalProperties":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}}},"actor":{"type":"string","minLength":1,"maxLength":60},"environment":{"type":"string","minLength":1,"maxLength":120},"login":{"anyOf":[{"type":"string","enum":["tada"]},{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":1,"maxLength":256}},"required":["email","password"]}]}},"required":["actor"]}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/apps/{app}/cast/{actor}":{"patch":{"summary":"Change who an actor is","tags":["Cast"],"description":"Partial. The name, job, character and voice are the ACTOR's, whichever of their roles names them. `routines` replaces the whole set of the role named (the actor's first role when `{actor}` is an id).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":80},"title":{"type":"string","maxLength":60},"character":{"nullable":true,"type":"string","enum":["pip","juno","bea","moss","fern","tide","otto","nova","iris","lumi","ruby","sol"]},"voice":{"nullable":true,"type":"string","enum":["bella","lily","brian","daniel","mine"]},"routines":{"type":"object","additionalProperties":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}}}}}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"actor","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"summary":"Take an actor out of the cast","tags":["Cast"],"description":"204. Their roles in this app are gone from every list and every check at once. An actor left with no role in any app is gone from the workspace's cast too. 409 `first_actor_stays` for the first actor: a workspace always has one. ⚠ No login is deleted, and nothing changes inside your app.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"actor","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/apps/{app}/cast/{actor}/roles/{role}/deactivate":{"post":{"summary":"Switch a role off","tags":["Cast"],"description":"No check plays this role until it is switched back on. Its logins and routines stay. A check that needs it is refused before it starts.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"actor","required":true},{"schema":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_-]{0,39}$"},"in":"path","name":"role","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/apps/{app}/cast/{actor}/roles/{role}/activate":{"post":{"summary":"Switch a role back on","tags":["Cast"],"description":"The role is played by checks again, with the logins and routines it had.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"actor","required":true},{"schema":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_-]{0,39}$"},"in":"path","name":"role","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/apps/{app}/cast/{actor}/roles/{role}":{"put":{"summary":"Have an actor play a role","tags":["Cast"],"description":"This actor plays this role, with the same name, character and voice as their other roles. A new role joins them; a role somebody else played MOVES to them, with its routines and its logins (an actor left with no role is no longer in the cast). `login` gives the role its login here, as on `POST /cast`. Saying it twice changes nothing.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"environment":{"type":"string","minLength":1,"maxLength":120},"login":{"anyOf":[{"type":"string","enum":["tada"]},{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":1,"maxLength":256}},"required":["email","password"]}]}}}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"actor","required":true},{"schema":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_-]{0,39}$"},"in":"path","name":"role","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/apps/{app}/cast/{actor}/logins/{login}":{"delete":{"summary":"Stop using an actor's login","tags":["Cast"],"description":"204. ⚠ The user stays in your app until you delete it there: Tada never deletes users in your app.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"actor","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"login","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/apps/{app}/cast/{actor}/logins/{login}/password":{"get":{"summary":"Read an actor's password","tags":["Cast"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"actor","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"login","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"summary":"Have Tada invent a new password","tags":["Cast"],"description":"The password once, never again. It changes nothing inside your app.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"actor","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"login","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/environments/{environmentId}/changes-allowed":{"patch":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"allowed":{"type":"boolean"}},"required":["allowed"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"environmentId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/sign-in-asks":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/features/{featureId}/support":{"put":{"tags":["Features"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"}},"required":["available"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"featureId","required":true}],"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Features"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"featureId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/support/answers/{answerId}":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"answerId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/support/answers/{answerId}/film":{"post":{"tags":["Other"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"answerId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/support/answers/{answerId}/approve":{"post":{"tags":["Other"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"answerId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/address":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"environment":{"type":"string","minLength":1,"maxLength":60,"description":"Which environment this address is, such as staging."},"url":{"type":"string","minLength":1,"maxLength":2048},"confirmChange":{"type":"boolean"}},"required":["environment","url"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/repos/{repoId}/progress":{"get":{"tags":["Apps"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"repoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/tron/live":{"get":{"tags":["Tron"],"responses":{"200":{"description":"Default Response"}}}},"/v1/tron/live/{runId}":{"get":{"tags":["Tron"],"parameters":[{"schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"in":"query","name":"after","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/tron/visit":{"post":{"tags":["Tron"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2000}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/me":{"get":{"tags":["Account"],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/users":{"get":{"tags":["Account"],"parameters":[{"schema":{"type":"string","maxLength":200},"in":"query","name":"q","required":false},{"schema":{"type":"integer","minimum":1,"maximum":10000},"in":"query","name":"page","required":false},{"schema":{"type":"integer","minimum":1,"maximum":100},"in":"query","name":"size","required":false},{"schema":{"type":"string","enum":["0","1"]},"in":"query","name":"hideOwn","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/view-as":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targetUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"reason":{"type":"string","minLength":3,"maxLength":200}},"required":["targetUserId","reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/view-as/{id}":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/view-as/{id}/end":{"post":{"tags":["Other"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/flags":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/flags/{key}":{"patch":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"is_on":{"nullable":true,"type":"boolean"},"workspaces_on":{"maxItems":500,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"workspaces_off":{"maxItems":500,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"key","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/re-renders":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/videos/{videoId}/re-render":{"post":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/videos/{videoId}/re-render":{"post":{"tags":["Demos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"trimStartS":{"type":"number","minimum":0,"maximum":3600}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"videoId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/renders/claim":{"post":{"tags":["The runner"],"responses":{"200":{"description":"Default Response"}}}},"/v1/platform/renders/{renderId}":{"patch":{"tags":["The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"durationS":{"type":"number","minimum":0,"exclusiveMinimum":true,"maximum":86400},"narrationMode":{"type":"string","enum":["voice","captions"]},"heard":{"nullable":true,"type":"object","properties":{"spoken":{"nullable":true,"maxItems":500,"type":"array","items":{"nullable":true,"type":"object","properties":{"startS":{"type":"number"},"wordsAtS":{"maxItems":400,"type":"array","items":{"type":"number"}},"endS":{"type":"number"}},"required":["wordsAtS","endS"]}},"startsS":{"nullable":true,"maxItems":500,"type":"array","items":{"nullable":true,"type":"number"}}},"required":["spoken","startsS"]},"cameraHolds":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"fromS":{"type":"number"},"toS":{"type":"number"}},"required":["fromS","toS"]}},"cameraBaked":{"type":"boolean"},"measured":{"type":"object","properties":{"captionLines":{"type":"integer","minimum":0,"maximum":10000},"luma":{"type":"object","properties":{"mean":{"type":"number"},"min":{"type":"number"},"max":{"type":"number"}},"required":["mean","min","max"]},"voiceLufs":{"nullable":true,"type":"number"},"voicePeakDb":{"nullable":true,"type":"number"},"frameRange":{"maxItems":64,"type":"array","items":{"type":"number","minimum":0,"maximum":255}}}},"moved":{"type":"object","properties":{"chapters":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"journey_id":{"type":"string","minLength":1,"maxLength":64},"name":{"type":"string","maxLength":200},"at_s":{"type":"number","minimum":0,"maximum":86400},"result":{"type":"string","enum":["passed","failed","skipped"]}},"required":["journey_id","name","at_s","result"]}},"addresses":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"at_s":{"type":"number","minimum":0,"maximum":86400},"url":{"type":"string","maxLength":2000}},"required":["at_s","url"]}},"segments":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"i":{"type":"integer","minimum":0,"maximum":500},"text":{"type":"string","maxLength":2000},"atS":{"type":"number","minimum":0}},"required":["i","text","atS"]}}},"required":["chapters","addresses","segments"]}},"required":["ok","durationS","narrationMode"]},{"type":"object","properties":{"ok":{"type":"boolean","enum":[false]},"error":{"type":"string","minLength":1,"maxLength":2000},"permanent":{"type":"boolean"}},"required":["ok","error"]}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"renderId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/practices":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":120},"sentence":{"type":"string","minLength":10,"maxLength":400},"why":{"type":"string","maxLength":600},"appliesTo":{"oneOf":[{"type":"object","properties":{"detector":{"type":"string","enum":["list_with_filters"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["detector"],"additionalProperties":false},{"type":"object","properties":{"detector":{"type":"string","enum":["list"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["detector"],"additionalProperties":false},{"type":"object","properties":{"detector":{"type":"string","enum":["any_page"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["detector"],"additionalProperties":false},{"type":"object","properties":{"detector":{"type":"string","enum":["nav_link"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["detector"],"additionalProperties":false}]},"recipe":{"oneOf":[{"type":"object","properties":{"probe":{"type":"string","enum":["reload_keeps"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["default_not_in_url"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["back_leaves"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["full_width_at"]},"params":{"default":{"width":390,"ratio":0.9},"type":"object","properties":{"width":{"default":390,"type":"integer","minimum":240,"maximum":1600},"ratio":{"default":0.9,"type":"number","minimum":0.1,"maximum":1}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["per_row_at"]},"params":{"default":{"width":390,"n":2},"type":"object","properties":{"width":{"default":390,"type":"integer","minimum":240,"maximum":1600},"n":{"default":2,"type":"integer","minimum":2,"maximum":6}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["row_lines"]},"params":{"default":{"lines":1},"type":"object","properties":{"lines":{"default":1,"type":"integer","minimum":1,"maximum":4}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["no_sideways_scroll_at"]},"params":{"default":{"width":390},"type":"object","properties":{"width":{"default":390,"type":"integer","minimum":240,"maximum":1600}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["nav_label_matches_heading"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["accessible_names"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["tap_target_at"]},"params":{"default":{"width":390,"min":24},"type":"object","properties":{"width":{"default":390,"type":"integer","minimum":240,"maximum":1600},"min":{"default":24,"type":"integer","minimum":8,"maximum":64}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false}]}},"required":["title","sentence","appliesTo","recipe"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/practices/apps":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string","maxLength":200},"in":"query","name":"q","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/practices/draft":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":120},"sentence":{"type":"string","minLength":10,"maxLength":400},"hint":{"type":"string","maxLength":200}},"required":["title","sentence"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/practices/{id}":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}},"put":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":120},"sentence":{"type":"string","minLength":10,"maxLength":400},"why":{"type":"string","maxLength":600},"appliesTo":{"oneOf":[{"type":"object","properties":{"detector":{"type":"string","enum":["list_with_filters"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["detector"],"additionalProperties":false},{"type":"object","properties":{"detector":{"type":"string","enum":["list"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["detector"],"additionalProperties":false},{"type":"object","properties":{"detector":{"type":"string","enum":["any_page"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["detector"],"additionalProperties":false},{"type":"object","properties":{"detector":{"type":"string","enum":["nav_link"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["detector"],"additionalProperties":false}]},"recipe":{"oneOf":[{"type":"object","properties":{"probe":{"type":"string","enum":["reload_keeps"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["default_not_in_url"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["back_leaves"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["full_width_at"]},"params":{"default":{"width":390,"ratio":0.9},"type":"object","properties":{"width":{"default":390,"type":"integer","minimum":240,"maximum":1600},"ratio":{"default":0.9,"type":"number","minimum":0.1,"maximum":1}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["per_row_at"]},"params":{"default":{"width":390,"n":2},"type":"object","properties":{"width":{"default":390,"type":"integer","minimum":240,"maximum":1600},"n":{"default":2,"type":"integer","minimum":2,"maximum":6}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["row_lines"]},"params":{"default":{"lines":1},"type":"object","properties":{"lines":{"default":1,"type":"integer","minimum":1,"maximum":4}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["no_sideways_scroll_at"]},"params":{"default":{"width":390},"type":"object","properties":{"width":{"default":390,"type":"integer","minimum":240,"maximum":1600}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["nav_label_matches_heading"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["accessible_names"]},"params":{"default":{},"type":"object","properties":{},"additionalProperties":false}},"required":["probe"],"additionalProperties":false},{"type":"object","properties":{"probe":{"type":"string","enum":["tap_target_at"]},"params":{"default":{"width":390,"min":24},"type":"object","properties":{"width":{"default":390,"type":"integer","minimum":240,"maximum":1600},"min":{"default":24,"type":"integer","minimum":8,"maximum":64}},"additionalProperties":false}},"required":["probe"],"additionalProperties":false}]}},"required":["title","sentence","appliesTo","recipe"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/practices/{id}/adopt":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["version"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/practices/{id}/status":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["off","shadow","on"]}},"required":["status"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/practices/{id}/tries":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"repositoryId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["repositoryId"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/practice-findings/{id}/wrong":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wrong":{"type":"boolean"}},"required":["wrong"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/practices":{"post":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tryId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"screens":{"type":"integer","minimum":0,"maximum":1000},"findings":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"practiceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"detail":{"type":"string","minLength":1,"maxLength":600},"measurements":{"default":{},"type":"object","additionalProperties":{}},"selector":{"default":null,"nullable":true,"type":"string","maxLength":600},"screens":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"url":{"type":"string","maxLength":2000},"path":{"type":"string","maxLength":2000}},"required":["url","path"]}},"frameKey":{"default":null,"nullable":true,"type":"string","maxLength":300}},"required":["practiceId","version","detail","screens"]}},"passed":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"practiceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"paths":{"maxItems":500,"type":"array","items":{"type":"string","maxLength":2000}}},"required":["practiceId","version","paths"]}}},"required":["findings","passed"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/worker/runs/{runId}/practices/frames":{"post":{"tags":["Runs","The runner"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":0,"maximum":100}},"required":["count"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/practices":{"get":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/numbers":{"get":{"tags":["Other"],"parameters":[{"schema":{"default":"30d","type":"string","enum":["7d","30d"]},"in":"query","name":"period","required":false},{"schema":{"default":"true","type":"string","enum":["true","false"]},"in":"query","name":"excludeOwn","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/apps/{app}/tests":{"get":{"summary":"List an app's tests","tags":["Tests"],"description":"Newest first; follow `pagination.next` with `?cursor=` for the next page. `withCast=true` lists only tests with two or more actors. `tag=` lists the tests carrying that tag; `ref=` the test with that reference.","parameters":[{"schema":{"default":20,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"How many to return: 20 by default, 100 at most."},{"schema":{"type":"string","maxLength":200},"in":"query","name":"cursor","required":false,"description":"`pagination.next` from the page before."},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"blocksPullRequests","required":false},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"withCast","required":false},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"query","name":"tag","required":false,"description":"Only tests carrying this tag (matched as stored: lower case)."},{"schema":{"type":"string","minLength":1,"maxLength":200},"in":"query","name":"ref","required":false,"description":"Only the test with this reference."},{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true,"description":"The app: its id, or its `owner/name` URL-encoded (`modulab%2Fsolivo`)."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"pagination":{"type":"object","properties":{"next":{"nullable":true,"type":"string"}},"required":["next"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"example":{"data":[{"id":"test_2f4c9e0a-1b7d-4c3e-9a51-6d2f0e8b7c11","object":"test","app":{"id":"f15e6f9e-cd07-429e-aa12-4327ae531e26"},"feature":{"id":"5b1d0c2e-7a3f-4e19-8c6d-2e0f9a1b3c4d"},"name":"Onboarding a client","about":"A new client is set up, invited and sees only their own projects.","tags":["onboarding","critical"],"ref":"FEAT-1042","blocksPullRequests":false,"record":"always","recordIsDefault":true,"cast":[{"actor":"admin","name":"Grace Hale","title":"Admin","character":"otto","voice":null,"greeting":"Hey, hi. I'm Grace Hale, admin.","lead":true,"script":[{"id":"s_1","action":"goto","url":"/users"},{"id":"s_2","action":"click","text":"Invite"},{"cue":"invited"}]},{"actor":"client","name":"Ada Lin","title":"Client","character":"iris","voice":"lily","greeting":"Hey, hi. I'm Ada Lin, client.","lead":false,"script":[{"waitFor":"invited"},{"id":"s_3","action":"awaitEmail"},{"id":"s_4","action":"expect","text":"You joined"}]}],"cues":[{"name":"invited","from":"admin","to":["client"]}],"agenda":[{"title":"Grace invites Ada","actor":"admin","step":"s_2","at":1,"line":""}],"agendaLine":"Everyone's here. Here is the plan. One: Grace invites Ada.","closingLine":"","passes":2,"latestRun":{"id":"9e6c3f26-0d1a-4b8e-8f3e-1c2d3e4f5a6b","status":"passed","verdict":"passed","createdAt":"2026-10-03T09:12:00.000Z","finishedAt":"2026-10-03T09:14:31.000Z","tape":{"slug":"q22cxRCebDFqy","url":"https://app.taada.dev/d/q22cxRCebDFqy","durationS":151}},"createdAt":"2026-10-02T17:40:00.000Z","updatedAt":"2026-10-03T09:14:31.000Z"}],"pagination":{"next":"MjAyNi0xMC0wMlQxNzo0MDowMC4wMDBafDJmNGM5ZTBh"}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"post":{"summary":"Make a test","tags":["Tests"],"description":"A test's script is each actor's part (`cast[].script`), or one list of steps each with its `role` (`steps`). Every unsaid word (greetings, the agenda line) is filled in when it is saved. Send `Idempotency-Key` to make a retry safe.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"steps":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{},"additionalProperties":{},"description":"A step in the recorder grammar (`{ \"action\": \"click\", \"text\": \"Invite\" }`), a cue (`{ \"cue\": \"invited\" }`), a wait (`{ \"waitFor\": \"invited\" }`) or a routine (`{ \"use\": \"sign_in\" }`)."}},"about":{"type":"string","maxLength":300},"lead":{"description":"The actor who reads the agenda. Defaults to the first, who is always the admin.","type":"string","minLength":1,"maxLength":40},"cast":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"actor":{"description":"The actor's role in the app's cast: `admin`, `client`.","type":"string","minLength":1,"maxLength":40},"role":{"description":"166's spelling of `actor`.","type":"string","minLength":1,"maxLength":40},"name":{"type":"string","maxLength":80},"title":{"type":"string","maxLength":60},"character":{"type":"string","enum":["pip","juno","bea","moss","fern","tide","otto","nova","iris","lumi","ruby","sol"]},"voice":{"nullable":true,"type":"string","enum":["bella","lily","brian","daniel","mine"]},"greeting":{"type":"string","maxLength":400},"script":{"description":"This actor's part.","maxItems":200,"type":"array","items":{"type":"object","properties":{},"additionalProperties":{},"description":"A step in the recorder grammar (`{ \"action\": \"click\", \"text\": \"Invite\" }`), a cue (`{ \"cue\": \"invited\" }`), a wait (`{ \"waitFor\": \"invited\" }`) or a routine (`{ \"use\": \"sign_in\" }`)."}}}}},"agenda":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"actor":{"type":"string","minLength":1,"maxLength":40},"role":{"type":"string","minLength":1,"maxLength":40},"step":{"description":"The id of the actor's step the chapter starts on.","type":"string","maxLength":80},"at":{"description":"Or its place in the actor's own script, counting from 0 (when the steps have no ids yet).","type":"integer","minimum":0,"maximum":199},"from":{"description":"166's index into the whole script, kept for its callers.","type":"integer","minimum":0,"maximum":199},"line":{"type":"string","maxLength":400}},"required":["title"]}},"agendaLine":{"type":"string","maxLength":400},"closingLine":{"type":"string","maxLength":400},"record":{"description":"Whether a run records: always, only a failure, or never. Null is the default: a saved test records always.","nullable":true,"type":"string","enum":["always","on_failure","never"]},"tags":{"description":"The test's tags, replacing the ones it has: each names a part of the app in one lowercase word (`companies`), or two joined by `/` (`settings/integrations`): letters, digits and `. _ :`, at most one dash in a word, up to 32 characters, at most 20. A ticket id belongs in `ref`, not a tag. Sent as typed, they are stored lower case with a dash for a space (`Release 2.4` is `release-2.4`). `[]` removes them all. A check can be started on tags (`POST /v1/runs` with `scope`); they never change what a pull request's check runs.","maxItems":20,"type":"array","items":{"type":"string","maxLength":60}},"ref":{"description":"The id your own tool keeps for this test (your feature or ticket id). Unique among the app's tests: 409 `ref_taken` when another test has it. Null clears it. Every result names it, so your tool can act on a failure.","nullable":true,"type":"string","maxLength":200}},"required":["name"]},"example":{"name":"Onboarding a client","cast":[{"actor":"admin","name":"Grace Hale","title":"Admin","script":[{"use":"sign_in"},{"action":"click","text":"Invite"},{"cue":"invited"}]},{"actor":"client","name":"Ada Lin","title":"Client","voice":"lily","script":[{"waitFor":"invited"},{"action":"awaitEmail"},{"action":"expect","text":"You joined"}]}],"agenda":[{"title":"Grace invites Ada","actor":"admin","at":1}]}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true,"description":"The app: its id, or its `owner/name` URL-encoded (`modulab%2Fsolivo`)."},{"schema":{"type":"string","maxLength":200},"in":"header","name":"idempotency-key","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":{}},"example":{"id":"test_2f4c9e0a-1b7d-4c3e-9a51-6d2f0e8b7c11","object":"test","app":{"id":"f15e6f9e-cd07-429e-aa12-4327ae531e26"},"feature":{"id":"5b1d0c2e-7a3f-4e19-8c6d-2e0f9a1b3c4d"},"name":"Onboarding a client","about":"A new client is set up, invited and sees only their own projects.","tags":["onboarding","critical"],"ref":"FEAT-1042","blocksPullRequests":false,"record":"always","recordIsDefault":true,"cast":[{"actor":"admin","name":"Grace Hale","title":"Admin","character":"otto","voice":null,"greeting":"Hey, hi. I'm Grace Hale, admin.","lead":true,"script":[{"id":"s_1","action":"goto","url":"/users"},{"id":"s_2","action":"click","text":"Invite"},{"cue":"invited"}]},{"actor":"client","name":"Ada Lin","title":"Client","character":"iris","voice":"lily","greeting":"Hey, hi. I'm Ada Lin, client.","lead":false,"script":[{"waitFor":"invited"},{"id":"s_3","action":"awaitEmail"},{"id":"s_4","action":"expect","text":"You joined"}]}],"cues":[{"name":"invited","from":"admin","to":["client"]}],"agenda":[{"title":"Grace invites Ada","actor":"admin","step":"s_2","at":1,"line":""}],"agendaLine":"Everyone's here. Here is the plan. One: Grace invites Ada.","closingLine":"","passes":2,"latestRun":{"id":"9e6c3f26-0d1a-4b8e-8f3e-1c2d3e4f5a6b","status":"passed","verdict":"passed","createdAt":"2026-10-03T09:12:00.000Z","finishedAt":"2026-10-03T09:14:31.000Z","tape":{"slug":"q22cxRCebDFqy","url":"https://app.taada.dev/d/q22cxRCebDFqy","durationS":151}},"createdAt":"2026-10-02T17:40:00.000Z","updatedAt":"2026-10-03T09:14:31.000Z"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/apps/{app}/tests/{test}":{"get":{"summary":"Get a test","tags":["Tests"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true,"description":"The app: its id, or its `owner/name` URL-encoded (`modulab%2Fsolivo`)."},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"test","required":true,"description":"The test: `test_<uuid>`, or the uuid alone."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":{}},"example":{"id":"test_2f4c9e0a-1b7d-4c3e-9a51-6d2f0e8b7c11","object":"test","app":{"id":"f15e6f9e-cd07-429e-aa12-4327ae531e26"},"feature":{"id":"5b1d0c2e-7a3f-4e19-8c6d-2e0f9a1b3c4d"},"name":"Onboarding a client","about":"A new client is set up, invited and sees only their own projects.","tags":["onboarding","critical"],"ref":"FEAT-1042","blocksPullRequests":false,"record":"always","recordIsDefault":true,"cast":[{"actor":"admin","name":"Grace Hale","title":"Admin","character":"otto","voice":null,"greeting":"Hey, hi. I'm Grace Hale, admin.","lead":true,"script":[{"id":"s_1","action":"goto","url":"/users"},{"id":"s_2","action":"click","text":"Invite"},{"cue":"invited"}]},{"actor":"client","name":"Ada Lin","title":"Client","character":"iris","voice":"lily","greeting":"Hey, hi. I'm Ada Lin, client.","lead":false,"script":[{"waitFor":"invited"},{"id":"s_3","action":"awaitEmail"},{"id":"s_4","action":"expect","text":"You joined"}]}],"cues":[{"name":"invited","from":"admin","to":["client"]}],"agenda":[{"title":"Grace invites Ada","actor":"admin","step":"s_2","at":1,"line":""}],"agendaLine":"Everyone's here. Here is the plan. One: Grace invites Ada.","closingLine":"","passes":2,"latestRun":{"id":"9e6c3f26-0d1a-4b8e-8f3e-1c2d3e4f5a6b","status":"passed","verdict":"passed","createdAt":"2026-10-03T09:12:00.000Z","finishedAt":"2026-10-03T09:14:31.000Z","tape":{"slug":"q22cxRCebDFqy","url":"https://app.taada.dev/d/q22cxRCebDFqy","durationS":151}},"createdAt":"2026-10-02T17:40:00.000Z","updatedAt":"2026-10-03T09:14:31.000Z"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"patch":{"summary":"Change a test","tags":["Tests"],"description":"Partial: whatever is not sent stays. `blocksPullRequests` switches the test on or off at any time; tests start on. The script is not patched (422 `script_read_only`): save the test again to change it. `tags` replaces the test's tags; `ref` sets or (with null) clears its reference.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"blocksPullRequests":{"type":"boolean"},"about":{"type":"string","maxLength":300},"lead":{"description":"The actor who reads the agenda. Defaults to the first, who is always the admin.","type":"string","minLength":1,"maxLength":40},"cast":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"actor":{"description":"The actor's role in the app's cast: `admin`, `client`.","type":"string","minLength":1,"maxLength":40},"role":{"description":"166's spelling of `actor`.","type":"string","minLength":1,"maxLength":40},"name":{"type":"string","maxLength":80},"title":{"type":"string","maxLength":60},"character":{"type":"string","enum":["pip","juno","bea","moss","fern","tide","otto","nova","iris","lumi","ruby","sol"]},"voice":{"nullable":true,"type":"string","enum":["bella","lily","brian","daniel","mine"]},"greeting":{"type":"string","maxLength":400},"script":{"description":"This actor's part.","maxItems":200,"type":"array","items":{"type":"object","properties":{},"additionalProperties":{},"description":"A step in the recorder grammar (`{ \"action\": \"click\", \"text\": \"Invite\" }`), a cue (`{ \"cue\": \"invited\" }`), a wait (`{ \"waitFor\": \"invited\" }`) or a routine (`{ \"use\": \"sign_in\" }`)."}}}}},"agenda":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"actor":{"type":"string","minLength":1,"maxLength":40},"role":{"type":"string","minLength":1,"maxLength":40},"step":{"description":"The id of the actor's step the chapter starts on.","type":"string","maxLength":80},"at":{"description":"Or its place in the actor's own script, counting from 0 (when the steps have no ids yet).","type":"integer","minimum":0,"maximum":199},"from":{"description":"166's index into the whole script, kept for its callers.","type":"integer","minimum":0,"maximum":199},"line":{"type":"string","maxLength":400}},"required":["title"]}},"agendaLine":{"type":"string","maxLength":400},"closingLine":{"type":"string","maxLength":400},"record":{"description":"Whether a run records: always, only a failure, or never. Null is the default: a saved test records always.","nullable":true,"type":"string","enum":["always","on_failure","never"]},"tags":{"description":"The test's tags, replacing the ones it has: each names a part of the app in one lowercase word (`companies`), or two joined by `/` (`settings/integrations`): letters, digits and `. _ :`, at most one dash in a word, up to 32 characters, at most 20. A ticket id belongs in `ref`, not a tag. Sent as typed, they are stored lower case with a dash for a space (`Release 2.4` is `release-2.4`). `[]` removes them all. A check can be started on tags (`POST /v1/runs` with `scope`); they never change what a pull request's check runs.","maxItems":20,"type":"array","items":{"type":"string","maxLength":60}},"ref":{"description":"The id your own tool keeps for this test (your feature or ticket id). Unique among the app's tests: 409 `ref_taken` when another test has it. Null clears it. Every result names it, so your tool can act on a failure.","nullable":true,"type":"string","maxLength":200}}},"examples":{"example1":{"value":{"record":"on_failure","blocksPullRequests":true}},"example2":{"value":{"tags":["checkout","critical"],"ref":"FEAT-1042"}}}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true,"description":"The app: its id, or its `owner/name` URL-encoded (`modulab%2Fsolivo`)."},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"test","required":true,"description":"The test: `test_<uuid>`, or the uuid alone."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":{}},"example":{"id":"test_2f4c9e0a-1b7d-4c3e-9a51-6d2f0e8b7c11","object":"test","app":{"id":"f15e6f9e-cd07-429e-aa12-4327ae531e26"},"feature":{"id":"5b1d0c2e-7a3f-4e19-8c6d-2e0f9a1b3c4d"},"name":"Onboarding a client","about":"A new client is set up, invited and sees only their own projects.","tags":["onboarding","critical"],"ref":"FEAT-1042","blocksPullRequests":false,"record":"always","recordIsDefault":true,"cast":[{"actor":"admin","name":"Grace Hale","title":"Admin","character":"otto","voice":null,"greeting":"Hey, hi. I'm Grace Hale, admin.","lead":true,"script":[{"id":"s_1","action":"goto","url":"/users"},{"id":"s_2","action":"click","text":"Invite"},{"cue":"invited"}]},{"actor":"client","name":"Ada Lin","title":"Client","character":"iris","voice":"lily","greeting":"Hey, hi. I'm Ada Lin, client.","lead":false,"script":[{"waitFor":"invited"},{"id":"s_3","action":"awaitEmail"},{"id":"s_4","action":"expect","text":"You joined"}]}],"cues":[{"name":"invited","from":"admin","to":["client"]}],"agenda":[{"title":"Grace invites Ada","actor":"admin","step":"s_2","at":1,"line":""}],"agendaLine":"Everyone's here. Here is the plan. One: Grace invites Ada.","closingLine":"","passes":2,"latestRun":{"id":"9e6c3f26-0d1a-4b8e-8f3e-1c2d3e4f5a6b","status":"passed","verdict":"passed","createdAt":"2026-10-03T09:12:00.000Z","finishedAt":"2026-10-03T09:14:31.000Z","tape":{"slug":"q22cxRCebDFqy","url":"https://app.taada.dev/d/q22cxRCebDFqy","durationS":151}},"createdAt":"2026-10-02T17:40:00.000Z","updatedAt":"2026-10-03T09:14:31.000Z"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a test","tags":["Tests"],"description":"Its runs and tapes stay. The cast stays: it is the app's.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true,"description":"The app: its id, or its `owner/name` URL-encoded (`modulab%2Fsolivo`)."},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"test","required":true,"description":"The test: `test_<uuid>`, or the uuid alone."}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/apps/{app}/tests/{test}/runs":{"get":{"summary":"List a test's runs","tags":["Tests"],"description":"Read only, newest first. To run a test, `POST /v1/runs { \"test\": \"test_…\" }`.","parameters":[{"schema":{"default":20,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"How many to return: 20 by default, 100 at most."},{"schema":{"type":"string","maxLength":200},"in":"query","name":"cursor","required":false,"description":"`pagination.next` from the page before."},{"schema":{"type":"string","enum":["queued","running","passed","blocked","errored"]},"in":"query","name":"status","required":false},{"schema":{"type":"string","enum":["passed","blocked"]},"in":"query","name":"verdict","required":false},{"schema":{"type":"string","maxLength":40},"in":"query","name":"since","required":false,"description":"ISO-8601: only runs made at or after it."},{"schema":{"type":"string","minLength":1,"maxLength":300},"in":"path","name":"app","required":true,"description":"The app: its id, or its `owner/name` URL-encoded (`modulab%2Fsolivo`)."},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"test","required":true,"description":"The test: `test_<uuid>`, or the uuid alone."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"pagination":{"type":"object","properties":{"next":{"nullable":true,"type":"string"}},"required":["next"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"example":{"data":[{"id":"9e6c3f26-0d1a-4b8e-8f3e-1c2d3e4f5a6b","status":"passed","verdict":"passed","createdAt":"2026-10-03T09:12:00.000Z","finishedAt":"2026-10-03T09:14:31.000Z","tape":{"slug":"q22cxRCebDFqy","url":"https://app.taada.dev/d/q22cxRCebDFqy","durationS":151}}],"pagination":{"next":"MjAyNi0xMC0wMlQxNzo0MDowMC4wMDBafDJmNGM5ZTBh"}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/webhooks":{"get":{"summary":"List webhook endpoints","tags":["Webhooks"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}}},"required":["data"],"additionalProperties":false},"example":{"data":[{"id":"whk_5b0c…","url":"https://example.com/tada","events":["run.started","run.completed","sweep.completed"],"createdAt":"2026-10-03T09:00:00.000Z","lastStatus":200,"lastAt":"2026-10-03T09:14:31.000Z"}]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"post":{"summary":"Make a webhook endpoint","tags":["Webhooks"],"description":"Tada POSTs `{ id, type, created, data }` to it for each event, signed `Tada-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">` with the secret returned here, once.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":500,"format":"starts_with","pattern":"^https:\\/\\/.*"},"events":{"minItems":1,"type":"array","items":{"type":"string","enum":["run.started","run.completed","sweep.completed"]}}},"required":["url"]},"example":{"url":"https://example.com/tada","events":["run.completed"]}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":{}},"example":{"id":"whk_5b0c…","url":"https://example.com/tada","events":["run.completed"],"secret":"whsec_…","createdAt":"2026-10-03T09:00:00.000Z","lastStatus":null,"lastAt":null}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/webhooks/{id}":{"delete":{"summary":"Delete a webhook endpoint","tags":["Webhooks"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/webhooks/{id}/test":{"post":{"summary":"Send a test delivery","tags":["Webhooks"],"description":"Sends one signed `ping` event to this endpoint, so you can prove your receiver checks the signature. Answers whether it was accepted and the status it gave; `status` is null when nothing answered.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"delivered":{"type":"boolean"},"status":{"nullable":true,"type":"number"},"endpoint":{"type":"object","properties":{},"additionalProperties":{}}},"required":["delivered","status","endpoint"],"additionalProperties":false},"example":{"delivered":true,"status":200,"endpoint":{"id":"whk_5b0c…","url":"https://example.com/tada","events":["run.started","run.completed","sweep.completed"],"createdAt":"2026-10-03T09:00:00.000Z","lastStatus":200,"lastAt":"2026-10-06T10:02:11.000Z"}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/checks":{"get":{"summary":"List finished checks","tags":["Other"],"description":"Finished checks of this workspace, newest first. Each is the same object `GET /v1/checks/:id` returns, and every test in it names its `tags` and `ref`. With `failure=`, `tag=` or `ref=` a page may be short, or empty, with more behind it: follow `pagination.next` until it is null.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"app","required":false,"description":"Only checks of this app."},{"schema":{"type":"string","enum":["passed","blocked","did_not_finish"]},"in":"query","name":"result","required":false},{"schema":{"type":"string","enum":["app_broke","test_out_of_date","could_not_get_in","tada_did_not_finish"]},"in":"query","name":"failure","required":false,"description":"Only checks that did not pass for this reason: the check itself, or any failed test of it."},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"query","name":"tag","required":false,"description":"Only checks that ran a test carrying this tag (as the test carries it now)."},{"schema":{"type":"string","minLength":1,"maxLength":200},"in":"query","name":"ref","required":false,"description":"Only checks that ran the test with this reference: the id your own tool keeps on it."},{"schema":{"type":"string","minLength":1,"maxLength":60},"in":"query","name":"version","required":false,"description":"Only checks of this version: a commit (seven or more characters of its sha), a pull request number, or both with a comma."},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"in":"query","name":"since","required":false,"description":"Only checks that finished at or after this time."},{"schema":{"default":20,"type":"integer","minimum":1,"maximum":50},"in":"query","name":"limit","required":false,"description":"How many to return: 20 by default, 50 at most."},{"schema":{"type":"string","maxLength":200},"in":"query","name":"cursor","required":false,"description":"`pagination.next` from the page before."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"pagination":{"type":"object","properties":{"next":{"nullable":true,"type":"string"}},"required":["next"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/checks/{id}":{"get":{"summary":"Read one check","tags":["Other"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":{}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/checks/{id}/reply":{"get":{"summary":"Read one check or try, as an agent is told it","tags":["Other"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":{}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/calls":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"meetingUrl":{"type":"string","minLength":10,"maxLength":2000},"videoId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"roomId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"joinAt":{"nullable":true,"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"listening":{"type":"boolean"}},"required":["meetingUrl"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/calls/tapes":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/calls/{id}/cancel":{"post":{"tags":["Other"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/calls/{id}":{"patch":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listening":{"type":"boolean"}},"required":["listening"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/calls/{id}/commands":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["play_tape"]},"videoId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["kind","videoId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["seek_chapter"]},"index":{"type":"integer","minimum":0,"maximum":200}},"required":["kind","index"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["pause"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["resume"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["show_closing"]}},"required":["kind"],"additionalProperties":false}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/present/{token}":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":100},"in":"path","name":"token","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/present/{token}/commands":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"integer","minimum":0,"maximum":1000000},"in":"query","name":"after","required":false},{"schema":{"type":"string","minLength":1,"maxLength":100},"in":"path","name":"token","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/present/{token}/finished":{"post":{"tags":["Other"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":100},"in":"path","name":"token","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/present/{token}/listening/announced":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"spoken":{"type":"boolean"}},"required":["spoken"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":100},"in":"path","name":"token","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/present/{token}/speech/{which}":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":100},"in":"path","name":"token","required":true},{"schema":{"type":"string","minLength":1,"maxLength":20},"in":"path","name":"which","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/pages/{kind}/{page}/sharing":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string","enum":["report","test","pull_request"]},"in":"path","name":"kind","required":true},{"schema":{"type":"string","maxLength":80},"in":"path","name":"page","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/pages/{kind}/{page}/share":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"nullable":true,"type":"object","properties":{"access":{"type":"string","enum":["view","edit"]},"expires":{"type":"string","enum":["never","1d","7d","30d"]}}}}}},"parameters":[{"schema":{"type":"string","enum":["report","test","pull_request"]},"in":"path","name":"kind","required":true},{"schema":{"type":"string","maxLength":80},"in":"path","name":"page","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"access":{"type":"string","enum":["view","edit"]},"expires":{"type":"string","enum":["never","1d","7d","30d"]}}}}}},"parameters":[{"schema":{"type":"string","enum":["report","test","pull_request"]},"in":"path","name":"kind","required":true},{"schema":{"type":"string","maxLength":80},"in":"path","name":"page","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Other"],"parameters":[{"schema":{"type":"string","enum":["report","test","pull_request"]},"in":"path","name":"kind","required":true},{"schema":{"type":"string","maxLength":80},"in":"path","name":"page","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/pages/{kind}/{page}/share/move":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["from"]}}}},"parameters":[{"schema":{"type":"string","enum":["report","test","pull_request"]},"in":"path","name":"kind","required":true},{"schema":{"type":"string","maxLength":80},"in":"path","name":"page","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/pages/{kind}/{page}/share/people":{"post":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","maxLength":400}},"access":{"type":"string","enum":["view","edit"]}},"required":["emails","access"]}}}},"parameters":[{"schema":{"type":"string","enum":["report","test","pull_request"]},"in":"path","name":"kind","required":true},{"schema":{"type":"string","maxLength":80},"in":"path","name":"page","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/pages/{kind}/{page}/share/people/{grantId}":{"patch":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"access":{"type":"string","enum":["view","edit"]}},"required":["access"]}}}},"parameters":[{"schema":{"type":"string","enum":["report","test","pull_request"]},"in":"path","name":"kind","required":true},{"schema":{"type":"string","maxLength":80},"in":"path","name":"page","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"grantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Other"],"parameters":[{"schema":{"type":"string","enum":["report","test","pull_request"]},"in":"path","name":"kind","required":true},{"schema":{"type":"string","maxLength":80},"in":"path","name":"page","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"grantId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/runs/{runId}/share":{"get":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["Runs"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"runId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/public/pages/{slug}":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/public/reports/{slug}":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/shared/pages":{"get":{"tags":["Other"],"responses":{"200":{"description":"Default Response"}}}},"/v1/shared/pages/{slug}":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/shared/pages/{slug}/doc":{"put":{"tags":["Other"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"doc":{"type":"array","items":{}}},"required":["doc"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/public/reports/{slug}/poster.jpg":{"get":{"tags":["Other"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/d/{slug}":{"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/d/{slug}/poster.jpg":{"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/d/{slug}/video.mp4":{"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/d/{slug}/loop.mp4":{"get":{"tags":["Demos"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/d/{slug}/view":{"post":{"tags":["Demos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string","minLength":1,"maxLength":64}},"required":["sessionId"]}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/d/{slug}/comments":{"post":{"tags":["Demos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"author":{"default":"Guest","type":"string","minLength":1,"maxLength":120},"body":{"default":"","type":"string","maxLength":4000},"timestampS":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"default":"comment","type":"string","enum":["comment","reaction"]},"parentId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"slug","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/waitlist":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["email"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/invite/verify":{"get":{"tags":["Account"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"query","name":"token","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/invite":{"post":{"tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}}},"required":["emails"]}}}},"responses":{"200":{"description":"Default Response"}}}}},"servers":[{"url":"https://api.taada.dev"},{"url":"http://localhost:3001"}],"security":[{"bearer":[]}],"tags":[{"name":"Tests","description":"A test is a saved scenario: each actor's script and the cues between them, belonging to a feature. Run one with POST /v1/runs { test }: the system opens a Room for it, brings its actors in and closes it after."},{"name":"Cast","description":"The people Tada plays in an app, one record each: name, job, character, voice, routines and their logins, one per environment."},{"name":"Webhooks","description":"Where a workspace hears run.started and run.completed, signed."},{"name":"Test users","description":"The people Tada uses to sign in to an app: who it has, making one, changing one, removing one."},{"name":"Apps","description":"Connected repositories, their environments and their schedules."},{"name":"Features","description":"A feature is what a customer sees: its journeys, its planning and its verdict."},{"name":"Runs","description":"Starting a run, following one, and what it decided."},{"name":"Flows","description":"The flow files that live in the repository and are replayed at a deploy."},{"name":"Demos","description":"Recorded films, their public watch links and what viewers said on them."},{"name":"Rivet","description":"The assistant in the dashboard: its threads, its models and what it knows."},{"name":"Tron","description":"Tada's own browser."},{"name":"Connections","description":"GitHub and the other services an account connects, and what they send us."},{"name":"Billing","description":"Plans, usage and what a run costs."},{"name":"Keys","description":"Personal API keys."},{"name":"Voice","description":"Speech for a film: voices, narration and the talk surface."},{"name":"The runner","description":"Tada's own worker pool. A customer credential never opens these."},{"name":"Account","description":"Signing in, the people in a workspace, invitations and settings."},{"name":"Internal","description":"Health, telemetry and the rest of the plumbing."},{"name":"Other","description":"Not yet grouped. A route landing here is a gap in lib/api-docs.ts, not a kind of thing."}]}