Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: status stays running while it is being prepared and becomes ready when result holds the suggestion. failed means it could not be prepared; request a new one.
GET
/
test-suites
/
{id}
/
attempts
/
{attemptId}
/
suggest-fix
Get Suggested Fix
curl --request GET \
--url https://api.revring.ai/v1/test-suites/{id}/attempts/{attemptId}/suggest-fix \
--header 'x-api-key: <api-key>'
API key for authentication. Generate API keys from the RevRing dashboard. A key is either full access or read-only; a read-only key is refused with 403 read_only_key on any request that creates, changes or deletes.
A proposed prompt change that would make a failed test pass.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"RevRing AI Documentation","colors":{"primary":"#005cdd","light":"#5b9efa","dark":"#005cdd"},"logo":{"light":"https://mintcdn.com/revringinc/4zfe2kVVWVYo-Rox/logo/light.svg?fit=max\u0026auto=format\u0026n=4zfe2kVVWVYo-Rox\u0026q=85\u0026s=e28235c04eceefff5b3adb1cb7c33353","dark":"https://mintcdn.com/revringinc/4zfe2kVVWVYo-Rox/logo/dark.svg?fit=max\u0026auto=format\u0026n=4zfe2kVVWVYo-Rox\u0026q=85\u0026s=0ceef80328d53157b1b3a45914fb58a1"},"favicon":"https://mintcdn.com/revringinc/4zfe2kVVWVYo-Rox/favicon.svg?fit=max\u0026auto=format\u0026n=4zfe2kVVWVYo-Rox\u0026q=85\u0026s=3161414ca314cb968d3be90385506fbb","navbar":{"links":[{"href":"mailto:contact@revring.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.revring.ai"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/revring"}},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"revringinc","hasAudioNarration":false,"actualSubdomain":"revringinc","customDomains":["docs.revring.ai"],"gitSource":{"type":"github","owner":"revringai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6accccd3f03b0dc1b4aaf120","collectionId":"aa92e730-203f-4efe-931c-075be62f32cc","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6accccd3f03b0dc1b4aaf120"},"entitlements":{},"buildId":"6accccd3f03b0dc1b4aaf120","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":148},{"language":"default","tag":"Guides","count":26},{"language":"default","tag":"Platform","count":22},{"language":"default","tag":"Campaigns","count":11},{"language":"default","tag":"Agents","count":10},{"language":"default","tag":"Calls","count":10},{"language":"default","tag":"Voices","count":10},{"language":"default","tag":"Alerts","count":8},{"language":"default","tag":"SIP Trunks","count":8},{"language":"default","tag":"Test Runs","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/test-suites/get-suggested-fix","slug":"/api-reference/test-suites/get-suggested-fix","pageMetadata":{"title":"Get Suggested Fix","openapi":"GET /test-suites/{id}/attempts/{attemptId}/suggest-fix","description":"Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: `status` stays `running` while it is being prepared and becomes `ready` when `result` holds the suggestion. `failed` means it could not be prepared; request a new one.","href":"/api-reference/test-suites/get-suggested-fix"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: \", _jsx(_components.code, {\n children: \"status\"\n }), \" stays \", _jsx(_components.code, {\n children: \"running\"\n }), \" while it is being prepared and becomes \", _jsx(_components.code, {\n children: \"ready\"\n }), \" when \", _jsx(_components.code, {\n children: \"result\"\n }), \" holds the suggestion. \", _jsx(_components.code, {\n children: \"failed\"\n }), \" means it could not be prepared; request a new one.\"]\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":"Get Suggested Fix","openapi":"GET /test-suites/{id}/attempts/{attemptId}/suggest-fix","description":"Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: `status` stays `running` while it is being prepared and becomes `ready` when `result` holds the suggestion. `failed` means it could not be prepared; request a new one.","href":"/api-reference/test-suites/get-suggested-fix"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get Suggested Fix","description":"Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: `status` stays `running` while it is being prepared and becomes `ready` when `result` holds the suggestion. `failed` means it could not be prepared; request a new one.","operationId":"getSuggestedFix","tags":["Test Suites"],"responses":{"200":"2b1102d3-ab5d-4ee4-8f83-e51c6196cc8c","401":"86bd9cad-7745-437e-a7c5-31adc92fc196","404":"9e7f6774-be34-4efd-a635-b13bd2198139"},"method":"get","type":"path","servers":["9d0997fe-7397-47d9-a3af-b8c62abb4b63"],"security":["6fa6cbe6-9d37-480e-b7e5-09d33fd7b619"],"path":"/test-suites/{id}/attempts/{attemptId}/suggest-fix","baseUrlOptions":["https://api.revring.ai/v1"],"title":"Get Suggested Fix","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2a27654c-91ad-49d1-9f25-c1eb9ca0d79a":{"name":"id","in":"path","required":true,"description":"Test suite ID","schema":{"type":"string","format":"uuid","isRequired":true,"description":"Test suite ID","uniqueKey":"","typeLabel":"string\u003cuuid>"}},"90f76b83-b1f8-4f06-bc9f-7eb37206299c":{"name":"attemptId","in":"path","required":true,"description":"Test attempt ID, from a test run's `attempts`","schema":{"type":"string","format":"uuid","isRequired":true,"description":"Test attempt ID, from a test run's `attempts`","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"responses":{"2b1102d3-ab5d-4ee4-8f83-e51c6196cc8c":{"description":"Current state of the suggestion","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"A proposed prompt change that would make a failed test pass.","properties":{"status":{"type":"string","enum":["idle","running","ready","failed"],"description":"`idle` = none requested for this attempt. `running` = being prepared. `ready` = `result` holds the suggestion. `failed` = could not be prepared, request another.","uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"result":{"oneOf":[{"type":"object","description":"The suggestion. Present when `status` is `ready`, otherwise null.","properties":{"analysis":{"type":"string","description":"Why the test failed","uniqueKey":"data.result.oneOf.0.analysis","typeLabel":"string"},"changesSummary":{"type":"array","items":{"type":"string","uniqueKey":"data.result.oneOf.0.changesSummary.items.[INDEX]","typeLabel":"string"},"description":"Plain-language summary of what was changed","uniqueKey":"data.result.oneOf.0.changesSummary","typeLabel":"string[]"},"suggestedPrompt":{"type":"string","description":"The complete corrected prompt, ready to save to the agent","uniqueKey":"data.result.oneOf.0.suggestedPrompt","typeLabel":"string"},"currentPrompt":{"type":"string","description":"The agent prompt the suggestion was written against, for comparison","uniqueKey":"data.result.oneOf.0.currentPrompt","typeLabel":"string"},"rubricIssues":{"type":"array","items":{"type":"string","uniqueKey":"data.result.oneOf.0.rubricIssues.items.[INDEX]","typeLabel":"string"},"description":"Problems found in the test's pass criteria, if any","uniqueKey":"data.result.oneOf.0.rubricIssues","typeLabel":"string[]"},"edits":{"type":"array","items":{"type":"object","properties":{"find":{"type":"string","uniqueKey":"data.result.oneOf.0.edits.items.[INDEX].find","typeLabel":"string"},"replace":{"type":"string","uniqueKey":"data.result.oneOf.0.edits.items.[INDEX].replace","typeLabel":"string"}},"uniqueKey":"data.result.oneOf.0.edits.items.[INDEX]","typeLabel":"object"},"description":"The targeted edits that turn `currentPrompt` into `suggestedPrompt`, for rendering a diff. Usually present; absent when the suggestion was produced as a full rewrite, so always treat `suggestedPrompt` as the source of truth","uniqueKey":"data.result.oneOf.0.edits","typeLabel":"object[]"}},"uniqueKey":"data.result.oneOf.0","typeLabel":"object"},{"type":"null","description":"The suggestion. Present when `status` is `ready`, otherwise null.","properties":{"analysis":{"type":"string","description":"Why the test failed"},"changesSummary":{"type":"array","items":{"type":"string"},"description":"Plain-language summary of what was changed"},"suggestedPrompt":{"type":"string","description":"The complete corrected prompt, ready to save to the agent"},"currentPrompt":{"type":"string","description":"The agent prompt the suggestion was written against, for comparison"},"rubricIssues":{"type":"array","items":{"type":"string"},"description":"Problems found in the test's pass criteria, if any"},"edits":{"type":"array","items":{"type":"object","properties":{"find":{"type":"string"},"replace":{"type":"string"}}},"description":"The targeted edits that turn `currentPrompt` into `suggestedPrompt`, for rendering a diff. Usually present; absent when the suggestion was produced as a full rewrite, so always treat `suggestedPrompt` as the source of truth"}},"uniqueKey":"data.result.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.result","typeLabel":"object | null"},"stale":{"type":"boolean","description":"Present when `status` is `ready`. `true` means the agent's prompt has changed since this suggestion was written, so saving `suggestedPrompt` would overwrite those newer edits; request a fresh suggestion instead.","uniqueKey":"data.stale","typeLabel":"boolean"},"stage":{"type":"string","enum":["analyzing","writing"],"description":"Present while `status` is `running`: `analyzing` while the failure is being read, `writing` once the corrected output is being produced.","uniqueKey":"data.stage","typeLabel":"enum\u003cstring>"},"progress":{"type":"object","description":"Present while `status` is `running`, once writing begins.","properties":{"outputChars":{"type":"integer","description":"Characters of output produced so far","uniqueKey":"data.progress.outputChars","typeLabel":"integer"},"promptChars":{"type":"integer","description":"Size of the prompt under edit, for scale","uniqueKey":"data.progress.promptChars","typeLabel":"integer"}},"uniqueKey":"data.progress","typeLabel":"object"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"status":"idle","result":{"analysis":"\u003cstring>","changesSummary":["\u003cstring>"],"suggestedPrompt":"\u003cstring>","currentPrompt":"\u003cstring>","rubricIssues":["\u003cstring>"],"edits":[{"find":"\u003cstring>","replace":"\u003cstring>"}]},"stale":true,"stage":"analyzing","progress":{"outputChars":123,"promptChars":123}}}}},"exampleType":"generated"}},"exampleType":"generated"},"86bd9cad-7745-437e-a7c5-31adc92fc196":{"description":"Authentication required or API key invalid","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"unauthorized","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"unauthorized"}}},"exampleType":"generated"}},"exampleType":"generated"},"9e7f6774-be34-4efd-a635-b13bd2198139":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"not_found","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"not_found"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"6fa6cbe6-9d37-480e-b7e5-09d33fd7b619":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key for authentication. Generate API keys from the RevRing dashboard. A key is either full access or read-only; a read-only key is refused with 403 read_only_key on any request that creates, changes or deletes.","scopes":[],"schemeName":"apiKeyAuth"}}},"servers":{"9d0997fe-7397-47d9-a3af-b8c62abb4b63":{"url":"https://api.revring.ai/v1","description":"Production API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key for authentication. Generate API keys from the RevRing dashboard. A key is either full access or read-only; a read-only key is refused with 403 read_only_key on any request that creates, changes or deletes.","scopes":[],"schemeName":"apiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"API key for authentication. Generate API keys from the RevRing dashboard. A key is either full access or read-only; a read-only key is refused with 403 read_only_key on any request that creates, changes or deletes.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyAuth","name":"x-api-key"}],"title":"apiKeyAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"revringinc","siteName":"RevRing AI Documentation","title":"Get Suggested Fix - RevRing AI Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-01T01:36:23.861Z","originalFileLocation":"api-reference/test-suites/get-suggested-fix.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=\"Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: status stays running while it is being prepared and becomes ready when result holds the suggestion. failed means it could not be prepared; request a new one.\">\u003cmeta data-mint-head name=\"application-name\" content=\"RevRing AI Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get Suggested Fix - RevRing AI Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: status stays running while it is being prepared and becomes ready when result holds the suggestion. failed means it could not be prepared; request a new one.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"RevRing AI Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://revringinc.mintlify.app/_mintlify/api/og/v2?division=Test+Runs\u0026amp;title=Get+Suggested+Fix\u0026amp;description=Fetch+the+suggestion+for+a+failed+test+attempt.+Poll+this+every+couple+of+seconds+after+requesting+one%3A+%60status%60+stays+%60running%60+while+it+is+being+prepared+and+\u0026amp;theme=68a631265e6b2f240c8578e4\u0026amp;signature=8b1e3f2e536128d5d40e8c4a616e8ea439c2b3d864e4b3f4de8447e3b38b393f\">\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=\"Get Suggested Fix - RevRing AI Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: status stays running while it is being prepared and becomes ready when result holds the suggestion. failed means it could not be prepared; request a new one.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://revringinc.mintlify.app/_mintlify/api/og/v2?division=Test+Runs\u0026amp;title=Get+Suggested+Fix\u0026amp;description=Fetch+the+suggestion+for+a+failed+test+attempt.+Poll+this+every+couple+of+seconds+after+requesting+one%3A+%60status%60+stays+%60running%60+while+it+is+being+prepared+and+\u0026amp;theme=68a631265e6b2f240c8578e4\u0026amp;signature=8b1e3f2e536128d5d40e8c4a616e8ea439c2b3d864e4b3f4de8447e3b38b393f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/revringinc/yhLN44bkToDzQihq/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"RevRing AI Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#005cdd\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/test-suites/get-suggested-fix.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.revring.ai/#organization\",\"name\":\"RevRing AI Documentation\",\"url\":\"https://docs.revring.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/revringinc/4zfe2kVVWVYo-Rox/logo/light.svg?fit=max\u0026auto=format\u0026n=4zfe2kVVWVYo-Rox\u0026q=85\u0026s=e28235c04eceefff5b3adb1cb7c33353\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.revring.ai#website\",\"name\":\"RevRing AI Documentation\",\"url\":\"https://docs.revring.ai\",\"publisher\":{\"@id\":\"https://docs.revring.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix#webpage\",\"url\":\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix\",\"name\":\"Get Suggested Fix\",\"description\":\"Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: status stays running while it is being prepared and becomes ready when result holds the suggestion. failed means it could not be prepared; request a new one.\",\"dateModified\":\"2026-08-01T01:36:23.861Z\",\"isPartOf\":{\"@id\":\"https://docs.revring.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Test Runs\",\"item\":\"https://docs.revring.ai/api-reference/test-suites/list-runs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get Suggested Fix\",\"item\":\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix#apireference\",\"headline\":\"Get Suggested Fix\",\"name\":\"Get Suggested Fix\",\"description\":\"Fetch the suggestion for a failed test attempt. Poll this every couple of seconds after requesting one: status stays running while it is being prepared and becomes ready when result holds the suggestion. failed means it could not be prepared; request a new one.\",\"url\":\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix\",\"mainEntityOfPage\":{\"@id\":\"https://docs.revring.ai/api-reference/test-suites/get-suggested-fix#webpage\"},\"dateModified\":\"2026-08-01T01:36:23.861Z\",\"publisher\":{\"@id\":\"https://docs.revring.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.revring.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"RevRing AI Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"RevRing AI Documentation","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"API documentation","pages":[{"title":"Introduction","href":"/api-reference/introduction"}]},{"group":"Agents","pages":[{"title":"List Agents","openapi":"GET /agents","href":"/api-reference/agents/list"},{"title":"Get Agent","openapi":"GET /agents/{id}","href":"/api-reference/agents/get"},{"title":"Batch Get Agents","openapi":"POST /agents/batch-get","href":"/api-reference/agents/batch-get"},{"title":"Create Agent","openapi":"POST /agents","href":"/api-reference/agents/create"},{"title":"Draft an Agent From a Description","openapi":"POST /agents/draft","href":"/api-reference/agents/draft"},{"title":"Update Agent","openapi":"PATCH /agents/{id}","href":"/api-reference/agents/update"},{"title":"Chat With an Agent","openapi":"POST /agents/{id}/test-chat","href":"/api-reference/agents/test-chat"},{"title":"Talk to an Agent From a Browser","openapi":"POST /agents/{id}/test-call","href":"/api-reference/agents/test-call"},{"title":"Duplicate Agent","openapi":"POST /agents/{id}/duplicate","href":"/api-reference/agents/duplicate"},{"title":"Delete Agent","openapi":"DELETE /agents/{id}","href":"/api-reference/agents/delete"}]},{"group":"Agent Versions","pages":[{"title":"List Agent Versions","openapi":"GET /agents/{id}/revisions","href":"/api-reference/agents/list-revisions"},{"title":"Get Agent Version","openapi":"GET /agents/{id}/revisions/{revision}","href":"/api-reference/agents/get-revision"},{"title":"Restore Agent Version","openapi":"POST /agents/{id}/revisions/{revision}/restore","href":"/api-reference/agents/restore-revision"},{"title":"Publish Agent","openapi":"POST /agents/{id}/publish","href":"/api-reference/agents/publish"},{"title":"List Agent Environments","openapi":"GET /agents/{id}/environments","href":"/api-reference/agents/list-environments"},{"title":"Create or Update Environment","openapi":"PUT /agents/{id}/environments/{name}","href":"/api-reference/agents/upsert-environment"},{"title":"Delete Environment","openapi":"DELETE /agents/{id}/environments/{name}","href":"/api-reference/agents/delete-environment"}]},{"group":"Agent Phone Numbers","pages":[{"title":"List Agent Phone Numbers","openapi":"GET /agents/{id}/phone-numbers","href":"/api-reference/agents/list-phone-numbers"},{"title":"Add Phone Number","openapi":"POST /agents/{id}/phone-numbers","href":"/api-reference/agents/add-phone-number"},{"title":"Remove Phone Number","openapi":"DELETE /agents/{id}/phone-numbers/{phoneId}","href":"/api-reference/agents/remove-phone-number"},{"title":"Update Phone Number","openapi":"PATCH /agents/{id}/phone-numbers/{phoneId}","href":"/api-reference/agents/update-phone-number"}]},{"group":"Agent Custom Tools","pages":[{"title":"List Custom Tools","openapi":"GET /agents/{id}/custom-tools","href":"/api-reference/agents/list-custom-tools"},{"title":"Create Custom Tool","openapi":"POST /agents/{id}/custom-tools","href":"/api-reference/agents/create-custom-tool"},{"title":"Update Custom Tool","openapi":"PATCH /agents/{id}/custom-tools/{toolId}","href":"/api-reference/agents/update-custom-tool"},{"title":"Delete Custom Tool","openapi":"DELETE /agents/{id}/custom-tools/{toolId}","href":"/api-reference/agents/delete-custom-tool"},{"title":"Test MCP Server","openapi":"POST /agents/mcp-servers/test","href":"/api-reference/agents/test-mcp-server"}]},{"group":"Agent Knowledge Bases","pages":[{"title":"List Agent Knowledge Bases","openapi":"GET /agents/{id}/knowledge-bases","href":"/api-reference/agents/list-knowledge-bases"},{"title":"Link Knowledge Base","openapi":"POST /agents/{id}/knowledge-bases","href":"/api-reference/agents/link-knowledge-base"},{"title":"Unlink Knowledge Base","openapi":"DELETE /agents/{id}/knowledge-bases/{kbId}","href":"/api-reference/agents/unlink-knowledge-base"}]},{"group":"Agent Folders","pages":[{"title":"List Agent Folders","openapi":"GET /agent-folders","href":"/api-reference/agent-folders/list"},{"title":"Create Agent Folder","openapi":"POST /agent-folders","href":"/api-reference/agent-folders/create"},{"title":"Update Agent Folder","openapi":"PATCH /agent-folders/{id}","href":"/api-reference/agent-folders/update"},{"title":"Delete Agent Folder","openapi":"DELETE /agent-folders/{id}","href":"/api-reference/agent-folders/delete"}]},{"group":"Imports","pages":[{"title":"List Source Agents","openapi":"POST /imports/agents","href":"/api-reference/imports/list-agents"},{"title":"Import Agents","openapi":"POST /imports","href":"/api-reference/imports/import"}]},{"group":"SIP Trunks","pages":[{"title":"List SIP Trunks","openapi":"GET /sip-trunks","href":"/api-reference/sip-trunks/list"},{"title":"Get SIP Trunk","openapi":"GET /sip-trunks/{id}","href":"/api-reference/sip-trunks/get"},{"title":"List Available Phone Numbers","openapi":"GET /sip-trunks/{id}/available-numbers","href":"/api-reference/sip-trunks/list-available-numbers"},{"title":"Create SIP Trunk","openapi":"POST /sip-trunks","href":"/api-reference/sip-trunks/create"},{"title":"Update SIP Trunk","openapi":"PATCH /sip-trunks/{id}","href":"/api-reference/sip-trunks/update"},{"title":"Delete SIP Trunk","openapi":"DELETE /sip-trunks/{id}","href":"/api-reference/sip-trunks/delete"},{"title":"List Twilio Numbers","openapi":"POST /sip-trunks/connect/twilio/numbers","href":"/api-reference/sip-trunks/list-twilio-numbers"},{"title":"Connect Twilio","openapi":"POST /sip-trunks/connect/twilio","href":"/api-reference/sip-trunks/connect-twilio"}]},{"group":"Calls","pages":[{"title":"List Calls","openapi":"GET /calls","href":"/api-reference/calls/list"},{"title":"Get Call","openapi":"GET /calls/{id}","href":"/api-reference/calls/get"},{"title":"Batch Get Calls","openapi":"POST /calls/batch-get","href":"/api-reference/calls/batch-get"},{"title":"Send Call","openapi":"POST /calls","href":"/api-reference/calls/send"},{"title":"Cancel Call","openapi":"POST /calls/{id}/cancel","href":"/api-reference/calls/cancel"},{"title":"Send Instruction","openapi":"POST /calls/{id}/instructions","href":"/api-reference/calls/send-instruction"},{"title":"End Call","openapi":"POST /calls/{id}/end","href":"/api-reference/calls/end"},{"title":"Re-run Analysis","openapi":"POST /calls/{id}/reanalyze","href":"/api-reference/calls/reanalyze"},{"title":"Re-run Analysis (bulk)","openapi":"POST /calls/reanalyze","href":"/api-reference/calls/reanalyze-bulk"},{"title":"Export Calls","openapi":"GET /calls/export","href":"/api-reference/calls/export"}]},{"group":"Campaigns","pages":[{"title":"Create Campaign","openapi":"POST /campaigns","href":"/api-reference/campaigns/create"},{"title":"List Campaigns","openapi":"GET /campaigns","href":"/api-reference/campaigns/list"},{"title":"Get Campaign","openapi":"GET /campaigns/{id}","href":"/api-reference/campaigns/get"},{"title":"Update Campaign","openapi":"PATCH /campaigns/{id}","href":"/api-reference/campaigns/update"},{"title":"Delete Campaign","openapi":"DELETE /campaigns/{id}","href":"/api-reference/campaigns/delete"},{"title":"Add Campaign Contacts","openapi":"POST /campaigns/{id}/contacts","href":"/api-reference/campaigns/add-contacts"},{"title":"List Campaign Contacts","openapi":"GET /campaigns/{id}/contacts","href":"/api-reference/campaigns/list-contacts"},{"title":"Start Campaign","openapi":"POST /campaigns/{id}/start","href":"/api-reference/campaigns/start"},{"title":"Pause Campaign","openapi":"POST /campaigns/{id}/pause","href":"/api-reference/campaigns/pause"},{"title":"Cancel Campaign","openapi":"POST /campaigns/{id}/cancel","href":"/api-reference/campaigns/cancel"},{"title":"Export Campaign Results","openapi":"GET /campaigns/{id}/export","href":"/api-reference/campaigns/export"}]},{"group":"Alerts","pages":[{"title":"List Alert Rules","openapi":"GET /alert-rules","href":"/api-reference/alerts/list"},{"title":"Create Alert Rule","openapi":"POST /alert-rules","href":"/api-reference/alerts/create"},{"title":"Get Alert Rule","openapi":"GET /alert-rules/{id}","href":"/api-reference/alerts/get"},{"title":"Update Alert Rule","openapi":"PATCH /alert-rules/{id}","href":"/api-reference/alerts/update"},{"title":"Delete Alert Rule","openapi":"DELETE /alert-rules/{id}","href":"/api-reference/alerts/delete"},{"title":"List Alert Events","openapi":"GET /alert-rules/{id}/events","href":"/api-reference/alerts/events"},{"title":"Get Alert Value","openapi":"GET /alert-rules/{id}/value","href":"/api-reference/alerts/value"},{"title":"Send Test Alert","openapi":"POST /alert-rules/{id}/test","href":"/api-reference/alerts/test"}]},{"group":"Do Not Call","pages":[{"title":"List Do-Not-Call Numbers","openapi":"GET /do-not-call","href":"/api-reference/do-not-call/list"},{"title":"Add Do-Not-Call Numbers","openapi":"POST /do-not-call","href":"/api-reference/do-not-call/add"},{"title":"Remove Do-Not-Call Number","openapi":"DELETE /do-not-call/{e164}","href":"/api-reference/do-not-call/remove"}]},{"group":"Contacts","pages":[{"title":"List Contact Memories","openapi":"GET /contacts/memories","href":"/api-reference/contacts/list-memories"},{"title":"Get Contact Memory","openapi":"GET /contacts/{phoneNumber}/memory","href":"/api-reference/contacts/get-memory"},{"title":"Set Contact Memory","openapi":"PUT /contacts/{phoneNumber}/memory","href":"/api-reference/contacts/set-memory"},{"title":"Delete Contact Memory","openapi":"DELETE /contacts/{phoneNumber}/memory","href":"/api-reference/contacts/delete-memory"}]},{"group":"Integrations","pages":[{"title":"List Integrations","openapi":"GET /integrations","href":"/api-reference/integrations/list"},{"title":"Connect Integration","openapi":"POST /integrations","href":"/api-reference/integrations/connect"},{"title":"List Calendars","openapi":"GET /integrations/{id}/calendars","href":"/api-reference/integrations/calendars"},{"title":"Test Integration","openapi":"POST /integrations/{id}/test","href":"/api-reference/integrations/test"},{"title":"Update Integration","openapi":"PATCH /integrations/{id}","href":"/api-reference/integrations/update"},{"title":"Disconnect Integration","openapi":"DELETE /integrations/{id}","href":"/api-reference/integrations/delete"}]},{"group":"Knowledge Bases","pages":[{"title":"List Knowledge Bases","openapi":"GET /knowledge-bases","href":"/api-reference/knowledge-bases/list"},{"title":"Get Knowledge Base","openapi":"GET /knowledge-bases/{id}","href":"/api-reference/knowledge-bases/get"},{"title":"Create Knowledge Base","openapi":"POST /knowledge-bases","href":"/api-reference/knowledge-bases/create"},{"title":"Update Knowledge Base","openapi":"PATCH /knowledge-bases/{id}","href":"/api-reference/knowledge-bases/update"},{"title":"Delete Knowledge Base","openapi":"DELETE /knowledge-bases/{id}","href":"/api-reference/knowledge-bases/delete"}]},{"group":"Knowledge Base Sources","pages":[{"title":"Add Source","openapi":"POST /knowledge-bases/{id}/sources","href":"/api-reference/knowledge-bases/add-source"},{"title":"Get Source","openapi":"GET /knowledge-bases/{id}/sources/{sourceId}","href":"/api-reference/knowledge-bases/get-source"},{"title":"Refresh Source","openapi":"POST /knowledge-bases/{id}/sources/{sourceId}/refresh","href":"/api-reference/knowledge-bases/refresh-source"},{"title":"Delete Source","openapi":"DELETE /knowledge-bases/{id}/sources/{sourceId}","href":"/api-reference/knowledge-bases/delete-source"}]},{"group":"Voices","pages":[{"title":"List Voices","openapi":"GET /voices","href":"/api-reference/voices/list"},{"title":"Get Voice","openapi":"GET /voices/{id}","href":"/api-reference/voices/get"},{"title":"Preview Voice","openapi":"GET /voices/{id}/preview","href":"/api-reference/voices/preview"},{"title":"Create Voice","openapi":"POST /voices","href":"/api-reference/voices/create"},{"title":"Design Voices","openapi":"POST /voices/design","href":"/api-reference/voices/design"},{"title":"Search Studio Library","openapi":"GET /voices/studio/library","href":"/api-reference/voices/studio-library"},{"title":"Preview Studio Voice","openapi":"GET /voices/studio/library/{voiceId}/preview","href":"/api-reference/voices/studio-preview"},{"title":"Add Studio Voice","openapi":"POST /voices/studio","href":"/api-reference/voices/studio-add"},{"title":"Rename Voice","openapi":"PATCH /voices/{id}","href":"/api-reference/voices/rename"},{"title":"Delete Voice","openapi":"DELETE /voices/{id}","href":"/api-reference/voices/delete"}]},{"group":"Activity","pages":[{"title":"List Activity","openapi":"GET /activity","href":"/api-reference/activity/list"}]},{"group":"Analytics","pages":[{"title":"Get Analytics Overview","openapi":"GET /analytics/overview","href":"/api-reference/analytics/overview"},{"title":"Get Active Calls Count","openapi":"GET /analytics/active","href":"/api-reference/analytics/active"},{"title":"Compare Versions","openapi":"GET /analytics/versions","href":"/api-reference/analytics/versions"},{"title":"Get Agent Reply Times","openapi":"GET /analytics/reply-times","href":"/api-reference/analytics/reply-times"},{"title":"Get Agent Activity","openapi":"GET /analytics/agents","href":"/api-reference/analytics/agent-activity"}]},{"group":"Test Suites","pages":[{"title":"List Test Suites","openapi":"GET /test-suites","href":"/api-reference/test-suites/list"},{"title":"Get Test Suite","openapi":"GET /test-suites/{id}","href":"/api-reference/test-suites/get"},{"title":"Create Test Suite","openapi":"POST /test-suites","href":"/api-reference/test-suites/create"},{"title":"Update Test Suite","openapi":"PATCH /test-suites/{id}","href":"/api-reference/test-suites/update"},{"title":"Delete Test Suite","openapi":"DELETE /test-suites/{id}","href":"/api-reference/test-suites/delete"},{"title":"Create Test From Call","openapi":"POST /test-suites/{id}/tests/from-call","href":"/api-reference/test-suites/create-test-from-call"},{"title":"Create Suite From Failing Calls","openapi":"POST /test-suites/from-failing-calls","href":"/api-reference/test-suites/from-failing-calls"}]},{"group":"Test Cases","pages":[{"title":"List Test Cases","openapi":"GET /test-suites/{id}/tests","href":"/api-reference/test-suites/list-tests"},{"title":"Get Test Case","openapi":"GET /test-suites/{id}/tests/{testId}","href":"/api-reference/test-suites/get-test"},{"title":"Create Test Case","openapi":"POST /test-suites/{id}/tests","href":"/api-reference/test-suites/create-test"},{"title":"Update Test Case","openapi":"PATCH /test-suites/{id}/tests/{testId}","href":"/api-reference/test-suites/update-test"},{"title":"Delete Test Case","openapi":"DELETE /test-suites/{id}/tests/{testId}","href":"/api-reference/test-suites/delete-test"},{"title":"Generate Test Cases","openapi":"POST /test-suites/{id}/generate-tests","href":"/api-reference/test-suites/generate-tests"}]},{"group":"Test Runs","pages":[{"title":"List Test Runs","openapi":"GET /test-suites/{id}/runs","href":"/api-reference/test-suites/list-runs"},{"title":"Get Test Run","openapi":"GET /test-suites/{id}/runs/{runId}","href":"/api-reference/test-suites/get-run"},{"title":"Start Test Run","openapi":"POST /test-suites/{id}/runs","href":"/api-reference/test-suites/start-run"},{"title":"Cancel Test Run","openapi":"POST /test-suites/{id}/runs/{runId}/cancel","href":"/api-reference/test-suites/cancel-run"},{"title":"Suggest a Fix","openapi":"POST /test-suites/{id}/attempts/{attemptId}/suggest-fix","description":"Ask for a prompt change that would make a failed test attempt pass.\n\nPreparing a suggestion takes time, especially for agents with long prompts, so this starts the work and waits up to 105 seconds. If the suggestion is ready in that time it is returned directly; if not, the response is `status: running` and you fetch it with Get Suggested Fix.\n\nPass `wait=0` to skip the wait and always get `status: running` straight away. This is the recommended pattern, because the request never depends on how long preparation takes.\n\nAsking again while a suggestion is already being prepared joins the one in progress instead of starting another, and a suggestion prepared within the last 10 minutes is returned immediately, so repeating a request after a timeout is instant. Suggestions are available for failed attempts only.","href":"/api-reference/test-suites/suggest-fix"},{"title":"Get Suggested Fix","openapi":"GET /test-suites/{id}/attempts/{attemptId}/suggest-fix","href":"/api-reference/test-suites/get-suggested-fix"},{"title":"Suggest a Fix for a Run","openapi":"POST /test-suites/{id}/runs/{runId}/suggest-fix","description":"Ask for one prompt change that would make every failed test in a run pass.\n\nRequesting a fix per attempt produces separate prompts that do not know about each other, and applying one can undo another. This endpoint analyzes all of the run's failed attempts together and returns a single corrected prompt with a per-attempt breakdown, so failures that share a root cause get one coherent edit.\n\nThe wait, polling, and reuse behavior is identical to the per-attempt Suggest a Fix: the request waits up to 105 seconds, `wait=0` returns `status: running` immediately for polling with Get Suggested Fix for a Run, asking again joins a preparation already in progress, and a suggestion prepared within the last 10 minutes is returned instantly.\n\nThe run must be finished and must contain at least one failed attempt. On runs with more than 12 failures, the most recent 12 are analyzed and the rest are listed in `result.skippedAttemptIds`.","href":"/api-reference/test-suites/suggest-run-fix"},{"title":"Get Suggested Fix for a Run","openapi":"GET /test-suites/{id}/runs/{runId}/suggest-fix","href":"/api-reference/test-suites/get-run-suggested-fix"}]},{"group":"Messaging Connections","pages":[{"title":"List Messaging Connections","openapi":"GET /messaging-connections","href":"/api-reference/messaging-connections/list"},{"title":"Get Messaging Connection","openapi":"GET /messaging-connections/{id}","href":"/api-reference/messaging-connections/get"},{"title":"Create Messaging Connection","openapi":"POST /messaging-connections","href":"/api-reference/messaging-connections/create"},{"title":"Update Messaging Connection","openapi":"PATCH /messaging-connections/{id}","href":"/api-reference/messaging-connections/update"},{"title":"Delete Messaging Connection","openapi":"DELETE /messaging-connections/{id}","href":"/api-reference/messaging-connections/delete"}]},{"group":"Messages","pages":[{"title":"Send Message","openapi":"POST /messages","href":"/api-reference/messages/send"},{"title":"List Messages","openapi":"GET /messages","href":"/api-reference/messages/list"},{"title":"Get Message","openapi":"GET /messages/{id}","href":"/api-reference/messages/get"}]},{"group":"Conversations","pages":[{"title":"List Conversations","openapi":"GET /conversations","href":"/api-reference/conversations/list"},{"title":"Delete Conversation","openapi":"DELETE /conversations/{id}","href":"/api-reference/conversations/delete"}]},{"group":"Webhooks","pages":[{"title":"Pre-Call Webhook","openapi":"webhook pre-call","href":"/api-reference/webhooks/pre-call"},{"title":"Post-Call Webhook","openapi":"webhook post-call","href":"/api-reference/webhooks/post-call"},{"title":"Webhook Signing Secret","openapi":"POST /webhooks/signing-secret","href":"/api-reference/webhooks/signing-secret"},{"title":"Get Webhook Signing State","openapi":"GET /webhooks/signing-secret","href":"/api-reference/webhooks/signing-state"},{"title":"Disable Webhook Signing","openapi":"DELETE /webhooks/signing-secret","href":"/api-reference/webhooks/signing-disable"},{"title":"Inbound Message Webhook","openapi":"webhook message-received","href":"/api-reference/webhooks/message-received"}]}]}]},"title":"Get Suggested Fix - RevRing AI Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}