{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Harbor","colors":{"primary":"#111111","light":"#3F3F46","dark":"#F4F4F5"},"logo":{"light":"https://mintcdn.com/harborframework/l9c_ohETpnOqpDv2/harbor-wordmark-light.png?fit=max\u0026auto=format\u0026n=l9c_ohETpnOqpDv2\u0026q=85\u0026s=1f1a976e45a8c4d0f6c6aed694ec906f","dark":"https://mintcdn.com/harborframework/l9c_ohETpnOqpDv2/harbor-wordmark-dark.png?fit=max\u0026auto=format\u0026n=l9c_ohETpnOqpDv2\u0026q=85\u0026s=5ea5d359addaefdfb46e87339e87b65b"},"favicon":"https://mintcdn.com/harborframework/75tzvIWN0ZVN8I1R/harbor-logo.png?fit=max\u0026auto=format\u0026n=75tzvIWN0ZVN8I1R\u0026q=85\u0026s=014c9af368afe29d040b905c7c04fef7","api":{"playground":{"display":"interactive","proxy":false},"examples":{"defaults":"required","languages":["curl","python"],"prefill":true}},"appearance":{"default":"system"},"background":{"color":{"light":"#FAFAFA","dark":"#09090B"}},"navbar":{"links":[{"href":"https://github.com/harbor-framework/harbor","type":"github"}]},"footer":{"socials":{"github":"https://github.com/harbor-framework/harbor","discord":"https://discord.gg/QVvyhRw5UQ"},"links":[{"header":"Community","items":[{"label":"GitHub","href":"https://github.com/harbor-framework/harbor"},{"label":"Discord","href":"https://discord.gg/QVvyhRw5UQ"},{"label":"Hub","href":"https://hub.harborframework.com"}]}]},"seo":{"metatags":{"canonical":"https://docs.harborframework.com"}},"fonts":{"family":"Geist"},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"system","latex":false},"contextual":{"options":["copy","view","claude","chatgpt"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Harbor Hub","icon":"layers","href":"https://hub.harborframework.com"},{"anchor":"Discord","icon":"messages-square","href":"https://discord.gg/QVvyhRw5UQ"},{"anchor":"Docs MCP","icon":"bot","href":"/ai-agents"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"harborframework","hasAudioNarration":false,"actualSubdomain":"harborframework","customDomains":["docs.harborframework.com"],"gitSource":{"type":"github","owner":"harbor-framework","repo":"harbor","deployBranch":"main","contentDirectory":"docs-mintlify","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{},"buildId":"6af35037032155910fed6011","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Docs","count":72},{"language":"default","tag":"Jobs","count":19},{"language":"default","tag":"API \u0026 SDK","count":19},{"language":"default","tag":"Tasks","count":14},{"language":"default","tag":"Hosted Harbor","count":9},{"language":"default","tag":"News","count":7},{"language":"default","tag":"Agents","count":6},{"language":"default","tag":"Harbor Hub","count":6},{"language":"default","tag":"Earlier announcements","count":6},{"language":"default","tag":"Rollouts","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* adlam */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwNS0hkBz.woff2) format('woff2');\n unicode-range: U+061F, U+0640, U+2015, U+201B, U+2020-2021, U+2030, U+204F, U+25CC, U+2E28-2E29, U+2E41, U+1E900-1E95F;\n}\n/* canadian-aboriginal */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwJm0hkBz.woff2) format('woff2');\n unicode-range: U+02C7, U+02D8-02D9, U+02DB, U+0307, U+1400-167F, U+18B0-18F5, U+25CC, U+11AB0-11ABF;\n}\n/* cherokee */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwKW0hkBz.woff2) format('woff2');\n unicode-range: U+0300-0302, U+0304, U+030B-030C, U+0323-0324, U+0330-0331, U+13A0-13FF, U+AB70-ABBF;\n}\n/* math */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwMq0hkBz.woff2) format('woff2');\n unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;\n}\n/* old-permic */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwNq0hkBz.woff2) format('woff2');\n unicode-range: U+0300, U+0306-0308, U+0313, U+0483, U+20DB, U+25CC, U+10350-1037A;\n}\n/* symbols */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwNi0hkBz.woff2) format('woff2');\n unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AE, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F8D0-1F8D8, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FAC6, U+1FAC8, U+1FACC-1FADD, U+1FADF-1FAEB, U+1FAEF-1FAFA, U+1FB00-1FBFF;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwAyVo31KpA.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* syriac */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwMW0hkBz.woff2) format('woff2');\n unicode-range: U+0303-0304, U+0307-0308, U+030A, U+0320, U+0323-0325, U+032D-032E, U+0330-0331, U+060C, U+061B-061C, U+061F, U+0621, U+0640, U+064B-0655, U+0660-066C, U+0670, U+0700-074F, U+0860-086A, U+1DF8, U+1DFA, U+200C-200F, U+25CC, U+2670-2671;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwLm0hkBz.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwLi0hkBz.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxisyogzv91QhV44Z_GQBHsGf5PuWEt-oWZnOk-ljWSpwaFBwLa0hg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* adlam */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jEb8LSsgg.woff2) format('woff2');\n unicode-range: U+061F, U+0640, U+2015, U+201B, U+2020-2021, U+2030, U+204F, U+25CC, U+2E28-2E29, U+2E41, U+1E900-1E95F;\n}\n/* canadian-aboriginal */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jFW8LSsgg.woff2) format('woff2');\n unicode-range: U+02C7, U+02D8-02D9, U+02DB, U+0307, U+1400-167F, U+18B0-18F5, U+25CC, U+11AB0-11ABF;\n}\n/* cherokee */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jFq8LSsgg.woff2) format('woff2');\n unicode-range: U+0300-0302, U+0304, U+030B-030C, U+0323-0324, U+0330-0331, U+13A0-13FF, U+AB70-ABBF;\n}\n/* math */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jEF8LSsgg.woff2) format('woff2');\n unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;\n}\n/* old-permic */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jEV8LSsgg.woff2) format('woff2');\n unicode-range: U+0300, U+0306-0308, U+0313, U+0483, U+20DB, U+25CC, U+10350-1037A;\n}\n/* symbols */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jEX8LSsgg.woff2) format('woff2');\n unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AE, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F8D0-1F8D8, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FAC6, U+1FAC8, U+1FACC-1FADD, U+1FADF-1FAEB, U+1FAEF-1FAFA, U+1FB00-1FBFF;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jHD0ZGRu3k.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* syriac */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jEK8LSsgg.woff2) format('woff2');\n unicode-range: U+0303-0304, U+0307-0308, U+030A, U+0320, U+0323-0325, U+032D-032E, U+0330-0331, U+060C, U+061B-061C, U+061F, U+0621, U+0640, U+064B-0655, U+0660-066C, U+0670, U+0700-074F, U+0860-086A, U+1DF8, U+1DFA, U+200C-200F, U+25CC, U+2670-2671;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jF28LSsgg.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jF38LSsgg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Google Sans Code';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/googlesanscode/v22/pxiSyogzv91QhV44Z_GQBHsGf5PuckJMZfIVTPZaiXEp_jF58LQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\ncode,kbd,pre,samp,code-block{font-family:\"Google Sans Code\", ui-monospace, SFMono-Regular, Menlo, Monaco,\n Consolas, monospace}body:has(#news-page) :is(#sidebar-content,#content-side-layout,#page-context-menu){display:none}body:has(#news-page) #body-content{padding-left:0}body:has(#news-page) #content-area{margin-inline:auto}.run-examples{margin-block:1.25rem 2rem;overflow:hidden;border:1px solid rgb(3 7 18 / 10%);border-radius:1rem}.run-examples [data-component-part=\"tabs-list\"]{margin:0!important;padding-inline:0.75rem;gap:0.5rem;background:#f9fafb}.run-examples [data-component-part=\"tab-button\"]{padding-inline:0.5rem;font-weight:500}.run-examples .code-block{margin:0!important;padding:0;border:0;border-radius:0}.run-examples [data-component-part=\"code-block-root\"],.run-examples [data-component-part=\"code-block-header\"]{border-radius:0}.dark .run-examples{border-color:rgb(255 255 255 / 10%)}.dark .run-examples [data-component-part=\"tabs-list\"]{background:rgb(255 255 255 / 5%)}.run-example{margin:0;border-top:1px solid rgb(3 7 18 / 10%)}.run-example>details>summary{width:fit-content;margin:0.75rem 1rem 0.75rem auto;padding:0.375rem 0.75rem;border-radius:0.5rem;background:#18181b;color:#fff;font-size:0.875rem;font-weight:500;line-height:1.5rem;list-style:none;cursor:pointer}.run-example>details>summary::-webkit-details-marker{display:none}.run-example>details>summary:focus-visible{outline:2px solid currentColor;outline-offset:-3px}.run-example [data-component-part=\"accordion-content\"]{border-top:1px solid rgb(3 7 18 / 10%)}.dark .run-example,.dark .run-example [data-component-part=\"accordion-content\"]{border-top-color:rgb(255 255 255 / 10%)}.dark .run-example>details>summary{background:#f4f4f5;color:#18181b}.run-example>details{margin:0;padding:0;border:0;border-radius:0;background:#f9fafb}.dark .run-example>details{background:rgb(255 255 255 / 5%)}.run-example [data-component-part=\"accordion-caret-right\"]{display:none}.run-example [data-component-part=\"accordion-title\"]{color:inherit;font-size:inherit}.run-example>details[open] [data-component-part=\"accordion-title-container\"]{display:none}.run-example>details[open]>summary::after{content:\"Hide output\";font-size:0.875rem}.run-example-run>details[open]>summary::after{content:\"Hide Output\"}.run-example [data-component-part=\"accordion-content\"]{padding:0}.run-example-run [data-component-part=\"accordion-content\"]{padding:1rem;overflow:visible;background:#fff}.dark .run-example-run [data-component-part=\"accordion-content\"]{background:var(--shiki-dark-bg, #0b0c0e)}.run-example-run [data-component-part=\"accordion-content\"] [data-component-part=\"code-block-root\"],.run-example-run [data-component-part=\"accordion-content\"] [data-component-part=\"scroll-area-viewport\"],.run-example-run [data-component-part=\"accordion-content\"] [data-component-part=\"scroll-area-content\"]{display:contents!important}.run-example-run [data-component-part=\"accordion-content\"] .code-block-fade-overlay{display:none}.run-example-run [data-component-part=\"accordion-content\"] pre,.run-example-run [data-component-part=\"accordion-content\"] .whitespace-pre{white-space:pre-wrap;overflow-wrap:anywhere}.run-examples:has(.run-example-run) [data-component-part=\"tab-content\"]{overflow:visible}.auth-resolution-table{font-family:\"Google Sans Code\", monospace;font-size:0.8rem;line-height:1.7}.auth-resolution-table table{width:100%;table-layout:fixed;margin:0;font-size:inherit;border-collapse:collapse}.auth-resolution-table [role=\"region\"]{overflow:visible}.auth-resolution-table td code{padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;white-space:normal}.auth-resolution-table th,.auth-resolution-table td{padding:0.65rem 0.75rem;border:1px solid rgb(3 7 18 / 15%);vertical-align:top;overflow-wrap:anywhere}.auth-resolution-table th:first-child,.auth-resolution-table td:first-child{width:29%}.dark .auth-resolution-table th,.dark .auth-resolution-table td{border-color:rgb(255 255 255 / 20%)}.error-policy-table td{min-width:0!important}.rh-pipeline{--rh-fg: #09090b;--rh-muted: #71717a;--rh-line: #e4e4e7;--rh-hover: #f4f4f5;margin-block:1.5rem 2rem;border:1px solid var(--rh-line);color:var(--rh-fg);font-family:\"Google Sans Code\", ui-monospace, SFMono-Regular, Menlo, monospace;font-size:0.8125rem;line-height:1.45}.dark .rh-pipeline{--rh-fg: #fafafa;--rh-muted: #a1a1aa;--rh-line: #27272a;--rh-hover: #18181b}.rh-pipeline .rh-label{color:var(--rh-muted);font-size:0.75rem;letter-spacing:0.04em;text-transform:uppercase}.rh-pipeline .rh-phase{grid-column:1 / -1;padding:0.6rem 1rem;border-bottom:1px solid var(--rh-line)}.rh-pipeline .rh-row{display:grid;grid-template-columns:repeat(4, auto)}.rh-pipeline .rh-row-6{grid-template-columns:repeat(3, minmax(0, 1fr))}.rh-pipeline .rh-row-6>.rh-item:nth-child(n+5){border-top:1px dashed var(--rh-line)}.rh-pipeline .rh-row.rh-row-6>.rh-item:nth-child(5){border-left:0}.rh-pipeline .rh-row>.rh-item+.rh-item{border-left:1px dashed var(--rh-line)}.rh-pipeline .rh-stages{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));border-block:1px solid var(--rh-line)}.rh-pipeline .rh-stage{display:flex;flex-direction:column}.rh-pipeline .rh-stage+.rh-stage{border-left:1px solid var(--rh-line)}.rh-pipeline .rh-stage>.rh-title{padding:0.6rem 1rem;border-bottom:1px solid var(--rh-line);font-weight:600}.rh-pipeline .rh-item{display:block;padding:0.55rem 1rem;color:inherit;text-decoration:none}.rh-pipeline a.rh-item:hover{background:var(--rh-hover)}.rh-pipeline .rh-stage>.rh-item+.rh-item{border-top:1px dashed var(--rh-line)}.rh-pipeline .rh-item span{display:block;color:var(--rh-muted);font-size:0.75rem}@media (max-width: 640px){.rh-pipeline .rh-row,.rh-pipeline .rh-row-6{grid-template-columns:repeat(2, minmax(0, 1fr))}.rh-pipeline .rh-row.rh-row-6>.rh-item:nth-child(5){border-left:1px dashed var(--rh-line)}.rh-pipeline .rh-row>.rh-item:nth-child(even){border-left:0}.rh-pipeline .rh-row>.rh-item:nth-child(n+4){border-top:1px dashed var(--rh-line)}.rh-pipeline .rh-stages{grid-template-columns:minmax(0, 1fr)}.rh-pipeline .rh-stage+.rh-stage{border-left:0;border-top:1px solid var(--rh-line)}}"}],"page":{"pagePath":"api-sdk/rollouts/cancel-rollout","slug":"/api-sdk/rollouts/cancel-rollout","pageMetadata":{"title":"Cancel Rollout","description":"Cancel a rollout. Set soft=true to let it finish if already running.","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /rollouts/{rollout_id}/cancel","href":"/api-sdk/rollouts/cancel-rollout","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Cancel a rollout. Set soft=true to let it finish if already running.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Cancel Rollout","description":"Cancel a rollout. Set soft=true to let it finish if already running.","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /rollouts/{rollout_id}/cancel","href":"/api-sdk/rollouts/cancel-rollout","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Cancel Rollout","description":"Cancel a rollout. Set soft=true to let it finish if already running.","operationId":"cancel_rollout_rollouts__rollout_id__cancel_post","parameters":["0cbe485d-99fe-4542-bfc0-f80e92541ff9","e69e38fe-9f98-4840-9980-04ede2b8ad18"],"requestBody":"0d7dc932-30d7-4364-91dd-2cc29fd61b1c","responses":{"200":"2be5b2cc-9b45-4fc5-8278-1d6d43bc6b9a","422":"64abe657-f50a-41f1-be7a-9d4620df119c","default":"d6077664-9f0c-4e33-8735-a129b0707585"},"tags":["Rollouts"],"x-codeSamples":[{"lang":"python","label":"Harbor SDK","source":"from harbor import Harbor\n\nclient = Harbor()\nresult = client.cancel_rollout(\"ROLLOUT_ID\", soft=True)\nprint(result)\nclient.close()\n"}],"method":"post","type":"path","servers":["7ba5fe3b-382f-4910-9a02-c8b18c140efa","569dfa06-ca71-4fa0-810e-74350cb1607a"],"security":["042c78fe-f3d7-49e0-b8a5-c52c547d2731","aa77959c-4c39-415c-ac02-625a98d6e50b"],"path":"/rollouts/{rollout_id}/cancel","baseUrlOptions":["http://127.0.0.1:{port}","https://{host}"],"title":"Cancel Rollout","codeSamples":[{"label":"Harbor SDK","lang":"python","source":"from harbor import Harbor\n\nclient = Harbor()\nresult = client.cancel_rollout(\"ROLLOUT_ID\", soft=True)\nprint(result)\nclient.close()\n"}],"requestExampleLanguages":["bash","python"],"requiredOnlyExamples":true,"requestExampleType":"codeSamples","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.soft":false}],"disableProxy":true},"dependencies":{"parameters":{"0cbe485d-99fe-4542-bfc0-f80e92541ff9":{"name":"rollout_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rollout Id","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"e69e38fe-9f98-4840-9980-04ede2b8ad18":{"name":"Harbor-API-Version","in":"header","required":false,"schema":{"type":"string","default":"2026-10-30","title":"Harbor-Api-Version","isRequired":false,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"properties":{"soft":{"type":"boolean","title":"Soft","default":false,"uniqueKey":"soft","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","title":"CancelRequest","uniqueKey":"","typeLabel":"CancelRequest · object"},"examples":{"Example":{"title":"Example","value":{"soft":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"2be5b2cc-9b45-4fc5-8278-1d6d43bc6b9a":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"rollout":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At","isRequired":true,"uniqueKey":"rollout.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","isRequired":true,"uniqueKey":"rollout.updated_at","typeLabel":"string\u003cdate-time>"},"started_at":{"oneOf":[{"type":"string","title":"Started At","format":"date-time","isRequired":true,"uniqueKey":"rollout.started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Started At","isRequired":true,"uniqueKey":"rollout.started_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.started_at","typeLabel":"string\u003cdate-time> | null"},"finished_at":{"oneOf":[{"type":"string","title":"Finished At","format":"date-time","isRequired":true,"uniqueKey":"rollout.finished_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Finished At","isRequired":true,"uniqueKey":"rollout.finished_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.finished_at","typeLabel":"string\u003cdate-time> | null"},"id":{"type":"string","format":"uuid","title":"Id","isRequired":true,"uniqueKey":"rollout.id","typeLabel":"string\u003cuuid>"},"job_id":{"type":"string","format":"uuid","title":"Job Id","isRequired":true,"uniqueKey":"rollout.job_id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.name","typeLabel":"string"},"state":{"type":"string","enum":["queued","running","paused","cancelling","finished","cancelled"],"title":"State","isRequired":true,"uniqueKey":"rollout.state","typeLabel":"enum\u003cstring>"},"retry_of":{"oneOf":[{"type":"string","title":"Retry Of","format":"uuid","isRequired":true,"uniqueKey":"rollout.retry_of.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Retry Of","isRequired":true,"uniqueKey":"rollout.retry_of.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.retry_of","typeLabel":"string\u003cuuid> | null"},"phase":{"oneOf":[{"type":"string","title":"Phase","enum":["environment_setup","agent_setup","agent_execution","verifier","collection","cleanup"],"isRequired":true,"uniqueKey":"rollout.phase.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Phase","isRequired":true,"uniqueKey":"rollout.phase.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.phase","typeLabel":"enum\u003cstring> | null"},"task":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.task.name","typeLabel":"string"},"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.task.digest","typeLabel":"string"},"source":{"oneOf":[{"type":"string","title":"Source","isRequired":true,"uniqueKey":"rollout.task.source.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source","isRequired":true,"uniqueKey":"rollout.task.source.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.task.source","typeLabel":"string | null"}},"type":"object","required":["name","digest","source"],"title":"TaskIdentity","description":"Resolved task content; source is a label, not a registry identity.","isRequired":true,"uniqueKey":"rollout.task","typeLabel":"TaskIdentity · object"},"agent":{"properties":{"name":{"oneOf":[{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.agent.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","isRequired":true,"uniqueKey":"rollout.agent.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.agent.name","typeLabel":"string | null"},"version":{"oneOf":[{"type":"string","title":"Version","isRequired":true,"uniqueKey":"rollout.agent.version.oneOf.0","typeLabel":"string"},{"type":"null","title":"Version","isRequired":true,"uniqueKey":"rollout.agent.version.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.agent.version","typeLabel":"string | null"}},"type":"object","required":["name","version"],"title":"AgentIdentity","description":"Configured implementation name/import path and observed runtime version.","isRequired":true,"uniqueKey":"rollout.agent","typeLabel":"AgentIdentity · object"},"model":{"properties":{"name":{"oneOf":[{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.model.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","isRequired":true,"uniqueKey":"rollout.model.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.model.name","typeLabel":"string | null"},"provider":{"oneOf":[{"type":"string","title":"Provider","isRequired":true,"uniqueKey":"rollout.model.provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Provider","isRequired":true,"uniqueKey":"rollout.model.provider.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.model.provider","typeLabel":"string | null"},"reasoning_effort":{"oneOf":[{"type":"string","title":"Reasoning Effort","isRequired":true,"uniqueKey":"rollout.model.reasoning_effort.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reasoning Effort","isRequired":true,"uniqueKey":"rollout.model.reasoning_effort.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.model.reasoning_effort","typeLabel":"string | null"}},"type":"object","required":["name","provider","reasoning_effort"],"title":"ModelIdentity","description":"Configured model string and reasoning effort, with observed provider.","isRequired":true,"uniqueKey":"rollout.model","typeLabel":"ModelIdentity · object"},"rewards":{"oneOf":[{"type":"object","title":"Rewards","additionalProperties":{"oneOf":[{"type":"number","uniqueKey":"rollout.rewards.oneOf.0.additionalProperties.oneOf.0","typeLabel":"number"},{"type":"integer","uniqueKey":"rollout.rewards.oneOf.0.additionalProperties.oneOf.1","typeLabel":"integer"},{"type":"null","uniqueKey":"rollout.rewards.oneOf.0.additionalProperties.oneOf.2","typeLabel":"null"}],"uniqueKey":"rollout.rewards.oneOf.0.additionalProperties","typeLabel":"number | integer | null"},"isRequired":true,"uniqueKey":"rollout.rewards.oneOf.0","typeLabel":"Rewards · object"},{"type":"null","title":"Rewards","isRequired":true,"uniqueKey":"rollout.rewards.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.rewards","typeLabel":"Rewards · object | null"},"usage":{"properties":{"n_input_tokens":{"oneOf":[{"type":"integer","title":"N Input Tokens","isRequired":true,"uniqueKey":"rollout.usage.n_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Input Tokens","isRequired":true,"uniqueKey":"rollout.usage.n_input_tokens.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.usage.n_input_tokens","typeLabel":"integer | null"},"n_cached_input_tokens":{"oneOf":[{"type":"integer","title":"N Cached Input Tokens","isRequired":true,"uniqueKey":"rollout.usage.n_cached_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Cached Input Tokens","isRequired":true,"uniqueKey":"rollout.usage.n_cached_input_tokens.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.usage.n_cached_input_tokens","typeLabel":"integer | null"},"n_output_tokens":{"oneOf":[{"type":"integer","title":"N Output Tokens","isRequired":true,"uniqueKey":"rollout.usage.n_output_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Output Tokens","isRequired":true,"uniqueKey":"rollout.usage.n_output_tokens.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.usage.n_output_tokens","typeLabel":"integer | null"},"cost_usd":{"oneOf":[{"type":"number","title":"Cost Usd","isRequired":true,"uniqueKey":"rollout.usage.cost_usd.oneOf.0","typeLabel":"number"},{"type":"null","title":"Cost Usd","isRequired":true,"uniqueKey":"rollout.usage.cost_usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.usage.cost_usd","typeLabel":"number | null"}},"type":"object","required":["n_input_tokens","n_cached_input_tokens","n_output_tokens","cost_usd"],"title":"Usage","description":"Recorded usage, with null for unknown values; input includes cached input.","isRequired":true,"uniqueKey":"rollout.usage","typeLabel":"Usage · object"},"error_type":{"oneOf":[{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"rollout.error_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Error Type","isRequired":true,"uniqueKey":"rollout.error_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.error_type","typeLabel":"string | null"},"lock":{"properties":{"task":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.lock.task.name","typeLabel":"string"},"type":{"type":"string","enum":["local","git","package"],"title":"Type","isRequired":true,"uniqueKey":"rollout.lock.task.type","typeLabel":"enum\u003cstring>"},"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.lock.task.digest","typeLabel":"string"},"version":{"oneOf":[{"type":"string","title":"Version","uniqueKey":"rollout.lock.task.version.oneOf.0","typeLabel":"string"},{"type":"null","title":"Version","uniqueKey":"rollout.lock.task.version.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.task.version","typeLabel":"string | null"},"source":{"oneOf":[{"type":"string","title":"Source","uniqueKey":"rollout.lock.task.source.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source","uniqueKey":"rollout.lock.task.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.task.source","typeLabel":"string | null"},"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.lock.task.path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.lock.task.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.task.path","typeLabel":"string\u003cpath> | null"},"git_url":{"oneOf":[{"type":"string","title":"Git Url","uniqueKey":"rollout.lock.task.git_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Git Url","uniqueKey":"rollout.lock.task.git_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.task.git_url","typeLabel":"string | null"},"git_commit_id":{"oneOf":[{"type":"string","title":"Git Commit Id","uniqueKey":"rollout.lock.task.git_commit_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Git Commit Id","uniqueKey":"rollout.lock.task.git_commit_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.task.git_commit_id","typeLabel":"string | null"}},"type":"object","required":["name","type","digest"],"title":"TaskLock","isRequired":true,"uniqueKey":"rollout.lock.task","typeLabel":"TaskLock · object"},"agent":{"properties":{"name":{"oneOf":[{"type":"string","title":"Name","uniqueKey":"rollout.lock.agent.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","uniqueKey":"rollout.lock.agent.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.name","typeLabel":"string | null"},"import_path":{"oneOf":[{"type":"string","title":"Import Path","uniqueKey":"rollout.lock.agent.import_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Import Path","uniqueKey":"rollout.lock.agent.import_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.import_path","typeLabel":"string | null"},"model_name":{"oneOf":[{"type":"string","title":"Model Name","uniqueKey":"rollout.lock.agent.model_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Name","uniqueKey":"rollout.lock.agent.model_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.model_name","typeLabel":"string | null"},"base_url":{"oneOf":[{"type":"string","title":"Base Url","description":"Override the inference endpoint used by the agent.","uniqueKey":"rollout.lock.agent.base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Base Url","description":"Override the inference endpoint used by the agent.","uniqueKey":"rollout.lock.agent.base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.base_url","typeLabel":"string | null"},"model_api_key_name":{"oneOf":[{"type":"string","title":"Model Api Key Name","description":"Name of the environment variable containing the inference API key.","uniqueKey":"rollout.lock.agent.model_api_key_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Api Key Name","description":"Name of the environment variable containing the inference API key.","uniqueKey":"rollout.lock.agent.model_api_key_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.model_api_key_name","typeLabel":"string | null"},"model_api_format":{"oneOf":[{"type":"string","title":"ModelApiFormat","description":"Inference API format supported by the agent.","enum":["openai_chat_completions","openai_responses","anthropic_messages","google_generate_content","bedrock_converse"],"uniqueKey":"rollout.lock.agent.model_api_format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Inference API format supported by the agent.","uniqueKey":"rollout.lock.agent.model_api_format.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.model_api_format","typeLabel":"enum\u003cstring> | null"},"skip_model_parsing":{"type":"boolean","title":"Skip Model Parsing","description":"Pass the model string unchanged without resolving its provider.","default":false,"uniqueKey":"rollout.lock.agent.skip_model_parsing","typeLabel":"boolean"},"n_concurrent":{"oneOf":[{"type":"integer","title":"N Concurrent","description":"Per-agent cap on concurrent agent.run() phases. Must not exceed the job's n_concurrent_trials and is usually useful only when lower. When omitted, agent execution is only limited by n_concurrent_trials.","minimum":1,"uniqueKey":"rollout.lock.agent.n_concurrent.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Concurrent","description":"Per-agent cap on concurrent agent.run() phases. Must not exceed the job's n_concurrent_trials and is usually useful only when lower. When omitted, agent execution is only limited by n_concurrent_trials.","uniqueKey":"rollout.lock.agent.n_concurrent.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.n_concurrent","typeLabel":"integer | null"},"concurrency_group":{"oneOf":[{"type":"string","title":"Concurrency Group","description":"Optional shared concurrency pool name for agent configs that should use the same n_concurrent limit.","uniqueKey":"rollout.lock.agent.concurrency_group.oneOf.0","typeLabel":"string"},{"type":"null","title":"Concurrency Group","description":"Optional shared concurrency pool name for agent configs that should use the same n_concurrent limit.","uniqueKey":"rollout.lock.agent.concurrency_group.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.concurrency_group","typeLabel":"string | null"},"skills":{"items":{"oneOf":[{"type":"string","uniqueKey":"rollout.lock.agent.skills.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"string","format":"path","uniqueKey":"rollout.lock.agent.skills.items.[INDEX].oneOf.1","typeLabel":"string\u003cpath>"}],"uniqueKey":"rollout.lock.agent.skills.items.[INDEX]","typeLabel":"string | string\u003cpath>"},"type":"array","title":"Skills","description":"Skill directories or source strings (git URLs, org/name[@ref] shorthand, or local paths). Job.create() / Trial.create() resolve any non-local entries to cached directories in-place.","uniqueKey":"rollout.lock.agent.skills","typeLabel":"(string | string\u003cpath>)[]"},"override_timeout_sec":{"oneOf":[{"type":"number","title":"Override Timeout Sec","uniqueKey":"rollout.lock.agent.override_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Timeout Sec","uniqueKey":"rollout.lock.agent.override_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.override_timeout_sec","typeLabel":"number | null"},"override_setup_timeout_sec":{"oneOf":[{"type":"number","title":"Override Setup Timeout Sec","uniqueKey":"rollout.lock.agent.override_setup_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Setup Timeout Sec","uniqueKey":"rollout.lock.agent.override_setup_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.override_setup_timeout_sec","typeLabel":"number | null"},"max_timeout_sec":{"oneOf":[{"type":"number","title":"Max Timeout Sec","uniqueKey":"rollout.lock.agent.max_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Timeout Sec","uniqueKey":"rollout.lock.agent.max_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.max_timeout_sec","typeLabel":"number | null"},"resume_trajectory":{"type":"boolean","title":"Resume Trajectory","description":"For multi-step tasks, resume the agent's native session from the previous step instead of starting a fresh conversation on each step. Requires an agent with native resume support (capabilities.resume); the trial fails fast otherwise. No effect on single-step tasks.","default":false,"uniqueKey":"rollout.lock.agent.resume_trajectory","typeLabel":"boolean"},"load_trajectory":{"oneOf":[{"type":"string","title":"Load Trajectory","description":"Path to a trajectory to load as the agent's session before the first step, which then resumes it instead of starting fresh. A .jsonl file is the agent's native session format (lossless, same agent only; capabilities.load_native_trajectory); a .json file is an ATIF trajectory converted to the agent's native format (portable across supported agents; capabilities.load_atif_trajectory). The trial fails fast if the agent lacks the needed support. Composes with resume_trajectory.","uniqueKey":"rollout.lock.agent.load_trajectory.oneOf.0","typeLabel":"string"},{"type":"null","title":"Load Trajectory","description":"Path to a trajectory to load as the agent's session before the first step, which then resumes it instead of starting fresh. A .jsonl file is the agent's native session format (lossless, same agent only; capabilities.load_native_trajectory); a .json file is an ATIF trajectory converted to the agent's native format (portable across supported agents; capabilities.load_atif_trajectory). The trial fails fast if the agent lacks the needed support. Composes with resume_trajectory.","uniqueKey":"rollout.lock.agent.load_trajectory.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.load_trajectory","typeLabel":"string | null"},"extra_allowed_hosts":{"items":{"type":"string","uniqueKey":"rollout.lock.agent.extra_allowed_hosts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Extra Allowed Hosts","description":"Run-specific hostnames or IP addresses merged into the effective agent phase allowlist during agent.run() only.","uniqueKey":"rollout.lock.agent.extra_allowed_hosts","typeLabel":"string[]"},"include_logs":{"items":{"type":"string","uniqueKey":"rollout.lock.agent.include_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Include Logs","description":"Glob patterns of agent log files to download, relative to the agent logs directory. When set, only matching files are kept.","uniqueKey":"rollout.lock.agent.include_logs","typeLabel":"string[]"},"exclude_logs":{"items":{"type":"string","uniqueKey":"rollout.lock.agent.exclude_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Exclude Logs","description":"Glob patterns of agent log files to skip when downloading. Applied after include_logs, so exclude wins on overlap.","uniqueKey":"rollout.lock.agent.exclude_logs","typeLabel":"string[]"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.lock.agent.kwargs","typeLabel":"Kwargs · object"},"env":{"additionalProperties":{"type":"string","uniqueKey":"rollout.lock.agent.env.additionalProperties","typeLabel":"string"},"type":"object","title":"Env","uniqueKey":"rollout.lock.agent.env","typeLabel":"Env · object"},"mcp_servers":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].name","typeLabel":"string"},"transport":{"type":"string","enum":["stdio","sse","streamable-http"],"title":"Transport","default":"sse","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].transport","typeLabel":"enum\u003cstring>"},"url":{"oneOf":[{"type":"string","title":"Url","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].url","typeLabel":"string | null"},"command":{"oneOf":[{"type":"string","title":"Command","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].command.oneOf.0","typeLabel":"string"},{"type":"null","title":"Command","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].command.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].command","typeLabel":"string | null"},"args":{"items":{"type":"string","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].args.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Args","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].args","typeLabel":"string[]"},"headers":{"additionalProperties":{"type":"string","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].headers.additionalProperties","typeLabel":"string"},"type":"object","title":"Headers","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX].headers","typeLabel":"Headers · object"}},"type":"object","required":["name"],"title":"MCPServerConfig","description":"Configuration for an MCP server available to the agent.","uniqueKey":"rollout.lock.agent.mcp_servers.items.[INDEX]","typeLabel":"MCPServerConfig · object"},"type":"array","title":"Mcp Servers","uniqueKey":"rollout.lock.agent.mcp_servers","typeLabel":"MCPServerConfig · object[]"}},"type":"object","title":"AgentConfig","isRequired":true,"uniqueKey":"rollout.lock.agent","typeLabel":"AgentConfig · object"},"environment":{"properties":{"type":{"oneOf":[{"type":"string","title":"EnvironmentType","enum":["docker","sbx","podman","daytona","e2b","modal","runloop","langsmith","ec2","gke","ack","openshift","novita","apple-container","singularity","islo","tensorlake","cwsandbox","use-computer","cua-cloud","blaxel","opensandbox","beam","skypilot","hf-sandbox","hyperbrowser","vercel","runta","prime","kata","mosaic","smol","sail","kernel","snowflake","boxd","superserve","aca-sandbox"],"uniqueKey":"rollout.lock.environment.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"rollout.lock.environment.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.environment.type","typeLabel":"enum\u003cstring> | null"},"import_path":{"oneOf":[{"type":"string","title":"Import Path","uniqueKey":"rollout.lock.environment.import_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Import Path","uniqueKey":"rollout.lock.environment.import_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.environment.import_path","typeLabel":"string | null"},"force_build":{"type":"boolean","title":"Force Build","default":false,"uniqueKey":"rollout.lock.environment.force_build","typeLabel":"boolean"},"delete":{"type":"boolean","title":"Delete","default":true,"uniqueKey":"rollout.lock.environment.delete","typeLabel":"boolean"},"stream":{"type":"boolean","title":"Stream","default":false,"uniqueKey":"rollout.lock.environment.stream","typeLabel":"boolean"},"cpu_enforcement_policy":{"type":"string","enum":["auto","limit","request","guarantee","ignore"],"title":"ResourceMode","default":"auto","uniqueKey":"rollout.lock.environment.cpu_enforcement_policy","typeLabel":"enum\u003cstring>"},"memory_enforcement_policy":{"type":"string","enum":["auto","limit","request","guarantee","ignore"],"title":"ResourceMode","default":"auto","uniqueKey":"rollout.lock.environment.memory_enforcement_policy","typeLabel":"enum\u003cstring>"},"override_cpus":{"oneOf":[{"type":"integer","title":"Override Cpus","uniqueKey":"rollout.lock.environment.override_cpus.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Override Cpus","uniqueKey":"rollout.lock.environment.override_cpus.oneOf.1","typeLabel":"number"},{"type":"null","title":"Override Cpus","uniqueKey":"rollout.lock.environment.override_cpus.oneOf.2","typeLabel":"null"}],"uniqueKey":"rollout.lock.environment.override_cpus","typeLabel":"integer | number | null"},"override_memory_mb":{"oneOf":[{"type":"integer","title":"Override Memory Mb","uniqueKey":"rollout.lock.environment.override_memory_mb.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Override Memory Mb","uniqueKey":"rollout.lock.environment.override_memory_mb.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.environment.override_memory_mb","typeLabel":"integer | null"},"override_storage_mb":{"oneOf":[{"type":"integer","title":"Override Storage Mb","uniqueKey":"rollout.lock.environment.override_storage_mb.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Override Storage Mb","uniqueKey":"rollout.lock.environment.override_storage_mb.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.environment.override_storage_mb","typeLabel":"integer | null"},"override_gpus":{"oneOf":[{"type":"integer","title":"Override Gpus","uniqueKey":"rollout.lock.environment.override_gpus.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Override Gpus","uniqueKey":"rollout.lock.environment.override_gpus.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.environment.override_gpus","typeLabel":"integer | null"},"override_tpu":{"oneOf":[{"type":"object","title":"TpuSpec","description":"Specification for a TPU slice attached to an environment.\n\nThe (type, topology) pair fully determines the GKE node pool the pod\nlands on *and* the per-pod TPU chip count, so there is no separate\nuser-facing chip-count field — it is derived via chip_count.","required":["type","topology"],"properties":{"type":{"type":"string","minLength":1,"title":"Type","description":"TPU accelerator type. Accepts either a user-friendly alias (e.g., 'v6e', 'trillium', 'v4') or a canonical GKE label (e.g., 'tpu-v6e-slice', 'tpu7x').","isRequired":true,"uniqueKey":"rollout.lock.environment.override_tpu.oneOf.0.type","typeLabel":"string"},"topology":{"type":"string","title":"Topology","description":"TPU topology as 'NxM' or 'NxMxK' (e.g., '2x4', '2x2x1').","isRequired":true,"uniqueKey":"rollout.lock.environment.override_tpu.oneOf.0.topology","typeLabel":"string"}},"uniqueKey":"rollout.lock.environment.override_tpu.oneOf.0","typeLabel":"TpuSpec · object"},{"type":"null","uniqueKey":"rollout.lock.environment.override_tpu.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.environment.override_tpu","typeLabel":"TpuSpec · object | null"},"mounts":{"oneOf":[{"type":"array","items":{"properties":{"type":{"type":"string","enum":["bind","volume","image"],"title":"Type","isRequired":true,"uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"source":{"type":"string","title":"Source","isRequired":true,"uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].source","typeLabel":"string"},"target":{"type":"string","title":"Target","isRequired":true,"uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].target","typeLabel":"string"},"read_only":{"type":"boolean","const":true,"title":"Read Only","uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].read_only","typeLabel":"boolean"},"bind":{"properties":{"create_host_path":{"type":"boolean","const":false,"title":"Create Host Path","uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].bind.create_host_path","typeLabel":"boolean"},"selinux":{"type":"string","enum":["z","Z"],"title":"Selinux","uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].bind.selinux","typeLabel":"enum\u003cstring>"}},"type":"object","title":"ServiceVolumeBind","uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].bind","typeLabel":"ServiceVolumeBind · object"},"volume":{"properties":{"subpath":{"type":"string","title":"Subpath","uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].volume.subpath","typeLabel":"string"}},"type":"object","title":"ServiceVolumeVolume","uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].volume","typeLabel":"ServiceVolumeVolume · object"},"image":{"properties":{"subpath":{"type":"string","title":"Subpath","uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].image.subpath","typeLabel":"string"}},"type":"object","title":"ServiceVolumeImage","uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX].image","typeLabel":"ServiceVolumeImage · object"}},"type":"object","required":["type","source","target"],"title":"ServiceVolumeConfig","uniqueKey":"rollout.lock.environment.mounts.oneOf.0.items.[INDEX]","typeLabel":"ServiceVolumeConfig · object"},"title":"Mounts","description":"Additional mounts for the agent environment only.","uniqueKey":"rollout.lock.environment.mounts.oneOf.0","typeLabel":"ServiceVolumeConfig · object[]"},{"type":"null","title":"Mounts","description":"Additional mounts for the agent environment only.","uniqueKey":"rollout.lock.environment.mounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.environment.mounts","typeLabel":"ServiceVolumeConfig · object[] | null"},"extra_docker_compose":{"items":{"type":"string","format":"path","uniqueKey":"rollout.lock.environment.extra_docker_compose.items.[INDEX]","typeLabel":"string\u003cpath>"},"type":"array","title":"Extra Docker Compose","description":"Additional Docker Compose overlays for the agent environment only.","uniqueKey":"rollout.lock.environment.extra_docker_compose","typeLabel":"string\u003cpath>[]"},"env":{"additionalProperties":{"type":"string","uniqueKey":"rollout.lock.environment.env.additionalProperties","typeLabel":"string"},"type":"object","title":"Env","uniqueKey":"rollout.lock.environment.env","typeLabel":"Env · object"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.lock.environment.kwargs","typeLabel":"Kwargs · object"},"extra_allowed_hosts":{"items":{"type":"string","uniqueKey":"rollout.lock.environment.extra_allowed_hosts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Extra Allowed Hosts","description":"Run-specific hostnames or IP addresses merged into the [environment] network baseline at agent env start.","uniqueKey":"rollout.lock.environment.extra_allowed_hosts","typeLabel":"string[]"}},"type":"object","title":"EnvironmentConfig","isRequired":true,"uniqueKey":"rollout.lock.environment","typeLabel":"EnvironmentConfig · object"},"verifier":{"properties":{"override_timeout_sec":{"oneOf":[{"type":"number","title":"Override Timeout Sec","uniqueKey":"rollout.lock.verifier.override_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Timeout Sec","uniqueKey":"rollout.lock.verifier.override_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.verifier.override_timeout_sec","typeLabel":"number | null"},"max_timeout_sec":{"oneOf":[{"type":"number","title":"Max Timeout Sec","uniqueKey":"rollout.lock.verifier.max_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Timeout Sec","uniqueKey":"rollout.lock.verifier.max_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.verifier.max_timeout_sec","typeLabel":"number | null"},"include_logs":{"items":{"type":"string","uniqueKey":"rollout.lock.verifier.include_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Include Logs","description":"Glob patterns of verifier log files to download, relative to the verifier logs directory. When set, only matching files are kept; the reward file is always downloaded.","uniqueKey":"rollout.lock.verifier.include_logs","typeLabel":"string[]"},"exclude_logs":{"items":{"type":"string","uniqueKey":"rollout.lock.verifier.exclude_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Exclude Logs","description":"Glob patterns of verifier log files to skip when downloading. Applied after include_logs, so exclude wins on overlap.","uniqueKey":"rollout.lock.verifier.exclude_logs","typeLabel":"string[]"},"env":{"additionalProperties":{"type":"string","uniqueKey":"rollout.lock.verifier.env.additionalProperties","typeLabel":"string"},"type":"object","title":"Env","uniqueKey":"rollout.lock.verifier.env","typeLabel":"Env · object"},"import_path":{"oneOf":[{"type":"string","title":"Import Path","uniqueKey":"rollout.lock.verifier.import_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Import Path","uniqueKey":"rollout.lock.verifier.import_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.verifier.import_path","typeLabel":"string | null"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.lock.verifier.kwargs","typeLabel":"Kwargs · object"},"disable":{"type":"boolean","title":"Disable","default":false,"uniqueKey":"rollout.lock.verifier.disable","typeLabel":"boolean"},"extra_allowed_hosts":{"items":{"type":"string","uniqueKey":"rollout.lock.verifier.extra_allowed_hosts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Extra Allowed Hosts","description":"Run-specific hostnames or IP addresses merged into the effective verifier phase allowlist during verify(), and into the verifier environment baseline when the verifier runs separately.","uniqueKey":"rollout.lock.verifier.extra_allowed_hosts","typeLabel":"string[]"},"environment_mode":{"oneOf":[{"type":"string","title":"VerifierEnvironmentMode","description":"Whether the verifier runs in the agent's environment or its own.","enum":["shared","separate"],"uniqueKey":"rollout.lock.verifier.environment_mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"rollout.lock.verifier.environment_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.verifier.environment_mode","typeLabel":"enum\u003cstring> | null"}},"type":"object","title":"VerifierLock","description":"The trial's verifier config plus the resolved environment mode.\n\n``environment_mode`` is None for multi-step tasks, where the mode is\nresolved per step.","isRequired":true,"uniqueKey":"rollout.lock.verifier","typeLabel":"VerifierLock · object"},"schema_version":{"type":"integer","title":"Schema Version","default":2,"uniqueKey":"rollout.lock.schema_version","typeLabel":"integer"},"install_only":{"type":"boolean","title":"Install Only","default":false,"uniqueKey":"rollout.lock.install_only","typeLabel":"boolean"},"timeout_multiplier":{"type":"number","title":"Timeout Multiplier","default":1,"uniqueKey":"rollout.lock.timeout_multiplier","typeLabel":"number"},"agent_timeout_multiplier":{"oneOf":[{"type":"number","title":"Agent Timeout Multiplier","uniqueKey":"rollout.lock.agent_timeout_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Agent Timeout Multiplier","uniqueKey":"rollout.lock.agent_timeout_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent_timeout_multiplier","typeLabel":"number | null"},"verifier_timeout_multiplier":{"oneOf":[{"type":"number","title":"Verifier Timeout Multiplier","uniqueKey":"rollout.lock.verifier_timeout_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Verifier Timeout Multiplier","uniqueKey":"rollout.lock.verifier_timeout_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.verifier_timeout_multiplier","typeLabel":"number | null"},"agent_setup_timeout_multiplier":{"oneOf":[{"type":"number","title":"Agent Setup Timeout Multiplier","uniqueKey":"rollout.lock.agent_setup_timeout_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Agent Setup Timeout Multiplier","uniqueKey":"rollout.lock.agent_setup_timeout_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.agent_setup_timeout_multiplier","typeLabel":"number | null"},"environment_build_timeout_multiplier":{"oneOf":[{"type":"number","title":"Environment Build Timeout Multiplier","uniqueKey":"rollout.lock.environment_build_timeout_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Environment Build Timeout Multiplier","uniqueKey":"rollout.lock.environment_build_timeout_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.environment_build_timeout_multiplier","typeLabel":"number | null"},"extra_instructions":{"oneOf":[{"type":"array","items":{"properties":{"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.lock.extra_instructions.oneOf.0.items.[INDEX].digest","typeLabel":"string"},"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.lock.extra_instructions.oneOf.0.items.[INDEX].path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.lock.extra_instructions.oneOf.0.items.[INDEX].path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.extra_instructions.oneOf.0.items.[INDEX].path","typeLabel":"string\u003cpath> | null"}},"type":"object","required":["digest"],"title":"ExtraInstructionLock","uniqueKey":"rollout.lock.extra_instructions.oneOf.0.items.[INDEX]","typeLabel":"ExtraInstructionLock · object"},"title":"Extra Instructions","uniqueKey":"rollout.lock.extra_instructions.oneOf.0","typeLabel":"ExtraInstructionLock · object[]"},{"type":"null","title":"Extra Instructions","uniqueKey":"rollout.lock.extra_instructions.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.extra_instructions","typeLabel":"ExtraInstructionLock · object[] | null"},"user_agent":{"oneOf":[{"type":"object","title":"UserAgentConfig","required":["bridge"],"properties":{"bridge":{"properties":{"kind":{"type":"string","enum":["acp"],"title":"BridgeKind","isRequired":true,"uniqueKey":"rollout.lock.user_agent.oneOf.0.bridge.kind","typeLabel":"enum\u003cstring>"},"prompt_path":{"oneOf":[{"type":"string","title":"Prompt Path","format":"path","uniqueKey":"rollout.lock.user_agent.oneOf.0.bridge.prompt_path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Prompt Path","uniqueKey":"rollout.lock.user_agent.oneOf.0.bridge.prompt_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.bridge.prompt_path","typeLabel":"string\u003cpath> | null"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.lock.user_agent.oneOf.0.bridge.kwargs","typeLabel":"Kwargs · object"}},"type":"object","required":["kind"],"title":"BridgeConfig","isRequired":true,"uniqueKey":"rollout.lock.user_agent.oneOf.0.bridge","typeLabel":"BridgeConfig · object"},"name":{"oneOf":[{"type":"string","title":"Name","uniqueKey":"rollout.lock.user_agent.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","uniqueKey":"rollout.lock.user_agent.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.name","typeLabel":"string | null"},"import_path":{"oneOf":[{"type":"string","title":"Import Path","uniqueKey":"rollout.lock.user_agent.oneOf.0.import_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Import Path","uniqueKey":"rollout.lock.user_agent.oneOf.0.import_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.import_path","typeLabel":"string | null"},"model_name":{"oneOf":[{"type":"string","title":"Model Name","uniqueKey":"rollout.lock.user_agent.oneOf.0.model_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Name","uniqueKey":"rollout.lock.user_agent.oneOf.0.model_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.model_name","typeLabel":"string | null"},"base_url":{"oneOf":[{"type":"string","title":"Base Url","description":"Override the inference endpoint used by the agent.","uniqueKey":"rollout.lock.user_agent.oneOf.0.base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Base Url","description":"Override the inference endpoint used by the agent.","uniqueKey":"rollout.lock.user_agent.oneOf.0.base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.base_url","typeLabel":"string | null"},"model_api_key_name":{"oneOf":[{"type":"string","title":"Model Api Key Name","description":"Name of the environment variable containing the inference API key.","uniqueKey":"rollout.lock.user_agent.oneOf.0.model_api_key_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Api Key Name","description":"Name of the environment variable containing the inference API key.","uniqueKey":"rollout.lock.user_agent.oneOf.0.model_api_key_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.model_api_key_name","typeLabel":"string | null"},"model_api_format":{"oneOf":[{"type":"string","title":"ModelApiFormat","description":"Inference API format supported by the agent.","enum":["openai_chat_completions","openai_responses","anthropic_messages","google_generate_content","bedrock_converse"],"uniqueKey":"rollout.lock.user_agent.oneOf.0.model_api_format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Inference API format supported by the agent.","uniqueKey":"rollout.lock.user_agent.oneOf.0.model_api_format.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.model_api_format","typeLabel":"enum\u003cstring> | null"},"skip_model_parsing":{"type":"boolean","title":"Skip Model Parsing","description":"Pass the model string unchanged without resolving its provider.","default":false,"uniqueKey":"rollout.lock.user_agent.oneOf.0.skip_model_parsing","typeLabel":"boolean"},"n_concurrent":{"oneOf":[{"type":"integer","title":"N Concurrent","description":"Per-agent cap on concurrent agent.run() phases. Must not exceed the job's n_concurrent_trials and is usually useful only when lower. When omitted, agent execution is only limited by n_concurrent_trials.","minimum":1,"uniqueKey":"rollout.lock.user_agent.oneOf.0.n_concurrent.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Concurrent","description":"Per-agent cap on concurrent agent.run() phases. Must not exceed the job's n_concurrent_trials and is usually useful only when lower. When omitted, agent execution is only limited by n_concurrent_trials.","uniqueKey":"rollout.lock.user_agent.oneOf.0.n_concurrent.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.n_concurrent","typeLabel":"integer | null"},"concurrency_group":{"oneOf":[{"type":"string","title":"Concurrency Group","description":"Optional shared concurrency pool name for agent configs that should use the same n_concurrent limit.","uniqueKey":"rollout.lock.user_agent.oneOf.0.concurrency_group.oneOf.0","typeLabel":"string"},{"type":"null","title":"Concurrency Group","description":"Optional shared concurrency pool name for agent configs that should use the same n_concurrent limit.","uniqueKey":"rollout.lock.user_agent.oneOf.0.concurrency_group.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.concurrency_group","typeLabel":"string | null"},"skills":{"items":{"oneOf":[{"type":"string","uniqueKey":"rollout.lock.user_agent.oneOf.0.skills.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"string","format":"path","uniqueKey":"rollout.lock.user_agent.oneOf.0.skills.items.[INDEX].oneOf.1","typeLabel":"string\u003cpath>"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.skills.items.[INDEX]","typeLabel":"string | string\u003cpath>"},"type":"array","title":"Skills","description":"Skill directories or source strings (git URLs, org/name[@ref] shorthand, or local paths). Job.create() / Trial.create() resolve any non-local entries to cached directories in-place.","uniqueKey":"rollout.lock.user_agent.oneOf.0.skills","typeLabel":"(string | string\u003cpath>)[]"},"override_timeout_sec":{"oneOf":[{"type":"number","title":"Override Timeout Sec","uniqueKey":"rollout.lock.user_agent.oneOf.0.override_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Timeout Sec","uniqueKey":"rollout.lock.user_agent.oneOf.0.override_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.override_timeout_sec","typeLabel":"number | null"},"override_setup_timeout_sec":{"oneOf":[{"type":"number","title":"Override Setup Timeout Sec","uniqueKey":"rollout.lock.user_agent.oneOf.0.override_setup_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Setup Timeout Sec","uniqueKey":"rollout.lock.user_agent.oneOf.0.override_setup_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.override_setup_timeout_sec","typeLabel":"number | null"},"max_timeout_sec":{"oneOf":[{"type":"number","title":"Max Timeout Sec","uniqueKey":"rollout.lock.user_agent.oneOf.0.max_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Timeout Sec","uniqueKey":"rollout.lock.user_agent.oneOf.0.max_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.max_timeout_sec","typeLabel":"number | null"},"resume_trajectory":{"type":"boolean","title":"Resume Trajectory","description":"For multi-step tasks, resume the agent's native session from the previous step instead of starting a fresh conversation on each step. Requires an agent with native resume support (capabilities.resume); the trial fails fast otherwise. No effect on single-step tasks.","default":false,"uniqueKey":"rollout.lock.user_agent.oneOf.0.resume_trajectory","typeLabel":"boolean"},"load_trajectory":{"oneOf":[{"type":"string","title":"Load Trajectory","description":"Path to a trajectory to load as the agent's session before the first step, which then resumes it instead of starting fresh. A .jsonl file is the agent's native session format (lossless, same agent only; capabilities.load_native_trajectory); a .json file is an ATIF trajectory converted to the agent's native format (portable across supported agents; capabilities.load_atif_trajectory). The trial fails fast if the agent lacks the needed support. Composes with resume_trajectory.","uniqueKey":"rollout.lock.user_agent.oneOf.0.load_trajectory.oneOf.0","typeLabel":"string"},{"type":"null","title":"Load Trajectory","description":"Path to a trajectory to load as the agent's session before the first step, which then resumes it instead of starting fresh. A .jsonl file is the agent's native session format (lossless, same agent only; capabilities.load_native_trajectory); a .json file is an ATIF trajectory converted to the agent's native format (portable across supported agents; capabilities.load_atif_trajectory). The trial fails fast if the agent lacks the needed support. Composes with resume_trajectory.","uniqueKey":"rollout.lock.user_agent.oneOf.0.load_trajectory.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.load_trajectory","typeLabel":"string | null"},"extra_allowed_hosts":{"items":{"type":"string","uniqueKey":"rollout.lock.user_agent.oneOf.0.extra_allowed_hosts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Extra Allowed Hosts","description":"Run-specific hostnames or IP addresses merged into the effective agent phase allowlist during agent.run() only.","uniqueKey":"rollout.lock.user_agent.oneOf.0.extra_allowed_hosts","typeLabel":"string[]"},"include_logs":{"items":{"type":"string","uniqueKey":"rollout.lock.user_agent.oneOf.0.include_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Include Logs","description":"Glob patterns of agent log files to download, relative to the agent logs directory. When set, only matching files are kept.","uniqueKey":"rollout.lock.user_agent.oneOf.0.include_logs","typeLabel":"string[]"},"exclude_logs":{"items":{"type":"string","uniqueKey":"rollout.lock.user_agent.oneOf.0.exclude_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Exclude Logs","description":"Glob patterns of agent log files to skip when downloading. Applied after include_logs, so exclude wins on overlap.","uniqueKey":"rollout.lock.user_agent.oneOf.0.exclude_logs","typeLabel":"string[]"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.lock.user_agent.oneOf.0.kwargs","typeLabel":"Kwargs · object"},"env":{"additionalProperties":{"type":"string","uniqueKey":"rollout.lock.user_agent.oneOf.0.env.additionalProperties","typeLabel":"string"},"type":"object","title":"Env","uniqueKey":"rollout.lock.user_agent.oneOf.0.env","typeLabel":"Env · object"},"mcp_servers":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].name","typeLabel":"string"},"transport":{"type":"string","enum":["stdio","sse","streamable-http"],"title":"Transport","default":"sse","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].transport","typeLabel":"enum\u003cstring>"},"url":{"oneOf":[{"type":"string","title":"Url","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].url","typeLabel":"string | null"},"command":{"oneOf":[{"type":"string","title":"Command","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].command.oneOf.0","typeLabel":"string"},{"type":"null","title":"Command","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].command.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].command","typeLabel":"string | null"},"args":{"items":{"type":"string","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].args.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Args","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].args","typeLabel":"string[]"},"headers":{"additionalProperties":{"type":"string","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].headers.additionalProperties","typeLabel":"string"},"type":"object","title":"Headers","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX].headers","typeLabel":"Headers · object"}},"type":"object","required":["name"],"title":"MCPServerConfig","description":"Configuration for an MCP server available to the agent.","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers.items.[INDEX]","typeLabel":"MCPServerConfig · object"},"type":"array","title":"Mcp Servers","uniqueKey":"rollout.lock.user_agent.oneOf.0.mcp_servers","typeLabel":"MCPServerConfig · object[]"},"user_persona_path":{"oneOf":[{"type":"string","title":"User Persona Path","format":"path","uniqueKey":"rollout.lock.user_agent.oneOf.0.user_persona_path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"User Persona Path","uniqueKey":"rollout.lock.user_agent.oneOf.0.user_persona_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.user_persona_path","typeLabel":"string\u003cpath> | null"},"user_prompt_template_path":{"oneOf":[{"type":"string","title":"User Prompt Template Path","format":"path","uniqueKey":"rollout.lock.user_agent.oneOf.0.user_prompt_template_path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"User Prompt Template Path","uniqueKey":"rollout.lock.user_agent.oneOf.0.user_prompt_template_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent.oneOf.0.user_prompt_template_path","typeLabel":"string\u003cpath> | null"}},"uniqueKey":"rollout.lock.user_agent.oneOf.0","typeLabel":"UserAgentConfig · object"},{"type":"null","uniqueKey":"rollout.lock.user_agent.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_agent","typeLabel":"UserAgentConfig · object | null"},"user_persona":{"oneOf":[{"type":"object","title":"ExtraInstructionLock","required":["digest"],"properties":{"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.lock.user_persona.oneOf.0.digest","typeLabel":"string"},"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.lock.user_persona.oneOf.0.path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.lock.user_persona.oneOf.0.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_persona.oneOf.0.path","typeLabel":"string\u003cpath> | null"}},"uniqueKey":"rollout.lock.user_persona.oneOf.0","typeLabel":"ExtraInstructionLock · object"},{"type":"null","uniqueKey":"rollout.lock.user_persona.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_persona","typeLabel":"ExtraInstructionLock · object | null"},"user_prompt_template":{"oneOf":[{"type":"object","title":"ExtraInstructionLock","required":["digest"],"properties":{"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.lock.user_prompt_template.oneOf.0.digest","typeLabel":"string"},"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.lock.user_prompt_template.oneOf.0.path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.lock.user_prompt_template.oneOf.0.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_prompt_template.oneOf.0.path","typeLabel":"string\u003cpath> | null"}},"uniqueKey":"rollout.lock.user_prompt_template.oneOf.0","typeLabel":"ExtraInstructionLock · object"},{"type":"null","uniqueKey":"rollout.lock.user_prompt_template.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.user_prompt_template","typeLabel":"ExtraInstructionLock · object | null"},"bridge_prompt":{"oneOf":[{"type":"object","title":"ExtraInstructionLock","required":["digest"],"properties":{"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.lock.bridge_prompt.oneOf.0.digest","typeLabel":"string"},"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.lock.bridge_prompt.oneOf.0.path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.lock.bridge_prompt.oneOf.0.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.bridge_prompt.oneOf.0.path","typeLabel":"string\u003cpath> | null"}},"uniqueKey":"rollout.lock.bridge_prompt.oneOf.0","typeLabel":"ExtraInstructionLock · object"},{"type":"null","uniqueKey":"rollout.lock.bridge_prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.bridge_prompt","typeLabel":"ExtraInstructionLock · object | null"},"bridge_inputs":{"additionalProperties":{"properties":{"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.lock.bridge_inputs.additionalProperties.digest","typeLabel":"string"},"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.lock.bridge_inputs.additionalProperties.path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.lock.bridge_inputs.additionalProperties.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.bridge_inputs.additionalProperties.path","typeLabel":"string\u003cpath> | null"}},"type":"object","required":["digest"],"title":"ExtraInstructionLock","uniqueKey":"rollout.lock.bridge_inputs.additionalProperties","typeLabel":"ExtraInstructionLock · object"},"type":"object","title":"Bridge Inputs","uniqueKey":"rollout.lock.bridge_inputs","typeLabel":"Bridge Inputs · object"},"skills":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.lock.skills.items.[INDEX].name","typeLabel":"string"},"source":{"type":"string","format":"path","title":"Source","isRequired":true,"uniqueKey":"rollout.lock.skills.items.[INDEX].source","typeLabel":"string\u003cpath>"},"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.lock.skills.items.[INDEX].digest","typeLabel":"string"},"git_url":{"oneOf":[{"type":"string","title":"Git Url","uniqueKey":"rollout.lock.skills.items.[INDEX].git_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Git Url","uniqueKey":"rollout.lock.skills.items.[INDEX].git_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.skills.items.[INDEX].git_url","typeLabel":"string | null"},"git_commit_id":{"oneOf":[{"type":"string","title":"Git Commit Id","uniqueKey":"rollout.lock.skills.items.[INDEX].git_commit_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Git Commit Id","uniqueKey":"rollout.lock.skills.items.[INDEX].git_commit_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.skills.items.[INDEX].git_commit_id","typeLabel":"string | null"}},"type":"object","required":["name","source","digest"],"title":"AgentSkillLock","uniqueKey":"rollout.lock.skills.items.[INDEX]","typeLabel":"AgentSkillLock · object"},"type":"array","title":"Skills","uniqueKey":"rollout.lock.skills","typeLabel":"AgentSkillLock · object[]"},"extra_docker_compose":{"oneOf":[{"type":"array","items":{"properties":{"path":{"type":"string","format":"path","title":"Path","isRequired":true,"uniqueKey":"rollout.lock.extra_docker_compose.oneOf.0.items.[INDEX].path","typeLabel":"string\u003cpath>"},"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.lock.extra_docker_compose.oneOf.0.items.[INDEX].digest","typeLabel":"string"}},"type":"object","required":["path","digest"],"title":"ExtraDockerComposeLock","uniqueKey":"rollout.lock.extra_docker_compose.oneOf.0.items.[INDEX]","typeLabel":"ExtraDockerComposeLock · object"},"title":"Extra Docker Compose","uniqueKey":"rollout.lock.extra_docker_compose.oneOf.0","typeLabel":"ExtraDockerComposeLock · object[]"},{"type":"null","title":"Extra Docker Compose","uniqueKey":"rollout.lock.extra_docker_compose.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.extra_docker_compose","typeLabel":"ExtraDockerComposeLock · object[] | null"},"artifacts":{"items":{"oneOf":[{"type":"string","uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"object","title":"ArtifactConfig","required":["source"],"properties":{"source":{"type":"string","title":"Source","isRequired":true,"uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1.source","typeLabel":"string"},"destination":{"oneOf":[{"type":"string","title":"Destination","uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1.destination.oneOf.0","typeLabel":"string"},{"type":"null","title":"Destination","uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1.destination.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1.destination","typeLabel":"string | null"},"exclude":{"items":{"type":"string","uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1.exclude.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Exclude","description":"Patterns to exclude when downloading a directory artifact (passed as tar --exclude flags).","uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1.exclude","typeLabel":"string[]"},"service":{"oneOf":[{"type":"string","title":"Service","description":"Docker Compose service to collect this artifact from. None or 'main' targets the agent's container. Any other value requires a compose-capable environment provider and an absolute source path.","uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1.service.oneOf.0","typeLabel":"string"},{"type":"null","title":"Service","description":"Docker Compose service to collect this artifact from. None or 'main' targets the agent's container. Any other value requires a compose-capable environment provider and an absolute source path.","uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1.service.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1.service","typeLabel":"string | null"}},"uniqueKey":"rollout.lock.artifacts.items.[INDEX].oneOf.1","typeLabel":"ArtifactConfig · object"}],"uniqueKey":"rollout.lock.artifacts.items.[INDEX]","typeLabel":"string | ArtifactConfig · object"},"type":"array","title":"Artifacts","uniqueKey":"rollout.lock.artifacts","typeLabel":"(string | ArtifactConfig · object)[]"},"override_error_policy":{"additionalProperties":{"properties":{"should_retry":{"oneOf":[{"type":"boolean","title":"Should Retry","uniqueKey":"rollout.lock.override_error_policy.additionalProperties.should_retry.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Retry","uniqueKey":"rollout.lock.override_error_policy.additionalProperties.should_retry.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.override_error_policy.additionalProperties.should_retry","typeLabel":"boolean | null"},"should_grade":{"oneOf":[{"type":"boolean","title":"Should Grade","uniqueKey":"rollout.lock.override_error_policy.additionalProperties.should_grade.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Grade","uniqueKey":"rollout.lock.override_error_policy.additionalProperties.should_grade.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.override_error_policy.additionalProperties.should_grade","typeLabel":"boolean | null"},"has_valid_reward":{"oneOf":[{"type":"boolean","title":"Has Valid Reward","uniqueKey":"rollout.lock.override_error_policy.additionalProperties.has_valid_reward.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Has Valid Reward","uniqueKey":"rollout.lock.override_error_policy.additionalProperties.has_valid_reward.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.override_error_policy.additionalProperties.has_valid_reward","typeLabel":"boolean | null"}},"additionalProperties":false,"type":"object","title":"ErrorPolicyOverride","uniqueKey":"rollout.lock.override_error_policy.additionalProperties","typeLabel":"ErrorPolicyOverride · object"},"type":"object","title":"Override Error Policy","uniqueKey":"rollout.lock.override_error_policy","typeLabel":"Override Error Policy · object"},"source_trial":{"oneOf":[{"type":"object","title":"SourceTrialLock","description":"Resolved source: the recorded trial this trial derives from.\n\nThe same shape as the config's ``source_trial`` plus ``task``: the\nsource trial's own task lock, copied verbatim from its lock.json (None\nwhen the source has none). Resolution also fills in ``trial_id`` for\nlocal sources that did not record it. Equality is content-anchored:\nthe trial UUID (path only as a fallback for id-less sources) and the\nsource task digest. ``path`` is otherwise recorded for humans and\nresume, not compared.","required":["action","type"],"properties":{"action":{"type":"string","const":"regrade","title":"Action","isRequired":true,"uniqueKey":"rollout.lock.source_trial.oneOf.0.action","typeLabel":"string"},"type":{"type":"string","enum":["local","hub"],"title":"Type","isRequired":true,"uniqueKey":"rollout.lock.source_trial.oneOf.0.type","typeLabel":"enum\u003cstring>"},"trial_id":{"oneOf":[{"type":"string","title":"Trial Id","format":"uuid","uniqueKey":"rollout.lock.source_trial.oneOf.0.trial_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Trial Id","uniqueKey":"rollout.lock.source_trial.oneOf.0.trial_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.source_trial.oneOf.0.trial_id","typeLabel":"string\u003cuuid> | null"},"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.lock.source_trial.oneOf.0.path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.lock.source_trial.oneOf.0.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.source_trial.oneOf.0.path","typeLabel":"string\u003cpath> | null"},"task":{"oneOf":[{"type":"object","title":"TaskLock","required":["name","type","digest"],"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.name","typeLabel":"string"},"type":{"type":"string","enum":["local","git","package"],"title":"Type","isRequired":true,"uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.type","typeLabel":"enum\u003cstring>"},"digest":{"type":"string","title":"Digest","isRequired":true,"uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.digest","typeLabel":"string"},"version":{"oneOf":[{"type":"string","title":"Version","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.version.oneOf.0","typeLabel":"string"},{"type":"null","title":"Version","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.version.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.version","typeLabel":"string | null"},"source":{"oneOf":[{"type":"string","title":"Source","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.source.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.source","typeLabel":"string | null"},"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.path","typeLabel":"string\u003cpath> | null"},"git_url":{"oneOf":[{"type":"string","title":"Git Url","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.git_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Git Url","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.git_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.git_url","typeLabel":"string | null"},"git_commit_id":{"oneOf":[{"type":"string","title":"Git Commit Id","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.git_commit_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Git Commit Id","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.git_commit_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0.git_commit_id","typeLabel":"string | null"}},"uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.0","typeLabel":"TaskLock · object"},{"type":"null","uniqueKey":"rollout.lock.source_trial.oneOf.0.task.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.source_trial.oneOf.0.task","typeLabel":"TaskLock · object | null"}},"uniqueKey":"rollout.lock.source_trial.oneOf.0","typeLabel":"SourceTrialLock · object"},{"type":"null","uniqueKey":"rollout.lock.source_trial.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.lock.source_trial","typeLabel":"SourceTrialLock · object | null"}},"type":"object","required":["task","agent","environment","verifier"],"title":"TrialLock","isRequired":true,"uniqueKey":"rollout.lock","typeLabel":"TrialLock · object"},"artifacts":{"additionalProperties":{"type":"string","uniqueKey":"rollout.artifacts.additionalProperties","typeLabel":"string"},"type":"object","title":"Artifacts","isRequired":true,"uniqueKey":"rollout.artifacts","typeLabel":"Artifacts · object"},"storage_error":{"oneOf":[{"type":"object","title":"ExceptionInfo","description":"Information about an exception that occurred during trial execution.","required":["exception_type","exception_message","exception_traceback","occurred_at","policy"],"properties":{"exception_type":{"type":"string","title":"Exception Type","isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.0.exception_type","typeLabel":"string"},"exception_message":{"type":"string","title":"Exception Message","isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.0.exception_message","typeLabel":"string"},"exception_traceback":{"type":"string","title":"Exception Traceback","isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.0.exception_traceback","typeLabel":"string"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At","isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.0.occurred_at","typeLabel":"string\u003cdate-time>"},"policy":{"properties":{"should_retry":{"type":"boolean","title":"Should Retry","isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.0.policy.should_retry","typeLabel":"boolean"},"should_grade":{"type":"boolean","title":"Should Grade","isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.0.policy.should_grade","typeLabel":"boolean"},"has_valid_reward":{"type":"boolean","title":"Has Valid Reward","isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.0.policy.has_valid_reward","typeLabel":"boolean"}},"type":"object","required":["should_retry","should_grade","has_valid_reward"],"title":"ErrorPolicy","readOnly":true,"isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.0.policy","typeLabel":"ErrorPolicy · object"},"policy_override":{"oneOf":[{"type":"object","title":"ErrorPolicyOverride","properties":{"should_retry":{"oneOf":[{"type":"boolean","title":"Should Retry","uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0.should_retry.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Retry","uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0.should_retry.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0.should_retry","typeLabel":"boolean | null"},"should_grade":{"oneOf":[{"type":"boolean","title":"Should Grade","uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0.should_grade.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Grade","uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0.should_grade.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0.should_grade","typeLabel":"boolean | null"},"has_valid_reward":{"oneOf":[{"type":"boolean","title":"Has Valid Reward","uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0.has_valid_reward.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Has Valid Reward","uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0.has_valid_reward.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0.has_valid_reward","typeLabel":"boolean | null"}},"additionalProperties":false,"uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.0","typeLabel":"ErrorPolicyOverride · object"},{"type":"null","uniqueKey":"rollout.storage_error.oneOf.0.policy_override.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.storage_error.oneOf.0.policy_override","typeLabel":"ErrorPolicyOverride · object | null"}},"isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.0","typeLabel":"ExceptionInfo · object"},{"type":"null","isRequired":true,"uniqueKey":"rollout.storage_error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.storage_error","typeLabel":"ExceptionInfo · object | null"},"result":{"oneOf":[{"type":"object","title":"TrialResult","required":["task_name","trial_name","trial_uri","task_id","task_checksum","config","agent_info","reward_valid"],"properties":{"task_name":{"type":"string","title":"Task Name","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_name","typeLabel":"string"},"trial_name":{"type":"string","title":"Trial Name","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.trial_name","typeLabel":"string"},"trial_uri":{"type":"string","title":"Trial Uri","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.trial_uri","typeLabel":"string"},"task_id":{"oneOf":[{"type":"object","title":"LocalTaskId","required":["path"],"properties":{"path":{"type":"string","format":"path","title":"Path","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.0.path","typeLabel":"string\u003cpath>"}},"isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.0","typeLabel":"LocalTaskId · object"},{"type":"object","title":"GitTaskId","required":["git_url","path"],"properties":{"git_url":{"type":"string","title":"Git Url","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.1.git_url","typeLabel":"string"},"path":{"type":"string","format":"path","title":"Path","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.1.path","typeLabel":"string\u003cpath>"},"git_commit_id":{"oneOf":[{"type":"string","title":"Git Commit Id","uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.1.git_commit_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Git Commit Id","uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.1.git_commit_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.1.git_commit_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.1","typeLabel":"GitTaskId · object"},{"type":"object","title":"PackageTaskId","required":["org","name"],"properties":{"org":{"type":"string","title":"Org","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.2.org","typeLabel":"string"},"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.2.name","typeLabel":"string"},"ref":{"oneOf":[{"type":"string","title":"Ref","uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.2.ref.oneOf.0","typeLabel":"string"},{"type":"null","title":"Ref","uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.2.ref.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.2.ref","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_id.oneOf.2","typeLabel":"PackageTaskId · object"}],"isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_id","typeLabel":"LocalTaskId · object | GitTaskId · object | PackageTaskId · object"},"task_checksum":{"type":"string","title":"Task Checksum","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.task_checksum","typeLabel":"string"},"config":{"properties":{"task":{"properties":{"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.result.oneOf.0.config.task.path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.result.oneOf.0.config.task.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.task.path","typeLabel":"string\u003cpath> | null"},"git_url":{"oneOf":[{"type":"string","title":"Git Url","uniqueKey":"rollout.result.oneOf.0.config.task.git_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Git Url","uniqueKey":"rollout.result.oneOf.0.config.task.git_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.task.git_url","typeLabel":"string | null"},"git_commit_id":{"oneOf":[{"type":"string","title":"Git Commit Id","uniqueKey":"rollout.result.oneOf.0.config.task.git_commit_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Git Commit Id","uniqueKey":"rollout.result.oneOf.0.config.task.git_commit_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.task.git_commit_id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","title":"Name","uniqueKey":"rollout.result.oneOf.0.config.task.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","uniqueKey":"rollout.result.oneOf.0.config.task.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.task.name","typeLabel":"string | null"},"ref":{"oneOf":[{"type":"string","title":"Ref","uniqueKey":"rollout.result.oneOf.0.config.task.ref.oneOf.0","typeLabel":"string"},{"type":"null","title":"Ref","uniqueKey":"rollout.result.oneOf.0.config.task.ref.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.task.ref","typeLabel":"string | null"},"overwrite":{"type":"boolean","title":"Overwrite","default":false,"uniqueKey":"rollout.result.oneOf.0.config.task.overwrite","typeLabel":"boolean"},"download_dir":{"oneOf":[{"type":"string","title":"Download Dir","format":"path","uniqueKey":"rollout.result.oneOf.0.config.task.download_dir.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Download Dir","uniqueKey":"rollout.result.oneOf.0.config.task.download_dir.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.task.download_dir","typeLabel":"string\u003cpath> | null"},"source":{"oneOf":[{"type":"string","title":"Source","uniqueKey":"rollout.result.oneOf.0.config.task.source.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source","uniqueKey":"rollout.result.oneOf.0.config.task.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.task.source","typeLabel":"string | null"}},"type":"object","title":"TaskConfig","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.task","typeLabel":"TaskConfig · object"},"trial_name":{"type":"string","title":"Trial Name","default":"","uniqueKey":"rollout.result.oneOf.0.config.trial_name","typeLabel":"string"},"trials_dir":{"type":"string","format":"path","title":"Trials Dir","default":"trials","uniqueKey":"rollout.result.oneOf.0.config.trials_dir","typeLabel":"string\u003cpath>"},"install_only":{"type":"boolean","title":"Install Only","description":"Only run agent setup/install, then exit (skips agent run + verification).","default":false,"uniqueKey":"rollout.result.oneOf.0.config.install_only","typeLabel":"boolean"},"timeout_multiplier":{"type":"number","title":"Timeout Multiplier","default":1,"uniqueKey":"rollout.result.oneOf.0.config.timeout_multiplier","typeLabel":"number"},"agent_timeout_multiplier":{"oneOf":[{"type":"number","title":"Agent Timeout Multiplier","uniqueKey":"rollout.result.oneOf.0.config.agent_timeout_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Agent Timeout Multiplier","uniqueKey":"rollout.result.oneOf.0.config.agent_timeout_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent_timeout_multiplier","typeLabel":"number | null"},"verifier_timeout_multiplier":{"oneOf":[{"type":"number","title":"Verifier Timeout Multiplier","uniqueKey":"rollout.result.oneOf.0.config.verifier_timeout_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Verifier Timeout Multiplier","uniqueKey":"rollout.result.oneOf.0.config.verifier_timeout_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.verifier_timeout_multiplier","typeLabel":"number | null"},"agent_setup_timeout_multiplier":{"oneOf":[{"type":"number","title":"Agent Setup Timeout Multiplier","uniqueKey":"rollout.result.oneOf.0.config.agent_setup_timeout_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Agent Setup Timeout Multiplier","uniqueKey":"rollout.result.oneOf.0.config.agent_setup_timeout_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent_setup_timeout_multiplier","typeLabel":"number | null"},"environment_build_timeout_multiplier":{"oneOf":[{"type":"number","title":"Environment Build Timeout Multiplier","uniqueKey":"rollout.result.oneOf.0.config.environment_build_timeout_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Environment Build Timeout Multiplier","uniqueKey":"rollout.result.oneOf.0.config.environment_build_timeout_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.environment_build_timeout_multiplier","typeLabel":"number | null"},"agent":{"properties":{"name":{"oneOf":[{"type":"string","title":"Name","uniqueKey":"rollout.result.oneOf.0.config.agent.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","uniqueKey":"rollout.result.oneOf.0.config.agent.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.name","typeLabel":"string | null"},"import_path":{"oneOf":[{"type":"string","title":"Import Path","uniqueKey":"rollout.result.oneOf.0.config.agent.import_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Import Path","uniqueKey":"rollout.result.oneOf.0.config.agent.import_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.import_path","typeLabel":"string | null"},"model_name":{"oneOf":[{"type":"string","title":"Model Name","uniqueKey":"rollout.result.oneOf.0.config.agent.model_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Name","uniqueKey":"rollout.result.oneOf.0.config.agent.model_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.model_name","typeLabel":"string | null"},"base_url":{"oneOf":[{"type":"string","title":"Base Url","description":"Override the inference endpoint used by the agent.","uniqueKey":"rollout.result.oneOf.0.config.agent.base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Base Url","description":"Override the inference endpoint used by the agent.","uniqueKey":"rollout.result.oneOf.0.config.agent.base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.base_url","typeLabel":"string | null"},"model_api_key_name":{"oneOf":[{"type":"string","title":"Model Api Key Name","description":"Name of the environment variable containing the inference API key.","uniqueKey":"rollout.result.oneOf.0.config.agent.model_api_key_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Api Key Name","description":"Name of the environment variable containing the inference API key.","uniqueKey":"rollout.result.oneOf.0.config.agent.model_api_key_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.model_api_key_name","typeLabel":"string | null"},"model_api_format":{"oneOf":[{"type":"string","title":"ModelApiFormat","description":"Inference API format supported by the agent.","enum":["openai_chat_completions","openai_responses","anthropic_messages","google_generate_content","bedrock_converse"],"uniqueKey":"rollout.result.oneOf.0.config.agent.model_api_format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Inference API format supported by the agent.","uniqueKey":"rollout.result.oneOf.0.config.agent.model_api_format.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.model_api_format","typeLabel":"enum\u003cstring> | null"},"skip_model_parsing":{"type":"boolean","title":"Skip Model Parsing","description":"Pass the model string unchanged without resolving its provider.","default":false,"uniqueKey":"rollout.result.oneOf.0.config.agent.skip_model_parsing","typeLabel":"boolean"},"n_concurrent":{"oneOf":[{"type":"integer","title":"N Concurrent","description":"Per-agent cap on concurrent agent.run() phases. Must not exceed the job's n_concurrent_trials and is usually useful only when lower. When omitted, agent execution is only limited by n_concurrent_trials.","minimum":1,"uniqueKey":"rollout.result.oneOf.0.config.agent.n_concurrent.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Concurrent","description":"Per-agent cap on concurrent agent.run() phases. Must not exceed the job's n_concurrent_trials and is usually useful only when lower. When omitted, agent execution is only limited by n_concurrent_trials.","uniqueKey":"rollout.result.oneOf.0.config.agent.n_concurrent.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.n_concurrent","typeLabel":"integer | null"},"concurrency_group":{"oneOf":[{"type":"string","title":"Concurrency Group","description":"Optional shared concurrency pool name for agent configs that should use the same n_concurrent limit.","uniqueKey":"rollout.result.oneOf.0.config.agent.concurrency_group.oneOf.0","typeLabel":"string"},{"type":"null","title":"Concurrency Group","description":"Optional shared concurrency pool name for agent configs that should use the same n_concurrent limit.","uniqueKey":"rollout.result.oneOf.0.config.agent.concurrency_group.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.concurrency_group","typeLabel":"string | null"},"skills":{"items":{"oneOf":[{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.agent.skills.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"string","format":"path","uniqueKey":"rollout.result.oneOf.0.config.agent.skills.items.[INDEX].oneOf.1","typeLabel":"string\u003cpath>"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.skills.items.[INDEX]","typeLabel":"string | string\u003cpath>"},"type":"array","title":"Skills","description":"Skill directories or source strings (git URLs, org/name[@ref] shorthand, or local paths). Job.create() / Trial.create() resolve any non-local entries to cached directories in-place.","uniqueKey":"rollout.result.oneOf.0.config.agent.skills","typeLabel":"(string | string\u003cpath>)[]"},"override_timeout_sec":{"oneOf":[{"type":"number","title":"Override Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.agent.override_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.agent.override_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.override_timeout_sec","typeLabel":"number | null"},"override_setup_timeout_sec":{"oneOf":[{"type":"number","title":"Override Setup Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.agent.override_setup_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Setup Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.agent.override_setup_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.override_setup_timeout_sec","typeLabel":"number | null"},"max_timeout_sec":{"oneOf":[{"type":"number","title":"Max Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.agent.max_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.agent.max_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.max_timeout_sec","typeLabel":"number | null"},"resume_trajectory":{"type":"boolean","title":"Resume Trajectory","description":"For multi-step tasks, resume the agent's native session from the previous step instead of starting a fresh conversation on each step. Requires an agent with native resume support (capabilities.resume); the trial fails fast otherwise. No effect on single-step tasks.","default":false,"uniqueKey":"rollout.result.oneOf.0.config.agent.resume_trajectory","typeLabel":"boolean"},"load_trajectory":{"oneOf":[{"type":"string","title":"Load Trajectory","description":"Path to a trajectory to load as the agent's session before the first step, which then resumes it instead of starting fresh. A .jsonl file is the agent's native session format (lossless, same agent only; capabilities.load_native_trajectory); a .json file is an ATIF trajectory converted to the agent's native format (portable across supported agents; capabilities.load_atif_trajectory). The trial fails fast if the agent lacks the needed support. Composes with resume_trajectory.","uniqueKey":"rollout.result.oneOf.0.config.agent.load_trajectory.oneOf.0","typeLabel":"string"},{"type":"null","title":"Load Trajectory","description":"Path to a trajectory to load as the agent's session before the first step, which then resumes it instead of starting fresh. A .jsonl file is the agent's native session format (lossless, same agent only; capabilities.load_native_trajectory); a .json file is an ATIF trajectory converted to the agent's native format (portable across supported agents; capabilities.load_atif_trajectory). The trial fails fast if the agent lacks the needed support. Composes with resume_trajectory.","uniqueKey":"rollout.result.oneOf.0.config.agent.load_trajectory.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.load_trajectory","typeLabel":"string | null"},"extra_allowed_hosts":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.agent.extra_allowed_hosts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Extra Allowed Hosts","description":"Run-specific hostnames or IP addresses merged into the effective agent phase allowlist during agent.run() only.","uniqueKey":"rollout.result.oneOf.0.config.agent.extra_allowed_hosts","typeLabel":"string[]"},"include_logs":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.agent.include_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Include Logs","description":"Glob patterns of agent log files to download, relative to the agent logs directory. When set, only matching files are kept.","uniqueKey":"rollout.result.oneOf.0.config.agent.include_logs","typeLabel":"string[]"},"exclude_logs":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.agent.exclude_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Exclude Logs","description":"Glob patterns of agent log files to skip when downloading. Applied after include_logs, so exclude wins on overlap.","uniqueKey":"rollout.result.oneOf.0.config.agent.exclude_logs","typeLabel":"string[]"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.result.oneOf.0.config.agent.kwargs","typeLabel":"Kwargs · object"},"env":{"additionalProperties":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.agent.env.additionalProperties","typeLabel":"string"},"type":"object","title":"Env","uniqueKey":"rollout.result.oneOf.0.config.agent.env","typeLabel":"Env · object"},"mcp_servers":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].name","typeLabel":"string"},"transport":{"type":"string","enum":["stdio","sse","streamable-http"],"title":"Transport","default":"sse","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].transport","typeLabel":"enum\u003cstring>"},"url":{"oneOf":[{"type":"string","title":"Url","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].url","typeLabel":"string | null"},"command":{"oneOf":[{"type":"string","title":"Command","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].command.oneOf.0","typeLabel":"string"},{"type":"null","title":"Command","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].command.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].command","typeLabel":"string | null"},"args":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].args.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Args","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].args","typeLabel":"string[]"},"headers":{"additionalProperties":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].headers.additionalProperties","typeLabel":"string"},"type":"object","title":"Headers","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX].headers","typeLabel":"Headers · object"}},"type":"object","required":["name"],"title":"MCPServerConfig","description":"Configuration for an MCP server available to the agent.","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers.items.[INDEX]","typeLabel":"MCPServerConfig · object"},"type":"array","title":"Mcp Servers","uniqueKey":"rollout.result.oneOf.0.config.agent.mcp_servers","typeLabel":"MCPServerConfig · object[]"}},"type":"object","title":"AgentConfig","uniqueKey":"rollout.result.oneOf.0.config.agent","typeLabel":"AgentConfig · object"},"user_agent":{"oneOf":[{"type":"object","title":"UserAgentConfig","description":"Optional simulated-user agent that communicates with the primary agent through its configured bridge.","required":["bridge"],"properties":{"bridge":{"properties":{"kind":{"type":"string","enum":["acp"],"title":"BridgeKind","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.bridge.kind","typeLabel":"enum\u003cstring>"},"prompt_path":{"oneOf":[{"type":"string","title":"Prompt Path","format":"path","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.bridge.prompt_path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Prompt Path","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.bridge.prompt_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.bridge.prompt_path","typeLabel":"string\u003cpath> | null"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.bridge.kwargs","typeLabel":"Kwargs · object"}},"type":"object","required":["kind"],"title":"BridgeConfig","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.bridge","typeLabel":"BridgeConfig · object"},"name":{"oneOf":[{"type":"string","title":"Name","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.name","typeLabel":"string | null"},"import_path":{"oneOf":[{"type":"string","title":"Import Path","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.import_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Import Path","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.import_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.import_path","typeLabel":"string | null"},"model_name":{"oneOf":[{"type":"string","title":"Model Name","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.model_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Name","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.model_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.model_name","typeLabel":"string | null"},"base_url":{"oneOf":[{"type":"string","title":"Base Url","description":"Override the inference endpoint used by the agent.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Base Url","description":"Override the inference endpoint used by the agent.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.base_url","typeLabel":"string | null"},"model_api_key_name":{"oneOf":[{"type":"string","title":"Model Api Key Name","description":"Name of the environment variable containing the inference API key.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.model_api_key_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Api Key Name","description":"Name of the environment variable containing the inference API key.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.model_api_key_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.model_api_key_name","typeLabel":"string | null"},"model_api_format":{"oneOf":[{"type":"string","title":"ModelApiFormat","description":"Inference API format supported by the agent.","enum":["openai_chat_completions","openai_responses","anthropic_messages","google_generate_content","bedrock_converse"],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.model_api_format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Inference API format supported by the agent.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.model_api_format.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.model_api_format","typeLabel":"enum\u003cstring> | null"},"skip_model_parsing":{"type":"boolean","title":"Skip Model Parsing","description":"Pass the model string unchanged without resolving its provider.","default":false,"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.skip_model_parsing","typeLabel":"boolean"},"n_concurrent":{"oneOf":[{"type":"integer","title":"N Concurrent","description":"Per-agent cap on concurrent agent.run() phases. Must not exceed the job's n_concurrent_trials and is usually useful only when lower. When omitted, agent execution is only limited by n_concurrent_trials.","minimum":1,"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.n_concurrent.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Concurrent","description":"Per-agent cap on concurrent agent.run() phases. Must not exceed the job's n_concurrent_trials and is usually useful only when lower. When omitted, agent execution is only limited by n_concurrent_trials.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.n_concurrent.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.n_concurrent","typeLabel":"integer | null"},"concurrency_group":{"oneOf":[{"type":"string","title":"Concurrency Group","description":"Optional shared concurrency pool name for agent configs that should use the same n_concurrent limit.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.concurrency_group.oneOf.0","typeLabel":"string"},{"type":"null","title":"Concurrency Group","description":"Optional shared concurrency pool name for agent configs that should use the same n_concurrent limit.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.concurrency_group.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.concurrency_group","typeLabel":"string | null"},"skills":{"items":{"oneOf":[{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.skills.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"string","format":"path","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.skills.items.[INDEX].oneOf.1","typeLabel":"string\u003cpath>"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.skills.items.[INDEX]","typeLabel":"string | string\u003cpath>"},"type":"array","title":"Skills","description":"Skill directories or source strings (git URLs, org/name[@ref] shorthand, or local paths). Job.create() / Trial.create() resolve any non-local entries to cached directories in-place.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.skills","typeLabel":"(string | string\u003cpath>)[]"},"override_timeout_sec":{"oneOf":[{"type":"number","title":"Override Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.override_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.override_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.override_timeout_sec","typeLabel":"number | null"},"override_setup_timeout_sec":{"oneOf":[{"type":"number","title":"Override Setup Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.override_setup_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Setup Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.override_setup_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.override_setup_timeout_sec","typeLabel":"number | null"},"max_timeout_sec":{"oneOf":[{"type":"number","title":"Max Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.max_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.max_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.max_timeout_sec","typeLabel":"number | null"},"resume_trajectory":{"type":"boolean","title":"Resume Trajectory","description":"For multi-step tasks, resume the agent's native session from the previous step instead of starting a fresh conversation on each step. Requires an agent with native resume support (capabilities.resume); the trial fails fast otherwise. No effect on single-step tasks.","default":false,"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.resume_trajectory","typeLabel":"boolean"},"load_trajectory":{"oneOf":[{"type":"string","title":"Load Trajectory","description":"Path to a trajectory to load as the agent's session before the first step, which then resumes it instead of starting fresh. A .jsonl file is the agent's native session format (lossless, same agent only; capabilities.load_native_trajectory); a .json file is an ATIF trajectory converted to the agent's native format (portable across supported agents; capabilities.load_atif_trajectory). The trial fails fast if the agent lacks the needed support. Composes with resume_trajectory.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.load_trajectory.oneOf.0","typeLabel":"string"},{"type":"null","title":"Load Trajectory","description":"Path to a trajectory to load as the agent's session before the first step, which then resumes it instead of starting fresh. A .jsonl file is the agent's native session format (lossless, same agent only; capabilities.load_native_trajectory); a .json file is an ATIF trajectory converted to the agent's native format (portable across supported agents; capabilities.load_atif_trajectory). The trial fails fast if the agent lacks the needed support. Composes with resume_trajectory.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.load_trajectory.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.load_trajectory","typeLabel":"string | null"},"extra_allowed_hosts":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.extra_allowed_hosts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Extra Allowed Hosts","description":"Run-specific hostnames or IP addresses merged into the effective agent phase allowlist during agent.run() only.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.extra_allowed_hosts","typeLabel":"string[]"},"include_logs":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.include_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Include Logs","description":"Glob patterns of agent log files to download, relative to the agent logs directory. When set, only matching files are kept.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.include_logs","typeLabel":"string[]"},"exclude_logs":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.exclude_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Exclude Logs","description":"Glob patterns of agent log files to skip when downloading. Applied after include_logs, so exclude wins on overlap.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.exclude_logs","typeLabel":"string[]"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.kwargs","typeLabel":"Kwargs · object"},"env":{"additionalProperties":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.env.additionalProperties","typeLabel":"string"},"type":"object","title":"Env","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.env","typeLabel":"Env · object"},"mcp_servers":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].name","typeLabel":"string"},"transport":{"type":"string","enum":["stdio","sse","streamable-http"],"title":"Transport","default":"sse","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].transport","typeLabel":"enum\u003cstring>"},"url":{"oneOf":[{"type":"string","title":"Url","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].url","typeLabel":"string | null"},"command":{"oneOf":[{"type":"string","title":"Command","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].command.oneOf.0","typeLabel":"string"},{"type":"null","title":"Command","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].command.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].command","typeLabel":"string | null"},"args":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].args.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Args","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].args","typeLabel":"string[]"},"headers":{"additionalProperties":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].headers.additionalProperties","typeLabel":"string"},"type":"object","title":"Headers","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX].headers","typeLabel":"Headers · object"}},"type":"object","required":["name"],"title":"MCPServerConfig","description":"Configuration for an MCP server available to the agent.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers.items.[INDEX]","typeLabel":"MCPServerConfig · object"},"type":"array","title":"Mcp Servers","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.mcp_servers","typeLabel":"MCPServerConfig · object[]"},"user_persona_path":{"oneOf":[{"type":"string","title":"User Persona Path","format":"path","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.user_persona_path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"User Persona Path","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.user_persona_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.user_persona_path","typeLabel":"string\u003cpath> | null"},"user_prompt_template_path":{"oneOf":[{"type":"string","title":"User Prompt Template Path","format":"path","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.user_prompt_template_path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"User Prompt Template Path","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.user_prompt_template_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0.user_prompt_template_path","typeLabel":"string\u003cpath> | null"}},"uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.0","typeLabel":"UserAgentConfig · object"},{"type":"null","description":"Optional simulated-user agent that communicates with the primary agent through its configured bridge.","uniqueKey":"rollout.result.oneOf.0.config.user_agent.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.user_agent","typeLabel":"UserAgentConfig · object | null"},"environment":{"properties":{"type":{"oneOf":[{"type":"string","title":"EnvironmentType","enum":["docker","sbx","podman","daytona","e2b","modal","runloop","langsmith","ec2","gke","ack","openshift","novita","apple-container","singularity","islo","tensorlake","cwsandbox","use-computer","cua-cloud","blaxel","opensandbox","beam","skypilot","hf-sandbox","hyperbrowser","vercel","runta","prime","kata","mosaic","smol","sail","kernel","snowflake","boxd","superserve","aca-sandbox"],"uniqueKey":"rollout.result.oneOf.0.config.environment.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.config.environment.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.environment.type","typeLabel":"enum\u003cstring> | null"},"import_path":{"oneOf":[{"type":"string","title":"Import Path","uniqueKey":"rollout.result.oneOf.0.config.environment.import_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Import Path","uniqueKey":"rollout.result.oneOf.0.config.environment.import_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.environment.import_path","typeLabel":"string | null"},"force_build":{"type":"boolean","title":"Force Build","default":false,"uniqueKey":"rollout.result.oneOf.0.config.environment.force_build","typeLabel":"boolean"},"delete":{"type":"boolean","title":"Delete","default":true,"uniqueKey":"rollout.result.oneOf.0.config.environment.delete","typeLabel":"boolean"},"stream":{"type":"boolean","title":"Stream","default":false,"uniqueKey":"rollout.result.oneOf.0.config.environment.stream","typeLabel":"boolean"},"cpu_enforcement_policy":{"type":"string","enum":["auto","limit","request","guarantee","ignore"],"title":"ResourceMode","default":"auto","uniqueKey":"rollout.result.oneOf.0.config.environment.cpu_enforcement_policy","typeLabel":"enum\u003cstring>"},"memory_enforcement_policy":{"type":"string","enum":["auto","limit","request","guarantee","ignore"],"title":"ResourceMode","default":"auto","uniqueKey":"rollout.result.oneOf.0.config.environment.memory_enforcement_policy","typeLabel":"enum\u003cstring>"},"override_cpus":{"oneOf":[{"type":"integer","title":"Override Cpus","uniqueKey":"rollout.result.oneOf.0.config.environment.override_cpus.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Override Cpus","uniqueKey":"rollout.result.oneOf.0.config.environment.override_cpus.oneOf.1","typeLabel":"number"},{"type":"null","title":"Override Cpus","uniqueKey":"rollout.result.oneOf.0.config.environment.override_cpus.oneOf.2","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.environment.override_cpus","typeLabel":"integer | number | null"},"override_memory_mb":{"oneOf":[{"type":"integer","title":"Override Memory Mb","uniqueKey":"rollout.result.oneOf.0.config.environment.override_memory_mb.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Override Memory Mb","uniqueKey":"rollout.result.oneOf.0.config.environment.override_memory_mb.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.environment.override_memory_mb","typeLabel":"integer | null"},"override_storage_mb":{"oneOf":[{"type":"integer","title":"Override Storage Mb","uniqueKey":"rollout.result.oneOf.0.config.environment.override_storage_mb.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Override Storage Mb","uniqueKey":"rollout.result.oneOf.0.config.environment.override_storage_mb.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.environment.override_storage_mb","typeLabel":"integer | null"},"override_gpus":{"oneOf":[{"type":"integer","title":"Override Gpus","uniqueKey":"rollout.result.oneOf.0.config.environment.override_gpus.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Override Gpus","uniqueKey":"rollout.result.oneOf.0.config.environment.override_gpus.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.environment.override_gpus","typeLabel":"integer | null"},"override_tpu":{"oneOf":[{"type":"object","title":"TpuSpec","description":"Specification for a TPU slice attached to an environment.\n\nThe (type, topology) pair fully determines the GKE node pool the pod\nlands on *and* the per-pod TPU chip count, so there is no separate\nuser-facing chip-count field — it is derived via chip_count.","required":["type","topology"],"properties":{"type":{"type":"string","minLength":1,"title":"Type","description":"TPU accelerator type. Accepts either a user-friendly alias (e.g., 'v6e', 'trillium', 'v4') or a canonical GKE label (e.g., 'tpu-v6e-slice', 'tpu7x').","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.environment.override_tpu.oneOf.0.type","typeLabel":"string"},"topology":{"type":"string","title":"Topology","description":"TPU topology as 'NxM' or 'NxMxK' (e.g., '2x4', '2x2x1').","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.environment.override_tpu.oneOf.0.topology","typeLabel":"string"}},"uniqueKey":"rollout.result.oneOf.0.config.environment.override_tpu.oneOf.0","typeLabel":"TpuSpec · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.config.environment.override_tpu.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.environment.override_tpu","typeLabel":"TpuSpec · object | null"},"mounts":{"oneOf":[{"type":"array","items":{"properties":{"type":{"type":"string","enum":["bind","volume","image"],"title":"Type","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"source":{"type":"string","title":"Source","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].source","typeLabel":"string"},"target":{"type":"string","title":"Target","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].target","typeLabel":"string"},"read_only":{"type":"boolean","const":true,"title":"Read Only","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].read_only","typeLabel":"boolean"},"bind":{"properties":{"create_host_path":{"type":"boolean","const":false,"title":"Create Host Path","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].bind.create_host_path","typeLabel":"boolean"},"selinux":{"type":"string","enum":["z","Z"],"title":"Selinux","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].bind.selinux","typeLabel":"enum\u003cstring>"}},"type":"object","title":"ServiceVolumeBind","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].bind","typeLabel":"ServiceVolumeBind · object"},"volume":{"properties":{"subpath":{"type":"string","title":"Subpath","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].volume.subpath","typeLabel":"string"}},"type":"object","title":"ServiceVolumeVolume","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].volume","typeLabel":"ServiceVolumeVolume · object"},"image":{"properties":{"subpath":{"type":"string","title":"Subpath","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].image.subpath","typeLabel":"string"}},"type":"object","title":"ServiceVolumeImage","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX].image","typeLabel":"ServiceVolumeImage · object"}},"type":"object","required":["type","source","target"],"title":"ServiceVolumeConfig","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0.items.[INDEX]","typeLabel":"ServiceVolumeConfig · object"},"title":"Mounts","description":"Additional mounts for the agent environment only.","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.0","typeLabel":"ServiceVolumeConfig · object[]"},{"type":"null","title":"Mounts","description":"Additional mounts for the agent environment only.","uniqueKey":"rollout.result.oneOf.0.config.environment.mounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.environment.mounts","typeLabel":"ServiceVolumeConfig · object[] | null"},"extra_docker_compose":{"items":{"type":"string","format":"path","uniqueKey":"rollout.result.oneOf.0.config.environment.extra_docker_compose.items.[INDEX]","typeLabel":"string\u003cpath>"},"type":"array","title":"Extra Docker Compose","description":"Additional Docker Compose overlays for the agent environment only.","uniqueKey":"rollout.result.oneOf.0.config.environment.extra_docker_compose","typeLabel":"string\u003cpath>[]"},"env":{"additionalProperties":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.environment.env.additionalProperties","typeLabel":"string"},"type":"object","title":"Env","uniqueKey":"rollout.result.oneOf.0.config.environment.env","typeLabel":"Env · object"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.result.oneOf.0.config.environment.kwargs","typeLabel":"Kwargs · object"},"extra_allowed_hosts":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.environment.extra_allowed_hosts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Extra Allowed Hosts","description":"Run-specific hostnames or IP addresses merged into the [environment] network baseline at agent env start.","uniqueKey":"rollout.result.oneOf.0.config.environment.extra_allowed_hosts","typeLabel":"string[]"}},"type":"object","title":"EnvironmentConfig","uniqueKey":"rollout.result.oneOf.0.config.environment","typeLabel":"EnvironmentConfig · object"},"verifier":{"properties":{"override_timeout_sec":{"oneOf":[{"type":"number","title":"Override Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.verifier.override_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Override Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.verifier.override_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.verifier.override_timeout_sec","typeLabel":"number | null"},"max_timeout_sec":{"oneOf":[{"type":"number","title":"Max Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.verifier.max_timeout_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Timeout Sec","uniqueKey":"rollout.result.oneOf.0.config.verifier.max_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.verifier.max_timeout_sec","typeLabel":"number | null"},"include_logs":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.verifier.include_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Include Logs","description":"Glob patterns of verifier log files to download, relative to the verifier logs directory. When set, only matching files are kept; the reward file is always downloaded.","uniqueKey":"rollout.result.oneOf.0.config.verifier.include_logs","typeLabel":"string[]"},"exclude_logs":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.verifier.exclude_logs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Exclude Logs","description":"Glob patterns of verifier log files to skip when downloading. Applied after include_logs, so exclude wins on overlap.","uniqueKey":"rollout.result.oneOf.0.config.verifier.exclude_logs","typeLabel":"string[]"},"env":{"additionalProperties":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.verifier.env.additionalProperties","typeLabel":"string"},"type":"object","title":"Env","uniqueKey":"rollout.result.oneOf.0.config.verifier.env","typeLabel":"Env · object"},"import_path":{"oneOf":[{"type":"string","title":"Import Path","uniqueKey":"rollout.result.oneOf.0.config.verifier.import_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Import Path","uniqueKey":"rollout.result.oneOf.0.config.verifier.import_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.verifier.import_path","typeLabel":"string | null"},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","uniqueKey":"rollout.result.oneOf.0.config.verifier.kwargs","typeLabel":"Kwargs · object"},"disable":{"type":"boolean","title":"Disable","default":false,"uniqueKey":"rollout.result.oneOf.0.config.verifier.disable","typeLabel":"boolean"},"extra_allowed_hosts":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.verifier.extra_allowed_hosts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Extra Allowed Hosts","description":"Run-specific hostnames or IP addresses merged into the effective verifier phase allowlist during verify(), and into the verifier environment baseline when the verifier runs separately.","uniqueKey":"rollout.result.oneOf.0.config.verifier.extra_allowed_hosts","typeLabel":"string[]"}},"type":"object","title":"VerifierConfig","uniqueKey":"rollout.result.oneOf.0.config.verifier","typeLabel":"VerifierConfig · object"},"override_error_policy":{"additionalProperties":{"properties":{"should_retry":{"oneOf":[{"type":"boolean","title":"Should Retry","uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties.should_retry.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Retry","uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties.should_retry.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties.should_retry","typeLabel":"boolean | null"},"should_grade":{"oneOf":[{"type":"boolean","title":"Should Grade","uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties.should_grade.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Grade","uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties.should_grade.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties.should_grade","typeLabel":"boolean | null"},"has_valid_reward":{"oneOf":[{"type":"boolean","title":"Has Valid Reward","uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties.has_valid_reward.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Has Valid Reward","uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties.has_valid_reward.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties.has_valid_reward","typeLabel":"boolean | null"}},"additionalProperties":false,"type":"object","title":"ErrorPolicyOverride","uniqueKey":"rollout.result.oneOf.0.config.override_error_policy.additionalProperties","typeLabel":"ErrorPolicyOverride · object"},"type":"object","title":"Override Error Policy","uniqueKey":"rollout.result.oneOf.0.config.override_error_policy","typeLabel":"Override Error Policy · object"},"artifacts":{"items":{"oneOf":[{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"object","title":"ArtifactConfig","required":["source"],"properties":{"source":{"type":"string","title":"Source","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1.source","typeLabel":"string"},"destination":{"oneOf":[{"type":"string","title":"Destination","uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1.destination.oneOf.0","typeLabel":"string"},{"type":"null","title":"Destination","uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1.destination.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1.destination","typeLabel":"string | null"},"exclude":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1.exclude.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Exclude","description":"Patterns to exclude when downloading a directory artifact (passed as tar --exclude flags).","uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1.exclude","typeLabel":"string[]"},"service":{"oneOf":[{"type":"string","title":"Service","description":"Docker Compose service to collect this artifact from. None or 'main' targets the agent's container. Any other value requires a compose-capable environment provider and an absolute source path.","uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1.service.oneOf.0","typeLabel":"string"},{"type":"null","title":"Service","description":"Docker Compose service to collect this artifact from. None or 'main' targets the agent's container. Any other value requires a compose-capable environment provider and an absolute source path.","uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1.service.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1.service","typeLabel":"string | null"}},"uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX].oneOf.1","typeLabel":"ArtifactConfig · object"}],"uniqueKey":"rollout.result.oneOf.0.config.artifacts.items.[INDEX]","typeLabel":"string | ArtifactConfig · object"},"type":"array","title":"Artifacts","uniqueKey":"rollout.result.oneOf.0.config.artifacts","typeLabel":"(string | ArtifactConfig · object)[]"},"extra_instruction_paths":{"items":{"type":"string","format":"path","uniqueKey":"rollout.result.oneOf.0.config.extra_instruction_paths.items.[INDEX]","typeLabel":"string\u003cpath>"},"type":"array","title":"Extra Instruction Paths","description":"Paths to extra instruction files appended to the task instruction. File contents are appended before ``extra_instructions``.","uniqueKey":"rollout.result.oneOf.0.config.extra_instruction_paths","typeLabel":"string\u003cpath>[]"},"extra_instructions":{"items":{"type":"string","uniqueKey":"rollout.result.oneOf.0.config.extra_instructions.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Extra Instructions","description":"Inline extra instructions appended to the task instruction. Appended after any ``extra_instruction_paths`` contents.","uniqueKey":"rollout.result.oneOf.0.config.extra_instructions","typeLabel":"string[]"},"job_id":{"oneOf":[{"type":"string","title":"Job Id","format":"uuid","uniqueKey":"rollout.result.oneOf.0.config.job_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Job Id","uniqueKey":"rollout.result.oneOf.0.config.job_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.job_id","typeLabel":"string\u003cuuid> | null"},"source_trial":{"oneOf":[{"type":"object","title":"SourceTrialConfig","description":"Source trial this trial derives from. When set with action='regrade', the trial skips the agent phase: it seeds its agent logs and artifacts from the source trial, then re-runs verification against them in a separate verifier environment. The source trial is never modified.","required":["action","type"],"properties":{"action":{"type":"string","const":"regrade","title":"Action","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.0.action","typeLabel":"string"},"type":{"type":"string","enum":["local","hub"],"title":"Type","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.0.type","typeLabel":"enum\u003cstring>"},"trial_id":{"oneOf":[{"type":"string","title":"Trial Id","format":"uuid","uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.0.trial_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Trial Id","uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.0.trial_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.0.trial_id","typeLabel":"string\u003cuuid> | null"},"path":{"oneOf":[{"type":"string","title":"Path","format":"path","uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.0.path.oneOf.0","typeLabel":"string\u003cpath>"},{"type":"null","title":"Path","uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.0.path.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.0.path","typeLabel":"string\u003cpath> | null"}},"uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.0","typeLabel":"SourceTrialConfig · object"},{"type":"null","description":"Source trial this trial derives from. When set with action='regrade', the trial skips the agent phase: it seeds its agent logs and artifacts from the source trial, then re-runs verification against them in a separate verifier environment. The source trial is never modified.","uniqueKey":"rollout.result.oneOf.0.config.source_trial.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.config.source_trial","typeLabel":"SourceTrialConfig · object | null"}},"type":"object","required":["task"],"title":"TrialConfig","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.config","typeLabel":"TrialConfig · object"},"agent_info":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.agent_info.name","typeLabel":"string"},"version":{"type":"string","title":"Version","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.agent_info.version","typeLabel":"string"},"model_info":{"oneOf":[{"type":"object","title":"ModelInfo","description":"Information about a model that participated in a trial.\n\n``provider`` is optional: when the user runs e.g. ``-m gpt-5.4`` with no\n``\u003cprovider>/`` prefix, the CLI records the model name without a\nprovider. Downstream writes to the ``model`` table omit the column so\nthe DB default (``'unknown'``) takes over, keeping both sides honest\nabout \"not specified\" vs \"explicitly unknown\".","required":["name"],"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.agent_info.model_info.oneOf.0.name","typeLabel":"string"},"provider":{"oneOf":[{"type":"string","title":"Provider","uniqueKey":"rollout.result.oneOf.0.agent_info.model_info.oneOf.0.provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Provider","uniqueKey":"rollout.result.oneOf.0.agent_info.model_info.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_info.model_info.oneOf.0.provider","typeLabel":"string | null"}},"uniqueKey":"rollout.result.oneOf.0.agent_info.model_info.oneOf.0","typeLabel":"ModelInfo · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.agent_info.model_info.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_info.model_info","typeLabel":"ModelInfo · object | null"}},"type":"object","required":["name","version"],"title":"AgentInfo","description":"Information about an agent that participated in a trial.","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.agent_info","typeLabel":"AgentInfo · object"},"reward_valid":{"type":"boolean","title":"Reward Valid","readOnly":true,"isRequired":true,"uniqueKey":"rollout.result.oneOf.0.reward_valid","typeLabel":"boolean"},"id":{"type":"string","format":"uuid","title":"Id","uniqueKey":"rollout.result.oneOf.0.id","typeLabel":"string\u003cuuid>"},"source":{"oneOf":[{"type":"string","title":"Source","uniqueKey":"rollout.result.oneOf.0.source.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source","uniqueKey":"rollout.result.oneOf.0.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.source","typeLabel":"string | null"},"agent_result":{"oneOf":[{"type":"object","title":"AgentContext","properties":{"n_input_tokens":{"oneOf":[{"type":"integer","title":"N Input Tokens","description":"The number of input tokens used including cache.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.n_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Input Tokens","description":"The number of input tokens used including cache.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.n_input_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.n_input_tokens","typeLabel":"integer | null"},"n_cache_tokens":{"oneOf":[{"type":"integer","title":"N Cache Tokens","description":"The number of cache tokens used.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.n_cache_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Cache Tokens","description":"The number of cache tokens used.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.n_cache_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.n_cache_tokens","typeLabel":"integer | null"},"n_output_tokens":{"oneOf":[{"type":"integer","title":"N Output Tokens","description":"The number of output tokens used.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.n_output_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Output Tokens","description":"The number of output tokens used.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.n_output_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.n_output_tokens","typeLabel":"integer | null"},"cost_usd":{"oneOf":[{"type":"number","title":"Cost Usd","description":"The cost in USD for the agent execution.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.cost_usd.oneOf.0","typeLabel":"number"},{"type":"null","title":"Cost Usd","description":"The cost in USD for the agent execution.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.cost_usd.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.cost_usd","typeLabel":"number | null"},"model_usage":{"oneOf":[{"type":"object","title":"Model Usage","description":"Token usage and cost broken down by model name as reported by the agent, including subagents. Backfilled from the ATIF trajectory when the agent does not populate it.","additionalProperties":{"properties":{"n_input_tokens":{"type":"integer","title":"N Input Tokens","default":0,"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.n_input_tokens","typeLabel":"integer"},"n_cache_tokens":{"type":"integer","title":"N Cache Tokens","default":0,"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.n_cache_tokens","typeLabel":"integer"},"n_output_tokens":{"type":"integer","title":"N Output Tokens","default":0,"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.n_output_tokens","typeLabel":"integer"},"cost_usd":{"oneOf":[{"type":"number","title":"Cost Usd","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.cost_usd.oneOf.0","typeLabel":"number"},{"type":"null","title":"Cost Usd","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.cost_usd.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.cost_usd","typeLabel":"number | null"}},"type":"object","title":"ModelUsage","description":"Token usage and cost attributed to a single model.\n\nField semantics mirror the totals on ``AgentContext``: ``n_input_tokens``\nincludes cached tokens.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties","typeLabel":"ModelUsage · object"},"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage.oneOf.0","typeLabel":"Model Usage · object"},{"type":"null","title":"Model Usage","description":"Token usage and cost broken down by model name as reported by the agent, including subagents. Backfilled from the ATIF trajectory when the agent does not populate it.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.model_usage","typeLabel":"Model Usage · object | null"},"rollout_details":{"oneOf":[{"type":"array","items":{"properties":{"prompt_token_ids":{"items":{"items":{"type":"integer","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].prompt_token_ids.items.[INDEX].items.[INDEX]","typeLabel":"integer"},"type":"array","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].prompt_token_ids.items.[INDEX]","typeLabel":"integer[]"},"type":"array","title":"Prompt Token Ids","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].prompt_token_ids","typeLabel":"integer[][]"},"completion_token_ids":{"items":{"items":{"type":"integer","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].completion_token_ids.items.[INDEX].items.[INDEX]","typeLabel":"integer"},"type":"array","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].completion_token_ids.items.[INDEX]","typeLabel":"integer[]"},"type":"array","title":"Completion Token Ids","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].completion_token_ids","typeLabel":"integer[][]"},"logprobs":{"items":{"items":{"type":"number","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].logprobs.items.[INDEX].items.[INDEX]","typeLabel":"number"},"type":"array","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].logprobs.items.[INDEX]","typeLabel":"number[]"},"type":"array","title":"Logprobs","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].logprobs","typeLabel":"number[][]"},"extra":{"additionalProperties":{"items":{"oneOf":[{}],"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].extra.additionalProperties.items.[INDEX]","typeLabel":"any"},"type":"array","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].extra.additionalProperties","typeLabel":"any[]"},"type":"object","title":"Extra","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].extra","typeLabel":"Extra · object"}},"type":"object","title":"RolloutDetail","description":"Details about a complete chat history.\n\nThis represents the full conversation sequence, allowing downstream\napplications to recover the entire conversation using token IDs and logprobs.\n\nFor agents with subagents, summarization, or other non-linear chat histories,\nmultiple RolloutDetail objects can be stored in the list to represent\ndifferent segments. By convention, the first RolloutDetail object should contain\nthe main agent's conversation history.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX]","typeLabel":"RolloutDetail · object"},"title":"Rollout Details","description":"Detailed information about each rollout trajectory including token IDs, loss masks, and logprobs. Each element represents one trajectory. For a linear chat history, there is only one rollout trajectory.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.0","typeLabel":"RolloutDetail · object[]"},{"type":"null","title":"Rollout Details","description":"Detailed information about each rollout trajectory including token IDs, loss masks, and logprobs. Each element represents one trajectory. For a linear chat history, there is only one rollout trajectory.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.rollout_details","typeLabel":"RolloutDetail · object[] | null"},"metadata":{"oneOf":[{"type":"object","title":"Metadata","description":"Additional metadata about the agent execution.","additionalProperties":true,"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.metadata.oneOf.0","typeLabel":"Metadata · object"},{"type":"null","title":"Metadata","description":"Additional metadata about the agent execution.","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0.metadata","typeLabel":"Metadata · object | null"}},"uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.0","typeLabel":"AgentContext · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.agent_result.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_result","typeLabel":"AgentContext · object | null"},"verifier_result":{"oneOf":[{"type":"object","title":"VerifierResult","properties":{"rewards":{"oneOf":[{"type":"object","title":"Rewards","additionalProperties":{"oneOf":[{"type":"number","uniqueKey":"rollout.result.oneOf.0.verifier_result.oneOf.0.rewards.oneOf.0.additionalProperties.oneOf.0","typeLabel":"number"},{"type":"integer","uniqueKey":"rollout.result.oneOf.0.verifier_result.oneOf.0.rewards.oneOf.0.additionalProperties.oneOf.1","typeLabel":"integer"}],"uniqueKey":"rollout.result.oneOf.0.verifier_result.oneOf.0.rewards.oneOf.0.additionalProperties","typeLabel":"number | integer"},"uniqueKey":"rollout.result.oneOf.0.verifier_result.oneOf.0.rewards.oneOf.0","typeLabel":"Rewards · object"},{"type":"null","title":"Rewards","uniqueKey":"rollout.result.oneOf.0.verifier_result.oneOf.0.rewards.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.verifier_result.oneOf.0.rewards","typeLabel":"Rewards · object | null"}},"uniqueKey":"rollout.result.oneOf.0.verifier_result.oneOf.0","typeLabel":"VerifierResult · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.verifier_result.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.verifier_result","typeLabel":"VerifierResult · object | null"},"verifier_environment_mode":{"oneOf":[{"type":"string","title":"VerifierEnvironmentMode","description":"Resolved verifier environment mode ('shared' or 'separate') the trial-level verify ran in. None for multi-step trials: the mode is resolved per step there and is not recorded yet.","enum":["shared","separate"],"uniqueKey":"rollout.result.oneOf.0.verifier_environment_mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Resolved verifier environment mode ('shared' or 'separate') the trial-level verify ran in. None for multi-step trials: the mode is resolved per step there and is not recorded yet.","uniqueKey":"rollout.result.oneOf.0.verifier_environment_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.verifier_environment_mode","typeLabel":"enum\u003cstring> | null"},"exception_info":{"oneOf":[{"type":"object","title":"ExceptionInfo","description":"Information about an exception that occurred during trial execution.","required":["exception_type","exception_message","exception_traceback","occurred_at","policy"],"properties":{"exception_type":{"type":"string","title":"Exception Type","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.exception_type","typeLabel":"string"},"exception_message":{"type":"string","title":"Exception Message","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.exception_message","typeLabel":"string"},"exception_traceback":{"type":"string","title":"Exception Traceback","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.exception_traceback","typeLabel":"string"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.occurred_at","typeLabel":"string\u003cdate-time>"},"policy":{"properties":{"should_retry":{"type":"boolean","title":"Should Retry","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy.should_retry","typeLabel":"boolean"},"should_grade":{"type":"boolean","title":"Should Grade","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy.should_grade","typeLabel":"boolean"},"has_valid_reward":{"type":"boolean","title":"Has Valid Reward","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy.has_valid_reward","typeLabel":"boolean"}},"type":"object","required":["should_retry","should_grade","has_valid_reward"],"title":"ErrorPolicy","readOnly":true,"isRequired":true,"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy","typeLabel":"ErrorPolicy · object"},"policy_override":{"oneOf":[{"type":"object","title":"ErrorPolicyOverride","properties":{"should_retry":{"oneOf":[{"type":"boolean","title":"Should Retry","uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0.should_retry.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Retry","uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0.should_retry.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0.should_retry","typeLabel":"boolean | null"},"should_grade":{"oneOf":[{"type":"boolean","title":"Should Grade","uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0.should_grade.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Grade","uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0.should_grade.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0.should_grade","typeLabel":"boolean | null"},"has_valid_reward":{"oneOf":[{"type":"boolean","title":"Has Valid Reward","uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0.has_valid_reward.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Has Valid Reward","uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0.has_valid_reward.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0.has_valid_reward","typeLabel":"boolean | null"}},"additionalProperties":false,"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.0","typeLabel":"ErrorPolicyOverride · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0.policy_override","typeLabel":"ErrorPolicyOverride · object | null"}},"uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.0","typeLabel":"ExceptionInfo · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.exception_info.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.exception_info","typeLabel":"ExceptionInfo · object | null"},"started_at":{"oneOf":[{"type":"string","title":"Started At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Started At","uniqueKey":"rollout.result.oneOf.0.started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.started_at","typeLabel":"string\u003cdate-time> | null"},"finished_at":{"oneOf":[{"type":"string","title":"Finished At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.finished_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Finished At","uniqueKey":"rollout.result.oneOf.0.finished_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.finished_at","typeLabel":"string\u003cdate-time> | null"},"environment_setup":{"oneOf":[{"type":"object","title":"TimingInfo","description":"Timing information for a phase of trial execution.","properties":{"started_at":{"oneOf":[{"type":"string","title":"Started At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.environment_setup.oneOf.0.started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Started At","uniqueKey":"rollout.result.oneOf.0.environment_setup.oneOf.0.started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.environment_setup.oneOf.0.started_at","typeLabel":"string\u003cdate-time> | null"},"finished_at":{"oneOf":[{"type":"string","title":"Finished At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.environment_setup.oneOf.0.finished_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Finished At","uniqueKey":"rollout.result.oneOf.0.environment_setup.oneOf.0.finished_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.environment_setup.oneOf.0.finished_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"rollout.result.oneOf.0.environment_setup.oneOf.0","typeLabel":"TimingInfo · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.environment_setup.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.environment_setup","typeLabel":"TimingInfo · object | null"},"agent_setup":{"oneOf":[{"type":"object","title":"TimingInfo","description":"Timing information for a phase of trial execution.","properties":{"started_at":{"oneOf":[{"type":"string","title":"Started At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.agent_setup.oneOf.0.started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Started At","uniqueKey":"rollout.result.oneOf.0.agent_setup.oneOf.0.started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_setup.oneOf.0.started_at","typeLabel":"string\u003cdate-time> | null"},"finished_at":{"oneOf":[{"type":"string","title":"Finished At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.agent_setup.oneOf.0.finished_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Finished At","uniqueKey":"rollout.result.oneOf.0.agent_setup.oneOf.0.finished_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_setup.oneOf.0.finished_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"rollout.result.oneOf.0.agent_setup.oneOf.0","typeLabel":"TimingInfo · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.agent_setup.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_setup","typeLabel":"TimingInfo · object | null"},"agent_execution":{"oneOf":[{"type":"object","title":"TimingInfo","description":"Timing information for a phase of trial execution.","properties":{"started_at":{"oneOf":[{"type":"string","title":"Started At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.agent_execution.oneOf.0.started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Started At","uniqueKey":"rollout.result.oneOf.0.agent_execution.oneOf.0.started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_execution.oneOf.0.started_at","typeLabel":"string\u003cdate-time> | null"},"finished_at":{"oneOf":[{"type":"string","title":"Finished At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.agent_execution.oneOf.0.finished_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Finished At","uniqueKey":"rollout.result.oneOf.0.agent_execution.oneOf.0.finished_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_execution.oneOf.0.finished_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"rollout.result.oneOf.0.agent_execution.oneOf.0","typeLabel":"TimingInfo · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.agent_execution.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.agent_execution","typeLabel":"TimingInfo · object | null"},"verifier":{"oneOf":[{"type":"object","title":"TimingInfo","description":"Timing information for a phase of trial execution.","properties":{"started_at":{"oneOf":[{"type":"string","title":"Started At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.verifier.oneOf.0.started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Started At","uniqueKey":"rollout.result.oneOf.0.verifier.oneOf.0.started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.verifier.oneOf.0.started_at","typeLabel":"string\u003cdate-time> | null"},"finished_at":{"oneOf":[{"type":"string","title":"Finished At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.verifier.oneOf.0.finished_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Finished At","uniqueKey":"rollout.result.oneOf.0.verifier.oneOf.0.finished_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.verifier.oneOf.0.finished_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"rollout.result.oneOf.0.verifier.oneOf.0","typeLabel":"TimingInfo · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.verifier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.verifier","typeLabel":"TimingInfo · object | null"},"step_results":{"oneOf":[{"type":"array","items":{"properties":{"step_name":{"type":"string","title":"Step Name","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].step_name","typeLabel":"string"},"agent_result":{"oneOf":[{"type":"object","title":"AgentContext","properties":{"n_input_tokens":{"oneOf":[{"type":"integer","title":"N Input Tokens","description":"The number of input tokens used including cache.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.n_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Input Tokens","description":"The number of input tokens used including cache.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.n_input_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.n_input_tokens","typeLabel":"integer | null"},"n_cache_tokens":{"oneOf":[{"type":"integer","title":"N Cache Tokens","description":"The number of cache tokens used.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.n_cache_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Cache Tokens","description":"The number of cache tokens used.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.n_cache_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.n_cache_tokens","typeLabel":"integer | null"},"n_output_tokens":{"oneOf":[{"type":"integer","title":"N Output Tokens","description":"The number of output tokens used.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.n_output_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"N Output Tokens","description":"The number of output tokens used.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.n_output_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.n_output_tokens","typeLabel":"integer | null"},"cost_usd":{"oneOf":[{"type":"number","title":"Cost Usd","description":"The cost in USD for the agent execution.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.cost_usd.oneOf.0","typeLabel":"number"},{"type":"null","title":"Cost Usd","description":"The cost in USD for the agent execution.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.cost_usd.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.cost_usd","typeLabel":"number | null"},"model_usage":{"oneOf":[{"type":"object","title":"Model Usage","description":"Token usage and cost broken down by model name as reported by the agent, including subagents. Backfilled from the ATIF trajectory when the agent does not populate it.","additionalProperties":{"properties":{"n_input_tokens":{"type":"integer","title":"N Input Tokens","default":0,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.n_input_tokens","typeLabel":"integer"},"n_cache_tokens":{"type":"integer","title":"N Cache Tokens","default":0,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.n_cache_tokens","typeLabel":"integer"},"n_output_tokens":{"type":"integer","title":"N Output Tokens","default":0,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.n_output_tokens","typeLabel":"integer"},"cost_usd":{"oneOf":[{"type":"number","title":"Cost Usd","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.cost_usd.oneOf.0","typeLabel":"number"},{"type":"null","title":"Cost Usd","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.cost_usd.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties.cost_usd","typeLabel":"number | null"}},"type":"object","title":"ModelUsage","description":"Token usage and cost attributed to a single model.\n\nField semantics mirror the totals on ``AgentContext``: ``n_input_tokens``\nincludes cached tokens.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage.oneOf.0.additionalProperties","typeLabel":"ModelUsage · object"},"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage.oneOf.0","typeLabel":"Model Usage · object"},{"type":"null","title":"Model Usage","description":"Token usage and cost broken down by model name as reported by the agent, including subagents. Backfilled from the ATIF trajectory when the agent does not populate it.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.model_usage","typeLabel":"Model Usage · object | null"},"rollout_details":{"oneOf":[{"type":"array","items":{"properties":{"prompt_token_ids":{"items":{"items":{"type":"integer","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].prompt_token_ids.items.[INDEX].items.[INDEX]","typeLabel":"integer"},"type":"array","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].prompt_token_ids.items.[INDEX]","typeLabel":"integer[]"},"type":"array","title":"Prompt Token Ids","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].prompt_token_ids","typeLabel":"integer[][]"},"completion_token_ids":{"items":{"items":{"type":"integer","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].completion_token_ids.items.[INDEX].items.[INDEX]","typeLabel":"integer"},"type":"array","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].completion_token_ids.items.[INDEX]","typeLabel":"integer[]"},"type":"array","title":"Completion Token Ids","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].completion_token_ids","typeLabel":"integer[][]"},"logprobs":{"items":{"items":{"type":"number","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].logprobs.items.[INDEX].items.[INDEX]","typeLabel":"number"},"type":"array","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].logprobs.items.[INDEX]","typeLabel":"number[]"},"type":"array","title":"Logprobs","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].logprobs","typeLabel":"number[][]"},"extra":{"additionalProperties":{"items":{"oneOf":[{}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].extra.additionalProperties.items.[INDEX]","typeLabel":"any"},"type":"array","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].extra.additionalProperties","typeLabel":"any[]"},"type":"object","title":"Extra","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX].extra","typeLabel":"Extra · object"}},"type":"object","title":"RolloutDetail","description":"Details about a complete chat history.\n\nThis represents the full conversation sequence, allowing downstream\napplications to recover the entire conversation using token IDs and logprobs.\n\nFor agents with subagents, summarization, or other non-linear chat histories,\nmultiple RolloutDetail objects can be stored in the list to represent\ndifferent segments. By convention, the first RolloutDetail object should contain\nthe main agent's conversation history.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0.items.[INDEX]","typeLabel":"RolloutDetail · object"},"title":"Rollout Details","description":"Detailed information about each rollout trajectory including token IDs, loss masks, and logprobs. Each element represents one trajectory. For a linear chat history, there is only one rollout trajectory.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.0","typeLabel":"RolloutDetail · object[]"},{"type":"null","title":"Rollout Details","description":"Detailed information about each rollout trajectory including token IDs, loss masks, and logprobs. Each element represents one trajectory. For a linear chat history, there is only one rollout trajectory.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.rollout_details","typeLabel":"RolloutDetail · object[] | null"},"metadata":{"oneOf":[{"type":"object","title":"Metadata","description":"Additional metadata about the agent execution.","additionalProperties":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.metadata.oneOf.0","typeLabel":"Metadata · object"},{"type":"null","title":"Metadata","description":"Additional metadata about the agent execution.","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0.metadata","typeLabel":"Metadata · object | null"}},"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.0","typeLabel":"AgentContext · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_result","typeLabel":"AgentContext · object | null"},"verifier_result":{"oneOf":[{"type":"object","title":"VerifierResult","properties":{"rewards":{"oneOf":[{"type":"object","title":"Rewards","additionalProperties":{"oneOf":[{"type":"number","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier_result.oneOf.0.rewards.oneOf.0.additionalProperties.oneOf.0","typeLabel":"number"},{"type":"integer","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier_result.oneOf.0.rewards.oneOf.0.additionalProperties.oneOf.1","typeLabel":"integer"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier_result.oneOf.0.rewards.oneOf.0.additionalProperties","typeLabel":"number | integer"},"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier_result.oneOf.0.rewards.oneOf.0","typeLabel":"Rewards · object"},{"type":"null","title":"Rewards","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier_result.oneOf.0.rewards.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier_result.oneOf.0.rewards","typeLabel":"Rewards · object | null"}},"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier_result.oneOf.0","typeLabel":"VerifierResult · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier_result.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier_result","typeLabel":"VerifierResult · object | null"},"exception_info":{"oneOf":[{"type":"object","title":"ExceptionInfo","description":"Information about an exception that occurred during trial execution.","required":["exception_type","exception_message","exception_traceback","occurred_at","policy"],"properties":{"exception_type":{"type":"string","title":"Exception Type","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.exception_type","typeLabel":"string"},"exception_message":{"type":"string","title":"Exception Message","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.exception_message","typeLabel":"string"},"exception_traceback":{"type":"string","title":"Exception Traceback","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.exception_traceback","typeLabel":"string"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.occurred_at","typeLabel":"string\u003cdate-time>"},"policy":{"properties":{"should_retry":{"type":"boolean","title":"Should Retry","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy.should_retry","typeLabel":"boolean"},"should_grade":{"type":"boolean","title":"Should Grade","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy.should_grade","typeLabel":"boolean"},"has_valid_reward":{"type":"boolean","title":"Has Valid Reward","isRequired":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy.has_valid_reward","typeLabel":"boolean"}},"type":"object","required":["should_retry","should_grade","has_valid_reward"],"title":"ErrorPolicy","readOnly":true,"isRequired":true,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy","typeLabel":"ErrorPolicy · object"},"policy_override":{"oneOf":[{"type":"object","title":"ErrorPolicyOverride","properties":{"should_retry":{"oneOf":[{"type":"boolean","title":"Should Retry","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0.should_retry.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Retry","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0.should_retry.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0.should_retry","typeLabel":"boolean | null"},"should_grade":{"oneOf":[{"type":"boolean","title":"Should Grade","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0.should_grade.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Should Grade","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0.should_grade.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0.should_grade","typeLabel":"boolean | null"},"has_valid_reward":{"oneOf":[{"type":"boolean","title":"Has Valid Reward","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0.has_valid_reward.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Has Valid Reward","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0.has_valid_reward.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0.has_valid_reward","typeLabel":"boolean | null"}},"additionalProperties":false,"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.0","typeLabel":"ErrorPolicyOverride · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0.policy_override","typeLabel":"ErrorPolicyOverride · object | null"}},"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.0","typeLabel":"ExceptionInfo · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].exception_info","typeLabel":"ExceptionInfo · object | null"},"agent_execution":{"oneOf":[{"type":"object","title":"TimingInfo","description":"Timing information for a phase of trial execution.","properties":{"started_at":{"oneOf":[{"type":"string","title":"Started At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_execution.oneOf.0.started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Started At","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_execution.oneOf.0.started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_execution.oneOf.0.started_at","typeLabel":"string\u003cdate-time> | null"},"finished_at":{"oneOf":[{"type":"string","title":"Finished At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_execution.oneOf.0.finished_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Finished At","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_execution.oneOf.0.finished_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_execution.oneOf.0.finished_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_execution.oneOf.0","typeLabel":"TimingInfo · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_execution.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].agent_execution","typeLabel":"TimingInfo · object | null"},"verifier":{"oneOf":[{"type":"object","title":"TimingInfo","description":"Timing information for a phase of trial execution.","properties":{"started_at":{"oneOf":[{"type":"string","title":"Started At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier.oneOf.0.started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Started At","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier.oneOf.0.started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier.oneOf.0.started_at","typeLabel":"string\u003cdate-time> | null"},"finished_at":{"oneOf":[{"type":"string","title":"Finished At","format":"date-time","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier.oneOf.0.finished_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Finished At","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier.oneOf.0.finished_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier.oneOf.0.finished_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier.oneOf.0","typeLabel":"TimingInfo · object"},{"type":"null","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX].verifier","typeLabel":"TimingInfo · object | null"}},"type":"object","required":["step_name"],"title":"StepResult","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0.items.[INDEX]","typeLabel":"StepResult · object"},"title":"Step Results","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.0","typeLabel":"StepResult · object[]"},{"type":"null","title":"Step Results","uniqueKey":"rollout.result.oneOf.0.step_results.oneOf.1","typeLabel":"null"}],"uniqueKey":"rollout.result.oneOf.0.step_results","typeLabel":"StepResult · object[] | null"}},"isRequired":true,"uniqueKey":"rollout.result.oneOf.0","typeLabel":"TrialResult · object"},{"type":"null","isRequired":true,"uniqueKey":"rollout.result.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rollout.result","typeLabel":"TrialResult · object | null"}},"type":"object","required":["created_at","updated_at","started_at","finished_at","id","job_id","name","state","retry_of","phase","task","agent","model","rewards","usage","error_type","lock","artifacts","storage_error","result"],"title":"RolloutDetail","isRequired":true,"uniqueKey":"rollout","typeLabel":"RolloutDetail · object"}},"type":"object","required":["rollout"],"title":"RolloutResponse","uniqueKey":"","typeLabel":"RolloutResponse · object"},"examples":{"Example":{"title":"Example","value":{"rollout":{"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","started_at":"2023-11-07T05:31:56Z","finished_at":"2023-11-07T05:31:56Z","id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","job_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","name":"\u003cstring>","state":"queued","retry_of":"3c90c3cc-0d44-4b50-8888-8dd25736052a","phase":"environment_setup","task":{"name":"\u003cstring>","digest":"\u003cstring>","source":"\u003cstring>"},"agent":{"name":"\u003cstring>","version":"\u003cstring>"},"model":{"name":"\u003cstring>","provider":"\u003cstring>","reasoning_effort":"\u003cstring>"},"rewards":{},"usage":{"n_input_tokens":123,"n_cached_input_tokens":123,"n_output_tokens":123,"cost_usd":123},"error_type":"\u003cstring>","lock":{"task":{"name":"\u003cstring>","type":"local","digest":"\u003cstring>","version":"\u003cstring>","source":"\u003cstring>","path":"\u003cstring>","git_url":"\u003cstring>","git_commit_id":"\u003cstring>"},"agent":{"name":"\u003cstring>","import_path":"\u003cstring>","model_name":"\u003cstring>","base_url":"\u003cstring>","model_api_key_name":"\u003cstring>","model_api_format":"openai_chat_completions","skip_model_parsing":false,"n_concurrent":2,"concurrency_group":"\u003cstring>","skills":["\u003cstring>"],"override_timeout_sec":123,"override_setup_timeout_sec":123,"max_timeout_sec":123,"resume_trajectory":false,"load_trajectory":"\u003cstring>","extra_allowed_hosts":["\u003cstring>"],"include_logs":["\u003cstring>"],"exclude_logs":["\u003cstring>"],"kwargs":{},"env":{},"mcp_servers":[{"name":"\u003cstring>","transport":"sse","url":"\u003cstring>","command":"\u003cstring>","args":["\u003cstring>"],"headers":{}}]},"environment":{"type":"docker","import_path":"\u003cstring>","force_build":false,"delete":true,"stream":false,"cpu_enforcement_policy":"auto","memory_enforcement_policy":"auto","override_cpus":123,"override_memory_mb":123,"override_storage_mb":123,"override_gpus":123,"override_tpu":{"type":"\u003cstring>","topology":"\u003cstring>"},"mounts":[{"type":"bind","source":"\u003cstring>","target":"\u003cstring>","read_only":true,"bind":{"create_host_path":false,"selinux":"z"},"volume":{"subpath":"\u003cstring>"},"image":{"subpath":"\u003cstring>"}}],"extra_docker_compose":["\u003cstring>"],"env":{},"kwargs":{},"extra_allowed_hosts":["\u003cstring>"]},"verifier":{"override_timeout_sec":123,"max_timeout_sec":123,"include_logs":["\u003cstring>"],"exclude_logs":["\u003cstring>"],"env":{},"import_path":"\u003cstring>","kwargs":{},"disable":false,"extra_allowed_hosts":["\u003cstring>"],"environment_mode":"shared"},"schema_version":2,"install_only":false,"timeout_multiplier":1,"agent_timeout_multiplier":123,"verifier_timeout_multiplier":123,"agent_setup_timeout_multiplier":123,"environment_build_timeout_multiplier":123,"extra_instructions":[{"digest":"\u003cstring>","path":"\u003cstring>"}],"user_agent":{"bridge":{"kind":"acp","prompt_path":"\u003cstring>","kwargs":{}},"name":"\u003cstring>","import_path":"\u003cstring>","model_name":"\u003cstring>","base_url":"\u003cstring>","model_api_key_name":"\u003cstring>","model_api_format":"openai_chat_completions","skip_model_parsing":false,"n_concurrent":2,"concurrency_group":"\u003cstring>","skills":["\u003cstring>"],"override_timeout_sec":123,"override_setup_timeout_sec":123,"max_timeout_sec":123,"resume_trajectory":false,"load_trajectory":"\u003cstring>","extra_allowed_hosts":["\u003cstring>"],"include_logs":["\u003cstring>"],"exclude_logs":["\u003cstring>"],"kwargs":{},"env":{},"mcp_servers":[{"name":"\u003cstring>","transport":"sse","url":"\u003cstring>","command":"\u003cstring>","args":["\u003cstring>"],"headers":{}}],"user_persona_path":"\u003cstring>","user_prompt_template_path":"\u003cstring>"},"user_persona":{"digest":"\u003cstring>","path":"\u003cstring>"},"user_prompt_template":{"digest":"\u003cstring>","path":"\u003cstring>"},"bridge_prompt":{"digest":"\u003cstring>","path":"\u003cstring>"},"bridge_inputs":{},"skills":[{"name":"\u003cstring>","source":"\u003cstring>","digest":"\u003cstring>","git_url":"\u003cstring>","git_commit_id":"\u003cstring>"}],"extra_docker_compose":[{"path":"\u003cstring>","digest":"\u003cstring>"}],"artifacts":["\u003cstring>"],"override_error_policy":{},"source_trial":{"action":"regrade","type":"local","trial_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","path":"\u003cstring>","task":{"name":"\u003cstring>","type":"local","digest":"\u003cstring>","version":"\u003cstring>","source":"\u003cstring>","path":"\u003cstring>","git_url":"\u003cstring>","git_commit_id":"\u003cstring>"}}},"artifacts":{},"storage_error":{"exception_type":"\u003cstring>","exception_message":"\u003cstring>","exception_traceback":"\u003cstring>","occurred_at":"2023-11-07T05:31:56Z","policy":{"should_retry":true,"should_grade":true,"has_valid_reward":true},"policy_override":{"should_retry":true,"should_grade":true,"has_valid_reward":true}},"result":{"task_name":"\u003cstring>","trial_name":"\u003cstring>","trial_uri":"\u003cstring>","task_id":{"path":"\u003cstring>"},"task_checksum":"\u003cstring>","config":{"task":{"path":"\u003cstring>","git_url":"\u003cstring>","git_commit_id":"\u003cstring>","name":"\u003cstring>","ref":"\u003cstring>","overwrite":false,"download_dir":"\u003cstring>","source":"\u003cstring>"},"trial_name":"","trials_dir":"trials","install_only":false,"timeout_multiplier":1,"agent_timeout_multiplier":123,"verifier_timeout_multiplier":123,"agent_setup_timeout_multiplier":123,"environment_build_timeout_multiplier":123,"agent":{"name":"\u003cstring>","import_path":"\u003cstring>","model_name":"\u003cstring>","base_url":"\u003cstring>","model_api_key_name":"\u003cstring>","model_api_format":"openai_chat_completions","skip_model_parsing":false,"n_concurrent":2,"concurrency_group":"\u003cstring>","skills":["\u003cstring>"],"override_timeout_sec":123,"override_setup_timeout_sec":123,"max_timeout_sec":123,"resume_trajectory":false,"load_trajectory":"\u003cstring>","extra_allowed_hosts":["\u003cstring>"],"include_logs":["\u003cstring>"],"exclude_logs":["\u003cstring>"],"kwargs":{},"env":{},"mcp_servers":[{"name":"\u003cstring>","transport":"sse","url":"\u003cstring>","command":"\u003cstring>","args":["\u003cstring>"],"headers":{}}]},"user_agent":{"bridge":{"kind":"acp","prompt_path":"\u003cstring>","kwargs":{}},"name":"\u003cstring>","import_path":"\u003cstring>","model_name":"\u003cstring>","base_url":"\u003cstring>","model_api_key_name":"\u003cstring>","model_api_format":"openai_chat_completions","skip_model_parsing":false,"n_concurrent":2,"concurrency_group":"\u003cstring>","skills":["\u003cstring>"],"override_timeout_sec":123,"override_setup_timeout_sec":123,"max_timeout_sec":123,"resume_trajectory":false,"load_trajectory":"\u003cstring>","extra_allowed_hosts":["\u003cstring>"],"include_logs":["\u003cstring>"],"exclude_logs":["\u003cstring>"],"kwargs":{},"env":{},"mcp_servers":[{"name":"\u003cstring>","transport":"sse","url":"\u003cstring>","command":"\u003cstring>","args":["\u003cstring>"],"headers":{}}],"user_persona_path":"\u003cstring>","user_prompt_template_path":"\u003cstring>"},"environment":{"type":"docker","import_path":"\u003cstring>","force_build":false,"delete":true,"stream":false,"cpu_enforcement_policy":"auto","memory_enforcement_policy":"auto","override_cpus":123,"override_memory_mb":123,"override_storage_mb":123,"override_gpus":123,"override_tpu":{"type":"\u003cstring>","topology":"\u003cstring>"},"mounts":[{"type":"bind","source":"\u003cstring>","target":"\u003cstring>","read_only":true,"bind":{"create_host_path":false,"selinux":"z"},"volume":{"subpath":"\u003cstring>"},"image":{"subpath":"\u003cstring>"}}],"extra_docker_compose":["\u003cstring>"],"env":{},"kwargs":{},"extra_allowed_hosts":["\u003cstring>"]},"verifier":{"override_timeout_sec":123,"max_timeout_sec":123,"include_logs":["\u003cstring>"],"exclude_logs":["\u003cstring>"],"env":{},"import_path":"\u003cstring>","kwargs":{},"disable":false,"extra_allowed_hosts":["\u003cstring>"]},"override_error_policy":{},"artifacts":["\u003cstring>"],"extra_instruction_paths":["\u003cstring>"],"extra_instructions":["\u003cstring>"],"job_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","source_trial":{"action":"regrade","type":"local","trial_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","path":"\u003cstring>"}},"agent_info":{"name":"\u003cstring>","version":"\u003cstring>","model_info":{"name":"\u003cstring>","provider":"\u003cstring>"}},"reward_valid":true,"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","source":"\u003cstring>","agent_result":{"n_input_tokens":123,"n_cache_tokens":123,"n_output_tokens":123,"cost_usd":123,"model_usage":{},"rollout_details":[{"prompt_token_ids":[[123]],"completion_token_ids":[[123]],"logprobs":[[123]],"extra":{}}],"metadata":{}},"verifier_result":{"rewards":{}},"verifier_environment_mode":"shared","exception_info":{"exception_type":"\u003cstring>","exception_message":"\u003cstring>","exception_traceback":"\u003cstring>","occurred_at":"2023-11-07T05:31:56Z","policy":{"should_retry":true,"should_grade":true,"has_valid_reward":true},"policy_override":{"should_retry":true,"should_grade":true,"has_valid_reward":true}},"started_at":"2023-11-07T05:31:56Z","finished_at":"2023-11-07T05:31:56Z","environment_setup":{"started_at":"2023-11-07T05:31:56Z","finished_at":"2023-11-07T05:31:56Z"},"agent_setup":{"started_at":"2023-11-07T05:31:56Z","finished_at":"2023-11-07T05:31:56Z"},"agent_execution":{"started_at":"2023-11-07T05:31:56Z","finished_at":"2023-11-07T05:31:56Z"},"verifier":{"started_at":"2023-11-07T05:31:56Z","finished_at":"2023-11-07T05:31:56Z"},"step_results":[{"step_name":"\u003cstring>","agent_result":{"n_input_tokens":123,"n_cache_tokens":123,"n_output_tokens":123,"cost_usd":123,"model_usage":{},"rollout_details":[{"prompt_token_ids":[[123]],"completion_token_ids":[[123]],"logprobs":[[123]],"extra":{}}],"metadata":{}},"verifier_result":{"rewards":{}},"exception_info":{"exception_type":"\u003cstring>","exception_message":"\u003cstring>","exception_traceback":"\u003cstring>","occurred_at":"2023-11-07T05:31:56Z","policy":{"should_retry":true,"should_grade":true,"has_valid_reward":true},"policy_override":{"should_retry":true,"should_grade":true,"has_valid_reward":true}},"agent_execution":{"started_at":"2023-11-07T05:31:56Z","finished_at":"2023-11-07T05:31:56Z"},"verifier":{"started_at":"2023-11-07T05:31:56Z","finished_at":"2023-11-07T05:31:56Z"}}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"64abe657-f50a-41f1-be7a-9d4620df119c":{"description":"Request rejected. Read error.code and error.message.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"additionalProperties":{"type":"string","uniqueKey":"error.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"d6077664-9f0c-4e33-8735-a129b0707585":{"description":"Request rejected. Read error.code and error.message.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"additionalProperties":{"type":"string","uniqueKey":"error.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"042c78fe-f3d7-49e0-b8a5-c52c547d2731":{},"aa77959c-4c39-415c-ac02-625a98d6e50b":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Required only when the server has HARBOR_API_KEY configured.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"7ba5fe3b-382f-4910-9a02-c8b18c140efa":{"url":"http://127.0.0.1:{port}","description":"Local server","variables":{"port":{"default":"8390"}}},"569dfa06-ca71-4fa0-810e-74350cb1607a":{"url":"https://{host}","description":"Remote server","variables":{"host":{"default":"your-server.example.com"}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Required only when the server has HARBOR_API_KEY configured.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Required only when the server has HARBOR_API_KEY configured.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-sdk/openapi.json"},"subdomain":"harborframework","siteName":"Harbor","title":"Cancel Rollout - Harbor","navMaps":{"firstHrefInVersion":{"latest":{"href":"/api-sdk/rollouts/cancel-rollout","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-10T05:38:38.924Z","originalFileLocation":"api-sdk/rollouts/cancel-rollout.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Cancel a rollout. Set soft=true to let it finish if already running.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Harbor\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Cancel Rollout - Harbor\">\u003cmeta data-mint-head property=\"og:description\" content=\"Cancel a rollout. Set soft=true to let it finish if already running.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Harbor\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://harborframework.mintlify.site/_mintlify/api/og/v2?division=Rollouts\u0026amp;title=Cancel+Rollout\u0026amp;description=Cancel+a+rollout.+Set+soft%3Dtrue+to+let+it+finish+if+already+running.\u0026amp;theme=a9fb774147a742b86f4a66ed\u0026amp;signature=296fe094455e7af07f7be221e2e4a27c3d9a216882a57fddeb85c7918e51619d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Cancel Rollout - Harbor\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Cancel a rollout. Set soft=true to let it finish if already running.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://harborframework.mintlify.site/_mintlify/api/og/v2?division=Rollouts\u0026amp;title=Cancel+Rollout\u0026amp;description=Cancel+a+rollout.+Set+soft%3Dtrue+to+let+it+finish+if+already+running.\u0026amp;theme=a9fb774147a742b86f4a66ed\u0026amp;signature=296fe094455e7af07f7be221e2e4a27c3d9a216882a57fddeb85c7918e51619d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/harborframework/t1HVNIl2iBRRwd1v/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Harbor\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#111111\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-sdk/rollouts/cancel-rollout.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.harborframework.com/#organization\",\"name\":\"Harbor\",\"url\":\"https://docs.harborframework.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/harborframework/l9c_ohETpnOqpDv2/harbor-wordmark-light.png?fit=max\u0026auto=format\u0026n=l9c_ohETpnOqpDv2\u0026q=85\u0026s=1f1a976e45a8c4d0f6c6aed694ec906f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.harborframework.com#website\",\"name\":\"Harbor\",\"url\":\"https://docs.harborframework.com\",\"publisher\":{\"@id\":\"https://docs.harborframework.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout#webpage\",\"url\":\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout\",\"name\":\"Cancel Rollout\",\"description\":\"Cancel a rollout. Set soft=true to let it finish if already running.\",\"dateModified\":\"2026-11-10T05:38:38.924Z\",\"isPartOf\":{\"@id\":\"https://docs.harborframework.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Rollouts\",\"item\":\"https://docs.harborframework.com/api-sdk/rollouts/list-rollouts\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cancel Rollout\",\"item\":\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout#apireference\",\"headline\":\"Cancel Rollout\",\"name\":\"Cancel Rollout\",\"description\":\"Cancel a rollout. Set soft=true to let it finish if already running.\",\"url\":\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout\",\"mainEntityOfPage\":{\"@id\":\"https://docs.harborframework.com/api-sdk/rollouts/cancel-rollout#webpage\"},\"dateModified\":\"2026-11-10T05:38:38.924Z\",\"publisher\":{\"@id\":\"https://docs.harborframework.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.harborframework.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Harbor\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Harbor\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-sdk/rollouts/cancel-rollout.md","siteName":"Harbor","nav":{"global":{"anchors":[{"anchor":"Harbor Hub","icon":"layers","href":"https://hub.harborframework.com"},{"anchor":"Discord","icon":"messages-square","href":"https://discord.gg/QVvyhRw5UQ"},{"anchor":"Docs MCP","icon":"bot","href":"/ai-agents"}]},"versions":[{"version":"latest","default":true,"tag":"Latest","tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":"/getting-started/quick-start"}]},{"tab":"API \u0026 SDK","groups":[{"group":"Jobs","pages":[{"title":"Resolve Job","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /jobs/resolve","href":"/api-sdk/jobs/resolve-job"},{"title":"Submit Job","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /jobs/submit","href":"/api-sdk/jobs/submit-job"},{"title":"List Jobs","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json get /jobs","href":"/api-sdk/jobs/list-jobs"},{"title":"Get Job","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json get /jobs/{job_id}","href":"/api-sdk/jobs/get-job"},{"title":"Pause Job","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /jobs/{job_id}/pause","href":"/api-sdk/jobs/pause-job"},{"title":"Resume Job","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /jobs/{job_id}/resume","href":"/api-sdk/jobs/resume-job"},{"title":"Cancel Job","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /jobs/{job_id}/cancel","href":"/api-sdk/jobs/cancel-job"}]},{"group":"Rollouts","pages":[{"title":"List Rollouts","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json get /rollouts","href":"/api-sdk/rollouts/list-rollouts"},{"title":"Get Rollout","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json get /rollouts/{rollout_id}","href":"/api-sdk/rollouts/get-rollout"},{"title":"Pause Rollout","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /rollouts/{rollout_id}/pause","href":"/api-sdk/rollouts/pause-rollout"},{"title":"Resume Rollout","description":"Resume a paused rollout.","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /rollouts/{rollout_id}/resume","href":"/api-sdk/rollouts/resume-rollout"},{"title":"Cancel Rollout","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /rollouts/{rollout_id}/cancel","href":"/api-sdk/rollouts/cancel-rollout"},{"title":"Retry Rollout","description":"Create a new attempt of a finished or cancelled rollout in the same job.","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /rollouts/{rollout_id}/retry","href":"/api-sdk/rollouts/retry-rollout"}]},{"group":"Files","pages":[{"title":"Download","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json get /download","href":"/api-sdk/files/download"},{"title":"Inspect file","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json head /download","href":"/api-sdk/files/inspect-file"}]},{"group":"Queries","pages":[{"title":"Job Filters","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json get /jobs/filters","href":"/api-sdk/queries/job-filters"},{"title":"Rollout Filters","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json get /rollouts/filters","href":"/api-sdk/queries/rollout-filters"},{"title":"Query Schema","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json get /query/schema","href":"/api-sdk/queries/query-schema"},{"title":"Query Sql","deprecated":null,"version":null,"openapi":"/api-sdk/openapi.json post /query","href":"/api-sdk/queries/query-sql"}]}]},{"tab":"News","pages":[{"title":"News","href":"/news"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]}]},"basePath":"","title":"Cancel Rollout - Harbor","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-D6S0Yh6q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}