feat: persist split user and bot audio

This commit is contained in:
Abhishek Kumar 2026-06-16 15:19:49 +05:30
parent dd3f2e7323
commit 3d1886c450
30 changed files with 1322 additions and 253 deletions

File diff suppressed because one or more lines are too long

View file

@ -1152,9 +1152,9 @@ export const getCampaignDefaultsApiV1OrganizationsCampaignDefaultsGet = <ThrowOn
* Return a short-lived signed URL for a file stored on S3 / MinIO.
*
* Access Control:
* * Keys that embed an organization ID (``{prefix}/{org_id}/...``) are
* authorized by matching the org_id against the requesting user's
* organization.
* * Known org-scoped keys (for example ``campaigns/{org_id}/...`` and
* ``knowledge_base/{org_id}/...``) are authorized by matching the org_id
* against the requesting user's organization.
* * Legacy keys (``recordings/{run_id}.wav``, ``transcripts/{run_id}.txt``)
* are authorized via the workflow run they belong to.
* * Superusers can request any key.
@ -1474,13 +1474,15 @@ export const initiateCallTestByWorkflowUuidApiV1PublicAgentTestWorkflowWorkflowU
*
* Args:
* token: The public access token (UUID format)
* artifact_type: Type of artifact - "recording" or "transcript"
* artifact_type: Type of artifact - "recording", "transcript",
* "user_recording", or "bot_recording"
* inline: If true, sets Content-Disposition to inline for browser preview
*
* Returns:
* RedirectResponse to the signed URL (302 redirect)
*
* Raises:
* HTTPException 400: If artifact type is unsupported
* HTTPException 404: If token is invalid or artifact not found
*/
export const downloadWorkflowArtifactApiV1PublicDownloadWorkflowTokenArtifactTypeGet = <ThrowOnError extends boolean = false>(options: Options<DownloadWorkflowArtifactApiV1PublicDownloadWorkflowTokenArtifactTypeGetData, ThrowOnError>) => (options.client ?? client).get<DownloadWorkflowArtifactApiV1PublicDownloadWorkflowTokenArtifactTypeGetResponses, DownloadWorkflowArtifactApiV1PublicDownloadWorkflowTokenArtifactTypeGetErrors, ThrowOnError>({ url: '/api/v1/public/download/workflow/{token}/{artifact_type}', ...options });

View file

@ -499,6 +499,8 @@ export type ByokPipelineAiModelConfiguration = {
} & AwsBedrockLlmConfiguration) | ({
provider: 'speaches';
} & SpeachesLlmConfiguration) | ({
provider: 'huggingface';
} & HuggingFaceLlmConfiguration) | ({
provider: 'minimax';
} & MiniMaxLlmConfiguration) | ({
provider: 'sarvam';
@ -551,6 +553,8 @@ export type ByokPipelineAiModelConfiguration = {
} & SarvamSttConfiguration) | ({
provider: 'speaches';
} & SpeachesSttConfiguration) | ({
provider: 'huggingface';
} & HuggingFaceSttConfiguration) | ({
provider: 'assemblyai';
} & AssemblyAisttConfiguration) | ({
provider: 'gladia';
@ -613,6 +617,8 @@ export type ByokRealtimeAiModelConfiguration = {
} & AwsBedrockLlmConfiguration) | ({
provider: 'speaches';
} & SpeachesLlmConfiguration) | ({
provider: 'huggingface';
} & HuggingFaceLlmConfiguration) | ({
provider: 'minimax';
} & MiniMaxLlmConfiguration) | ({
provider: 'sarvam';
@ -2916,6 +2922,80 @@ export type HttpApiToolDefinition = {
config: HttpApiConfig;
};
/**
* Hugging Face
*
* Hosted Hugging Face Inference Providers API for usage-based inference.
*/
export type HuggingFaceLlmConfiguration = {
/**
* Provider
*/
provider?: 'huggingface';
/**
* Api Key
*/
api_key: string | Array<string>;
/**
* Model
*
* Hugging Face chat-completion model identifier, optionally with provider suffix.
*/
model?: string;
/**
* Base Url
*
* Hugging Face OpenAI-compatible chat-completions router base URL.
*/
base_url?: string;
/**
* Bill To
*
* Optional Hugging Face organization or user to bill using X-HF-Bill-To.
*/
bill_to?: string | null;
};
/**
* Hugging Face
*
* Hosted Hugging Face Inference Providers API for usage-based inference.
*/
export type HuggingFaceSttConfiguration = {
/**
* Provider
*/
provider?: 'huggingface';
/**
* Api Key
*/
api_key: string | Array<string>;
/**
* Model
*
* Hugging Face ASR model identifier served through Inference Providers.
*/
model?: string;
/**
* Base Url
*
* Hugging Face Inference Providers router base URL.
*/
base_url?: string;
/**
* Bill To
*
* Optional Hugging Face organization or user to bill using X-HF-Bill-To.
*/
bill_to?: string | null;
/**
* Return Timestamps
*
* Request timestamp chunks when supported by the selected provider/model.
*/
return_timestamps?: boolean;
};
/**
* ImpersonateRequest
*
@ -6360,6 +6440,14 @@ export type WorkflowRunResponseSchema = {
* Recording Url
*/
recording_url: string | null;
/**
* User Recording Url
*/
user_recording_url?: string | null;
/**
* Bot Recording Url
*/
bot_recording_url?: string | null;
/**
* Transcript Public Url
*/
@ -6368,6 +6456,14 @@ export type WorkflowRunResponseSchema = {
* Recording Public Url
*/
recording_public_url?: string | null;
/**
* User Recording Public Url
*/
user_recording_public_url?: string | null;
/**
* Bot Recording Public Url
*/
bot_recording_public_url?: string | null;
/**
* Public Access Token
*/
@ -6527,6 +6623,14 @@ export type WorkflowRunUsageResponse = {
* Transcript Url
*/
transcript_url?: string | null;
/**
* User Recording Url
*/
user_recording_url?: string | null;
/**
* Bot Recording Url
*/
bot_recording_url?: string | null;
/**
* Recording Public Url
*/
@ -6535,6 +6639,14 @@ export type WorkflowRunUsageResponse = {
* Transcript Public Url
*/
transcript_public_url?: string | null;
/**
* User Recording Public Url
*/
user_recording_public_url?: string | null;
/**
* Bot Recording Public Url
*/
bot_recording_public_url?: string | null;
/**
* Public Access Token
*/
@ -12331,7 +12443,7 @@ export type DownloadWorkflowArtifactApiV1PublicDownloadWorkflowTokenArtifactType
/**
* Artifact Type
*/
artifact_type: 'recording' | 'transcript';
artifact_type: string;
};
query?: {
/**