diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json index eb949620c..419319e84 100644 --- a/fern/apis/api/openapi.json +++ b/fern/apis/api/openapi.json @@ -2150,6 +2150,10 @@ { "$ref": "#/components/schemas/CreateTextEditorToolDTO", "title": "TextEditorTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ], "discriminator": { @@ -2164,7 +2168,8 @@ "output": "#/components/schemas/CreateOutputToolDTO", "bash": "#/components/schemas/CreateBashToolDTO", "computer": "#/components/schemas/CreateComputerToolDTO", - "textEditor": "#/components/schemas/CreateTextEditorToolDTO" + "textEditor": "#/components/schemas/CreateTextEditorToolDTO", + "query": "#/components/schemas/CreateQueryToolDTO" } } } @@ -2217,6 +2222,10 @@ { "$ref": "#/components/schemas/TextEditorTool", "title": "TextEditorTool" + }, + { + "$ref": "#/components/schemas/QueryTool", + "title": "QueryTool" } ], "discriminator": { @@ -2231,7 +2240,8 @@ "output": "#/components/schemas/OutputTool", "bash": "#/components/schemas/BashTool", "computer": "#/components/schemas/ComputerTool", - "textEditor": "#/components/schemas/TextEditorTool" + "textEditor": "#/components/schemas/TextEditorTool", + "query": "#/components/schemas/QueryTool" } } } @@ -2392,6 +2402,10 @@ { "$ref": "#/components/schemas/TextEditorTool", "title": "TextEditorTool" + }, + { + "$ref": "#/components/schemas/QueryTool", + "title": "QueryTool" } ], "discriminator": { @@ -2406,7 +2420,8 @@ "output": "#/components/schemas/OutputTool", "bash": "#/components/schemas/BashTool", "computer": "#/components/schemas/ComputerTool", - "textEditor": "#/components/schemas/TextEditorTool" + "textEditor": "#/components/schemas/TextEditorTool", + "query": "#/components/schemas/QueryTool" } } } @@ -2485,6 +2500,10 @@ { "$ref": "#/components/schemas/TextEditorTool", "title": "TextEditorTool" + }, + { + "$ref": "#/components/schemas/QueryTool", + "title": "QueryTool" } ], "discriminator": { @@ -2499,7 +2518,8 @@ "output": "#/components/schemas/OutputTool", "bash": "#/components/schemas/BashTool", "computer": "#/components/schemas/ComputerTool", - "textEditor": "#/components/schemas/TextEditorTool" + "textEditor": "#/components/schemas/TextEditorTool", + "query": "#/components/schemas/QueryTool" } } } @@ -2574,6 +2594,10 @@ { "$ref": "#/components/schemas/UpdateTextEditorToolDTO", "title": "TextEditorTool" + }, + { + "$ref": "#/components/schemas/UpdateQueryToolDTO", + "title": "QueryTool" } ], "discriminator": { @@ -2588,7 +2612,8 @@ "output": "#/components/schemas/UpdateOutputToolDTO", "bash": "#/components/schemas/UpdateBashToolDTO", "computer": "#/components/schemas/UpdateComputerToolDTO", - "textEditor": "#/components/schemas/UpdateTextEditorToolDTO" + "textEditor": "#/components/schemas/UpdateTextEditorToolDTO", + "query": "#/components/schemas/UpdateQueryToolDTO" } } } @@ -2641,6 +2666,10 @@ { "$ref": "#/components/schemas/TextEditorTool", "title": "TextEditorTool" + }, + { + "$ref": "#/components/schemas/QueryTool", + "title": "QueryTool" } ], "discriminator": { @@ -2655,7 +2684,8 @@ "output": "#/components/schemas/OutputTool", "bash": "#/components/schemas/BashTool", "computer": "#/components/schemas/ComputerTool", - "textEditor": "#/components/schemas/TextEditorTool" + "textEditor": "#/components/schemas/TextEditorTool", + "query": "#/components/schemas/QueryTool" } } } @@ -2731,6 +2761,10 @@ { "$ref": "#/components/schemas/TextEditorTool", "title": "TextEditorTool" + }, + { + "$ref": "#/components/schemas/QueryTool", + "title": "QueryTool" } ], "discriminator": { @@ -2745,7 +2779,8 @@ "output": "#/components/schemas/OutputTool", "bash": "#/components/schemas/BashTool", "computer": "#/components/schemas/ComputerTool", - "textEditor": "#/components/schemas/TextEditorTool" + "textEditor": "#/components/schemas/TextEditorTool", + "query": "#/components/schemas/QueryTool" } } } @@ -4851,7 +4886,6 @@ "id", "it", "ja", - "jp", "jv", "kn", "kk", @@ -4871,7 +4905,7 @@ "mi", "mr", "mn", - "mymr", + "my", "ne", "no", "nn", @@ -6197,11 +6231,12 @@ }, "sipVerb": { "type": "object", - "description": "This specifies the SIP verb to use while transferring the call.\n- 'refer': Uses SIP REFER to transfer the call (default)\n- 'bye': Ends current call with SIP BYE", + "description": "This specifies the SIP verb to use while transferring the call.\n- 'refer': Uses SIP REFER to transfer the call (default)\n- 'bye': Ends current call with SIP BYE\n- 'dial': Uses SIP DIAL to transfer the call", "default": "refer", "enum": [ "refer", - "bye" + "bye", + "dial" ] }, "twiml": { @@ -6501,6 +6536,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -6562,6 +6601,27 @@ "model" ] }, + "AnthropicThinkingConfig": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "enabled" + ] + }, + "budgetTokens": { + "type": "number", + "description": "The maximum number of tokens to allocate for thinking.\nMust be between 1024 and 100000 tokens.", + "minimum": 1024, + "maximum": 100000 + } + }, + "required": [ + "type", + "budgetTokens" + ] + }, "AnthropicModel": { "type": "object", "properties": { @@ -6604,6 +6664,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -6630,22 +6694,32 @@ }, "model": { "type": "string", - "description": "This is the Anthropic/Claude models that will be used.", + "description": "The specific Anthropic/Claude model that will be used.", "enum": [ "claude-3-opus-20240229", "claude-3-sonnet-20240229", "claude-3-haiku-20240307", "claude-3-5-sonnet-20240620", "claude-3-5-sonnet-20241022", - "claude-3-5-haiku-20241022" + "claude-3-5-haiku-20241022", + "claude-3-7-sonnet-20250219" ] }, "provider": { "type": "string", + "description": "The provider identifier for Anthropic.", "enum": [ "anthropic" ] }, + "thinking": { + "description": "Optional configuration for Anthropic's thinking feature.\nOnly applicable for claude-3-7-sonnet-20250219 model.\nIf provided, maxTokens must be greater than thinking.budgetTokens.", + "allOf": [ + { + "$ref": "#/components/schemas/AnthropicThinkingConfig" + } + ] + }, "temperature": { "type": "number", "description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.", @@ -6715,6 +6789,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -6833,6 +6911,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -7005,6 +7087,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -7129,6 +7215,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -7243,6 +7333,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -7349,6 +7443,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -7456,6 +7554,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -7491,6 +7593,7 @@ "type": "string", "description": "This is the OpenAI model that will be used.", "enum": [ + "gpt-4.5-preview", "chatgpt-4o-latest", "o3-mini", "o1-preview", @@ -7524,6 +7627,7 @@ "type": "array", "description": "These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense.", "enum": [ + "gpt-4.5-preview", "chatgpt-4o-latest", "o3-mini", "o1-preview", @@ -7559,6 +7663,7 @@ "items": { "type": "string", "enum": [ + "gpt-4.5-preview", "chatgpt-4o-latest", "o3-mini", "o1-preview", @@ -7658,6 +7763,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -7761,6 +7870,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -7864,6 +7977,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -8124,6 +8241,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -8254,6 +8375,10 @@ { "$ref": "#/components/schemas/CreateTransferCallToolDTO", "title": "TransferTool" + }, + { + "$ref": "#/components/schemas/CreateQueryToolDTO", + "title": "QueryTool" } ] } @@ -8574,6 +8699,10 @@ "$ref": "#/components/schemas/FallbackCartesiaVoice", "title": "Cartesia" }, + { + "$ref": "#/components/schemas/FallbackHumeVoice", + "title": "Hume" + }, { "$ref": "#/components/schemas/FallbackCustomVoice", "title": "CustomVoice" @@ -8586,6 +8715,10 @@ "$ref": "#/components/schemas/FallbackElevenLabsVoice", "title": "ElevenLabs" }, + { + "$ref": "#/components/schemas/FallbackVapiVoice", + "title": "Vapi" + }, { "$ref": "#/components/schemas/FallbackLMNTVoice", "title": "LMNT" @@ -8970,6 +9103,13 @@ "description": "Defines the use speaker boost for voice settings.", "example": false }, + "speed": { + "type": "number", + "description": "Defines the speed for voice settings.", + "minimum": 0.7, + "maximum": 1.2, + "example": 0.9 + }, "optimizeStreamingLatency": { "type": "number", "description": "Defines the optimize streaming latency for voice settings. Defaults to 3.", @@ -9920,6 +10060,51 @@ "voiceId" ] }, + "FallbackHumeVoice": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "This is the voice provider that will be used.", + "enum": [ + "hume" + ] + }, + "model": { + "type": "string", + "description": "This is the model that will be used.", + "enum": [ + "octave" + ], + "example": "octave" + }, + "voiceId": { + "type": "string", + "description": "The ID of the particular voice you want to use." + }, + "isCustomHumeVoice": { + "type": "boolean", + "description": "Indicates whether the chosen voice is a preset Hume AI voice or a custom voice.", + "example": false + }, + "description": { + "type": "string", + "description": "Natural language instructions describing how the synthesized speech should sound, including but not limited to tone, intonation, pacing, and accent (e.g., 'a soft, gentle voice with a strong British accent').\n\nIf a Voice is specified in the request, this description serves as acting instructions.\nIf no Voice is specified, a new voice is generated based on this description." + }, + "chunkPlan": { + "description": "This is the plan for chunking the model output before it is sent to the voice provider.", + "allOf": [ + { + "$ref": "#/components/schemas/ChunkPlan" + } + ] + } + }, + "required": [ + "provider", + "voiceId" + ] + }, "FallbackElevenLabsVoice": { "type": "object", "properties": { @@ -9986,6 +10171,13 @@ "description": "Defines the use speaker boost for voice settings.", "example": false }, + "speed": { + "type": "number", + "description": "Defines the speed for voice settings.", + "minimum": 0.7, + "maximum": 1.2, + "example": 0.9 + }, "optimizeStreamingLatency": { "type": "number", "description": "Defines the optimize streaming latency for voice settings. Defaults to 3.", @@ -10621,6 +10813,37 @@ "voiceId" ] }, + "FallbackVapiVoice": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "This is the voice provider that will be used.", + "enum": [ + "vapi" + ] + }, + "voiceId": { + "type": "string", + "description": "The voices provided by Vapi", + "enum": [ + "Jordan" + ] + }, + "chunkPlan": { + "description": "This is the plan for chunking the model output before it is sent to the voice provider.", + "allOf": [ + { + "$ref": "#/components/schemas/ChunkPlan" + } + ] + } + }, + "required": [ + "provider", + "voiceId" + ] + }, "TransportConfigurationTwilio": { "type": "object", "properties": { @@ -10856,7 +11079,6 @@ "models": { "type": "array", "enum": [ - "gpt-4o-2024-08-06-ptu", "gpt-4o-2024-08-06", "gpt-4o-mini-2024-07-18", "gpt-4o-2024-05-13", @@ -10874,7 +11096,6 @@ "items": { "type": "string", "enum": [ - "gpt-4o-2024-08-06-ptu", "gpt-4o-2024-08-06", "gpt-4o-mini-2024-07-18", "gpt-4o-2024-05-13", @@ -11171,6 +11392,11 @@ "clientSecret": { "type": "string", "description": "This is the OAuth2 client secret." + }, + "scope": { + "type": "string", + "description": "This is the scope of the OAuth2 token.", + "maxLength": 1000 } }, "required": [ @@ -11816,6 +12042,84 @@ "s3PathPrefix" ] }, + "SupabaseBucketPlan": { + "type": "object", + "properties": { + "region": { + "type": "string", + "description": "This is the S3 Region. It should look like us-east-1\nIt should be one of the supabase regions defined in the SUPABASE_REGION enum\nCheck https://supabase.com/docs/guides/platform/regions for up to date regions", + "enum": [ + "us-west-1", + "us-east-1", + "us-east-2", + "ca-central-1", + "eu-west-1", + "eu-west-2", + "eu-west-3", + "eu-central-1", + "eu-central-2", + "eu-north-1", + "ap-south-1", + "ap-southeast-1", + "ap-northeast-1", + "ap-northeast-2", + "ap-southeast-2", + "sa-east-1" + ] + }, + "url": { + "type": "string", + "description": "This is the S3 compatible URL for Supabase S3\nThis should look like https://.supabase.co/storage/v1/s3" + }, + "accessKeyId": { + "type": "string", + "description": "This is the Supabase S3 Access Key ID.\nThe user creates this in the Supabase project Storage settings" + }, + "secretAccessKey": { + "type": "string", + "description": "This is the Supabase S3 Secret Access Key.\nThe user creates this in the Supabase project Storage settings along with the access key id" + }, + "name": { + "type": "string", + "description": "This is the Supabase S3 Bucket Name.\nThe user must create this in Supabase under Storage > Buckets\nA bucket that does not exist will not be checked now, but file uploads will fail" + }, + "path": { + "type": "string", + "description": "This is the Supabase S3 Bucket Folder Path.\nThe user can create this in Supabase under Storage > Buckets\nA path that does not exist will not be checked now, but file uploads will fail\nA Path is like a folder in the bucket\nEg. If the bucket is called \"my-bucket\" and the path is \"my-folder\", the full path is \"my-bucket/my-folder\"" + } + }, + "required": [ + "region", + "url", + "accessKeyId", + "secretAccessKey", + "name" + ] + }, + "CreateSupabaseCredentialDTO": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": [ + "supabase" + ], + "description": "This is for supabase storage." + }, + "bucketPlan": { + "$ref": "#/components/schemas/SupabaseBucketPlan" + }, + "name": { + "type": "string", + "description": "This is the name of credential. This is just for your reference.", + "minLength": 1, + "maxLength": 40 + } + }, + "required": [ + "provider" + ] + }, "CreateSmallestAICredentialDTO": { "type": "object", "properties": { @@ -12703,6 +13007,30 @@ "do" ] }, + "KeypadInputPlan": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "This keeps track of whether the user has enabled keypad input.\nBy default, it is off.\n\n@default false" + }, + "timeoutSeconds": { + "type": "number", + "description": "This is the time in seconds to wait before processing the input.\nIf the input is not received within this time, the input will be ignored.\nIf set to \"off\", the input will be processed when the user enters a delimiter or immediately if no delimiter is used.\n\n@default 2", + "minimum": 0, + "maximum": 10 + }, + "delimiters": { + "type": "string", + "description": "This is the delimiter(s) that will be used to process the input.\nCan be '#', '*', or an empty array.", + "enum": [ + "#", + "*", + "" + ] + } + } + }, "CreateAssistantDTO": { "type": "object", "properties": { @@ -13136,6 +13464,10 @@ "$ref": "#/components/schemas/CreateS3CredentialDTO", "title": "S3Credential" }, + { + "$ref": "#/components/schemas/CreateSupabaseCredentialDTO", + "title": "SupabaseCredential" + }, { "$ref": "#/components/schemas/CreateSmallestAICredentialDTO", "title": "SmallestAICredential" @@ -13275,6 +13607,9 @@ "items": { "$ref": "#/components/schemas/AssistantHooks" } + }, + "keypadInputPlan": { + "$ref": "#/components/schemas/KeypadInputPlan" } } }, @@ -13711,6 +14046,10 @@ "$ref": "#/components/schemas/CreateS3CredentialDTO", "title": "S3Credential" }, + { + "$ref": "#/components/schemas/CreateSupabaseCredentialDTO", + "title": "SupabaseCredential" + }, { "$ref": "#/components/schemas/CreateSmallestAICredentialDTO", "title": "SmallestAICredential" @@ -13854,6 +14193,9 @@ "items": { "$ref": "#/components/schemas/AssistantHooks" } + }, + "keypadInputPlan": { + "$ref": "#/components/schemas/KeypadInputPlan" } } }, @@ -14413,6 +14755,7 @@ "pipeline-error-neets-voice-failed", "pipeline-error-smallest-ai-voice-failed", "pipeline-error-neuphonic-voice-failed", + "pipeline-error-hume-voice-failed", "pipeline-error-deepgram-transcriber-failed", "pipeline-error-gladia-transcriber-failed", "pipeline-error-speechmatics-transcriber-failed", @@ -14581,6 +14924,7 @@ "pipeline-error-playht-504-gateway-error", "pipeline-error-tavus-video-failed", "pipeline-error-custom-transcriber-failed", + "pipeline-error-11labs-transcriber-failed", "pipeline-error-deepgram-returning-403-model-access-denied", "pipeline-error-deepgram-returning-401-invalid-credentials", "pipeline-error-deepgram-returning-404-not-found", @@ -15345,6 +15689,10 @@ "$ref": "#/components/schemas/CreateS3CredentialDTO", "title": "S3Credential" }, + { + "$ref": "#/components/schemas/CreateSupabaseCredentialDTO", + "title": "SupabaseCredential" + }, { "$ref": "#/components/schemas/CreateSmallestAICredentialDTO", "title": "SmallestAICredential" @@ -15485,6 +15833,9 @@ "$ref": "#/components/schemas/AssistantHooks" } }, + "keypadInputPlan": { + "$ref": "#/components/schemas/KeypadInputPlan" + }, "id": { "type": "string", "description": "This is the unique identifier for the assistant." @@ -15944,6 +16295,10 @@ "$ref": "#/components/schemas/CreateS3CredentialDTO", "title": "S3Credential" }, + { + "$ref": "#/components/schemas/CreateSupabaseCredentialDTO", + "title": "SupabaseCredential" + }, { "$ref": "#/components/schemas/CreateSmallestAICredentialDTO", "title": "SmallestAICredential" @@ -16083,6 +16438,9 @@ "items": { "$ref": "#/components/schemas/AssistantHooks" } + }, + "keypadInputPlan": { + "$ref": "#/components/schemas/KeypadInputPlan" } } }, @@ -17172,10 +17530,6 @@ "createPlan": { "description": "This is the plan if you want us to create/import a new vector store using Trieve.", "oneOf": [ - { - "$ref": "#/components/schemas/TrieveKnowledgeBaseCreate", - "title": "Create" - }, { "$ref": "#/components/schemas/TrieveKnowledgeBaseImport", "title": "Import" @@ -17256,10 +17610,6 @@ "createPlan": { "description": "This is the plan if you want us to create/import a new vector store using Trieve.", "oneOf": [ - { - "$ref": "#/components/schemas/TrieveKnowledgeBaseCreate", - "title": "Create" - }, { "$ref": "#/components/schemas/TrieveKnowledgeBaseImport", "title": "Import" @@ -17289,10 +17639,6 @@ "createPlan": { "description": "This is the plan if you want us to create/import a new vector store using Trieve.", "oneOf": [ - { - "$ref": "#/components/schemas/TrieveKnowledgeBaseCreate", - "title": "Create" - }, { "$ref": "#/components/schemas/TrieveKnowledgeBaseImport", "title": "Import" @@ -19135,42 +19481,185 @@ "name" ] }, - "CreateOutputToolDTO": { + "KnowledgeBase": { "type": "object", "properties": { - "async": { - "type": "boolean", - "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).", - "example": false - }, - "messages": { - "type": "array", - "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ToolMessageStart", - "title": "ToolMessageStart" - }, - { - "$ref": "#/components/schemas/ToolMessageComplete", - "title": "ToolMessageComplete" - }, - { - "$ref": "#/components/schemas/ToolMessageFailed", - "title": "ToolMessageFailed" - }, - { - "$ref": "#/components/schemas/ToolMessageDelayed", - "title": "ToolMessageDelayed" - } - ] - } + "name": { + "type": "string", + "description": "The name of the knowledge base", + "example": "My Knowledge Base" }, - "type": { + "provider": { "type": "string", + "description": "The provider of the knowledge base", "enum": [ - "output" + "google" + ], + "example": "google" + }, + "model": { + "type": "object", + "description": "The model to use for the knowledge base", + "enum": [ + "gemini-2.0-flash-thinking-exp", + "gemini-2.0-pro-exp-02-05", + "gemini-2.0-flash", + "gemini-2.0-flash-lite-preview-02-05", + "gemini-2.0-flash-exp", + "gemini-2.0-flash-realtime-exp", + "gemini-1.5-flash", + "gemini-1.5-flash-002", + "gemini-1.5-pro", + "gemini-1.5-pro-002", + "gemini-1.0-pro" + ], + "example": "gemini-1.5-flash" + }, + "description": { + "type": "string", + "description": "A description of the knowledge base" + }, + "fileIds": { + "description": "The file IDs associated with this knowledge base", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "provider", + "model", + "description", + "fileIds" + ] + }, + "QueryTool": { + "type": "object", + "properties": { + "async": { + "type": "boolean", + "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).", + "example": false + }, + "messages": { + "type": "array", + "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ToolMessageStart", + "title": "ToolMessageStart" + }, + { + "$ref": "#/components/schemas/ToolMessageComplete", + "title": "ToolMessageComplete" + }, + { + "$ref": "#/components/schemas/ToolMessageFailed", + "title": "ToolMessageFailed" + }, + { + "$ref": "#/components/schemas/ToolMessageDelayed", + "title": "ToolMessageDelayed" + } + ] + } + }, + "type": { + "type": "string", + "enum": [ + "query" + ], + "description": "The type of tool. \"query\" for Query tool." + }, + "knowledgeBases": { + "description": "The knowledge bases to query", + "type": "array", + "items": { + "$ref": "#/components/schemas/KnowledgeBase" + } + }, + "id": { + "type": "string", + "description": "This is the unique identifier for the tool." + }, + "orgId": { + "type": "string", + "description": "This is the unique identifier for the organization that this tool belongs to." + }, + "createdAt": { + "format": "date-time", + "type": "string", + "description": "This is the ISO 8601 date-time string of when the tool was created." + }, + "updatedAt": { + "format": "date-time", + "type": "string", + "description": "This is the ISO 8601 date-time string of when the tool was last updated." + }, + "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": [ + { + "$ref": "#/components/schemas/OpenAIFunction" + } + ] + }, + "server": { + "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.", + "allOf": [ + { + "$ref": "#/components/schemas/Server" + } + ] + } + }, + "required": [ + "type", + "id", + "orgId", + "createdAt", + "updatedAt" + ] + }, + "CreateOutputToolDTO": { + "type": "object", + "properties": { + "async": { + "type": "boolean", + "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).", + "example": false + }, + "messages": { + "type": "array", + "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ToolMessageStart", + "title": "ToolMessageStart" + }, + { + "$ref": "#/components/schemas/ToolMessageComplete", + "title": "ToolMessageComplete" + }, + { + "$ref": "#/components/schemas/ToolMessageFailed", + "title": "ToolMessageFailed" + }, + { + "$ref": "#/components/schemas/ToolMessageDelayed", + "title": "ToolMessageDelayed" + } + ] + } + }, + "type": { + "type": "string", + "enum": [ + "output" ], "description": "The type of tool. \"output\" for Output tool." }, @@ -19440,6 +19929,73 @@ "name" ] }, + "CreateQueryToolDTO": { + "type": "object", + "properties": { + "async": { + "type": "boolean", + "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).", + "example": false + }, + "messages": { + "type": "array", + "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ToolMessageStart", + "title": "ToolMessageStart" + }, + { + "$ref": "#/components/schemas/ToolMessageComplete", + "title": "ToolMessageComplete" + }, + { + "$ref": "#/components/schemas/ToolMessageFailed", + "title": "ToolMessageFailed" + }, + { + "$ref": "#/components/schemas/ToolMessageDelayed", + "title": "ToolMessageDelayed" + } + ] + } + }, + "type": { + "type": "string", + "enum": [ + "query" + ], + "description": "The type of tool. \"query\" for Query tool." + }, + "knowledgeBases": { + "description": "The knowledge bases to query", + "type": "array", + "items": { + "$ref": "#/components/schemas/KnowledgeBase" + } + }, + "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": [ + { + "$ref": "#/components/schemas/OpenAIFunction" + } + ] + }, + "server": { + "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.", + "allOf": [ + { + "$ref": "#/components/schemas/Server" + } + ] + } + }, + "required": [ + "type" + ] + }, "UpdateDtmfToolDTO": { "type": "object", "properties": { @@ -20027,6 +20583,63 @@ } } }, + "UpdateQueryToolDTO": { + "type": "object", + "properties": { + "async": { + "type": "boolean", + "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).", + "example": false + }, + "messages": { + "type": "array", + "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ToolMessageStart", + "title": "ToolMessageStart" + }, + { + "$ref": "#/components/schemas/ToolMessageComplete", + "title": "ToolMessageComplete" + }, + { + "$ref": "#/components/schemas/ToolMessageFailed", + "title": "ToolMessageFailed" + }, + { + "$ref": "#/components/schemas/ToolMessageDelayed", + "title": "ToolMessageDelayed" + } + ] + } + }, + "knowledgeBases": { + "description": "The knowledge bases to query", + "type": "array", + "items": { + "$ref": "#/components/schemas/KnowledgeBase" + } + }, + "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": [ + { + "$ref": "#/components/schemas/OpenAIFunction" + } + ] + }, + "server": { + "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.", + "allOf": [ + { + "$ref": "#/components/schemas/Server" + } + ] + } + } + }, "CreateFileDTO": { "type": "object", "properties": { @@ -20253,7 +20866,8 @@ "costBreakdown.llmPromptTokens", "costBreakdown.llmCompletionTokens", "duration", - "concurrency" + "concurrency", + "minutesUsed" ] }, "alias": { @@ -21260,7 +21874,6 @@ "models": { "type": "array", "enum": [ - "gpt-4o-2024-08-06-ptu", "gpt-4o-2024-08-06", "gpt-4o-mini-2024-07-18", "gpt-4o-2024-05-13", @@ -21278,7 +21891,6 @@ "items": { "type": "string", "enum": [ - "gpt-4o-2024-08-06-ptu", "gpt-4o-2024-08-06", "gpt-4o-mini-2024-07-18", "gpt-4o-2024-05-13", @@ -22663,6 +23275,52 @@ "updatedAt" ] }, + "SupabaseCredential": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": [ + "supabase" + ], + "description": "This is for supabase storage." + }, + "id": { + "type": "string", + "description": "This is the unique identifier for the credential." + }, + "orgId": { + "type": "string", + "description": "This is the unique identifier for the org that this credential belongs to." + }, + "createdAt": { + "format": "date-time", + "type": "string", + "description": "This is the ISO 8601 date-time string of when the credential was created." + }, + "updatedAt": { + "format": "date-time", + "type": "string", + "description": "This is the ISO 8601 date-time string of when the assistant was last updated." + }, + "name": { + "type": "string", + "description": "This is the name of credential. This is just for your reference.", + "minLength": 1, + "maxLength": 40 + }, + "bucketPlan": { + "$ref": "#/components/schemas/SupabaseBucketPlan" + } + }, + "required": [ + "provider", + "id", + "orgId", + "createdAt", + "updatedAt" + ] + }, "SmallestAICredential": { "type": "object", "properties": { @@ -23240,7 +23898,6 @@ "models": { "type": "array", "enum": [ - "gpt-4o-2024-08-06-ptu", "gpt-4o-2024-08-06", "gpt-4o-mini-2024-07-18", "gpt-4o-2024-05-13", @@ -23258,7 +23915,6 @@ "items": { "type": "string", "enum": [ - "gpt-4o-2024-08-06-ptu", "gpt-4o-2024-08-06", "gpt-4o-mini-2024-07-18", "gpt-4o-2024-05-13", @@ -23780,6 +24436,20 @@ } } }, + "UpdateSupabaseCredentialDTO": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "This is the name of credential. This is just for your reference.", + "minLength": 1, + "maxLength": 40 + }, + "bucketPlan": { + "$ref": "#/components/schemas/SupabaseBucketPlan" + } + } + }, "UpdateSmallestAICredentialDTO": { "type": "object", "properties": { @@ -24059,12 +24729,12 @@ "minutesIncluded": { "type": "number", "description": "The number of minutes included in the subscription.", - "minimum": 1 + "minimum": 0 }, "minutesUsed": { "type": "number", "description": "The number of minutes used in the subscription.", - "minimum": 1 + "minimum": 0 }, "minutesUsedNextResetAt": { "format": "date-time", @@ -24422,11 +25092,13 @@ "type": "object", "description": "This is the voice provider that will be used.", "enum": [ + "vapi", "11labs", "azure", "cartesia", "custom-voice", "deepgram", + "hume", "lmnt", "neets", "neuphonic", @@ -25114,11 +25786,13 @@ "type": "array", "description": "List of providers you want to sync.", "enum": [ + "vapi", "11labs", "azure", "cartesia", "custom-voice", "deepgram", + "hume", "lmnt", "neets", "neuphonic", @@ -25131,11 +25805,13 @@ "items": { "type": "string", "enum": [ + "vapi", "11labs", "azure", "cartesia", "custom-voice", "deepgram", + "hume", "lmnt", "neets", "neuphonic", @@ -25557,7 +26233,8 @@ "enum": [ "queued", "in-progress", - "completed" + "completed", + "failed" ] }, "id": { @@ -26393,6 +27070,7 @@ "pipeline-error-neets-voice-failed", "pipeline-error-smallest-ai-voice-failed", "pipeline-error-neuphonic-voice-failed", + "pipeline-error-hume-voice-failed", "pipeline-error-deepgram-transcriber-failed", "pipeline-error-gladia-transcriber-failed", "pipeline-error-speechmatics-transcriber-failed", @@ -26561,6 +27239,7 @@ "pipeline-error-playht-504-gateway-error", "pipeline-error-tavus-video-failed", "pipeline-error-custom-transcriber-failed", + "pipeline-error-11labs-transcriber-failed", "pipeline-error-deepgram-returning-403-model-access-denied", "pipeline-error-deepgram-returning-401-invalid-credentials", "pipeline-error-deepgram-returning-404-not-found", @@ -27197,6 +27876,7 @@ "pipeline-error-neets-voice-failed", "pipeline-error-smallest-ai-voice-failed", "pipeline-error-neuphonic-voice-failed", + "pipeline-error-hume-voice-failed", "pipeline-error-deepgram-transcriber-failed", "pipeline-error-gladia-transcriber-failed", "pipeline-error-speechmatics-transcriber-failed", @@ -27365,6 +28045,7 @@ "pipeline-error-playht-504-gateway-error", "pipeline-error-tavus-video-failed", "pipeline-error-custom-transcriber-failed", + "pipeline-error-11labs-transcriber-failed", "pipeline-error-deepgram-returning-403-model-access-denied", "pipeline-error-deepgram-returning-401-invalid-credentials", "pipeline-error-deepgram-returning-404-not-found",