From ff7bea86aa1cb58d05d6f9dd5054f9248a410bdd Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 12 Jun 2025 00:27:27 +0000 Subject: [PATCH] Update API specifications with fern api update --- fern/apis/api/openapi.json | 185 ++++++++++++++++++++++++++++++++++--- 1 file changed, 173 insertions(+), 12 deletions(-) diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json index 929febfd..9a634e63 100644 --- a/fern/apis/api/openapi.json +++ b/fern/apis/api/openapi.json @@ -5278,6 +5278,10 @@ "type": "number", "description": "This is the cost of Vapi." }, + "chat": { + "type": "number", + "description": "This is the cost of chat interactions." + }, "total": { "type": "number", "description": "This is the total cost of the call." @@ -5623,6 +5627,10 @@ { "$ref": "#/components/schemas/FallbackOpenAITranscriber", "title": "OpenAI" + }, + { + "$ref": "#/components/schemas/FallbackCartesiaTranscriber", + "title": "Cartesia" } ] } @@ -5661,6 +5669,30 @@ "description": "Uses Assembly AI's new Universal Streaming API. See: https://www.assemblyai.com/docs/speech-to-text/universal-streaming\n\n@default false", "example": false }, + "endOfTurnConfidenceThreshold": { + "type": "number", + "minimum": 0, + "maximum": 1, + "example": 0.7 + }, + "minEndOfTurnSilenceWhenConfident": { + "type": "number", + "description": "The minimum amount of silence in milliseconds required to detect end of turn when confident. Only used when `enableUniversalStreamingApi` is true.\n\n@default 160", + "minimum": 0, + "example": 160 + }, + "wordFinalizationMaxWaitTime": { + "type": "number", + "description": "The maximum wait time for word finalization. Only used when `enableUniversalStreamingApi` is true.\n\n@default 160", + "minimum": 0, + "example": 160 + }, + "maxTurnSilence": { + "type": "number", + "description": "The maximum amount of silence in milliseconds allowed in a turn before end of turn is triggered. Only used when `enableUniversalStreamingApi` is true.\n\n@default 400", + "minimum": 0, + "example": 400 + }, "realtimeUrl": { "type": "string", "description": "The WebSocket URL that the transcriber connects to." @@ -7101,6 +7133,30 @@ "description": "Uses Assembly AI's new Universal Streaming API. See: https://www.assemblyai.com/docs/speech-to-text/universal-streaming\n\n@default false", "example": false }, + "endOfTurnConfidenceThreshold": { + "type": "number", + "minimum": 0, + "maximum": 1, + "example": 0.7 + }, + "minEndOfTurnSilenceWhenConfident": { + "type": "number", + "description": "The minimum amount of silence in milliseconds required to detect end of turn when confident. Only used when `enableUniversalStreamingApi` is true.\n\n@default 160", + "minimum": 0, + "example": 160 + }, + "wordFinalizationMaxWaitTime": { + "type": "number", + "description": "The maximum wait time for word finalization. Only used when `enableUniversalStreamingApi` is true.\n\n@default 160", + "minimum": 0, + "example": 160 + }, + "maxTurnSilence": { + "type": "number", + "description": "The maximum amount of silence in milliseconds allowed in a turn before end of turn is triggered. Only used when `enableUniversalStreamingApi` is true.\n\n@default 400", + "minimum": 0, + "example": 400 + }, "realtimeUrl": { "type": "string", "description": "The WebSocket URL that the transcriber connects to." @@ -12895,7 +12951,16 @@ }, "VariableExtractionPlan": { "type": "object", - "properties": {} + "properties": { + "schema": { + "description": "This is the schema of parameters we want to extract from the response", + "allOf": [ + { + "$ref": "#/components/schemas/JsonSchema" + } + ] + } + } }, "ConversationNode": { "type": "object", @@ -12962,6 +13027,10 @@ { "$ref": "#/components/schemas/OpenAITranscriber", "title": "OpenAITranscriber" + }, + { + "$ref": "#/components/schemas/CartesiaTranscriber", + "title": "CartesiaTranscriber" } ] }, @@ -19291,6 +19360,10 @@ { "$ref": "#/components/schemas/OpenAITranscriber", "title": "OpenAITranscriber" + }, + { + "$ref": "#/components/schemas/CartesiaTranscriber", + "title": "CartesiaTranscriber" } ] }, @@ -20060,6 +20133,10 @@ { "$ref": "#/components/schemas/OpenAITranscriber", "title": "OpenAITranscriber" + }, + { + "$ref": "#/components/schemas/CartesiaTranscriber", + "title": "CartesiaTranscriber" } ] }, @@ -21254,8 +21331,9 @@ "assistant-request-returned-invalid-assistant", "assistant-request-returned-no-assistant", "assistant-request-returned-forwarding-phone-number", - "call.start.error-get-org", - "call.start.error-get-subscription", + "scheduled-call-deleted", + "call.start.error-vapifault-get-org", + "call.start.error-vapifault-get-subscription", "call.start.error-get-assistant", "call.start.error-get-phone-number", "call.start.error-get-customer", @@ -21263,6 +21341,11 @@ "call.start.error-vapi-number-international", "call.start.error-vapi-number-outbound-daily-limit", "call.start.error-get-transport", + "call.start.error-subscription-wallet-does-not-exist", + "call.start.error-subscription-frozen", + "call.start.error-subscription-insufficient-credits", + "call.start.error-subscription-upgrade-failed", + "call.start.error-subscription-concurrency-limit-reached", "assistant-not-valid", "database-error", "assistant-not-found", @@ -21330,7 +21413,6 @@ "call.in-progress.error-vapifault-azure-speech-transcriber-failed", "call.in-progress.error-pipeline-no-available-llm-model", "worker-shutdown", - "unknown-error", "vonage-disconnected", "vonage-failed-to-connect-call", "vonage-completed", @@ -21341,6 +21423,8 @@ "call.in-progress.error-vapifault-transport-connected-but-call-not-active", "call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing", "call.in-progress.error-vapifault-worker-died", + "call.in-progress.twilio-completed-call", + "call.in-progress.sip-completed-call", "call.in-progress.error-vapifault-openai-llm-failed", "call.in-progress.error-vapifault-azure-openai-llm-failed", "call.in-progress.error-vapifault-groq-llm-failed", @@ -21350,6 +21434,7 @@ "call.in-progress.error-vapifault-inflection-ai-llm-failed", "call.in-progress.error-vapifault-cerebras-llm-failed", "call.in-progress.error-vapifault-deep-seek-llm-failed", + "call.in-progress.error-vapifault-chat-pipeline-failed-to-start", "pipeline-error-openai-400-bad-request-validation-failed", "pipeline-error-openai-401-unauthorized", "pipeline-error-openai-401-incorrect-api-key", @@ -21720,6 +21805,7 @@ "assistant-forwarded-call", "assistant-join-timed-out", "call.in-progress.error-assistant-did-not-receive-customer-audio", + "call.in-progress.error-transfer-failed", "customer-busy", "customer-ended-call", "customer-did-not-answer", @@ -22662,6 +22748,26 @@ "format": "date-time", "type": "string", "description": "This is the ISO 8601 date-time string of when the chat was last updated." + }, + "costs": { + "type": "array", + "description": "These are the costs of individual components of the chat in USD.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ModelCost", + "title": "ModelCost" + }, + { + "$ref": "#/components/schemas/ChatCost", + "title": "ChatCost" + } + ] + } + }, + "cost": { + "type": "number", + "description": "This is the cost of the chat in USD." } }, "required": [ @@ -23607,6 +23713,10 @@ { "$ref": "#/components/schemas/OpenAITranscriber", "title": "OpenAITranscriber" + }, + { + "$ref": "#/components/schemas/CartesiaTranscriber", + "title": "CartesiaTranscriber" } ] }, @@ -24436,6 +24546,10 @@ { "$ref": "#/components/schemas/OpenAITranscriber", "title": "OpenAITranscriber" + }, + { + "$ref": "#/components/schemas/CartesiaTranscriber", + "title": "CartesiaTranscriber" } ] }, @@ -28250,8 +28364,9 @@ }, "name": { "type": "string", - "description": "This is the name of the tool. This will be passed to the model.", - "maxLength": 40 + "description": "This is the name of the tool. This will be passed to the model.\n\nMust be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 40.", + "maxLength": 40, + "pattern": "/^[a-zA-Z0-9_-]{1,40}$/" }, "description": { "type": "string", @@ -28286,6 +28401,14 @@ } ] }, + "variableExtractionPlan": { + "description": "This is the plan that controls the variable extraction from the tool's response.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableExtractionPlan" + } + ] + }, "function": { "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.", "allOf": [ @@ -38354,8 +38477,9 @@ "assistant-request-returned-invalid-assistant", "assistant-request-returned-no-assistant", "assistant-request-returned-forwarding-phone-number", - "call.start.error-get-org", - "call.start.error-get-subscription", + "scheduled-call-deleted", + "call.start.error-vapifault-get-org", + "call.start.error-vapifault-get-subscription", "call.start.error-get-assistant", "call.start.error-get-phone-number", "call.start.error-get-customer", @@ -38363,6 +38487,11 @@ "call.start.error-vapi-number-international", "call.start.error-vapi-number-outbound-daily-limit", "call.start.error-get-transport", + "call.start.error-subscription-wallet-does-not-exist", + "call.start.error-subscription-frozen", + "call.start.error-subscription-insufficient-credits", + "call.start.error-subscription-upgrade-failed", + "call.start.error-subscription-concurrency-limit-reached", "assistant-not-valid", "database-error", "assistant-not-found", @@ -38430,7 +38559,6 @@ "call.in-progress.error-vapifault-azure-speech-transcriber-failed", "call.in-progress.error-pipeline-no-available-llm-model", "worker-shutdown", - "unknown-error", "vonage-disconnected", "vonage-failed-to-connect-call", "vonage-completed", @@ -38441,6 +38569,8 @@ "call.in-progress.error-vapifault-transport-connected-but-call-not-active", "call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing", "call.in-progress.error-vapifault-worker-died", + "call.in-progress.twilio-completed-call", + "call.in-progress.sip-completed-call", "call.in-progress.error-vapifault-openai-llm-failed", "call.in-progress.error-vapifault-azure-openai-llm-failed", "call.in-progress.error-vapifault-groq-llm-failed", @@ -38450,6 +38580,7 @@ "call.in-progress.error-vapifault-inflection-ai-llm-failed", "call.in-progress.error-vapifault-cerebras-llm-failed", "call.in-progress.error-vapifault-deep-seek-llm-failed", + "call.in-progress.error-vapifault-chat-pipeline-failed-to-start", "pipeline-error-openai-400-bad-request-validation-failed", "pipeline-error-openai-401-unauthorized", "pipeline-error-openai-401-incorrect-api-key", @@ -38820,6 +38951,7 @@ "assistant-forwarded-call", "assistant-join-timed-out", "call.in-progress.error-assistant-did-not-receive-customer-audio", + "call.in-progress.error-transfer-failed", "customer-busy", "customer-ended-call", "customer-did-not-answer", @@ -39474,8 +39606,9 @@ "assistant-request-returned-invalid-assistant", "assistant-request-returned-no-assistant", "assistant-request-returned-forwarding-phone-number", - "call.start.error-get-org", - "call.start.error-get-subscription", + "scheduled-call-deleted", + "call.start.error-vapifault-get-org", + "call.start.error-vapifault-get-subscription", "call.start.error-get-assistant", "call.start.error-get-phone-number", "call.start.error-get-customer", @@ -39483,6 +39616,11 @@ "call.start.error-vapi-number-international", "call.start.error-vapi-number-outbound-daily-limit", "call.start.error-get-transport", + "call.start.error-subscription-wallet-does-not-exist", + "call.start.error-subscription-frozen", + "call.start.error-subscription-insufficient-credits", + "call.start.error-subscription-upgrade-failed", + "call.start.error-subscription-concurrency-limit-reached", "assistant-not-valid", "database-error", "assistant-not-found", @@ -39550,7 +39688,6 @@ "call.in-progress.error-vapifault-azure-speech-transcriber-failed", "call.in-progress.error-pipeline-no-available-llm-model", "worker-shutdown", - "unknown-error", "vonage-disconnected", "vonage-failed-to-connect-call", "vonage-completed", @@ -39561,6 +39698,8 @@ "call.in-progress.error-vapifault-transport-connected-but-call-not-active", "call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing", "call.in-progress.error-vapifault-worker-died", + "call.in-progress.twilio-completed-call", + "call.in-progress.sip-completed-call", "call.in-progress.error-vapifault-openai-llm-failed", "call.in-progress.error-vapifault-azure-openai-llm-failed", "call.in-progress.error-vapifault-groq-llm-failed", @@ -39570,6 +39709,7 @@ "call.in-progress.error-vapifault-inflection-ai-llm-failed", "call.in-progress.error-vapifault-cerebras-llm-failed", "call.in-progress.error-vapifault-deep-seek-llm-failed", + "call.in-progress.error-vapifault-chat-pipeline-failed-to-start", "pipeline-error-openai-400-bad-request-validation-failed", "pipeline-error-openai-401-unauthorized", "pipeline-error-openai-401-incorrect-api-key", @@ -39940,6 +40080,7 @@ "assistant-forwarded-call", "assistant-join-timed-out", "call.in-progress.error-assistant-did-not-receive-customer-audio", + "call.in-progress.error-transfer-failed", "customer-busy", "customer-ended-call", "customer-did-not-answer", @@ -41701,6 +41842,26 @@ "cost" ] }, + "ChatCost": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "This is the type of cost, always 'chat' for this class.", + "enum": [ + "chat" + ] + }, + "cost": { + "type": "number", + "description": "This is the cost of the component in USD." + } + }, + "required": [ + "type", + "cost" + ] + }, "FunctionToolWithToolCall": { "type": "object", "properties": {