Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (OUTERLAYER_API_KEY, the model credential and the commit identity, for some), is refused with invalid_managed_build_setting (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the managed_runners flag is on for the organization.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OuterLayer","description":"An open-source software factory: issue in, reviewed and verified code out, on your agents, in your repos.","colors":{"primary":"#2065D1","light":"#4C8DEE","dark":"#1A55B8"},"logo":{"light":"https://mintcdn.com/outerlayer-stg/h46SL2WH_1X-gmFL/logo/light.svg?fit=max\u0026auto=format\u0026n=h46SL2WH_1X-gmFL\u0026q=85\u0026s=de563af4ba1bc24d13a1c4a7485a2182","dark":"https://mintcdn.com/outerlayer-stg/h46SL2WH_1X-gmFL/logo/dark.svg?fit=max\u0026auto=format\u0026n=h46SL2WH_1X-gmFL\u0026q=85\u0026s=13e7346de4086ea4a5f7e83a85e7a072"},"favicon":"https://mintcdn.com/outerlayer-stg/h46SL2WH_1X-gmFL/favicon.svg?fit=max\u0026auto=format\u0026n=h46SL2WH_1X-gmFL\u0026q=85\u0026s=adddaf2c470259ec7193c6bd26a95252","appearance":{"default":"system"},"background":{"color":{"light":"#FAFAF9","dark":"#131312"}},"navbar":{"links":[{"href":"/changelog","label":"Changelog"},{"href":"https://github.com/outerlayerai/outerlayer","label":"GitHub"}],"primary":{"type":"button","label":"Open the app","href":"https://app.outerlayer.ai"}},"footer":{"socials":{"github":"https://github.com/outerlayerai/outerlayer","website":"https://www.outerlayer.ai"}},"fonts":{"family":"Geist"},"styling":{"codeblocks":"system","latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"outerlayer-stg","hasAudioNarration":false,"actualSubdomain":"outerlayer-stg","customDomains":["docs-stg.outerlayer.ai"],"gitSource":{"type":"github","owner":"outerlayerai","repo":"outerlayer","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6adfb1b6e051be5054cd6197","collectionId":"8b61ac46-bcff-45c0-aec7-55917b6b1229","liveDeploymentHistoryId":"6adfb1b6e051be5054cd6197","schemaVersion":"v3"},"entitlements":{},"buildId":"6adfb1e2141a85a6119e998a","clientVersion":"0.0.3969","searchFilterCounts":[{"language":"default","tag":"API reference","count":107},{"language":"default","tag":"Endpoints","count":105},{"language":"default","tag":"Documentation","count":42},{"language":"default","tag":"Work Items","count":28},{"language":"default","tag":"Apps","count":20},{"language":"default","tag":"CLI reference","count":13},{"language":"default","tag":"Run builds","count":12},{"language":"default","tag":"Commands","count":9},{"language":"default","tag":"Org Management","count":9},{"language":"default","tag":"Work on an item","count":7}]},"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":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"custom.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.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: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.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: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.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/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.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: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.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: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.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/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.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: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.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: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.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.font-mono,code,kbd,pre,samp{font-family:\"JetBrains Mono\",ui-monospace,SFMono-Regular,Menlo,monospace}.status-icon{display:inline-block;width:1.05em;height:1.05em;margin-right:.35em;vertical-align:-.17em;color:#61656f}.status-icon-not_picked_up,.status-icon-with_agent{color:#b26a00}.status-icon-ready_for_review{color:#2e7d32}.status-icon-approved{color:#4f55c9}.status-icon-needs_attention{color:#c62828}.status-icon-dot{fill:#c2410c}.dark .status-icon{color:#9a9eab}.dark .status-icon-not_picked_up,.dark .status-icon-with_agent{color:#f0a742}.dark .status-icon-ready_for_review{color:#6cc070}.dark .status-icon-approved{color:#959bf2}.dark .status-icon-needs_attention{color:#f2827a}.dark .status-icon-dot{fill:#f08a4b}"}],"page":{"pagePath":"api-reference/apps/save-or-replace-a-build-variable-of-the-factory","slug":"/api-reference/apps/save-or-replace-a-build-variable-of-the-factory","pageMetadata":{"title":"Save or replace a build variable of the factory","description":"Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (`OUTERLAYER_API_KEY`, the model credential and the commit identity, for some), is refused with `invalid_managed_build_setting` (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the `managed_runners` flag is on for the organization.","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/apps/{appId}/build-variables/{name}","href":"/api-reference/apps/save-or-replace-a-build-variable-of-the-factory","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (\", _jsx(_components.code, {\n children: \"OUTERLAYER_API_KEY\"\n }), \", the model credential and the commit identity, for some), is refused with \", _jsx(_components.code, {\n children: \"invalid_managed_build_setting\"\n }), \" (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the \", _jsx(_components.code, {\n children: \"managed_runners\"\n }), \" flag is on for the organization.\"]\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":"Save or replace a build variable of the factory","description":"Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (`OUTERLAYER_API_KEY`, the model credential and the commit identity, for some), is refused with `invalid_managed_build_setting` (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the `managed_runners` flag is on for the organization.","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/apps/{appId}/build-variables/{name}","href":"/api-reference/apps/save-or-replace-a-build-variable-of-the-factory","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (`OUTERLAYER_API_KEY`, the model credential and the commit identity, for some), is refused with `invalid_managed_build_setting` (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the `managed_runners` flag is on for the organization.","operationId":"put-app-build-variable","parameters":["311088ef-61ae-4311-a0a3-af25d9f10bee","b6b2ae2f-b6ab-4bad-92fc-c3c8569b023e"],"requestBody":"85f9b709-c1a9-45a7-ac4e-6dc69f00b555","responses":{"200":"179607a0-3555-4dba-9985-7f3d768e4c51","400":"33291f73-87c8-4092-90f2-7b372d44eb37","401":"746f6ab2-3d2e-44a5-bab4-bff125a48838","403":"65bb14bc-c58f-429b-bddb-9690c16de6a5","404":"78091469-e7bc-47a4-822c-f11c4ce5e982","422":"fbe66676-1712-4004-949a-4bbd4eff2014"},"summary":"Save or replace a build variable of the factory","tags":["Apps"],"method":"put","type":"path","servers":["ae9384c9-b2f7-457d-9839-310e53b08308","185df079-c928-4c1f-a32c-602a06e1bc9b"],"security":["3d78d2ca-428a-4ae5-9633-5335e834b298"],"path":"/v1/apps/{appId}/build-variables/{name}","baseUrlOptions":["https://api.outerlayer.ai","http://localhost:9418"],"title":"Save or replace a build variable of the factory","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"311088ef-61ae-4311-a0a3-af25d9f10bee":{"in":"path","name":"appId","required":true,"schema":{"format":"uuid","type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"b6b2ae2f-b6ab-4bad-92fc-c3c8569b023e":{"in":"path","name":"name","required":true,"schema":{"maxLength":1000,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"description":"The variable's value. The gateway stores it in Vault and never returns it.","maxLength":32768,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"value","typeLabel":"string"}},"required":["value"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"value":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"179607a0-3555-4dba-9985-7f3d768e4c51":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"data.name","typeLabel":"string"},"setAt":{"type":"string","isRequired":true,"uniqueKey":"data.setAt","typeLabel":"string"},"setBy":{"type":"string","isRequired":true,"uniqueKey":"data.setBy","typeLabel":"string"}},"required":["name","setBy","setAt"],"type":"object","isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"name":"\u003cstring>","setAt":"\u003cstring>","setBy":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"The value was saved.","exampleType":"generated"},"33291f73-87c8-4092-90f2-7b372d44eb37":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"The body is not `{ \"value\": \"\u003ctext>\" }`.","exampleType":"generated"},"746f6ab2-3d2e-44a5-bab4-bff125a48838":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Missing or invalid API key.","exampleType":"generated"},"65bb14bc-c58f-429b-bddb-9690c16de6a5":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Caller lacks 'factory.update' permission.","exampleType":"generated"},"78091469-e7bc-47a4-822c-f11c4ce5e982":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"No such factory, or managed builds are not turned on for the organization.","exampleType":"generated"},"fbe66676-1712-4004-949a-4bbd4eff2014":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"The name is refused, the value has fewer than 3 characters other than spaces at either end, or the factory holds the most variables (`invalid_managed_build_setting`). Nothing was saved.","exampleType":"generated"}},"security":{"3d78d2ca-428a-4ae5-9633-5335e834b298":{"AppId":{"description":"Factory id the request is scoped to.","in":"header","name":"X-Outerlayer-App-Id","type":"apiKey","scopes":[],"schemeName":"AppId"},"BearerAuth":{"description":"API key (sk_outerlayer_*)","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"ae9384c9-b2f7-457d-9839-310e53b08308":{"description":"Production (OuterLayer Cloud)","url":"https://api.outerlayer.ai"},"185df079-c928-4c1f-a32c-602a06e1bc9b":{"description":"Local dev server (self-hosted gateway)","url":"http://localhost:9418"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"Factory id the request is scoped to.","in":"header","name":"X-Outerlayer-App-Id","type":"apiKey","scopes":[],"schemeName":"AppId"},"schema":{"title":"X-Outerlayer-App-Id","type":"string","description":"Factory id the request is scoped to.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"AppId","name":"X-Outerlayer-App-Id"},{"scheme":{"description":"API key (sk_outerlayer_*)","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key (sk_outerlayer_*)","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"AppId \u0026 BearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"outerlayer-stg","siteName":"OuterLayer","title":"Save or replace a build variable of the factory - OuterLayer","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T16:13:29.503Z","originalFileLocation":"api-reference/apps/save-or-replace-a-build-variable-of-the-factory.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=\"Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (OUTERLAYER_API_KEY, the model credential and the commit identity, for some), is refused with invalid_managed_build_setting (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the managed_runners flag is on for the organization.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OuterLayer\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_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/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_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/outerlayer-stg/FkFLtaVKBgCUe_rr/_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/outerlayer-stg/FkFLtaVKBgCUe_rr/_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/outerlayer-stg/FkFLtaVKBgCUe_rr/_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/outerlayer-stg/FkFLtaVKBgCUe_rr/_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/outerlayer-stg/FkFLtaVKBgCUe_rr/_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/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Save or replace a build variable of the factory - OuterLayer\">\u003cmeta data-mint-head property=\"og:description\" content=\"Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (OUTERLAYER_API_KEY, the model credential and the commit identity, for some), is refused with invalid_managed_build_setting (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the managed_runners flag is on for the organization.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OuterLayer\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://outerlayer-stg.mintlify.app/_mintlify/api/og/v2?division=Apps\u0026amp;title=Save+or+replace+a+build+variable+of+the+factory\u0026amp;description=Stores+the+value+in+Supabase+Vault+under+the+name%2C+in+place+of+any+value+the+factory+saved+under+it%2C+and+deletes+the+old+secret.+A+name+that+is+not+a+variable+n\u0026amp;theme=e9829cd6b2b3caa26c4296ba\u0026amp;signature=f1ad9e673909cec4fff58c388aa48c325ade8d866d2de27b75031688cabcaf24\">\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=\"Save or replace a build variable of the factory - OuterLayer\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (OUTERLAYER_API_KEY, the model credential and the commit identity, for some), is refused with invalid_managed_build_setting (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the managed_runners flag is on for the organization.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://outerlayer-stg.mintlify.app/_mintlify/api/og/v2?division=Apps\u0026amp;title=Save+or+replace+a+build+variable+of+the+factory\u0026amp;description=Stores+the+value+in+Supabase+Vault+under+the+name%2C+in+place+of+any+value+the+factory+saved+under+it%2C+and+deletes+the+old+secret.+A+name+that+is+not+a+variable+n\u0026amp;theme=e9829cd6b2b3caa26c4296ba\u0026amp;signature=f1ad9e673909cec4fff58c388aa48c325ade8d866d2de27b75031688cabcaf24\">\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/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OuterLayer\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2065D1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/apps/save-or-replace-a-build-variable-of-the-factory.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs-stg.outerlayer.ai/#organization\",\"name\":\"OuterLayer\",\"url\":\"https://docs-stg.outerlayer.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/outerlayer-stg/h46SL2WH_1X-gmFL/logo/light.svg?fit=max\u0026auto=format\u0026n=h46SL2WH_1X-gmFL\u0026q=85\u0026s=de563af4ba1bc24d13a1c4a7485a2182\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs-stg.outerlayer.ai#website\",\"name\":\"OuterLayer\",\"url\":\"https://docs-stg.outerlayer.ai\",\"publisher\":{\"@id\":\"https://docs-stg.outerlayer.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory#webpage\",\"url\":\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory\",\"name\":\"Save or replace a build variable of the factory\",\"description\":\"Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (OUTERLAYER_API_KEY, the model credential and the commit identity, for some), is refused with invalid_managed_build_setting (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the managed_runners flag is on for the organization.\",\"dateModified\":\"2026-10-26T16:13:29.503Z\",\"isPartOf\":{\"@id\":\"https://docs-stg.outerlayer.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs-stg.outerlayer.ai/api-reference/oauth/oauth-protected-resource-metadata\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apps\",\"item\":\"https://docs-stg.outerlayer.ai/api-reference/apps/list-apps\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Save or replace a build variable of the factory\",\"item\":\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory#apireference\",\"headline\":\"Save or replace a build variable of the factory\",\"name\":\"Save or replace a build variable of the factory\",\"description\":\"Stores the value in Supabase Vault under the name, in place of any value the factory saved under it, and deletes the old secret. A name that is not a variable name, or that the runner sets itself (OUTERLAYER_API_KEY, the model credential and the commit identity, for some), is refused with invalid_managed_build_setting (422) and nothing is saved. So is a value with fewer than 3 characters other than spaces at either end, which the runner could not remove from logs and transcripts. A factory holds at most 100 variables. Answers the name, who saved it and when, never the value. Answers 404 unless the managed_runners flag is on for the organization.\",\"url\":\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory\",\"mainEntityOfPage\":{\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/apps/save-or-replace-a-build-variable-of-the-factory#webpage\"},\"dateModified\":\"2026-10-26T16:13:29.503Z\",\"publisher\":{\"@id\":\"https://docs-stg.outerlayer.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs-stg.outerlayer.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OuterLayer\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OuterLayer","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"CLI reference","pages":[{"title":"CLI reference","href":"/reference/cli"}]},{"tab":"API reference","groups":[{"group":"Get started","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Organization API","href":"/organization-api"}]},{"group":"Endpoints","pages":[{"group":"OAuth","pages":[{"title":"OAuth protected-resource metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml get /.well-known/oauth-protected-resource","href":"/api-reference/oauth/oauth-protected-resource-metadata"},{"title":"OAuth protected-resource metadata for the per-app MCP mount","deprecated":null,"version":null,"openapi":"/openapi.yaml get /.well-known/oauth-protected-resource/v1/apps/{appId}/mcp","href":"/api-reference/oauth/oauth-protected-resource-metadata-for-the-per-app-mcp-mount"}]},{"group":"Health","pages":[{"title":"Service health","deprecated":null,"version":null,"openapi":"/openapi.yaml get /health","href":"/api-reference/health/service-health"},{"title":"Files health","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/health/files","href":"/api-reference/health/files-health"},{"title":"Ingestion health","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/health/ingestion","href":"/api-reference/health/ingestion-health"}]},{"group":"Agents","pages":[{"title":"Fetch an agent session image blob via a signed token","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agents/blob-token/{token}","href":"/api-reference/agents/fetch-an-agent-session-image-blob-via-a-signed-token"},{"title":"Fetch an agent session image blob","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agents/blob/{sha256}","href":"/api-reference/agents/fetch-an-agent-session-image-blob"},{"title":"Ingest coding-agent sessions (outerlayer sync)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agents/sync","href":"/api-reference/agents/ingest-coding-agent-sessions-outerlayer-sync"}]},{"group":"API Keys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/api-keys","href":"/api-reference/api-keys/list-api-keys"},{"title":"Create API key","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/api-keys","href":"/api-reference/api-keys/create-api-key"},{"title":"Revoke API key","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/api-keys/{apiKeyId}","href":"/api-reference/api-keys/revoke-api-key"},{"title":"Change API key permissions","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/api-keys/{apiKeyId}","href":"/api-reference/api-keys/change-api-key-permissions"},{"title":"Clear a runner key's host binding","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/api-keys/{apiKeyId}/host-key","href":"/api-reference/api-keys/clear-a-runner-keys-host-binding"}]},{"group":"Apps","pages":[{"title":"List apps","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps","href":"/api-reference/apps/list-apps"},{"title":"Create app","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/apps","href":"/api-reference/apps/create-app"},{"title":"Get app","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}","href":"/api-reference/apps/get-app"},{"title":"Delete app","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/apps/{appId}","href":"/api-reference/apps/delete-app"},{"title":"Update app","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/apps/{appId}","href":"/api-reference/apps/update-app"},{"title":"Get whether the factory has stored an Anthropic API key","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/anthropic-key","href":"/api-reference/apps/get-whether-the-factory-has-stored-an-anthropic-api-key"},{"title":"Store or replace the factory's Anthropic API key","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/apps/{appId}/anthropic-key","href":"/api-reference/apps/store-or-replace-the-factorys-anthropic-api-key"},{"title":"Remove the factory's Anthropic API key","description":"Deletes the stored key and its Vault secret. The next managed claim is refused with `managed_credential_missing`. Answers 204 whether or not a key was stored. Answers 404 unless the `managed_runners` flag is on for the organization.","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/apps/{appId}/anthropic-key","href":"/api-reference/apps/remove-the-factorys-anthropic-api-key"},{"title":"Save or replace a build variable of the factory","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/apps/{appId}/build-variables/{name}","href":"/api-reference/apps/save-or-replace-a-build-variable-of-the-factory"},{"title":"Remove a build variable of the factory","description":"Deletes the variable and its Vault secret. Answers 204 whether or not the variable existed. Answers 404 unless the `managed_runners` flag is on for the organization.","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/apps/{appId}/build-variables/{name}","href":"/api-reference/apps/remove-a-build-variable-of-the-factory"},{"title":"Get git connection status for an app","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/git","href":"/api-reference/apps/get-git-connection-status-for-an-app"},{"title":"List branches in a repository","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/git/branches","href":"/api-reference/apps/list-branches-in-a-repository"},{"title":"Mint an OAuth authorization URL for git-provider connect","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/apps/{appId}/git/connect","href":"/api-reference/apps/mint-an-oauth-authorization-url-for-git-provider-connect"},{"title":"Link a repository and branch to an app","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/apps/{appId}/git/link","href":"/api-reference/apps/link-a-repository-and-branch-to-an-app"},{"title":"Clear the linked repository and branch","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/apps/{appId}/git/link","href":"/api-reference/apps/clear-the-linked-repository-and-branch"},{"title":"List every repository linked to the factory, with its branches","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/git/links","href":"/api-reference/apps/list-every-repository-linked-to-the-factory-with-its-branches"},{"title":"List repositories accessible to the app's git installations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/git/repositories","href":"/api-reference/apps/list-repositories-accessible-to-the-apps-git-installations"},{"title":"Remove a GitHub organization from the factory","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/apps/{appId}/installations/{installationId}","href":"/api-reference/apps/remove-a-github-organization-from-the-factory"},{"title":"Get the factory's managed build settings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/managed-build-settings","href":"/api-reference/apps/get-the-factorys-managed-build-settings"},{"title":"Change the factory's managed build settings","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/apps/{appId}/managed-build-settings","href":"/api-reference/apps/change-the-factorys-managed-build-settings"}]},{"group":"Artifacts","pages":[{"title":"Emit an artifact (evidence for a pull request)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/artifacts","href":"/api-reference/artifacts/emit-an-artifact-evidence-for-a-pull-request"}]},{"group":"Capabilities","pages":[{"title":"Get capabilities","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/capabilities","href":"/api-reference/capabilities/get-capabilities"}]},{"group":"Context","pages":[{"title":"List context changes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/context/changes","href":"/api-reference/context/list-context-changes"},{"title":"Get the context a build receives","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/context/delivery","href":"/api-reference/context/get-the-context-a-build-receives"},{"title":"Get control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/context/source","href":"/api-reference/context/get-control-plane"},{"title":"Read a factory's control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/apps/{appId}/context-source","href":"/api-reference/context/read-a-factorys-control-plane"},{"title":"Designate a factory's control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/orgs/{orgName}/apps/{appId}/context-source","href":"/api-reference/context/designate-a-factorys-control-plane"},{"title":"Revoke a factory's control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/orgs/{orgName}/apps/{appId}/context-source","href":"/api-reference/context/revoke-a-factorys-control-plane"}]},{"group":"Criteria","pages":[{"title":"Record a work item's acceptance criteria","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/criteria","href":"/api-reference/criteria/record-a-work-items-acceptance-criteria"}]},{"group":"Emitted Results","pages":[{"title":"Emit a check result (pass/fail evidence for a work item)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/emitted-results","href":"/api-reference/emitted-results/emit-a-check-result-passfail-evidence-for-a-work-item"},{"title":"Change a check's status","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/emitted-results/{emittedResultId}/status","href":"/api-reference/emitted-results/change-a-checks-status"}]},{"group":"Findings","pages":[{"title":"Record a batch of findings on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/findings","href":"/api-reference/findings/record-a-batch-of-findings-on-a-work-item"},{"title":"Findings and time lost per category","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/findings/summary","href":"/api-reference/findings/findings-and-time-lost-per-category"},{"title":"Rank a factory's problems","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/problems","href":"/api-reference/findings/rank-a-factorys-problems"},{"title":"One problem with its findings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/problems/{problemId}","href":"/api-reference/findings/one-problem-with-its-findings"},{"title":"A work item's findings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/findings","href":"/api-reference/findings/a-work-items-findings"}]},{"group":"Hosts","pages":[{"title":"List the factory's runner hosts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/hosts","href":"/api-reference/hosts/list-the-factorys-runner-hosts"},{"title":"Report a heartbeat from a runner host","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/hosts/heartbeat","href":"/api-reference/hosts/report-a-heartbeat-from-a-runner-host"},{"title":"Report a runner start that failed a check","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/hosts/startup-report","href":"/api-reference/hosts/report-a-runner-start-that-failed-a-check"}]},{"group":"Account","pages":[{"title":"List the factories the login token can use","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/me/factories","href":"/api-reference/account/list-the-factories-the-login-token-can-use"}]},{"group":"Metrics","pages":[{"title":"Get a cost/session/error breakdown by dimension","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/breakdown","href":"/api-reference/metrics/get-a-costsessionerror-breakdown-by-dimension"},{"title":"Compare metrics across two windows","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/compare","href":"/api-reference/metrics/compare-metrics-across-two-windows"},{"title":"Get per-model stats","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/models","href":"/api-reference/metrics/get-per-model-stats"},{"title":"Get fleet overview","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/overview","href":"/api-reference/metrics/get-fleet-overview"},{"title":"Get the daily sessions/cost/quality trend","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/trends","href":"/api-reference/metrics/get-the-daily-sessionscostquality-trend"}]},{"group":"Org Management","pages":[{"title":"List an org's audit log","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/audit-log","href":"/api-reference/org-management/list-an-orgs-audit-log"},{"title":"Export an org's audit log as CSV","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/audit-log/export","href":"/api-reference/org-management/export-an-orgs-audit-log-as-csv"},{"title":"Get one audit log entry","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/audit-log/{logId}","href":"/api-reference/org-management/get-one-audit-log-entry"},{"title":"List org members and pending invites","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/members","href":"/api-reference/org-management/list-org-members-and-pending-invites"},{"title":"Invite an org member","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/orgs/{orgName}/members/invites","href":"/api-reference/org-management/invite-an-org-member"},{"title":"Resend a pending invite","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/orgs/{orgName}/members/invites/{inviteId}/resend","href":"/api-reference/org-management/resend-a-pending-invite"},{"title":"Remove a member from the org","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/orgs/{orgName}/members/{userId}","href":"/api-reference/org-management/remove-a-member-from-the-org"},{"title":"Change a member's role","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/orgs/{orgName}/members/{userId}","href":"/api-reference/org-management/change-a-members-role"},{"title":"List built-in org roles","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/roles","href":"/api-reference/org-management/list-built-in-org-roles"}]},{"group":"Pricing","pages":[{"title":"Get LLM pricing","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/pricing","href":"/api-reference/pricing/get-llm-pricing"}]},{"group":"PRs","pages":[{"title":"Get session→PR attribution merged with cost","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/prs/outcomes","href":"/api-reference/prs/get-session→pr-attribution-merged-with-cost"}]},{"group":"Repositories","pages":[{"title":"Report the GitHub App access builds need on each of the factory's repositories","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/repositories/access","href":"/api-reference/repositories/report-the-github-app-access-builds-need-on-each-of-the-factorys-repositories"}]},{"group":"Runner version","pages":[{"title":"Set the CLI version this gateway names to its runners","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/runner-version","href":"/api-reference/runner-version/set-the-cli-version-this-gateway-names-to-its-runners"}]},{"group":"Work Items","pages":[{"title":"Read a runner key's host binding","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/runner/host-key","href":"/api-reference/work-items/read-a-runner-keys-host-binding"},{"title":"List live work items","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items","href":"/api-reference/work-items/list-live-work-items"},{"title":"Add an issue to Work","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items","href":"/api-reference/work-items/add-an-issue-to-work"},{"title":"Request a host build an item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/build","href":"/api-reference/work-items/request-a-host-build-an-item"},{"title":"Declare a session's pull request onto its work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/pull-requests","href":"/api-reference/work-items/declare-a-sessions-pull-request-onto-its-work-item"},{"title":"Report that a step has started on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/steps","href":"/api-reference/work-items/report-that-a-step-has-started-on-a-work-item"},{"title":"Link a session to a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{number}/sessions","href":"/api-reference/work-items/link-a-session-to-a-work-item"},{"title":"Read one work item","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}","href":"/api-reference/work-items/read-one-work-item"},{"title":"List a work item's artifacts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/artifacts","href":"/api-reference/work-items/list-a-work-items-artifacts"},{"title":"List checks recorded on a work item since a point","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/changes","href":"/api-reference/work-items/list-checks-recorded-on-a-work-item-since-a-point"},{"title":"List the checks currently open on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/checks","href":"/api-reference/work-items/list-the-checks-currently-open-on-a-work-item"},{"title":"Claim a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim","href":"/api-reference/work-items/claim-a-work-item"},{"title":"Get the factory's Anthropic API key for a claim a managed runner holds","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/anthropic-key","href":"/api-reference/work-items/get-the-factorys-anthropic-api-key-for-a-claim-a-managed-runner-holds"},{"title":"Get the factory's managed build settings for a claim a managed runner holds","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/build-settings","href":"/api-reference/work-items/get-the-factorys-managed-build-settings-for-a-claim-a-managed-runner-holds"},{"title":"Release a host's claim on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/release","href":"/api-reference/work-items/release-a-hosts-claim-on-a-work-item"},{"title":"Renew a host's claim on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/renew","href":"/api-reference/work-items/renew-a-hosts-claim-on-a-work-item"},{"title":"Stop a work item's host build","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/stop","href":"/api-reference/work-items/stop-a-work-items-host-build"},{"title":"Issue a GitHub token for a work item's repository or its control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/tokens","href":"/api-reference/work-items/issue-a-github-token-for-a-work-items-repository-or-its-control-plane"},{"title":"Read a host attempt's runner log","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/claims/{claimId}/log","href":"/api-reference/work-items/read-a-host-attempts-runner-log"},{"title":"Post a comment on a work item's general thread or a criterion thread","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/comments","href":"/api-reference/work-items/post-a-comment-on-a-work-items-general-thread-or-a-criterion-thread"},{"title":"Get a work item's newest demo","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/demo","href":"/api-reference/work-items/get-a-work-items-newest-demo"},{"title":"Send review notes on several criteria as one agent job","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/notes","href":"/api-reference/work-items/send-review-notes-on-several-criteria-as-one-agent-job"},{"title":"The problems a work item covers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/problems","href":"/api-reference/work-items/the-problems-a-work-item-covers"},{"title":"Record the result of a fix for one covered problem","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/work-items/{workItemId}/problems/{problemId}/result","href":"/api-reference/work-items/record-the-result-of-a-fix-for-one-covered-problem"},{"title":"Open or edit a work item's pull request","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/work-items/{workItemId}/pull-request","href":"/api-reference/work-items/open-or-edit-a-work-items-pull-request"},{"title":"Withdraw a work item's declaration of a pull request","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/work-items/{workItemId}/pull-requests/{repository}/{prNumber}","href":"/api-reference/work-items/withdraw-a-work-items-declaration-of-a-pull-request"},{"title":"Remove an addition from Work","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/remove","href":"/api-reference/work-items/remove-an-addition-from-work"},{"title":"A work item's general thread and its criterion threads","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/threads","href":"/api-reference/work-items/a-work-items-general-thread-and-its-criterion-threads"}]},{"group":"Sessions","pages":[{"title":"List agent sessions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/sessions","href":"/api-reference/sessions/list-agent-sessions"},{"title":"Get agent session detail","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/sessions/{traceId}","href":"/api-reference/sessions/get-agent-session-detail"}]},{"group":"Specs","pages":[{"title":"File a spec as an issue","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/specs","href":"/api-reference/specs/file-a-spec-as-an-issue"},{"title":"Search issues a spec might duplicate","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/specs/search","href":"/api-reference/specs/search-issues-a-spec-might-duplicate"},{"title":"Where a spec would be filed","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/specs/target","href":"/api-reference/specs/where-a-spec-would-be-filed"},{"title":"Replace a spec's body","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/specs/{key}","href":"/api-reference/specs/replace-a-specs-body"}]}]}]}]},"title":"Save or replace a build variable of the factory - OuterLayer","buildId":"dpl_G8u2B2Ji9qJYF9umedjv293TxycS","deploymentId":"dpl_G8u2B2Ji9qJYF9umedjv293TxycS","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-S3ptrr-V.js","utils-CUxEJy9u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DavhVrxy.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B1sOUY6E.js","snippetPresets-C-RLYOrF.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Duz18EdI.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DPsbCc6D.js","shallow-B1dlhlOw.js","getApiPlaygroundDisplay-DvOu-BhE.js","CodeSnippet-By8wd64X.js","CodeSnippets-BxVv6TjI.js","Page-BGh0lBck.js","getPastedJson-DOAt9xJn.js","icon-BYg-qtQ2.js","MethodPill-Dtah8ZSz.js","DuplicateIcon-guWfDmh1.js","createIcon-pTGhj_hk.js","DynamicMarkdown-DpsHMHVL.js","SectionHeading-BbutQCjq.js","axios-vUo_bRtp.js","Markdown-DZ-stgDu.js","clsx-Dfme4k4V.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CPNs0ebX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-3JVAA-i3.js"]}