{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
API Reference
Accept Tool Attachment Upgrade
Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SLNG: the execution layer for voice - SLNG Documentation","colors":{"primary":"#fbe566","light":"#fbe566","dark":"#000000"},"logo":{"light":"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6","dark":"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6"},"favicon":{"light":"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6","dark":"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6"},"background":{"color":{"light":"#ffffff"}},"navbar":{"links":[{"href":"mailto:support@slng.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.slng.ai"}},"footer":{"socials":{"x":"https://x.com/slng_ai","github":"https://github.com/slng-ai","linkedin":"https://linkedin.com/company/slng-ai","discord":"https://discord.gg/kxZactmWj"},"links":[{"header":"Company","items":[{"label":"Team","href":"/team"}]}]},"fonts":{"heading":{"family":"Geist Mono"}},"icons":{"library":"lucide"},"integrations":{"gtm":{"tagId":"GTM-W2STKL7Z"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"slng-new-docs","hasAudioNarration":false,"actualSubdomain":"slng-new-docs","customDomains":["docs.slng.ai"],"gitSource":{"type":"github","owner":"slng-ai","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ad773c56e89f16d0373f26f","collectionId":"3e12ce44-97d1-4c8d-8302-6faacc32eba8","liveDeploymentHistoryId":"6ad773c56e89f16d0373f26f","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ad773c56e89f16d0373f26f","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":158},{"language":"default","tag":"Agents","count":66},{"language":"default","tag":"Guides","count":52},{"language":"default","tag":"Third party","count":27},{"language":"default","tag":"Text to speech","count":27},{"language":"default","tag":"Agent Builder","count":25},{"language":"default","tag":"Models","count":24},{"language":"default","tag":"Speech to text","count":19},{"language":"default","tag":"Tools","count":14},{"language":"default","tag":"SLNG hosted","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"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":"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":"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":"billing-updated-9-15","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"@keyframes lp-marquee-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes hosting-banner-arrow-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}:root{--color-brand:#FBE566;--color-brand-10:rgba(251, 229, 102, 0.1);--color-brand-15:rgba(251, 229, 102, 0.15);--color-text-dark:#15120D;--color-text-light:#FBFAF7;--surface:#ffffff;--surface-border:#e2e8f0;--surface-border-hover:#cbd5e1;--surface-shadow:rgba(0, 0, 0, 0.06);--surface-hover:var(--color-brand-10);--text-primary:var(--color-text-dark);--text-body:#374151;--text-strong:#1f2937;--text-secondary:#6b7280;--text-muted:#9ca3af;--pill-bg:#f3f4f6;--pill-text:#374151;--badge-stt-bg:#e8e0ff;--badge-stt-text:#6b4fbb;--badge-tts-bg:#dbeafe;--badge-tts-text:#2563eb}.dark{--surface:#1a1a1a;--surface-border:#2d2d2d;--surface-border-hover:#444444;--surface-shadow:rgba(0, 0, 0, 0.3);--surface-hover:var(--color-brand-15);--text-primary:var(--color-text-light);--text-body:#d1d5db;--text-strong:#d1d5db;--text-secondary:#9ca3af;--text-muted:#6b7280;--pill-bg:#374151;--pill-text:#d1d5db;--badge-stt-bg:rgba(107, 79, 187, 0.25);--badge-stt-text:#c4b5fd;--badge-tts-bg:rgba(37, 99, 235, 0.25);--badge-tts-text:#93c5fd}.hosting-slng{display:inline-block;padding:.05rem .4rem;border-radius:4px;background:var(--color-brand);color:var(--color-text-dark);font-size:.8em;font-weight:600}.model-card__flag,.region-flag{display:inline-block;width:1em;height:1em;flex-shrink:0;border-radius:50%;background-position:center;background-size:cover}.region-flag{margin-right:.3rem;vertical-align:-.15em}.region-item{white-space:nowrap}.model-card__flag{width:1.15rem;height:1.15rem}:root:not(.dark) li[role=tab][aria-selected=true]{background-color:var(--color-brand);border-radius:.375rem .375rem 0 0;margin-bottom:-1px;padding:0 .5rem;border-bottom:1px solid var(--color-brand)}:root:not(.dark) li[role=tab][aria-selected=true] [data-component-part=tab-button]{color:var(--color-text-dark)!important;border-color:transparent!important}:root:not(.dark) li[role=tab][aria-selected=true] [data-component-part=tab-button] svg{background-color:var(--color-text-dark)!important}:root:not(.dark) li[role=tab]:not([aria-selected=true]) [data-component-part=tab-button]:hover{border-color:var(--color-brand)!important}#navigation-items a:hover,#navigation-items a[class*=bg-primary]{color:var(--color-text-dark);background-color:var(--color-brand)}#navigation-items a:hover svg,#navigation-items a[class*=bg-primary] svg{background-color:var(--color-text-dark)!important}#navigation-items button:has(>img),.sidebar-group-header:has(>img){align-items:center!important}.eyebrow{display:inline-flex;align-items:center;width:fit-content;height:auto!important;padding:.125rem .5rem;margin-bottom:.5rem;border-radius:.375rem;background-color:var(--color-brand);color:var(--color-text-dark);text-transform:uppercase;letter-spacing:.05em}.dark .eyebrow{color:#000}.toc-item a[class*=text-primary]{background-color:transparent;color:var(--color-text-dark);text-decoration:underline;text-decoration-color:var(--color-brand);text-decoration-thickness:2px;text-underline-offset:3px}.dark .toc-item a[class*=text-primary]{color:var(--color-text-light);text-decoration-color:var(--color-brand)}[data-component-part=field-info-pill]{word-break:normal;overflow-wrap:break-word}.dark .group:hover [data-component-part=card-cta] button,:root:not(.dark) .group:hover [data-component-part=card-cta] button{color:inherit!important;text-decoration:underline;text-decoration-color:var(--color-brand);text-decoration-thickness:2px;text-underline-offset:3px}:root:not(.dark) [data-component-part=field-name][class*=text-primary],:root:not(.dark) [role=menuitem][class*=text-primary],:root:not(.dark) button[aria-haspopup=menu][class*=text-primary],:root:not(.dark) button[role=tab][aria-selected=true][class*=text-primary]{color:var(--color-text-dark)}:root:not(.dark) [role=menuitem][class*=text-primary][class*=font-medium]{text-decoration:underline;text-decoration-color:var(--color-brand);text-decoration-thickness:2px;text-underline-offset:3px}:root:not(.dark) [role=menuitem][class*=text-primary]:hover,:root:not(.dark) button[role=tab] [class*=peer\\/title]:hover{color:var(--color-text-dark)!important}:root:not(.dark) button[aria-haspopup=menu] [class*=hover\\:text-primary]:hover{color:var(--color-text-dark)!important;background-color:var(--color-brand-10)}.dark button[aria-haspopup=menu] [class*=hover\\:text-primary]:hover{color:var(--color-brand)!important}:root:not(.dark) [data-component-part=code-block-root] .line-highlight{background:rgba(251,229,102,.35)!important}.audio-player{display:flex;flex-direction:column;gap:.5rem;padding:.9rem 1rem;border-radius:12px;border:1px solid var(--surface-border);background:var(--surface)}.audio-player.compact{padding:0;border:0;background:0 0;gap:0}.audio-player .meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.audio-player .titles{display:flex;flex-direction:column;gap:.15rem}.audio-player .title{font-weight:600;color:var(--text-primary)}.audio-player .description{color:var(--text-secondary);font-size:.9rem}.audio-player .download{font-size:.85rem;color:var(--text-primary);text-decoration:none;font-weight:600;white-space:nowrap}.audio-player .download:hover{text-decoration:underline;text-decoration-color:var(--color-brand);text-underline-offset:3px;text-decoration-thickness:2px}.audio-player .audio-control{width:100%}.audio-player .controls{display:flex;align-items:center;gap:.6rem}.audio-player .play-button{width:36px;height:36px;border-radius:999px;border:0;background:var(--color-brand);color:var(--color-text-dark);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;padding:0}.audio-player .play-button:hover{filter:brightness(.95)}.audio-player .play-button:focus-visible,.audio-player .scrubber:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.audio-player .time{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--text-secondary);min-width:2.75rem;text-align:center;flex-shrink:0}.audio-player .scrubber{-webkit-appearance:none;appearance:none;flex:1;height:6px;border-radius:999px;cursor:pointer;background:linear-gradient(to right,var(--color-brand) var(--progress, 0%),var(--surface-border) var(--progress, 0%))}.audio-player .scrubber::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--text-primary);border:2px solid var(--surface);cursor:pointer}.audio-player .scrubber::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--text-primary);border:2px solid var(--surface);cursor:pointer}.audio-player .compact-button{width:32px;height:32px;border-radius:999px;border:1px solid var(--surface-border);background:var(--surface);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.audio-player .compact-button:hover{background:var(--surface-hover)}.audio-player .compact-icon{font-size:12px;line-height:1}@media (max-width:640px){.audio-player .meta{flex-direction:column;align-items:flex-start}}:has(>.model-card){row-gap:.75rem!important}.model-card{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;border:1px solid var(--surface-border);border-radius:12px;background:var(--surface);transition:border-color .15s,box-shadow .15s}.model-card:hover{border-color:var(--surface-border-hover);box-shadow:0 2px 8px var(--surface-shadow)}.model-card__footer,.model-card__header,.model-card__meta,.model-card__region,.model-card__regions{display:flex;align-items:center}.model-card__header{gap:.75rem}.model-card__logo{display:flex;width:36px;height:36px;min-width:36px;align-items:center;justify-content:center;border-radius:8px;font-size:.75rem;font-weight:700;line-height:1}.model-card__logo--provider,.model-card__pill{background:var(--pill-bg);color:var(--pill-text)}.model-card__logo-img{width:100%;height:100%;border-radius:6px;object-fit:contain}.model-card__logo--image{box-sizing:border-box;padding:4px;background:var(--surface)}.model-card__identity{min-width:0;flex:1}.model-card__name{overflow:hidden;margin:0;color:var(--text-primary);font-size:1rem;font-weight:600;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.model-card__name-button{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;min-width:0;padding:0;border:0;background:0 0;font:inherit;color:inherit;cursor:pointer;text-align:left}.model-card__name-text{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.model-card__copy-icon{display:inline-flex;flex-shrink:0;color:var(--text-muted);opacity:0;transition:opacity .12s}.model-card__copy-icon--copied,.model-card__name-button:focus-visible .model-card__copy-icon,.model-card__name-button:hover .model-card__copy-icon{opacity:1}.model-card__copy-icon--copied{color:var(--text-primary)}.model-card__provider{color:var(--text-secondary);font-size:.8rem}.model-card__meta{flex-wrap:wrap;gap:.35rem;margin-top:.2rem}.model-card__badge,.model-card__hosting{padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;letter-spacing:.03em;white-space:nowrap}.model-card__badge{text-transform:uppercase}.model-card__badge--stt{background:var(--badge-stt-bg);color:var(--badge-stt-text)}.model-card__badge--tts{background:var(--badge-tts-bg);color:var(--badge-tts-text)}.model-card__hosting{background:var(--color-brand);color:var(--color-text-dark)}.model-card__description{display:-webkit-box;overflow:hidden;margin:0;color:var(--text-body);font-size:.9rem;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.model-card__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--surface-border);border-radius:8px}.model-card__metric{min-width:0;padding:.55rem .65rem;border-right:1px solid var(--surface-border)}.model-card__metric:last-child{border-right:0}.model-card__detail-label,.model-card__metric-label{display:block;margin-bottom:.15rem;color:var(--text-secondary);font-size:.65rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.model-card__metric strong{display:block;overflow:hidden;color:var(--text-strong);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.model-card__detail-row{color:var(--text-body);font-size:.8rem}.model-card__pills{display:flex;flex-wrap:wrap;gap:.375rem}.model-card__pill{overflow:hidden;padding:.2rem .5rem;border-radius:6px;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.model-card__footer{justify-content:space-between;padding-top:.1rem}.model-card__footer,.model-card__regions{flex-wrap:wrap;gap:.5rem}.model-card__region{gap:.25rem;color:var(--text-secondary);font-size:.72rem;font-weight:600}.model-card__region--more{opacity:.75;cursor:help}.model-card__cta{color:var(--text-primary);font-size:.8rem;font-weight:600;text-decoration:none;border-bottom:0!important}.model-card__cta:hover{text-decoration:underline;text-decoration-color:var(--color-brand);text-decoration-thickness:2px;text-underline-offset:3px}@media (max-width:640px){.model-card__metrics{grid-template-columns:1fr}.model-card__metric{border-right:0;border-bottom:1px solid var(--surface-border)}.model-card__metric:last-child{border-bottom:0}}@font-face{font-family:\"Saans\";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Saans-Regular.woff2) format(\"woff2\")}@font-face{font-family:\"Saans\";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Saans-SemiBold.woff2) format(\"woff2\")}@font-face{font-family:\"Saans\";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/Saans-Heavy.woff2) format(\"woff2\")}.lp-root{font-family:\"Saans\",var(--font-sans, ui-sans-serif, system-ui, sans-serif);color:var(--color-text-dark)}.dark .lp-root{color:var(--color-text-light)}.lp-root a{text-decoration:none}.lp-wrap{max-width:1080px;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}.lp-section{padding-top:4rem;padding-bottom:4rem}.lp-section--tight{padding-top:2.5rem;padding-bottom:2.5rem}.lp-section__eyebrow{font-family:\"Geist Mono\",ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:#8a7a2f;margin-bottom:.5rem}.dark .lp-section__eyebrow{color:#c8b85a}.lp-section__title{font-size:1.7rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .5rem;line-height:1.15}.lp-section__intro{font-size:1rem;color:#5c5648;max-width:48ch;margin:0;line-height:1.55}.dark .lp-section__intro{color:#b9b3a4}.lp-hero{position:relative;text-align:center;padding:5.5rem 1.5rem 4rem;overflow:hidden}.lp-hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(rgba(21,18,13,.06) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse 70% 65% at 50% 35%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 70% 65% at 50% 35%,#000 30%,transparent 75%);pointer-events:none}.dark .lp-hero::before{background-image:radial-gradient(rgba(251,250,247,.07) 1px,transparent 1px)}.lp-hero__inner{position:relative;max-width:760px;margin:0 auto}.lp-hero__eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-family:\"Geist Mono\",ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--color-text-dark);background-color:var(--color-brand);padding:.25rem .7rem;border-radius:999px;margin-bottom:1.5rem}.lp-hero__title{font-size:3.1rem;line-height:1.04;font-weight:800;letter-spacing:-.03em;margin:0 0 1.1rem}.lp-hero__title .lp-mark{background:linear-gradient(transparent 62%,var(--color-brand) 62%);padding:0 .1em}.lp-hero__sub{font-size:1.18rem;line-height:1.55;color:#5c5648;max-width:38rem;margin:0 auto 2rem}.dark .lp-hero__sub{color:#b9b3a4}.lp-cta-row{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.lp-btn{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.95rem;padding:.7rem 1.35rem;border-radius:10px;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease}.lp-btn:hover{transform:translateY(-1px)}.lp-btn--ghost,.lp-btn--primary{color:var(--color-text-dark)!important}.lp-btn--primary{background-color:var(--color-brand);box-shadow:0 1px 2px rgba(21,18,13,.12)}.lp-btn--primary:hover{box-shadow:0 6px 18px rgba(251,229,102,.5)}.lp-btn--ghost{background-color:transparent;border:1px solid rgba(21,18,13,.18)}.dark .lp-btn--ghost{color:var(--color-text-light)!important;border-color:rgba(251,250,247,.22)}.lp-btn--ghost:hover{border-color:rgba(21,18,13,.4)}.dark .lp-btn--ghost:hover{border-color:rgba(251,250,247,.45)}.lp-stats{border-top:1px solid rgba(21,18,13,.08);border-bottom:1px solid rgba(21,18,13,.08);background:rgba(251,229,102,.05)}.dark .lp-stats{border-color:rgba(251,250,247,.1);background:rgba(251,229,102,.04)}.lp-stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;padding:2.25rem 0}.lp-stat__num{font-family:\"Geist Mono\",ui-monospace,monospace;font-size:2rem;font-weight:600;letter-spacing:-.02em;line-height:1}.lp-stat__num small{font-size:1.1rem;font-weight:600}.lp-stat__label{margin-top:.5rem;font-size:.85rem;color:#5c5648;line-height:1.4}.dark .lp-cmd__cap,.dark .lp-stat__label{color:#b9b3a4}.lp-cmd{display:inline-flex;align-items:center;gap:.5rem;font-family:\"Geist Mono\",ui-monospace,monospace;font-size:.9rem;background:#211d15;color:#fbfaf7;border:1px solid rgba(251,250,247,.15);padding:.6rem 1rem;border-radius:10px;margin-top:1.25rem}.lp-cmd__prompt{color:var(--color-brand);user-select:none}.lp-cmd__cap{font-size:.85rem;color:#5c5648;margin-top:.7rem}.lp-split{display:grid;grid-template-columns:1fr 1.15fr;gap:2.5rem;align-items:center}.lp-grid-3,.lp-grid-4{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.75rem}.lp-grid-4{grid-template-columns:repeat(4,1fr)}.lp-tile{display:block;padding:1.4rem;border-radius:14px;border:1px solid rgba(21,18,13,.1);background:#fff;color:inherit!important;height:100%;transition:border-color .15s,box-shadow .15s,transform .15s}.dark .lp-tile{background:#1a1712;border-color:rgba(251,250,247,.1)}.lp-tile:hover{border-color:var(--color-brand);box-shadow:0 6px 22px rgba(21,18,13,.08);transform:translateY(-2px)}.lp-tile__icon{width:38px;height:38px;border-radius:10px;background:var(--color-brand);color:var(--color-text-dark);display:inline-flex;align-items:center;justify-content:center;margin-bottom:.9rem}.lp-tile__title{font-weight:600;font-size:1.05rem;margin:0 0 .35rem}.lp-tile__desc{font-size:.9rem;color:#5c5648;margin:0;line-height:1.5}.dark .lp-tile__desc{color:#b9b3a4}.lp-tile__step{font-family:\"Geist Mono\",ui-monospace,monospace;font-size:.75rem;color:#8a7a2f;margin-bottom:.6rem}.dark .lp-tile__step{color:#c8b85a}.lp-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.75rem}.lp-integrations{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1.75rem}.lp-integration{flex:0 0 calc(25% - .75rem);display:flex;align-items:center;gap:.85rem;min-height:76px;padding:1rem 1.1rem;border:1px solid rgba(21,18,13,.1);border-radius:14px;background:#fff;color:inherit!important;transition:border-color .15s,box-shadow .15s,transform .15s}.dark .lp-integration{background:#1a1712;border-color:rgba(251,250,247,.1)}.lp-integration:hover{border-color:var(--color-brand);box-shadow:0 6px 22px rgba(21,18,13,.08);transform:translateY(-2px)}.lp-integration:focus-visible{outline:3px solid var(--color-brand);outline-offset:2px}.lp-integration__mark{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:0 0 42px;overflow:hidden;border:1px solid rgba(21,18,13,.08);border-radius:10px;background:#fff}.lp-integration__logo{display:block;width:34px;height:34px;object-fit:contain}.lp-integration__name{font-size:1rem;font-weight:600}.lp-trust{font-family:\"Geist Mono\",ui-monospace,monospace;font-size:.8rem;color:#8a7a2f;margin-top:1.5rem}.dark .lp-trust{color:#c8b85a}.lp-trust a{color:inherit;border-bottom:1px solid currentColor}.lp-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2.25rem;margin-top:1.75rem}.lp-logos a{display:inline-flex;align-items:center;border-bottom:none!important;box-shadow:none!important}.lp-logos img{height:26px;width:auto;opacity:.7;filter:grayscale(1);transition:opacity .15s,filter .15s}.lp-logos img:hover{opacity:1;filter:grayscale(0)}.dark .lp-logos img{opacity:.85}.lp-cta-band{background:#15120d;color:var(--color-text-light);border-radius:18px;padding:3rem 2rem;text-align:center}.lp-cta-band h2{font-size:1.9rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .6rem;color:var(--color-text-light)}.lp-cta-band p,.lp-cta-band__lead{color:#b9b3a4;margin:0 auto 1.75rem;max-width:40rem}.lp-cta-band__lead{margin-bottom:.35rem}.lp-cta-band__price{color:#b9b3a4;max-width:40rem;margin:0 auto 1.75rem;font-size:.95rem}.lp-nowrap{white-space:nowrap}.lp-cta-band .lp-btn--ghost{color:var(--color-text-light)!important;border-color:rgba(251,250,247,.25)}.lp-cta-band .lp-btn--ghost:hover{border-color:rgba(251,250,247,.5)}.lp-cta-band .lp-cmd{margin-top:0;margin-bottom:1.5rem}@media (max-width:900px){.lp-split{grid-template-columns:1fr}.lp-stats__grid{grid-template-columns:repeat(2,1fr);gap:1.75rem 1rem}.lp-grid-3{grid-template-columns:1fr}.lp-grid-4{grid-template-columns:repeat(2,1fr)}.lp-grid-2{grid-template-columns:1fr}.lp-integration{flex-basis:calc(50% - .5rem)}.lp-hero__title{font-size:2.3rem}.lp-hero{padding-top:3.5rem}}@media (max-width:640px){.lp-integration{flex-basis:100%}.lp-grid-4{grid-template-columns:1fr}}.lp-hero__art{margin:2.75rem auto 0;max-width:480px}.lp-figure img,.lp-hero__art img{width:100%;height:auto;display:block}.lp-figure{border-radius:16px;overflow:hidden;border:1px solid rgba(21,18,13,.1);background:#f3f1ed;line-height:0}.dark .lp-figure{border-color:rgba(251,250,247,.12)}.lp-regions-map .regions-map{margin:0}.lp-hero__grid{max-width:1080px;display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;text-align:left}.lp-hero__grid .lp-hero__sub{margin-left:0;margin-right:0}.lp-hero__grid .lp-cta-row{justify-content:flex-start}.lp-hero--split .lp-hero__art{margin:0 auto;max-width:460px}.lp-hero__getstarted{margin-top:2.75rem}.lp-stat__num{white-space:nowrap}.lp-marquee{margin-top:1.75rem;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.lp-marquee__track{display:flex;width:max-content;animation:lp-marquee-scroll 42s linear infinite;will-change:transform}.lp-marquee:hover .lp-marquee__track{animation-play-state:paused}.lp-marquee__group{display:flex;align-items:center;gap:3rem;padding-right:3rem;flex-shrink:0}.lp-marquee__group img{height:22px;width:auto;opacity:.8;transition:opacity .15s}.lp-marquee:hover .lp-marquee__group img{opacity:1}:root:not(.dark) .lp-marquee__group img{filter:invert(1)}@media (prefers-reduced-motion:reduce){.lp-marquee__track{animation:none}.lp-marquee{-webkit-mask-image:none;mask-image:none}.lp-marquee__track{flex-wrap:wrap;justify-content:center;row-gap:1.5rem}}@media (max-width:900px){.lp-hero__grid{grid-template-columns:1fr;text-align:center;gap:2rem}.lp-hero__grid .lp-hero__sub{margin-left:auto;margin-right:auto}.lp-hero__grid .lp-cta-row{justify-content:center}.lp-hero--split .lp-hero__art{max-width:360px}}.lp-split--reverse{grid-template-columns:1.15fr 1fr}.lp-split--reverse>:first-child{order:2}.lp-split--reverse>:last-child{order:1}@media (max-width:900px){.lp-split--reverse>*{order:0}}.hosting-banner{display:flex;align-items:flex-start;gap:.7rem;padding:.85rem 1rem;border-radius:12px;line-height:1.45;margin-bottom:1rem}.hosting-banner--slng{background-color:var(--color-brand);color:var(--color-text-dark)}.hosting-banner--thirdparty{background-color:#1a3a3a;color:#e8f0f0}.dark .hosting-banner--thirdparty{background-color:#162e2e}.hosting-banner__icon{flex-shrink:0;margin-top:.1rem;opacity:.85}.hosting-banner__body{display:flex;flex-direction:column;gap:.2rem;min-width:0}.hosting-banner__eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.72}.hosting-banner__headline{display:inline-flex;align-items:center;gap:.35rem;font-size:1rem;font-weight:700}.hosting-banner__arrow{flex-shrink:0;animation:hosting-banner-arrow-bounce 1.6s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.hosting-banner__arrow{animation:none}}.hosting-banner__sub{font-size:.85rem;opacity:.88}.hosting-banner__foot{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .6rem;margin-top:.3rem}.hosting-banner__avail{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.7}.hosting-banner__chips{display:inline-flex;flex-wrap:wrap;gap:.35rem}.hosting-banner__chip{display:inline-flex;align-items:center;gap:.35rem;padding:.1rem .55rem .1rem .35rem;border-radius:999px;background-color:rgba(0,0,0,.07);border:1px solid rgba(0,0,0,.14);font-family:inherit;font-size:.8rem;font-weight:600;color:inherit;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease}button.hosting-banner__chip{cursor:pointer}button.hosting-banner__chip:hover{background-color:rgba(0,0,0,.12);border-color:rgba(0,0,0,.28)}.hosting-banner--thirdparty .hosting-banner__chip{background-color:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)}.hosting-banner--thirdparty button.hosting-banner__chip:hover{background-color:rgba(255,255,255,.17);border-color:rgba(255,255,255,.38)}.hosting-banner--thirdparty .hosting-banner__chip.is-active,.hosting-banner__chip.is-active{border-color:#059669;box-shadow:inset 0 0 0 1px #059669;background-color:rgba(5,150,105,.16)}.hosting-banner__chip.is-active .hosting-banner__chip-name{color:#047857}.hosting-banner--thirdparty .hosting-banner__chip-variant.is-active,.hosting-banner--thirdparty .hosting-banner__chip.is-active .hosting-banner__chip-name{color:#6ee7b7}.hosting-banner__chip-flag{display:inline-block;width:.95rem;height:.95rem;background-size:cover;background-position:center;border-radius:50%;flex-shrink:0}.hosting-banner__chip-variants{display:inline-flex;align-items:center;padding-left:.4rem;margin-left:.1rem;border-left:1px solid currentColor;font-weight:500}.hosting-banner__chip-variant{font-family:inherit;font-size:inherit;font-weight:500;color:inherit;background:0 0;border:0;padding:0 .2rem;border-radius:4px;cursor:pointer;opacity:.7;transition:opacity .12s ease,background-color .12s ease}.hosting-banner__chip-variant:not(:first-child)::before{content:\"·\";display:inline-block;padding-right:.3rem;opacity:.6;cursor:default}.hosting-banner__chip-variant:hover{opacity:1;text-decoration:underline;text-underline-offset:2px}.hosting-banner__chip-variant.is-active{opacity:1;font-weight:700;color:#047857}.hosting-banner__request{font-size:.8rem}.hosting-banner a{background-image:none;border-bottom:0;text-underline-offset:2px}.dark .hosting-banner--slng a,.hosting-banner--slng a{color:var(--color-text-dark);font-weight:600;text-decoration:underline;text-decoration-color:var(--color-text-dark);-webkit-text-decoration-color:var(--color-text-dark)}.dark .hosting-banner--thirdparty a,.hosting-banner--thirdparty a{color:#a3d4d4;font-weight:600;text-decoration:underline;text-decoration-color:#a3d4d4;-webkit-text-decoration-color:#a3d4d4}.region-picker-badge{display:inline-flex;align-items:center;gap:.3rem;margin-right:.4rem;padding:.15rem .5rem;border:1.5px solid rgba(5,150,105,.4);background-color:rgba(5,150,105,.12);border-radius:.5rem;line-height:1.25rem;white-space:nowrap;flex-shrink:0;cursor:pointer}.region-picker-flag{display:inline-block;width:1rem;height:1rem;background-size:cover;background-position:center;border-radius:50%;flex-shrink:0}.region-picker-code{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-size:.875rem;line-height:1.25rem;font-weight:600;color:#059669}.dark .region-picker-chevron,.dark .region-picker-code{color:#34d399}.region-picker-chevron{display:inline-flex;align-items:center;color:#059669;opacity:.75;flex-shrink:0}.region-picker-chevron svg{display:block}@media (max-width:640px){.hosting-banner__foot{align-items:flex-start}}"}],"page":{"pagePath":"api-reference/accept-tool-attachment-upgrade","slug":"/api-reference/accept-tool-attachment-upgrade","pageMetadata":{"title":"Accept Tool Attachment Upgrade","description":"Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/agents/{agent_id}/attachments/{attachment_id}/upgrade-accept","href":"/api-reference/accept-tool-attachment-upgrade","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: \"Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.\"\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":{"config":{},"pageMetadata":{"title":"Accept Tool Attachment Upgrade","description":"Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/agents/{agent_id}/attachments/{attachment_id}/upgrade-accept","href":"/api-reference/accept-tool-attachment-upgrade","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/slng-new-docs/79891e058276ac73/region-picker-flag.js"],"openApiReferenceData":{"operation":{"summary":"Accept Tool Attachment Upgrade","operationId":"acceptToolAttachmentUpgrade","parameters":["30ae4071-d987-4af3-b018-8ed8771aa90b","944e3368-40e2-4430-ba82-81f5330bd700"],"requestBody":"efcfc848-357c-45e0-b68b-e88b8f1809a9","responses":{"200":"6ddd5876-ee19-4ee9-b3bd-00a864c0c5b3","401":"5c51c44e-1e64-465a-8a40-c08fa27363ee","403":"d5de4924-e981-40c4-8c81-a2ba289e4445","404":"de9ee4cf-ad3c-47d1-9187-26fb1522f315","409":"80db8bb6-8ec6-4315-9d0d-82251256fe66","422":"bf12f50b-fdb8-4869-b54c-4f7e4c79c7fb","429":"f38138c9-b2e3-4ec8-a188-369a008b784b","500":"85e223bb-1e98-4a3f-8eed-7a99b07d0c31"},"description":"Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.","method":"post","type":"path","servers":["7d2067d9-05d6-4b9b-93c6-e698e29160a2"],"security":["6ae6cb05-4cd1-4743-b847-2a85a84c6164"],"path":"/v1/agents/tools/agents/{agent_id}/attachments/{attachment_id}/upgrade-accept","baseUrlOptions":["https://api.agents.slng.ai"],"title":"Accept Tool Attachment Upgrade","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"30ae4071-d987-4af3-b018-8ed8771aa90b":{"name":"agent_id","in":"path","required":true,"description":"The agent UUID that owns the attachment being upgraded.","schema":{"type":"string","format":"uuid","title":"Agent Id","isRequired":true,"description":"The agent UUID that owns the attachment being upgraded.","uniqueKey":"","typeLabel":"string\u003cuuid>"}},"944e3368-40e2-4430-ba82-81f5330bd700":{"name":"attachment_id","in":"path","required":true,"description":"The UUID of the tool attachment on the agent.","schema":{"type":"string","format":"uuid","title":"Attachment Id","isRequired":true,"description":"The UUID of the tool attachment on the agent.","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"required":true,"description":"The target version and preview hashes to apply.","content":{"application/json":{"schema":{"properties":{"to_version":{"type":"integer","minimum":1,"title":"To Version","isRequired":true,"uniqueKey":"to_version","typeLabel":"integer"},"current_config_hash":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Current Config Hash","isRequired":true,"uniqueKey":"current_config_hash","typeLabel":"string"},"current_tool_version_hash":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Current Tool Version Hash","isRequired":true,"uniqueKey":"current_tool_version_hash","typeLabel":"string"},"target_tool_version_hash":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Target Tool Version Hash","isRequired":true,"uniqueKey":"target_tool_version_hash","typeLabel":"string"},"acceptance_hash":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Acceptance Hash","isRequired":true,"uniqueKey":"acceptance_hash","typeLabel":"string"},"dependency_proof_hash":{"oneOf":[{"type":"string","title":"Dependency Proof Hash","pattern":"^[0-9a-f]{64}$","uniqueKey":"dependency_proof_hash.oneOf.0","typeLabel":"string"},{"type":"null","title":"Dependency Proof Hash","uniqueKey":"dependency_proof_hash.oneOf.1","typeLabel":"null"}],"uniqueKey":"dependency_proof_hash","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","required":["to_version","current_config_hash","current_tool_version_hash","target_tool_version_hash","acceptance_hash"],"title":"ToolUpgradeAcceptRequest","description":"Request to accept a previewed attachment upgrade, carrying the preview hashes for concurrency checks.","example":{"to_version":3,"current_config_hash":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","current_tool_version_hash":"fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210","target_tool_version_hash":"89abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567","acceptance_hash":"1122334455667788112233445566778811223344556677881122334455667788"},"uniqueKey":"","typeLabel":"ToolUpgradeAcceptRequest · object"},"example":{"to_version":3,"current_config_hash":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","current_tool_version_hash":"fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210","target_tool_version_hash":"89abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567","acceptance_hash":"1122334455667788112233445566778811223344556677881122334455667788"},"examples":{"Example":{"title":"Example","value":{"to_version":3,"current_config_hash":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","current_tool_version_hash":"fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210","target_tool_version_hash":"89abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567","acceptance_hash":"1122334455667788112233445566778811223344556677881122334455667788"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"6ddd5876-ee19-4ee9-b3bd-00a864c0c5b3":{"description":"The applied upgrade, returned in the same shape as the preview, with the attachment now pinned to the target version.","content":{"application/json":{"schema":{"properties":{"agent_id":{"type":"string","format":"uuid","title":"Agent Id","isRequired":true,"uniqueKey":"agent_id","typeLabel":"string\u003cuuid>"},"attachment_id":{"type":"string","format":"uuid","title":"Attachment Id","isRequired":true,"uniqueKey":"attachment_id","typeLabel":"string\u003cuuid>"},"tool_id":{"type":"string","format":"uuid","title":"Tool Id","isRequired":true,"uniqueKey":"tool_id","typeLabel":"string\u003cuuid>"},"from_version":{"type":"integer","title":"From Version","isRequired":true,"uniqueKey":"from_version","typeLabel":"integer"},"to_version":{"type":"integer","title":"To Version","isRequired":true,"uniqueKey":"to_version","typeLabel":"integer"},"current_config_hash":{"type":"string","title":"Current Config Hash","isRequired":true,"uniqueKey":"current_config_hash","typeLabel":"string"},"current_tool_version_hash":{"type":"string","title":"Current Tool Version Hash","isRequired":true,"uniqueKey":"current_tool_version_hash","typeLabel":"string"},"target_tool_version_hash":{"type":"string","title":"Target Tool Version Hash","isRequired":true,"uniqueKey":"target_tool_version_hash","typeLabel":"string"},"acceptance_hash":{"type":"string","title":"Acceptance Hash","isRequired":true,"uniqueKey":"acceptance_hash","typeLabel":"string"},"reconciled_attachment":{"properties":{"attachment_id":{"type":"string","format":"uuid","title":"Attachment Id","isRequired":true,"uniqueKey":"reconciled_attachment.attachment_id","typeLabel":"string\u003cuuid>"},"tool_id":{"type":"string","format":"uuid","title":"Tool Id","isRequired":true,"uniqueKey":"reconciled_attachment.tool_id","typeLabel":"string\u003cuuid>"},"version":{"type":"integer","minimum":1,"title":"Version","isRequired":true,"uniqueKey":"reconciled_attachment.version","typeLabel":"integer"},"description":{"oneOf":[{"type":"string","title":"Description","maxLength":2000,"uniqueKey":"reconciled_attachment.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"reconciled_attachment.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.description","typeLabel":"string | null"},"invocation":{"type":"string","enum":["model","system"],"title":"Invocation","default":"model","uniqueKey":"reconciled_attachment.invocation","typeLabel":"enum\u003cstring>"},"system":{"oneOf":[{"type":"object","title":"SystemToolConfig","description":"System-invocation config listing the triggers that fire the tool and the arguments passed to it.","required":["triggers"],"properties":{"triggers":{"items":{"properties":{"event":{"type":"string","enum":["call_start","first_user_message","call_end","tool_succeeded","tool_failed"],"title":"Event","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.triggers.items.[INDEX].event","typeLabel":"enum\u003cstring>"},"source_attachment_id":{"oneOf":[{"type":"string","title":"Source Attachment Id","format":"uuid","uniqueKey":"reconciled_attachment.system.oneOf.0.triggers.items.[INDEX].source_attachment_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Source Attachment Id","uniqueKey":"reconciled_attachment.system.oneOf.0.triggers.items.[INDEX].source_attachment_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.system.oneOf.0.triggers.items.[INDEX].source_attachment_id","typeLabel":"string\u003cuuid> | null"}},"additionalProperties":false,"type":"object","required":["event"],"title":"SystemTrigger","description":"A call event that fires a system-invoked tool.","uniqueKey":"reconciled_attachment.system.oneOf.0.triggers.items.[INDEX]","typeLabel":"SystemTrigger · object"},"type":"array","minItems":1,"title":"Triggers","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.triggers","typeLabel":"SystemTrigger · object[]"},"arguments":{"items":{"properties":{"name":{"type":"string","maxLength":64,"minLength":1,"title":"Name","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","enum":["string","integer","number","boolean","string[]","integer[]","number[]","boolean[]","transcript_messages","transcript_text"],"title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"source":{"oneOf":[{"type":"object","title":"Constant value","description":"A fixed value supplied to the argument.","required":["type","value"],"properties":{"type":{"type":"string","const":"constant","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.type","typeLabel":"string"},"value":{"oneOf":[{"type":"string","description":"Any JSON value, including strings, numbers, booleans, null, arrays, and nested objects.","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.value.oneOf.0","typeLabel":"string"},{"type":"boolean","description":"Any JSON value, including strings, numbers, booleans, null, arrays, and nested objects.","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.value.oneOf.1","typeLabel":"boolean"},{"type":"integer","description":"Any JSON value, including strings, numbers, booleans, null, arrays, and nested objects.","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.value.oneOf.2","typeLabel":"integer"},{"type":"number","description":"Any JSON value, including strings, numbers, booleans, null, arrays, and nested objects.","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.value.oneOf.3","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.value.oneOf.4.items.[INDEX]","typeLabel":"any"},"description":"Any JSON value, including strings, numbers, booleans, null, arrays, and nested objects.","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.value.oneOf.4","typeLabel":"any[]"},{"type":"object","description":"Any JSON value, including strings, numbers, booleans, null, arrays, and nested objects.","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.value.oneOf.5","typeLabel":"object"},{"type":"null","description":"Any JSON value, including strings, numbers, booleans, null, arrays, and nested objects.","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.value.oneOf.6","typeLabel":"null"}],"isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0.value","typeLabel":"string | boolean | integer | number | any[] | object | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.0","typeLabel":"Constant value · object"},{"type":"object","title":"Template string","description":"A template string resolved to the argument value.","required":["type","template"],"properties":{"type":{"type":"string","const":"template","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.1.type","typeLabel":"string"},"template":{"type":"string","maxLength":2000,"minLength":1,"title":"Template","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.1.template","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.1","typeLabel":"Template string · object"},{"type":"object","title":"Transcript messages","description":"The recent conversation transcript as a list of messages.","required":["type"],"properties":{"type":{"type":"string","const":"transcript_messages","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.2.type","typeLabel":"string"},"max_messages":{"oneOf":[{"type":"integer","title":"Max Messages","default":200,"minimum":1,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.2.max_messages.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Messages","default":200,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.2.max_messages.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.2.max_messages","typeLabel":"integer | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.2","typeLabel":"Transcript messages · object"},{"type":"object","title":"Transcript text","description":"The recent conversation transcript as plain text.","required":["type"],"properties":{"type":{"type":"string","const":"transcript_text","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.3.type","typeLabel":"string"},"max_messages":{"oneOf":[{"type":"integer","title":"Max Messages","default":200,"minimum":1,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.3.max_messages.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Messages","default":200,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.3.max_messages.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.3.max_messages","typeLabel":"integer | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.3","typeLabel":"Transcript text · object"},{"type":"object","title":"Call-context value","description":"A value drawn from the call context, such as call_id, phone_number, or agent_id.","required":["type"],"properties":{"type":{"type":"string","enum":["first_user_message","call_id","room_name","job_id","agent_id","agent_name","phone_number","trigger_event","call_end_reason"],"title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.4.type","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source.oneOf.4","typeLabel":"Call-context value · object"}],"isRequired":true,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].source","typeLabel":"Constant value · object | Template string · object | Transcript messages · object | Transcript text · object | Call-context value · object"},"required":{"type":"boolean","title":"Required","default":false,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].required","typeLabel":"boolean"},"description":{"oneOf":[{"type":"string","title":"Description","maxLength":2000,"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX].description","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","required":["name","type","source"],"title":"SystemArgument","description":"One argument passed to a system-invoked tool, with its type and value source.","uniqueKey":"reconciled_attachment.system.oneOf.0.arguments.items.[INDEX]","typeLabel":"SystemArgument · object"},"type":"array","title":"Arguments","uniqueKey":"reconciled_attachment.system.oneOf.0.arguments","typeLabel":"SystemArgument · object[]"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.system.oneOf.0","typeLabel":"SystemToolConfig · object"},{"type":"null","uniqueKey":"reconciled_attachment.system.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.system","typeLabel":"SystemToolConfig · object | null"},"execution_policy":{"oneOf":[{"type":"object","title":"ToolExecutionPolicy","description":"Execution-time policy applied when the tool runs, such as a pre-action message.","properties":{"pre_action_message":{"oneOf":[{"type":"object","title":"PreActionMessage","description":"Optional message spoken before the tool runs.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.enabled","typeLabel":"boolean"},"text":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.text","typeLabel":"TemplateStringExpression · object | null"},"wait":{"type":"boolean","title":"Wait","default":false,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0.wait","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.0","typeLabel":"PreActionMessage · object"},{"type":"null","uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0.pre_action_message","typeLabel":"PreActionMessage · object | null"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.execution_policy.oneOf.0","typeLabel":"ToolExecutionPolicy · object"},{"type":"null","uniqueKey":"reconciled_attachment.execution_policy.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.execution_policy","typeLabel":"ToolExecutionPolicy · object | null"},"argument_overrides":{"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"reconciled_attachment.argument_overrides.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"boolean","uniqueKey":"reconciled_attachment.argument_overrides.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"integer","uniqueKey":"reconciled_attachment.argument_overrides.additionalProperties.oneOf.2","typeLabel":"integer"},{"type":"number","uniqueKey":"reconciled_attachment.argument_overrides.additionalProperties.oneOf.3","typeLabel":"number"}],"uniqueKey":"reconciled_attachment.argument_overrides.additionalProperties","typeLabel":"string | boolean | integer | number"},"type":"object","title":"Argument Overrides","uniqueKey":"reconciled_attachment.argument_overrides","typeLabel":"Argument Overrides · object"},"config_overrides":{"oneOf":[{"type":"object","title":"ApiRequestOverrides","description":"Per-attachment override of the API Request URL.","required":["type"],"properties":{"type":{"type":"string","const":"api_request","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.0.type","typeLabel":"string"},"url":{"oneOf":[{"type":"string","title":"Url","maxLength":2000,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.0.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"reconciled_attachment.config_overrides.oneOf.0.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.0.url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.0","typeLabel":"ApiRequestOverrides · object"},{"type":"object","title":"EndCallOverrides","description":"Per-attachment overrides for an End Call tool.","required":["type"],"properties":{"type":{"type":"string","const":"end_call","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.type","typeLabel":"string"},"goodbye_message":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.goodbye_message","typeLabel":"TemplateStringExpression · object | null"},"wait_for_completion":{"oneOf":[{"type":"boolean","title":"Wait For Completion","uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.wait_for_completion.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Wait For Completion","uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.wait_for_completion.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1.wait_for_completion","typeLabel":"boolean | null"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.1","typeLabel":"EndCallOverrides · object"},{"type":"object","title":"VoicemailDetectionOverrides","description":"Per-attachment overrides for a Voicemail Detection tool.","required":["type"],"properties":{"type":{"type":"string","const":"voicemail_detection","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.type","typeLabel":"string"},"prompt":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2.prompt","typeLabel":"TemplateStringExpression · object | null"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.2","typeLabel":"VoicemailDetectionOverrides · object"},{"type":"object","title":"TransferCallOverrides","description":"Per-attachment override of the transfer destination.","required":["type"],"properties":{"type":{"type":"string","const":"transfer_call","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.3.type","typeLabel":"string"},"destination":{"oneOf":[{"type":"string","title":"Destination","uniqueKey":"reconciled_attachment.config_overrides.oneOf.3.destination.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"Destination","uniqueKey":"reconciled_attachment.config_overrides.oneOf.3.destination.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"Destination","uniqueKey":"reconciled_attachment.config_overrides.oneOf.3.destination.oneOf.2","typeLabel":"integer"},{"type":"number","title":"Destination","uniqueKey":"reconciled_attachment.config_overrides.oneOf.3.destination.oneOf.3","typeLabel":"number"},{"type":"null","title":"Destination","uniqueKey":"reconciled_attachment.config_overrides.oneOf.3.destination.oneOf.4","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.3.destination","typeLabel":"string | boolean | integer | number | null"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.3","typeLabel":"TransferCallOverrides · object"},{"type":"object","title":"SendSmsOverrides","description":"Per-attachment overrides for a Send SMS tool.","required":["type"],"properties":{"type":{"type":"string","const":"send_sms","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.type","typeLabel":"string"},"recipient":{"oneOf":[{"type":"string","title":"Recipient","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.recipient.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"Recipient","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.recipient.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"Recipient","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.recipient.oneOf.2","typeLabel":"integer"},{"type":"number","title":"Recipient","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.recipient.oneOf.3","typeLabel":"number"},{"type":"null","title":"Recipient","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.recipient.oneOf.4","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.recipient","typeLabel":"string | boolean | integer | number | null"},"body":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.body","typeLabel":"TemplateStringExpression · object | null"},"from_number":{"oneOf":[{"type":"string","title":"From Number","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.from_number.oneOf.0","typeLabel":"string"},{"type":"boolean","title":"From Number","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.from_number.oneOf.1","typeLabel":"boolean"},{"type":"integer","title":"From Number","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.from_number.oneOf.2","typeLabel":"integer"},{"type":"number","title":"From Number","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.from_number.oneOf.3","typeLabel":"number"},{"type":"null","title":"From Number","uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.from_number.oneOf.4","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4.from_number","typeLabel":"string | boolean | integer | number | null"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.4","typeLabel":"SendSmsOverrides · object"},{"type":"object","title":"CurrentDatetimeOverrides","description":"Per-attachment overrides for a Current Date and Time tool.","required":["type"],"properties":{"type":{"type":"string","const":"current_datetime","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.type","typeLabel":"string"},"timezone":{"oneOf":[{"type":"string","title":"Timezone","uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.timezone.oneOf.0","typeLabel":"string"},{"type":"null","title":"Timezone","uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.timezone.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.timezone","typeLabel":"string | null"},"prompt":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5.prompt","typeLabel":"TemplateStringExpression · object | null"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.5","typeLabel":"CurrentDatetimeOverrides · object"},{"type":"object","title":"UserPhoneNumberOverrides","description":"Per-attachment overrides for a User Phone Number tool.","required":["type"],"properties":{"type":{"type":"string","const":"user_phone_number","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.type","typeLabel":"string"},"prompt":{"oneOf":[{"type":"object","title":"TemplateStringExpression","description":"A string built from literal and expression segments resolved at runtime.","required":["segments"],"properties":{"segments":{"items":{"oneOf":[{"type":"object","title":"Literal text","description":"A fixed span of text in the template.","required":["type","value"],"properties":{"type":{"type":"string","const":"literal","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.type","typeLabel":"string"},"value":{"type":"string","maxLength":2000,"title":"Value","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.0","typeLabel":"Literal text · object"},{"type":"object","title":"Expression","description":"An expression span resolved at runtime to a value.","required":["type","expression"],"properties":{"type":{"type":"string","const":"expression","title":"Type","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.type","typeLabel":"string"},"expression":{"type":"string","title":"Expression","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.1.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.0.segments.items.[INDEX].oneOf.1","typeLabel":"Expression · object"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.0.segments.items.[INDEX]","typeLabel":"Literal text · object | Expression · object"},"type":"array","maxItems":64,"minItems":1,"title":"Segments","isRequired":true,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.0.segments","typeLabel":"(Literal text · object | Expression · object)[]"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.0","typeLabel":"TemplateStringExpression · object"},{"type":"null","uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6.prompt","typeLabel":"TemplateStringExpression · object | null"}},"additionalProperties":false,"uniqueKey":"reconciled_attachment.config_overrides.oneOf.6","typeLabel":"UserPhoneNumberOverrides · object"},{"type":"null","title":"Config Overrides","uniqueKey":"reconciled_attachment.config_overrides.oneOf.7","typeLabel":"null"}],"uniqueKey":"reconciled_attachment.config_overrides","typeLabel":"ApiRequestOverrides · object | EndCallOverrides · object | VoicemailDetectionOverrides · object | TransferCallOverrides · object | SendSmsOverrides · object | CurrentDatetimeOverrides · object | UserPhoneNumberOverrides · object | null"}},"additionalProperties":false,"type":"object","required":["attachment_id","tool_id","version"],"title":"ToolAttachment","description":"A tool bound to an agent at a specific version, with any overrides.","isRequired":true,"uniqueKey":"reconciled_attachment","typeLabel":"ToolAttachment · object"},"added_parameters":{"items":{"type":"string","uniqueKey":"added_parameters.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Added Parameters","isRequired":true,"uniqueKey":"added_parameters","typeLabel":"string[]"},"removed_parameters":{"items":{"type":"string","uniqueKey":"removed_parameters.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Removed Parameters","isRequired":true,"uniqueKey":"removed_parameters","typeLabel":"string[]"},"renamed_parameters":{"additionalProperties":{"type":"string","uniqueKey":"renamed_parameters.additionalProperties","typeLabel":"string"},"type":"object","title":"Renamed Parameters","isRequired":true,"uniqueKey":"renamed_parameters","typeLabel":"Renamed Parameters · object"},"type_changed_parameters":{"additionalProperties":{"type":"object","additionalProperties":true,"uniqueKey":"type_changed_parameters.additionalProperties","typeLabel":"object"},"type":"object","title":"Type Changed Parameters","isRequired":true,"uniqueKey":"type_changed_parameters","typeLabel":"Type Changed Parameters · object"},"issues":{"items":{"properties":{"path":{"type":"string","title":"Path","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable reason an attached tool cannot be auto-upgraded to the target version (for example a parameter was removed, renamed, or changed type). Resolve each issue before upgrading.","enum":["PARAMETER_REMOVED","PARAMETER_RENAMED","PARAMETER_TYPE_CHANGED","VALUE_INCOMPATIBLE","SOURCE_INCOMPATIBLE","CONFIG_OVERRIDE_INCOMPATIBLE","TRIGGER_EDGE_INVALID"],"title":"Code","isRequired":true,"uniqueKey":"issues.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"remediation":{"type":"string","title":"Remediation","isRequired":true,"uniqueKey":"issues.items.[INDEX].remediation","typeLabel":"string"},"parameter":{"oneOf":[{"type":"string","title":"Parameter","uniqueKey":"issues.items.[INDEX].parameter.oneOf.0","typeLabel":"string"},{"type":"null","title":"Parameter","uniqueKey":"issues.items.[INDEX].parameter.oneOf.1","typeLabel":"null"}],"uniqueKey":"issues.items.[INDEX].parameter","typeLabel":"string | null"},"target_parameter":{"oneOf":[{"type":"string","title":"Target Parameter","uniqueKey":"issues.items.[INDEX].target_parameter.oneOf.0","typeLabel":"string"},{"type":"null","title":"Target Parameter","uniqueKey":"issues.items.[INDEX].target_parameter.oneOf.1","typeLabel":"null"}],"uniqueKey":"issues.items.[INDEX].target_parameter","typeLabel":"string | null"},"blocking":{"type":"boolean","title":"Blocking","default":true,"uniqueKey":"issues.items.[INDEX].blocking","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","required":["path","code","message","remediation"],"title":"ToolUpgradeIssue","description":"A single reason an attachment cannot be auto-upgraded, with remediation guidance.","uniqueKey":"issues.items.[INDEX]","typeLabel":"ToolUpgradeIssue · object"},"type":"array","title":"Issues","isRequired":true,"uniqueKey":"issues","typeLabel":"ToolUpgradeIssue · object[]"},"can_accept":{"type":"boolean","title":"Can Accept","isRequired":true,"uniqueKey":"can_accept","typeLabel":"boolean"},"dependency_proof_hash":{"oneOf":[{"type":"string","title":"Dependency Proof Hash","pattern":"^[0-9a-f]{64}$","uniqueKey":"dependency_proof_hash.oneOf.0","typeLabel":"string"},{"type":"null","title":"Dependency Proof Hash","uniqueKey":"dependency_proof_hash.oneOf.1","typeLabel":"null"}],"uniqueKey":"dependency_proof_hash","typeLabel":"string | null"},"preparation_state":{"oneOf":[{"type":"string","title":"Preparation State","enum":["ready","preparing","failed"],"uniqueKey":"preparation_state.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Preparation State","uniqueKey":"preparation_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"preparation_state","typeLabel":"enum\u003cstring> | null"},"preparation_operation_id":{"oneOf":[{"type":"string","title":"Preparation Operation Id","uniqueKey":"preparation_operation_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Preparation Operation Id","uniqueKey":"preparation_operation_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"preparation_operation_id","typeLabel":"string | null"},"retry_after_seconds":{"oneOf":[{"type":"integer","title":"Retry After Seconds","maximum":60,"minimum":1,"uniqueKey":"retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Seconds","uniqueKey":"retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_seconds","typeLabel":"integer | null"}},"additionalProperties":false,"type":"object","required":["agent_id","attachment_id","tool_id","from_version","to_version","current_config_hash","current_tool_version_hash","target_tool_version_hash","acceptance_hash","reconciled_attachment","added_parameters","removed_parameters","renamed_parameters","type_changed_parameters","issues","can_accept"],"title":"ToolUpgradePreview","description":"Preview of upgrading an attachment to a target version, with the parameter diff and blocking issues.","example":{"agent_id":"0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9","attachment_id":"1b2c3d4e-5f60-4718-92a3-b4c5d6e7f809","tool_id":"7b2a1c34-5d6e-4f70-8a90-1b2c3d4e5f60","from_version":2,"to_version":3,"current_config_hash":"3f1ab2c4d5e6f708","current_tool_version_hash":"8a7b6c5d4e3f2011","target_tool_version_hash":"9e8d7c6b5a4f3210","acceptance_hash":"a1b2c3d4e5f60718","reconciled_attachment":{"attachment_id":"1b2c3d4e-5f60-4718-92a3-b4c5d6e7f809","tool_id":"7b2a1c34-5d6e-4f70-8a90-1b2c3d4e5f60","version":3},"added_parameters":[],"removed_parameters":[],"renamed_parameters":{},"type_changed_parameters":{},"issues":[],"can_accept":true},"uniqueKey":"","typeLabel":"ToolUpgradePreview · object"},"examples":{"Example":{"title":"Example","value":{"agent_id":"0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9","attachment_id":"1b2c3d4e-5f60-4718-92a3-b4c5d6e7f809","tool_id":"7b2a1c34-5d6e-4f70-8a90-1b2c3d4e5f60","from_version":2,"to_version":3,"current_config_hash":"3f1ab2c4d5e6f708","current_tool_version_hash":"8a7b6c5d4e3f2011","target_tool_version_hash":"9e8d7c6b5a4f3210","acceptance_hash":"a1b2c3d4e5f60718","reconciled_attachment":{"attachment_id":"1b2c3d4e-5f60-4718-92a3-b4c5d6e7f809","tool_id":"7b2a1c34-5d6e-4f70-8a90-1b2c3d4e5f60","version":3},"added_parameters":[],"removed_parameters":[],"renamed_parameters":{},"type_changed_parameters":{},"issues":[],"can_accept":true}}},"exampleType":"generated"}},"exampleType":"generated"},"5c51c44e-1e64-465a-8a40-c08fa27363ee":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"d5de4924-e981-40c4-8c81-a2ba289e4445":{"description":"The caller cannot perform this operation, or public resource access is disabled for the organisation. Disabled access returns code PUBLIC_SHARED_RESOURCES_DISABLED with retryable set to false.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"de9ee4cf-ad3c-47d1-9187-26fb1522f315":{"description":"Resource not found.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"80db8bb6-8ec6-4315-9d0d-82251256fe66":{"description":"The requested change conflicts with the current resource state.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"bf12f50b-fdb8-4869-b54c-4f7e4c79c7fb":{"description":"Request validation failed.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"f38138c9-b2e3-4ec8-a188-369a008b784b":{"description":"The organisation's request limit was exceeded.","headers":{"Retry-After":{"schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"85e223bb-1e98-4a3f-8eed-7a99b07d0c31":{"description":"The operation failed. The response does not expose secret values.","content":{"application/json":{"schema":{"type":"object","required":["detail","error"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","example":"TOOL_DELETE_BLOCKED","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The tool is attached to an active agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"req_01HZYABCDEF","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"retryable":{"type":"boolean","example":false,"uniqueKey":"error.retryable","typeLabel":"boolean"},"fields":{"type":"array","example":[],"items":{"type":"object","additionalProperties":true,"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fields","typeLabel":"object[]"}},"description":"Structured error detail with a stable code, a human-readable message, and optional per-field errors.","example":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","request_id":"req_01HZYABCDEF","retryable":false,"fields":[]},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"description":"Standard error envelope returned for a failed request.","example":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"The tool is attached to an active agent.","error":{"code":"TOOL_DELETE_BLOCKED","message":"The tool is attached to an active agent.","retryable":false}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"6ae6cb05-4cd1-4743-b847-2a85a84c6164":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"SLNG API key","description":"Your SLNG consumer API key.","scopes":[]}}},"servers":{"7d2067d9-05d6-4b9b-93c6-e698e29160a2":{"url":"https://api.agents.slng.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"SLNG API key","description":"Your SLNG consumer API key.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your SLNG consumer API key.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/agents/tools.oas.yaml"},"subdomain":"slng-new-docs","siteName":"SLNG: the execution layer for voice - SLNG Documentation","title":"Accept Tool Attachment Upgrade - SLNG: the execution layer for voice - SLNG Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-16T14:33:39.140Z","originalFileLocation":"api-reference/accept-tool-attachment-upgrade.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=\"Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026amp;auto=format\u0026amp;n=7nMVrKvzTWYOIRbj\u0026amp;q=85\u0026amp;s=eaa03df4481524b3edce26325e7106a6\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Accept Tool Attachment Upgrade - SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://slng-new-docs.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Accept+Tool+Attachment+Upgrade\u0026amp;description=Apply+a+previewed+upgrade+to+one+agent+attachment.+Uses+optimistic+concurrency%2C+so+if+any+preview+hash+no+longer+matches+it+returns+409%2C+and+a+stale+attachment+\u0026amp;theme=058cea2715ea6a0fe652dddf\u0026amp;signature=df68bc90fb72fecf3d0871e0187d5dbb80f8074c921b8cb28e8866d928c12129\">\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=\"Accept Tool Attachment Upgrade - SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://slng-new-docs.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Accept+Tool+Attachment+Upgrade\u0026amp;description=Apply+a+previewed+upgrade+to+one+agent+attachment.+Uses+optimistic+concurrency%2C+so+if+any+preview+hash+no+longer+matches+it+returns+409%2C+and+a+stale+attachment+\u0026amp;theme=058cea2715ea6a0fe652dddf\u0026amp;signature=df68bc90fb72fecf3d0871e0187d5dbb80f8074c921b8cb28e8866d928c12129\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/slng-new-docs/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SLNG: the execution layer for voice - SLNG Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#fbe566\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/accept-tool-attachment-upgrade.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.slng.ai/#organization\",\"name\":\"SLNG: the execution layer for voice - SLNG Documentation\",\"url\":\"https://docs.slng.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/slng-new-docs/7nMVrKvzTWYOIRbj/images/icon.svg?fit=max\u0026auto=format\u0026n=7nMVrKvzTWYOIRbj\u0026q=85\u0026s=eaa03df4481524b3edce26325e7106a6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.slng.ai#website\",\"name\":\"SLNG: the execution layer for voice - SLNG Documentation\",\"url\":\"https://docs.slng.ai\",\"publisher\":{\"@id\":\"https://docs.slng.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade#webpage\",\"url\":\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade\",\"name\":\"Accept Tool Attachment Upgrade\",\"description\":\"Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.\",\"dateModified\":\"2026-09-16T14:33:39.140Z\",\"isPartOf\":{\"@id\":\"https://docs.slng.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agents\",\"item\":\"https://docs.slng.ai/api-reference/agents/list-agents\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tools\",\"item\":\"https://docs.slng.ai/api-reference/agents-resources/tools\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"API Reference\",\"item\":\"https://docs.slng.ai/api-reference/list-tools\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"API Reference\",\"item\":\"https://docs.slng.ai/api-reference/list-tools\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Accept Tool Attachment Upgrade\",\"item\":\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade#apireference\",\"headline\":\"Accept Tool Attachment Upgrade\",\"name\":\"Accept Tool Attachment Upgrade\",\"description\":\"Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE.\",\"url\":\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade\",\"mainEntityOfPage\":{\"@id\":\"https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade#webpage\"},\"dateModified\":\"2026-09-16T14:33:39.140Z\",\"publisher\":{\"@id\":\"https://docs.slng.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.slng.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SLNG: the execution layer for voice - SLNG Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SLNG: the execution layer for voice - SLNG Documentation","nav":{"global":null,"tabs":[{"tab":"Concepts","icon":"lightbulb","pages":[{"title":"Concepts","href":"/concepts/whats-slng/overview"}]},{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/guides/get-started/quickstart"}]},{"tab":"API Reference","icon":"code","pages":[{"title":"Authentication","href":"/api-reference/authentication"},{"group":"Speech to text","icon":"ear","pages":[{"title":"Speech to text API","sidebarTitle":"Overview","href":"/api-reference/speech-to-text/overview"},{"group":"SLNG hosted","icon":"/images/providers/slng-icon.svg","expanded":true,"pages":[{"group":"Deepgram Nova 3","pages":[{"title":"Nova 3 (English)","sidebarTitle":"English","openapi":"api-reference/openapi/stt-slng.oas.yaml POST /v1/stt/slng/deepgram/nova:3-en","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-english-http"},{"title":"Nova 3 (English)","sidebarTitle":"English","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-en","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-english-websocket"},{"title":"Nova 3 (Hindi)","sidebarTitle":"Hindi","openapi":"api-reference/openapi/stt-slng.oas.yaml POST /v1/stt/slng/deepgram/nova:3-hi","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-hindi-http"},{"title":"Nova 3 (Hindi)","sidebarTitle":"Hindi","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-hi","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-hindi-websocket"},{"title":"Nova 3 (Indonesian)","sidebarTitle":"Indonesian","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-id","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-indonesian-websocket"},{"title":"Nova 3 (Kannada)","sidebarTitle":"Kannada","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-kn","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-kannada-websocket"},{"title":"Nova 3 (Marathi)","sidebarTitle":"Marathi","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-mr","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-marathi-websocket"},{"title":"Nova 3 (Telugu)","sidebarTitle":"Telugu","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/deepgram/nova:3-te","href":"/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-telugu-websocket"}]},{"group":"Speechmatics Realtime v2","pages":[{"title":"Speechmatics Realtime v2 (Indonesian)","sidebarTitle":"Indonesian","asyncapi":"api-reference/asyncapi/stt-slng.asyncapi.yaml /v1/stt/slng/speechmatics/realtime:v2","href":"/api-reference/speech-to-text/slng/speechmatics-realtime-v2/speechmatics-realtime-v2-indonesian-websocket"}]}]},{"group":"Third party","icon":"pyramid","expanded":true,"pages":[{"group":"Deepgram","pages":[{"title":"Nova 3","sidebarTitle":"Nova 3","openapi":"api-reference/openapi/stt-deepgram.oas.yaml POST /v1/stt/deepgram/nova:3","href":"/api-reference/speech-to-text/deepgram/deepgram-nova-3/nova-3-http"},{"title":"Nova 3","sidebarTitle":"Nova 3","asyncapi":"api-reference/asyncapi/stt-deepgram.asyncapi.yaml /v1/stt/deepgram/nova:3","href":"/api-reference/speech-to-text/deepgram/deepgram-nova-3/nova-3-websocket"},{"title":"Nova 3 Medical","sidebarTitle":"Nova 3 Medical","openapi":"api-reference/openapi/stt-deepgram.oas.yaml POST /v1/stt/deepgram/nova:3-medical","href":"/api-reference/speech-to-text/deepgram/deepgram-nova-3-medical/nova-3-medical-http"},{"title":"Nova 3 Medical","sidebarTitle":"Nova 3 Medical","asyncapi":"api-reference/asyncapi/stt-deepgram.asyncapi.yaml /v1/stt/deepgram/nova:3-medical","href":"/api-reference/speech-to-text/deepgram/deepgram-nova-3-medical/nova-3-medical-websocket"}]},{"group":"Gradium","pages":[{"title":"Gradium STT","sidebarTitle":"STT","asyncapi":"api-reference/asyncapi/stt-gradium.asyncapi.yaml /v1/stt/gradium/stt:default","href":"/api-reference/speech-to-text/gradium/gradium-stt/gradium-stt-default-websocket"}]},{"group":"Reson8","pages":[{"title":"Reson8 STT v1","sidebarTitle":"STT v1","asyncapi":"api-reference/asyncapi/stt-reson8.asyncapi.yaml /v1/stt/reson8/reson8stt:v1","href":"/api-reference/speech-to-text/reson8/reson8-stt-v1/reson8-stt-v1-websocket"}]},{"group":"Sarvam AI","pages":[{"title":"Saaras v3","sidebarTitle":"Saaras v3","openapi":"api-reference/openapi/stt-sarvam.oas.yaml POST /v1/stt/sarvam/saaras:v3","href":"/api-reference/speech-to-text/sarvam-ai/sarvam-ai-saaras/saaras-v3-http"},{"title":"Saaras v3","sidebarTitle":"Saaras v3","asyncapi":"api-reference/asyncapi/stt-sarvam.asyncapi.yaml /v1/stt/sarvam/saaras:v3","href":"/api-reference/speech-to-text/sarvam-ai/sarvam-ai-saaras/saaras-v3-websocket"}]},{"group":"Soniox","pages":[{"title":"Speech AI Real-time v5","sidebarTitle":"Speech AI Real-time v5","asyncapi":"api-reference/asyncapi/stt-soniox.asyncapi.yaml /v1/stt/soniox/speech-ai:rt-v5","href":"/api-reference/speech-to-text/soniox/soniox-speech-ai-real-time-v5/speech-ai-real-time-v5-websocket"}]}]}]},{"group":"Context Router (LLM)","icon":"brain","pages":[{"group":"Chat","pages":[{"title":"Create a chat completion","deprecated":null,"version":null,"sidebarTitle":"Chat completions","openapi":"/api-reference/context-router/context-router.oas.yaml post /chat/completions","href":"/api-reference/context-router/chat-completions"}]},{"group":"Responses","pages":[{"title":"Create a response (OpenAI Responses protocol)","deprecated":null,"version":null,"sidebarTitle":"Responses","openapi":"/api-reference/context-router/context-router.oas.yaml post /responses","href":"/api-reference/context-router/responses"}]}]},{"group":"Text to speech","icon":"audio-lines","pages":[{"title":"Text to speech API","sidebarTitle":"Overview","href":"/api-reference/text-to-speech/overview"},{"group":"SLNG hosted","icon":"/images/providers/slng-icon.svg","expanded":true,"pages":[{"group":"Deepgram Aura 2","pages":[{"title":"Aura 2 (English)","sidebarTitle":"English","openapi":"api-reference/openapi/tts-slng.oas.yaml POST /v1/tts/slng/deepgram/aura:2-en","href":"/api-reference/text-to-speech/slng/deepgram-aura-2/aura-2-english-http"},{"title":"Aura 2 (English)","sidebarTitle":"English","asyncapi":"api-reference/asyncapi/tts-slng.asyncapi.yaml /v1/tts/slng/deepgram/aura:2-en","href":"/api-reference/text-to-speech/slng/deepgram-aura-2/aura-2-english-websocket"}]},{"group":"Fish TTS S2.1 Pro","pages":[{"title":"Fish TTS S2.1 Pro","sidebarTitle":"Fish TTS S2.1 Pro","openapi":"api-reference/openapi/tts-slng.oas.yaml POST /v1/tts/slng/fish/tts:s2.1-pro","href":"/api-reference/text-to-speech/slng/fish-tts-2-1-pro/fish-tts-2-1-pro-http"},{"title":"Fish TTS S2.1 Pro","sidebarTitle":"Fish TTS S2.1 Pro","asyncapi":"api-reference/asyncapi/tts-slng.asyncapi.yaml /v1/tts/slng/fish/tts:s2.1-pro","href":"/api-reference/text-to-speech/slng/fish-tts-2-1-pro/fish-tts-2-1-pro-websocket"}]}]},{"group":"Third party","icon":"pyramid","expanded":true,"pages":[{"group":"Cartesia","pages":[{"title":"Cartesia Sonic 3","sidebarTitle":"Sonic 3","asyncapi":"api-reference/asyncapi/tts-cartesia.asyncapi.yaml /v1/tts/cartesia/sonic:3","href":"/api-reference/text-to-speech/cartesia/cartesia-sonic-3/cartesia-sonic-3-websocket"},{"title":"Cartesia Sonic 3.5","sidebarTitle":"Sonic 3.5","asyncapi":"api-reference/asyncapi/tts-cartesia.asyncapi.yaml /v1/tts/cartesia/sonic:3.5","href":"/api-reference/text-to-speech/cartesia/cartesia-sonic-3-5/cartesia-sonic-3-5-websocket"}]},{"group":"Deepgram","pages":[{"title":"Aura 2","sidebarTitle":"Aura 2","openapi":"api-reference/openapi/tts-deepgram.oas.yaml POST /v1/tts/deepgram/aura:2","href":"/api-reference/text-to-speech/deepgram/deepgram-aura-2/aura-2-http"},{"title":"Aura 2","sidebarTitle":"Aura 2","asyncapi":"api-reference/asyncapi/tts-deepgram.asyncapi.yaml /v1/tts/deepgram/aura:2","href":"/api-reference/text-to-speech/deepgram/deepgram-aura-2/aura-2-websocket"}]},{"group":"Fish Audio","pages":[{"title":"Fish Audio S2 Pro","sidebarTitle":"S2 Pro","openapi":"api-reference/openapi/tts-fish.oas.yaml POST /v1/tts/fish/tts:s2-pro","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-pro/fish-audio-tts-s2-pro-http"},{"title":"Fish Audio S2 Pro","sidebarTitle":"S2 Pro","asyncapi":"api-reference/asyncapi/tts-fish.asyncapi.yaml /v1/tts/fish/tts:s2-pro","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-pro/fish-audio-tts-s2-pro-websocket"},{"title":"Fish Audio S2.1 Pro","sidebarTitle":"S2.1 Pro","openapi":"api-reference/openapi/tts-fish.oas.yaml POST /v1/tts/fish/tts:s2.1-pro","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-1-pro/fish-audio-tts-s2-1-pro-http"},{"title":"Fish Audio S2.1 Pro","sidebarTitle":"S2.1 Pro","asyncapi":"api-reference/asyncapi/tts-fish.asyncapi.yaml /v1/tts/fish/tts:s2.1-pro","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-1-pro/fish-audio-tts-s2-1-pro-websocket"},{"title":"Fish Audio TTS Drama 3","sidebarTitle":"TTS Drama 3","openapi":"api-reference/openapi/tts-fish.oas.yaml POST /v1/tts/fish/tts:drama-3","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-drama-3/fish-audio-tts-drama-3-http"},{"title":"Fish Audio TTS Drama 3","sidebarTitle":"TTS Drama 3","asyncapi":"api-reference/asyncapi/tts-fish.asyncapi.yaml /v1/tts/fish/tts:drama-3","href":"/api-reference/text-to-speech/fish-audio/fish-audio-tts-drama-3/fish-audio-tts-drama-3-websocket"}]},{"group":"Gradium","pages":[{"title":"Gradium TTS","sidebarTitle":"TTS","openapi":"api-reference/openapi/tts-gradium.oas.yaml POST /v1/tts/gradium/tts:default","href":"/api-reference/text-to-speech/gradium/gradium-tts/gradium-tts-default-http"},{"title":"Gradium TTS","sidebarTitle":"TTS","asyncapi":"api-reference/asyncapi/tts-gradium.asyncapi.yaml /v1/tts/gradium/tts:default","href":"/api-reference/text-to-speech/gradium/gradium-tts/gradium-tts-default-websocket"}]},{"group":"KugelAudio","pages":[{"title":"Kugel 2","sidebarTitle":"Kugel 2","asyncapi":"api-reference/asyncapi/tts-kugelaudio.asyncapi.yaml /v1/tts/kugelaudio/kugel:2","href":"/api-reference/text-to-speech/kugelaudio/kugel-2/kugel-2-websocket"}]},{"group":"Murf","pages":[{"title":"Murf Falcon","sidebarTitle":"Falcon","asyncapi":"api-reference/asyncapi/tts-murf.asyncapi.yaml /v1/tts/murf/murftts:falcon","href":"/api-reference/text-to-speech/murf/murf-falcon/murf-falcon-websocket"}]},{"group":"Sarvam AI","pages":[{"title":"Bulbul v3","sidebarTitle":"Bulbul v3","openapi":"api-reference/openapi/tts-sarvam.oas.yaml POST /v1/tts/sarvam/bulbul:v3","href":"/api-reference/text-to-speech/sarvam-ai/sarvam-ai-bulbul-v3/bulbul-v3-http"},{"title":"Bulbul v3","sidebarTitle":"Bulbul v3","asyncapi":"api-reference/asyncapi/tts-sarvam.asyncapi.yaml /v1/tts/sarvam/bulbul:v3","href":"/api-reference/text-to-speech/sarvam-ai/sarvam-ai-bulbul-v3/bulbul-v3-websocket"}]},{"group":"Soniox","pages":[{"title":"Soniox TTS v1","sidebarTitle":"TTS v1","openapi":"api-reference/openapi/tts-soniox.oas.yaml POST /v1/tts/soniox/tts-rt:v1","href":"/api-reference/text-to-speech/soniox/soniox-tts-v1/soniox-tts-v1-http"},{"title":"Soniox TTS v1","sidebarTitle":"TTS v1","asyncapi":"api-reference/asyncapi/tts-soniox.asyncapi.yaml /v1/tts/soniox/tts-rt:v1","href":"/api-reference/text-to-speech/soniox/soniox-tts-v1/soniox-tts-v1-websocket"}]}]},{"group":"Pronunciation dictionaries","pages":[{"title":"Create pronunciation dictionary","openapi":"api-reference/openapi/tts-pronunciation-dictionaries.oas.yaml POST /v1/pronunciation/dictionaries","href":"/api-reference/text-to-speech/slng/pronunciation-dictionaries/create-pronunciation-dictionary-http"},{"title":"List pronunciation dictionaries","openapi":"api-reference/openapi/tts-pronunciation-dictionaries.oas.yaml GET /v1/pronunciation/dictionaries","href":"/api-reference/text-to-speech/slng/pronunciation-dictionaries/list-pronunciation-dictionaries-http"},{"title":"Get pronunciation dictionary","openapi":"api-reference/openapi/tts-pronunciation-dictionaries.oas.yaml GET /v1/pronunciation/dictionaries/{name}","href":"/api-reference/text-to-speech/slng/pronunciation-dictionaries/get-pronunciation-dictionary-http"},{"title":"Delete pronunciation dictionary","openapi":"api-reference/openapi/tts-pronunciation-dictionaries.oas.yaml DELETE /v1/pronunciation/dictionaries/{name}","href":"/api-reference/text-to-speech/slng/pronunciation-dictionaries/delete-pronunciation-dictionary-http"}]}]},{"group":"Agents","icon":"bot","pages":[{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents","href":"/api-reference/agents/list-agents"},{"title":"Create agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents","href":"/api-reference/agents/create-agent"},{"title":"Import agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/import","href":"/api-reference/agents/import-agent"},{"title":"List agent regions","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/regions","href":"/api-reference/agents/list-agent-regions"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}","href":"/api-reference/agents/get-agent"},{"title":"Update agent (partial)","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml patch /v1/agents/{agent_id}","href":"/api-reference/agents/update-agent-partial"},{"title":"Replace agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml put /v1/agents/{agent_id}","href":"/api-reference/agents/replace-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml delete /v1/agents/{agent_id}","href":"/api-reference/agents/delete-agent"},{"title":"Download agent config","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/config","href":"/api-reference/agents/download-agent-config"},{"title":"List SIP trunk options","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/sip-trunk-options","href":"/api-reference/agents/list-sip-trunk-options"},{"title":"Duplicate agent","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/duplicate","href":"/api-reference/agents/duplicate-agent"}]},{"group":"Versions","pages":[{"title":"List agent versions","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/versions","href":"/api-reference/versions/list-agent-versions"},{"title":"Get agent version","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/versions/{version_number}","href":"/api-reference/versions/get-agent-version"},{"title":"Update version label","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml patch /v1/agents/{agent_id}/versions/{version_number}","href":"/api-reference/versions/update-version-label"},{"title":"Download version config","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/versions/{version_number}/config","href":"/api-reference/versions/download-version-config"},{"title":"Preview version restore","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/versions/{version_number}/restore/preview","href":"/api-reference/versions/preview-version-restore"},{"title":"Accept version restore","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/versions/{version_number}/restore/accept","href":"/api-reference/versions/accept-version-restore"}]},{"group":"Calls","pages":[{"title":"Dispatch call","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/calls","href":"/api-reference/calls/dispatch-call"},{"title":"List calls","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/calls","href":"/api-reference/calls/list-calls"},{"title":"Export calls (CSV)","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/calls/export","href":"/api-reference/calls/export-calls-csv"},{"title":"Get call","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/calls/{call_id}","href":"/api-reference/calls/get-call"}]},{"group":"Sessions","pages":[{"title":"Create web session","deprecated":null,"version":null,"openapi":"/api-reference/agents/agents.oas.yaml post /v1/agents/{agent_id}/web-sessions","href":"/api-reference/sessions/create-web-session"}]},{"group":"Tools","pages":[{"title":"Tools","sidebarTitle":"Tools overview","href":"/api-reference/agents-resources/tools"},{"group":"API Reference","pages":[{"group":"API Reference","pages":[{"title":"List Tools","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml get /v1/agents/tools","href":"/api-reference/list-tools"},{"title":"Create Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools","href":"/api-reference/create-tool"},{"title":"Get Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml get /v1/agents/tools/{tool_id}","href":"/api-reference/get-tool"},{"title":"Delete Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml delete /v1/agents/tools/{tool_id}","href":"/api-reference/delete-tool"},{"title":"Update Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml patch /v1/agents/tools/{tool_id}","href":"/api-reference/update-tool"},{"title":"Introspect Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/{tool_id}/introspect","href":"/api-reference/introspect-tool"},{"title":"Run Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/{tool_id}/run","href":"/api-reference/run-tool"},{"title":"Publish Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/{tool_id}/publish","href":"/api-reference/publish-tool"},{"title":"Duplicate Tool","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/{tool_id}/duplicate","href":"/api-reference/duplicate-tool"},{"title":"List Tool Versions","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml get /v1/agents/tools/{tool_id}/versions","href":"/api-reference/list-tool-versions"},{"title":"Get Tool Version","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml get /v1/agents/tools/{tool_id}/versions/{version_number}","href":"/api-reference/get-tool-version"},{"title":"Preview Tool Attachment Upgrade","description":"Preview upgrading one agent attachment to a published tool version. Returns the parameter diff, any blocking issues, and the hashes needed to accept. If the sandbox is still installing dependencies, returns 202 with a Retry-After header and preparation_state set to preparing.","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/agents/{agent_id}/attachments/{attachment_id}/upgrade-preview/{to_version}","href":"/api-reference/preview-tool-attachment-upgrade"},{"title":"Accept Tool Attachment Upgrade","deprecated":null,"version":null,"openapi":"/api-reference/agents/tools.oas.yaml post /v1/agents/tools/agents/{agent_id}/attachments/{attachment_id}/upgrade-accept","href":"/api-reference/accept-tool-attachment-upgrade"}]}]}]},{"group":"MCP servers","pages":[{"title":"MCP servers","sidebarTitle":"MCP servers overview","description":"Endpoints and fields for MCP server configuration, authentication, and tool discovery.","href":"/api-reference/agents-resources/mcp-servers"},{"group":"API Reference","pages":[{"group":"API Reference","pages":[{"title":"List MCP Servers","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml get /v1/agents/mcp-servers","href":"/api-reference/list-mcp-servers"},{"title":"Create MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml post /v1/agents/mcp-servers","href":"/api-reference/create-mcp-server"},{"title":"Get MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml get /v1/agents/mcp-servers/{server_id}","href":"/api-reference/get-mcp-server"},{"title":"Delete MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml delete /v1/agents/mcp-servers/{server_id}","href":"/api-reference/delete-mcp-server"},{"title":"Update MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml patch /v1/agents/mcp-servers/{server_id}","href":"/api-reference/update-mcp-server"},{"title":"Connect MCP Server","deprecated":null,"version":null,"openapi":"/api-reference/agents/mcp.oas.yaml post /v1/agents/mcp-servers/{server_id}/connect","href":"/api-reference/connect-mcp-server"}]}]}]},{"group":"Vault","pages":[{"group":"API Reference","pages":[{"title":"List Vault","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml get /v1/agents/secrets","href":"/api-reference/list-vault"},{"title":"Create Vault Entry","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml post /v1/agents/secrets","href":"/api-reference/create-vault-entry"},{"title":"Get Vault Entry","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml get /v1/agents/secrets/{name}","href":"/api-reference/get-vault-entry"},{"title":"Delete Vault Entry","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml delete /v1/agents/secrets/{name}","href":"/api-reference/delete-vault-entry"},{"title":"Rotate Vault Entry","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml patch /v1/agents/secrets/{name}","href":"/api-reference/rotate-vault-entry"},{"title":"List Vault References","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml get /v1/agents/secrets/{name}/references","href":"/api-reference/list-vault-references"},{"title":"Update Vault Description","deprecated":null,"version":null,"openapi":"/api-reference/agents/vault.oas.yaml patch /v1/agents/secrets/{name}/description","href":"/api-reference/update-vault-description"}]}]},{"group":"Client models","pages":[{"title":"List client models","sidebarTitle":"List","openapi":"api-reference/agents/client-models.oas.yaml GET /v1/agents/client-models","href":"/api-reference/agents-resources/client-models/list"},{"title":"Create a client model","sidebarTitle":"Create","openapi":"api-reference/agents/client-models.oas.yaml POST /v1/agents/client-models","href":"/api-reference/agents-resources/client-models/create"},{"title":"Get a client model","sidebarTitle":"Get","openapi":"api-reference/agents/client-models.oas.yaml GET /v1/agents/client-models/{client_model_id}","href":"/api-reference/agents-resources/client-models/get"},{"title":"Update a client model","sidebarTitle":"Update","openapi":"api-reference/agents/client-models.oas.yaml PUT /v1/agents/client-models/{client_model_id}","href":"/api-reference/agents-resources/client-models/update"},{"title":"Delete a client model","sidebarTitle":"Delete","openapi":"api-reference/agents/client-models.oas.yaml DELETE /v1/agents/client-models/{client_model_id}","href":"/api-reference/agents-resources/client-models/delete"}]}]},{"group":"Unified API","icon":"blend","pages":[{"group":"Unified STT","pages":[{"title":"Unified STT","sidebarTitle":"Unified STT","openapi":"api-reference/openapi/bridges-unmute.oas.yaml POST /v1/bridges/unmute/stt/{model_variant}","href":"/api-reference/unified-api/slng/unmute-stt-bridge/unmute-stt-bridge-http"},{"title":"Unified STT","sidebarTitle":"Unified STT","asyncapi":"api-reference/asyncapi/bridges-unmute.asyncapi.yaml /v1/bridges/unmute/stt/{model_variant}","href":"/api-reference/unified-api/slng/unmute-stt-bridge/unmute-stt-bridge-websocket"}]},{"group":"Unified TTS","pages":[{"title":"Unified TTS","sidebarTitle":"Unified TTS","openapi":"api-reference/openapi/bridges-unmute.oas.yaml POST /v1/bridges/unmute/tts/{model_variant}","href":"/api-reference/unified-api/slng/unmute-tts-bridge/unmute-tts-bridge-http"},{"title":"Unified TTS","sidebarTitle":"Unified TTS","asyncapi":"api-reference/asyncapi/bridges-unmute.asyncapi.yaml /v1/bridges/unmute/tts/{model_variant}","href":"/api-reference/unified-api/slng/unmute-tts-bridge/unmute-tts-bridge-websocket"}]}]},{"group":"Third party Integrations","icon":"cable","hidden":true,"pages":[{"group":"Cognigy","icon":"/images/providers/cognigy.svg","hidden":true,"pages":[{"title":"Cognigy STT","sidebarTitle":"STT","openapi":"api-reference/openapi/bridges-cognigy.oas.yaml POST /v1/bridges/cognigy/stt/{model_variant}","href":"/api-reference/bridges/cognigy/cognigy-stt-bridge/cognigy-stt-bridge-http"},{"title":"Cognigy STT","sidebarTitle":"STT","asyncapi":"api-reference/asyncapi/bridges-cognigy.asyncapi.yaml /v1/bridges/cognigy/stt/{model_variant}","href":"/api-reference/bridges/cognigy/cognigy-stt-bridge/cognigy-stt-bridge-websocket"},{"title":"Cognigy TTS","sidebarTitle":"TTS","openapi":"api-reference/openapi/bridges-cognigy.oas.yaml POST /v1/bridges/cognigy/tts/{model_variant}","href":"/api-reference/bridges/cognigy/cognigy-tts-bridge/cognigy-tts-bridge-http"},{"title":"Cognigy TTS","sidebarTitle":"TTS","asyncapi":"api-reference/asyncapi/bridges-cognigy.asyncapi.yaml /v1/bridges/cognigy/tts/{model_variant}","href":"/api-reference/bridges/cognigy/cognigy-tts-bridge/cognigy-tts-bridge-websocket"}]},{"group":"Jambonz","icon":"/images/providers/jambonz.svg","hidden":true,"pages":[{"title":"Jambonz STT","sidebarTitle":"STT","openapi":"api-reference/openapi/bridges-jambonz.oas.yaml POST /v1/bridges/jambonz/stt/{model_variant}","href":"/api-reference/bridges/jambonz/jambonz-stt-bridge/jambonz-stt-bridge-http"},{"title":"Jambonz STT","sidebarTitle":"STT","asyncapi":"api-reference/asyncapi/bridges-jambonz.asyncapi.yaml /v1/bridges/jambonz/stt/{model_variant}","href":"/api-reference/bridges/jambonz/jambonz-stt-bridge/jambonz-stt-bridge-websocket"},{"title":"Jambonz TTS","sidebarTitle":"TTS","openapi":"api-reference/openapi/bridges-jambonz.oas.yaml POST /v1/bridges/jambonz/tts/{model_variant}","href":"/api-reference/bridges/jambonz/jambonz-tts-bridge/jambonz-tts-bridge-http"},{"title":"Jambonz TTS","sidebarTitle":"TTS","asyncapi":"api-reference/asyncapi/bridges-jambonz.asyncapi.yaml /v1/bridges/jambonz/tts/{model_variant}","href":"/api-reference/bridges/jambonz/jambonz-tts-bridge/jambonz-tts-bridge-websocket"}]}]},{"group":"Metadata API","icon":"database","pages":[{"group":"Catalog","pages":[{"title":"List models","openapi":"api-reference/catalog/catalog.oas.yaml GET /v1/catalog/models","href":"/api-reference/catalog/list-models"},{"title":"Get model","openapi":"api-reference/catalog/catalog.oas.yaml GET /v1/catalog/models/{model_code}","href":"/api-reference/catalog/get-model"}]},{"group":"Account","pages":[{"title":"Get current account","sidebarTitle":"Get current account","openapi":"api-reference/account/me.oas.json GET /v1/me","href":"/api-reference/account/me"}]}]},{"title":"Rate limits","href":"/api-reference/rate-limits"},{"title":"Error codes","href":"/api-reference/error-codes"}]},{"tab":"Models","icon":"cpu","pages":[{"title":"Models","href":"/models/catalog/all-models"}]},{"tab":"Integrations","icon":"plug","pages":[{"title":"Integrations","href":"/unmute"}]},{"tab":"Changelog","icon":"history","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Accept Tool Attachment Upgrade - SLNG: the execution layer for voice - SLNG Documentation","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}