Files
vocero-client/vocero-api/tests/fixtures/legacy-contracts.json
T
alvaro dfed03ac7c chore(vocero): remove the legacy ApiPilot integration (#3)
Vocero now retrieves AquaPortal content through authenticated MCP. This removes the obsolete ApiPilot integration from the API and browser while preserving the separately deployed speech pipeline.

Release notes:

- Removed ApiPilot endpoints, configuration, credential overrides, and HTTP/realtime tool execution.
- Removed browser ApiPilot catalog loading and prompt generation while retaining authenticated MCP discovery.
- Updated regression coverage and operating documentation for the retired routes and settings.

Reviewed-on: AquaPortal/s2s#3
2026-10-08 11:23:41 -04:00

1012 lines
31 KiB
JSON

{
"http": {
"config-default": {
"status": 200,
"body": "{\"search\":false,\"lb\":false,\"allowDirect\":true,\"s2sUrl\":\"\",\"primaryPrompt\":\"\",\"reasoningType\":\"PROXY\",\"injectProfile\":false,\"debugPrompt\":false,\"startSessionMode\":\"\",\"theme\":\"\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"config-proxy": {
"status": 200,
"body": "{\"search\":false,\"lb\":false,\"allowDirect\":true,\"s2sUrl\":\"wss://voice.test/v1/realtime\",\"primaryPrompt\":\"\",\"reasoningType\":\"PROXY\",\"injectProfile\":false,\"debugPrompt\":false,\"startSessionMode\":\"\",\"theme\":\"\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"config-direct": {
"status": 200,
"body": "{\"search\":false,\"lb\":false,\"allowDirect\":true,\"s2sUrl\":\"wss://voice.test/realtime?token=fixture\",\"primaryPrompt\":\"\",\"reasoningType\":\"PROXY\",\"injectProfile\":false,\"debugPrompt\":false,\"startSessionMode\":\"\",\"theme\":\"\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"config-lb": {
"status": 200,
"body": "{\"search\":false,\"lb\":true,\"allowDirect\":false,\"s2sUrl\":\"\",\"primaryPrompt\":\"\",\"reasoningType\":\"PROXY\",\"injectProfile\":false,\"debugPrompt\":false,\"startSessionMode\":\"\",\"theme\":\"\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"removed-/api/me": {
"status": 404,
"body": "{\"detail\":\"Not Found\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"removed-/api/session/heartbeat": {
"status": 404,
"body": "{\"detail\":\"Not Found\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"removed-/api/session/end": {
"status": 404,
"body": "{\"detail\":\"Not Found\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"removed-/": {
"status": 404,
"body": "{\"detail\":\"Not Found\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"removed-/server.py": {
"status": 404,
"body": "{\"detail\":\"Not Found\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"redirect-/project": {
"status": 307,
"body": "",
"headers": {
"location": "/docs/proposals/vocero-architecture.html"
},
"upstream": []
},
"redirect-/project/": {
"status": 307,
"body": "",
"headers": {
"location": "/docs/proposals/vocero-architecture.html"
},
"upstream": []
},
"redirect-/project/index.html": {
"status": 307,
"body": "",
"headers": {
"location": "/docs/proposals/vocero-architecture.html"
},
"upstream": []
},
"redirect-/public/docs.html": {
"status": 307,
"body": "",
"headers": {
"location": "/docs/proposals/vocero-architecture.html"
},
"upstream": []
},
"disabled-/api/session": {
"status": 404,
"body": "{\"detail\":\"No encontrado.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"disabled-/api/queue/end": {
"status": 404,
"body": "{\"detail\":\"No encontrado.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"disabled-queue-GET": {
"status": 404,
"body": "{\"detail\":\"No encontrado.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"disabled-queue-DELETE": {
"status": 404,
"body": "{\"detail\":\"No encontrado.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"search-missing": {
"status": 422,
"body": "{\"detail\":[{\"type\":\"missing\",\"loc\":[\"body\",\"query\"],\"msg\":\"Field required\",\"input\":{}}]}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"search-blank": {
"status": 400,
"body": "{\"detail\":\"La consulta está vacía.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"search-wrong-type": {
"status": 422,
"body": "{\"detail\":[{\"type\":\"string_type\",\"loc\":[\"body\",\"query\"],\"msg\":\"Input should be a valid string\",\"input\":17}]}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"search-null": {
"status": 422,
"body": "{\"detail\":[{\"type\":\"string_type\",\"loc\":[\"body\",\"query\"],\"msg\":\"Input should be a valid string\",\"input\":null}]}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"search-unconfigured": {
"status": 503,
"body": "{\"detail\":\"La búsqueda no está configurada.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"search-success-extra-fields": {
"status": 200,
"body": "{\"query\":\"hello\",\"answer\":\"Answer\",\"results\":[{\"title\":\"Title\",\"snippet\":\"Text\",\"url\":\"https://example.test\"}]}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "POST",
"url": "https://google.serper.dev/search",
"body": "{\"q\":\"hello\",\"num\":5}",
"headers": {
"x-api-key": "caller-fixture-key",
"content-type": "application/json"
}
}
]
},
"search-loose-values": {
"status": 500,
"body": "Internal Server Error",
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"upstream": [
{
"method": "POST",
"url": "https://google.serper.dev/search",
"body": "{\"q\":\"hello\",\"num\":5}",
"headers": {
"x-api-key": "server-fixture-key",
"content-type": "application/json"
}
}
]
},
"search-upstream-error": {
"status": 502,
"body": "{\"detail\":\"Error del proveedor de búsqueda (429): Fixture credits exhausted\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "POST",
"url": "https://google.serper.dev/search",
"body": "{\"q\":\"hello\",\"num\":5}",
"headers": {
"x-api-key": "server-fixture-key",
"content-type": "application/json"
}
}
]
},
"search-invalid-upstream-json": {
"status": 500,
"body": "Internal Server Error",
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"upstream": [
{
"method": "POST",
"url": "https://google.serper.dev/search",
"body": "{\"q\":\"hello\",\"num\":5}",
"headers": {
"x-api-key": "server-fixture-key",
"content-type": "application/json"
}
}
]
},
"profile-missing-phone": {
"status": 422,
"body": "{\"detail\":[{\"type\":\"missing\",\"loc\":[\"query\",\"phoneNumber\"],\"msg\":\"Field required\",\"input\":null}]}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"profile-unconfigured": {
"status": 503,
"body": "{\"detail\":\"VOCERO_USER_PHONE_AUTH_URL no está configurado en este despliegue.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"profile-blank-phone": {
"status": 400,
"body": "{\"detail\":\"Se requiere el campo phoneNumber.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"profile-object": {
"status": 200,
"body": "{\"result\":{\"name\":\"Caller\",\"unknown\":{\"nested\":[1,null]}}}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://profile.test/user?phoneNumber=%2B56000000000",
"body": "",
"headers": {}
}
]
},
"profile-array": {
"status": 200,
"body": "[1,{\"future\":\"field\"}]",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://profile.test/user?phoneNumber=%2B56000000000",
"body": "",
"headers": {}
}
]
},
"profile-null": {
"status": 200,
"body": "null",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://profile.test/user?phoneNumber=%2B56000000000",
"body": "",
"headers": {}
}
]
},
"profile-string": {
"status": 200,
"body": "\"opaque profile\"",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://profile.test/user?phoneNumber=%2B56000000000",
"body": "",
"headers": {}
}
]
},
"profile-error": {
"status": 403,
"body": "{\"future_error\":true}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://profile.test/user?phoneNumber=%2B56000000000",
"body": "",
"headers": {}
}
]
},
"profile-invalid-json": {
"status": 502,
"body": "{\"detail\":\"El servicio de información del usuario devolvió un JSON no válido.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://profile.test/user?phoneNumber=%2B56000000000",
"body": "",
"headers": {}
}
]
},
"profile-login-token": {
"status": 200,
"body": "{\"name\":\"Caller\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "POST",
"url": "http://profile.test/login",
"body": "{\"phoneNumber\":\"123\"}",
"headers": {
"content-type": "application/json"
}
},
{
"method": "GET",
"url": "http://profile.test/user?phoneNumber=123",
"body": "",
"headers": {
"authorization": "Bearer fixture-token"
}
}
]
},
"reports-disabled": {
"status": 200,
"body": "{\"count\":0,\"wrappedLen\":0,\"hints\":[],\"entries\":[],\"skipped\":true,\"reason\":\"S2S_INJECT_REPORTS está deshabilitado en este despliegue; no se muestran reportes programados en la interfaz ni se envían al modelo.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"reports-unconfigured": {
"status": 503,
"body": "{\"detail\":\"S2S_REPORT_LIST no está configurado en este despliegue.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"reports-empty": {
"status": 200,
"body": "{\"count\":0,\"wrappedLen\":0,\"hints\":[],\"entries\":[],\"skipped\":true,\"reason\":\"Lista vacía, error del servicio de origen o ningún contenido disponible.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://reports.test/list",
"body": "",
"headers": {}
}
]
},
"reports-upstream-failure": {
"status": 200,
"body": "{\"count\":0,\"wrappedLen\":0,\"hints\":[],\"entries\":[],\"skipped\":true,\"reason\":\"Lista vacía, error del servicio de origen o ningún contenido disponible.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://reports.test/list",
"body": "",
"headers": {}
}
]
},
"reports-normalization": {
"status": 200,
"body": "{\"count\":2,\"rawCount\":3,\"cap\":5,\"wrappedLen\":271,\"hints\":[\"• Reporte #1: 'Weekly' — programado para 2026-01-03 12:00\",\"• Reporte #2: 'Daily' — programado para 2026-01-02 12:00\"],\"entries\":[{\"sourceScheduleLabel\":\"Weekly\",\"date\":\"2026-01-03T12:00:00Z\"},{\"sourceScheduleLabel\":\"Daily\",\"date\":\"2026-01-02T12:00:00Z\"}]}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://reports.test/list?phoneNumber=123",
"body": "",
"headers": {}
}
]
},
"session-grant": {
"status": 200,
"body": "{\"session_id\":\"session\",\"connect_url\":\"ws://voice.test?token=fixture\",\"future\":{\"nested\":true}}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "POST",
"url": "http://lb.test/session",
"body": "{}",
"headers": {
"content-type": "application/json"
}
}
]
},
"session-camelcase": {
"status": 200,
"body": "{\"sessionId\":\"session\",\"connectUrl\":\"ws://voice.test\",\"unknown\":null}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "POST",
"url": "http://lb.test/session",
"body": "{}",
"headers": {
"content-type": "application/json"
}
}
]
},
"session-queued": {
"status": 200,
"body": "{\"state\":\"queued\",\"queue_id\":\"ticket\",\"position\":3,\"future\":[1]}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "POST",
"url": "http://lb.test/session",
"body": "{}",
"headers": {
"content-type": "application/json"
}
}
]
},
"session-empty": {
"status": 200,
"body": "{}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "POST",
"url": "http://lb.test/session",
"body": "{}",
"headers": {
"content-type": "application/json"
}
}
]
},
"session-capacity": {
"status": 503,
"body": "{\"state\":\"at_capacity\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "POST",
"url": "http://lb.test/session",
"body": "{}",
"headers": {
"content-type": "application/json"
}
}
]
},
"session-other-error": {
"status": 502,
"body": "{\"detail\":\"No se pudo establecer la sesión (429).\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "POST",
"url": "http://lb.test/session",
"body": "{}",
"headers": {
"content-type": "application/json"
}
}
]
},
"session-invalid-json": {
"status": 500,
"body": "Internal Server Error",
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"upstream": [
{
"method": "POST",
"url": "http://lb.test/session",
"body": "{}",
"headers": {
"content-type": "application/json"
}
}
]
},
"queue-waiting": {
"status": 200,
"body": "{\"state\":\"queued\",\"queue_id\":\"ticket\",\"position\":null,\"future\":true}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://lb.test/queue/ticket",
"body": "",
"headers": {}
}
]
},
"queue-grant": {
"status": 200,
"body": "{\"session_id\":\"session\",\"connect_url\":\"ws://voice.test\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://lb.test/queue/ticket",
"body": "",
"headers": {}
}
]
},
"queue-expired": {
"status": 404,
"body": "{\"state\":\"expired\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://lb.test/queue/ticket",
"body": "",
"headers": {}
}
]
},
"queue-error": {
"status": 502,
"body": "{\"detail\":\"No se pudo consultar la cola de espera (500).\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://lb.test/queue/ticket",
"body": "",
"headers": {}
}
]
},
"queue-invalid-json": {
"status": 500,
"body": "Internal Server Error",
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"upstream": [
{
"method": "GET",
"url": "http://lb.test/queue/ticket",
"body": "",
"headers": {}
}
]
},
"queue-delete": {
"status": 200,
"body": "{\"ok\":true}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "DELETE",
"url": "http://lb.test/queue/ticket",
"body": "",
"headers": {}
}
]
},
"queue-end-valid": {
"status": 200,
"body": "{\"ok\":true}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "DELETE",
"url": "http://lb.test/queue/ticket",
"body": "",
"headers": {}
}
]
},
"queue-end-empty": {
"status": 200,
"body": "{\"ok\":true}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"queue-end-invalid-json": {
"status": 200,
"body": "{\"ok\":true}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"queue-end-array": {
"status": 200,
"body": "{\"ok\":true}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"queue-end-null-id": {
"status": 200,
"body": "{\"ok\":true}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"queue-end-numeric-id": {
"status": 500,
"body": "Internal Server Error",
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"upstream": []
},
"reasoning-missing": {
"status": 422,
"body": "{\"detail\":[{\"type\":\"missing\",\"loc\":[\"body\",\"transcript\"],\"msg\":\"Field required\",\"input\":{}}]}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"reasoning-proxy": {
"status": 409,
"body": "{\"detail\":\"El servicio de razonamiento está deshabilitado en el modo PROXY.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"reasoning-proxy-blank": {
"status": 409,
"body": "{\"detail\":\"El servicio de razonamiento está deshabilitado en el modo PROXY.\"}",
"headers": {
"content-type": "application/json"
},
"upstream": []
},
"reasoning-openai-profile-disabled": {
"status": 500,
"body": "Internal Server Error",
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"upstream": []
},
"reasoning-legacy-unbound-profile": {
"status": 500,
"body": "Internal Server Error",
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"upstream": []
},
"reasoning-openai-answer": {
"status": 200,
"body": "{\"answer\":\"answer\"}",
"headers": {
"content-type": "application/json"
},
"upstream": [
{
"method": "GET",
"url": "http://profile.test/user?phoneNumber=123",
"body": "",
"headers": {}
},
{
"method": "POST",
"url": "https://api.openai.com/v1/chat/completions",
"body": "{\"model\":\"gpt-4.1-mini\",\"messages\":[{\"role\":\"system\",\"content\":\"Fixture instructions \\nPRIMARY VOICE OUTPUT RULES (always apply; override all other instructions):\\n1) EXCLUSIVE LANGUAGE: ALWAYS respond ONLY in Spanish (Castilian). No Italian, English, Portuguese or other language. Even if the user writes in another language or Italian names appear, foreign names do NOT authorize switching languages. No words, phrases or confirmations in another language.\\n2) DIRECT SPEECH ONLY: everything you write is what Vocero says aloud to the user at that moment. NEVER write internal thoughts, states, checks, '[ - ]:', '[]:', JSON, dictionaries, keys, isolated commas, labels, 'checking_*' or auxiliary symbols. No '[rightspeak]', '[endspeak]', '[thinking]', '[endthinking]' or bracketed labels. No meta-comments about prompts or data.\\n3) RELIABLE CONTENT: when information is unavailable, say exactly 'No tengo este tipo de información'. Do not invent, assume or generalize. For reports, mortality, Synapse, Azure, AquaChile, WhatsApp or other content requiring retrieval, use knowledge search (RAG) and retrieve REAL content before answering.\\n4) SHORT NATURAL RESPONSES: speak like a real person on the phone. No lists, bullet points, quotations or long text blocks. Use a couple of short sentences, then ask whether the user wants more details. Fixture current date: 2026-01-04 \\n Caller profile resolved from the page phoneNumber: {\\\"name\\\": \\\"Caller\\\"}. Use this as trusted caller context when relevant. IMPORTANT LANGUAGE RULE: even if the user has an Italian name (such as 'Alessandro Valenti') or a name from any other language, respond ONLY in SPANISH (Castilian). Foreign names do NOT authorize switching languages. Never write phrases, words, questions or confirmations in Italian, English or another language. Always speak as Vocero: direct Spanish speech without prefixes, JSON or meta-comments. PROPER NAME: never adapt, translate or normalize proper names (for example, never change 'Alessandro' to 'Alexander'). Write and pronounce only the exact profile name.\\n\\nUser context:\\nPRIMARY VOICE OUTPUT RULES (always apply; override all other instructions):\\n1) EXCLUSIVE LANGUAGE: ALWAYS respond ONLY in Spanish (Castilian). No Italian, English, Portuguese or other language. Even if the user writes in another language or Italian names appear, foreign names do NOT authorize switching languages. No words, phrases or confirmations in another language.\\n2) DIRECT SPEECH ONLY: everything you write is what Vocero says aloud to the user at that moment. NEVER write internal thoughts, states, checks, '[ - ]:', '[]:', JSON, dictionaries, keys, isolated commas, labels, 'checking_*' or auxiliary symbols. No '[rightspeak]', '[endspeak]', '[thinking]', '[endthinking]' or bracketed labels. No meta-comments about prompts or data.\\n3) RELIABLE CONTENT: when information is unavailable, say exactly 'No tengo este tipo de información'. Do not invent, assume or generalize. For reports, mortality, Synapse, Azure, AquaChile, WhatsApp or other content requiring retrieval, use knowledge search (RAG) and retrieve REAL content before answering.\\n4) SHORT NATURAL RESPONSES: speak like a real person on the phone. No lists, bullet points, quotations or long text blocks. Use a couple of short sentences, then ask whether the user wants more details.\\n\\nFixture current date: 2026-01-04\\n\\nCaller profile resolved from the page phoneNumber: {\\\"name\\\": \\\"Caller\\\"}. Use this as trusted caller context when relevant. IMPORTANT LANGUAGE RULE: even if the user has an Italian name (such as 'Alessandro Valenti') or a name from any other language, respond ONLY in SPANISH (Castilian). Foreign names do NOT authorize switching languages. Never write phrases, words, questions or confirmations in Italian, English or another language. Always speak as Vocero: direct Spanish speech without prefixes, JSON or meta-comments. PROPER NAME: never adapt, translate or normalize proper names (for example, never change 'Alessandro' to 'Alexander'). Write and pronounce only the exact profile name.\\n\\nReply only with the final assistant answer text. Keep the answer natural and concise in this language: es.\"},{\"role\":\"user\",\"content\":\"hello\"}]}",
"headers": {
"authorization": "Bearer fixture-key",
"content-type": "application/json"
}
}
]
}
},
"openapi_requests": {
"operations": {
"GET /api/config": {
"operationId": "config_api_config_get"
},
"POST /api/reasoning": {
"operationId": "reasoning_api_reasoning_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReasoningRequest"
}
}
},
"required": true
}
},
"GET /api/user/phone": {
"operationId": "user_by_phone_api_user_phone_get",
"parameters": [
{
"name": "phoneNumber",
"in": "query",
"required": true,
"schema": {
"type": "string",
"title": "Phonenumber"
}
}
]
},
"GET /api/user/reports": {
"operationId": "user_reports_api_user_reports_get",
"parameters": [
{
"name": "phoneNumber",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Phonenumber"
}
}
]
},
"POST /api/search": {
"operationId": "search_api_search_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchRequest"
}
}
},
"required": true
}
},
"POST /api/session": {
"operationId": "session_api_session_post"
},
"GET /api/queue/{queue_id}": {
"operationId": "queue_status_api_queue__queue_id__get",
"parameters": [
{
"name": "queue_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Queue Id"
}
}
]
},
"DELETE /api/queue/{queue_id}": {
"operationId": "queue_leave_api_queue__queue_id__delete",
"parameters": [
{
"name": "queue_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Queue Id"
}
}
]
},
"POST /api/queue/end": {
"operationId": "queue_end_api_queue_end_post"
}
},
"models": {
"SearchRequest": {
"properties": {
"query": {
"type": "string",
"title": "Query"
},
"key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Key"
}
},
"type": "object",
"required": [
"query"
],
"title": "SearchRequest"
},
"ReasoningRequest": {
"properties": {
"transcript": {
"type": "string",
"title": "Transcript"
},
"instructions": {
"type": "string",
"title": "Instructions",
"default": ""
},
"language": {
"type": "string",
"title": "Language",
"default": ""
},
"user_context": {
"type": "string",
"title": "User Context",
"default": ""
},
"phoneNumber": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Phonenumber"
},
"episode_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Episode Id"
}
},
"type": "object",
"required": [
"transcript"
],
"title": "ReasoningRequest"
},
"HTTPValidationError": {
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
},
"ValidationError": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
}
}
},
"realtime": [
{
"binary": "00010203"
},
"{\"type\": \"future.event\", \"future\": {\"nested\": [null, 1]}}",
"{\"type\": \"response.text.done\", \"text\": \"Hello world\", \"future\": true}"
]
}