@polymorfa/sdk 0.1.0-dev.20260923132258 → 0.1.0-dev.20260923140837

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,315 @@
1
+ import { CursorPage } from "../pagination.js";
2
+ import { HttpTransport } from "../transport/http.js";
3
+ import type { ApiResponse, RequestOptions } from "../transport/types.js";
4
+ import type { ClientOwner } from "./developer-types.js";
5
+ export declare const VOICE_AUDIO_STATUSES: readonly ["pending_upload", "uploaded", "transcoding", "ready", "failed"];
6
+ export type KnownVoiceAudioStatus = (typeof VOICE_AUDIO_STATUSES)[number];
7
+ export type VoiceAudioStatus = KnownVoiceAudioStatus | (string & {});
8
+ export declare const VOICE_AUDIO_SOURCES: readonly ["upload", "tts"];
9
+ export type KnownVoiceAudioSource = (typeof VOICE_AUDIO_SOURCES)[number];
10
+ export type VoiceAudioSource = KnownVoiceAudioSource | (string & {});
11
+ export declare const VOICE_AUDIO_FAILURE_REASONS: readonly ["unsupported_format", "too_large", "too_long", "decode_failed", "silent", "tts_failed", "processing_failed"];
12
+ export type KnownVoiceAudioFailureReason = (typeof VOICE_AUDIO_FAILURE_REASONS)[number];
13
+ export type VoiceAudioFailureReason = KnownVoiceAudioFailureReason | (string & {});
14
+ /** Container of the original upload. */
15
+ export declare const VOICE_AUDIO_FORMATS: readonly ["mp3", "wav", "ogg", "m4a"];
16
+ export type KnownVoiceAudioFormat = (typeof VOICE_AUDIO_FORMATS)[number];
17
+ export type VoiceAudioFormat = KnownVoiceAudioFormat | (string & {});
18
+ export declare const VOICE_PROVIDERS: readonly ["elevenlabs", "openai"];
19
+ export type KnownVoiceProvider = (typeof VOICE_PROVIDERS)[number];
20
+ export type VoiceProvider = KnownVoiceProvider | (string & {});
21
+ /** Whose provider key produced a TTS asset. */
22
+ export declare const VOICE_KEY_SOURCES: readonly ["managed", "customer"];
23
+ export type KnownVoiceKeySource = (typeof VOICE_KEY_SOURCES)[number];
24
+ export type VoiceKeySource = KnownVoiceKeySource | (string & {});
25
+ export declare const VOICE_PROVIDER_CREDENTIAL_STATUSES: readonly ["unverified", "valid", "invalid"];
26
+ export type KnownVoiceProviderCredentialStatus = (typeof VOICE_PROVIDER_CREDENTIAL_STATUSES)[number];
27
+ export type VoiceProviderCredentialStatus = KnownVoiceProviderCredentialStatus | (string & {});
28
+ export declare const VOICE_PROVIDER_CREDENTIAL_ERRORS: readonly ["unauthorized", "quota_exceeded", "forbidden_scope", "provider_unavailable"];
29
+ export type KnownVoiceProviderCredentialError = (typeof VOICE_PROVIDER_CREDENTIAL_ERRORS)[number];
30
+ export type VoiceProviderCredentialError = KnownVoiceProviderCredentialError | (string & {});
31
+ export declare const VOICE_AUDIO_UPLOAD_CONTENT_TYPES: readonly ["audio/mpeg", "audio/wav", "audio/x-wav", "audio/ogg", "audio/mp4", "audio/x-m4a"];
32
+ export type KnownVoiceAudioUploadContentType = (typeof VOICE_AUDIO_UPLOAD_CONTENT_TYPES)[number];
33
+ export type VoiceAudioUploadContentType = KnownVoiceAudioUploadContentType;
34
+ /** ElevenLabs models. `eleven_multilingual_v2` is the default. */
35
+ export declare const ELEVENLABS_TTS_MODELS: readonly ["eleven_multilingual_v2", "eleven_flash_v2_5", "eleven_turbo_v2_5"];
36
+ export type ElevenLabsTtsModel = (typeof ELEVENLABS_TTS_MODELS)[number];
37
+ /** OpenAI models. `gpt-4o-mini-tts` is the default. */
38
+ export declare const OPENAI_TTS_MODELS: readonly ["gpt-4o-mini-tts", "tts-1", "tts-1-hd"];
39
+ export type OpenAiTtsModel = (typeof OPENAI_TTS_MODELS)[number];
40
+ export declare const OPENAI_TTS_VOICES: readonly ["alloy", "ash", "ballad", "coral", "echo", "fable", "nova", "onyx", "sage", "shimmer", "verse"];
41
+ export type OpenAiTtsVoice = (typeof OPENAI_TTS_VOICES)[number];
42
+ /** Largest upload the API accepts: 16 MiB. */
43
+ export declare const VOICE_AUDIO_MAX_UPLOAD_BYTES = 16777216;
44
+ export interface VoiceAudioTts {
45
+ readonly provider: VoiceProvider;
46
+ readonly voiceId: string;
47
+ readonly model: string;
48
+ readonly text: string;
49
+ readonly characters: number;
50
+ readonly keySource: VoiceKeySource;
51
+ /** The customer credential used, or `null` for a Polymorfa-managed key. */
52
+ readonly credentialId: string | null;
53
+ }
54
+ export interface VoiceAudioAsset {
55
+ readonly id: string;
56
+ readonly projectId: string;
57
+ readonly name: string;
58
+ readonly source: VoiceAudioSource;
59
+ readonly status: VoiceAudioStatus;
60
+ readonly failureReason: VoiceAudioFailureReason | null;
61
+ readonly originalFormat: VoiceAudioFormat | null;
62
+ readonly originalContentType: string | null;
63
+ /** Size of the original bytes. */
64
+ readonly sizeBytes: number | null;
65
+ /** Length of the canonical audio, set when `ready`. */
66
+ readonly durationMs: number | null;
67
+ /** Hex SHA-256 of the canonical 16 kHz mono PCM, set when `ready`. */
68
+ readonly contentSha256: string | null;
69
+ readonly tts: VoiceAudioTts | null;
70
+ /** Days the asset is kept (1 to 3650), or `null` to keep it until deleted. */
71
+ readonly retentionDays: number | null;
72
+ readonly expiresAt: string | null;
73
+ /** Campaigns and flows that use the asset. Delete fails while it is above 0. */
74
+ readonly inUseCount: number;
75
+ /** Increases on every change. Send it as `expectedRevision` to guard updates. */
76
+ readonly revision: number;
77
+ readonly createdAt: string;
78
+ readonly updatedAt: string;
79
+ readonly readyAt: string | null;
80
+ }
81
+ /** Where to send the file. The URL is valid for 5 minutes; treat it as a secret. */
82
+ export interface VoiceAudioUpload {
83
+ readonly url: string;
84
+ readonly method: "POST";
85
+ readonly headers: Readonly<Record<string, string>>;
86
+ readonly maxBytes: number;
87
+ readonly expiresAt: string;
88
+ }
89
+ export interface VoiceAudioUploadCreated {
90
+ readonly asset: VoiceAudioAsset;
91
+ readonly upload: VoiceAudioUpload;
92
+ }
93
+ /** A short-lived link to Opus-in-Ogg audio (16 kHz mono), valid for 5 minutes. */
94
+ export interface VoiceAudioPreview {
95
+ readonly url: string;
96
+ readonly contentType: "audio/ogg";
97
+ readonly expiresAt: string;
98
+ }
99
+ export interface VoiceProviderCredential {
100
+ readonly id: string;
101
+ /** The project, or `null` for a credential every project of the team can use. */
102
+ readonly projectId: string | null;
103
+ readonly provider: VoiceProvider;
104
+ readonly label: string;
105
+ /** First 8 lowercase hex characters of the key's SHA-256. The key is never returned. */
106
+ readonly keyFingerprint: string;
107
+ readonly status: VoiceProviderCredentialStatus;
108
+ readonly verifiedAt: string | null;
109
+ readonly lastError: VoiceProviderCredentialError | null;
110
+ readonly revision: number;
111
+ readonly createdAt: string;
112
+ readonly updatedAt: string;
113
+ }
114
+ export interface VoiceResourceDeleted {
115
+ readonly id: string;
116
+ readonly deleted: true;
117
+ }
118
+ export interface ListVoiceAudioParams {
119
+ readonly status?: KnownVoiceAudioStatus;
120
+ readonly cursor?: string;
121
+ /** 1 to 100. The API default is 50. */
122
+ readonly limit?: number;
123
+ }
124
+ export interface CreateVoiceAudioUploadInput {
125
+ /** 1 to 100 characters. */
126
+ readonly name: string;
127
+ readonly contentType: VoiceAudioUploadContentType;
128
+ /** 1 to 16777216. */
129
+ readonly sizeBytes: number;
130
+ readonly retentionDays?: number;
131
+ }
132
+ export type VoiceAudioBody = Blob | ArrayBuffer | ArrayBufferView | ReadableStream<Uint8Array>;
133
+ export interface UploadVoiceAudioInput {
134
+ readonly name: string;
135
+ /** The file: bytes, a `Buffer`, a `Blob`/`File`, or a stream. */
136
+ readonly body: VoiceAudioBody;
137
+ /** Required unless `body` is a `Blob` with a type. */
138
+ readonly contentType?: VoiceAudioUploadContentType;
139
+ /**
140
+ * Required when `body` is a stream. For bytes and Blobs the size is the
141
+ * body's byte length; a different value is refused before any request.
142
+ */
143
+ readonly sizeBytes?: number;
144
+ readonly retentionDays?: number;
145
+ }
146
+ interface SynthesizeVoiceAudioBase {
147
+ readonly name: string;
148
+ /** 1 to 5000 characters (1 to 4096 for OpenAI). */
149
+ readonly text: string;
150
+ /**
151
+ * Your provider credential for the same provider. Without it, Polymorfa's
152
+ * managed key is used.
153
+ */
154
+ readonly credentialId?: string;
155
+ readonly retentionDays?: number;
156
+ }
157
+ export type SynthesizeVoiceAudioInput = (SynthesizeVoiceAudioBase & {
158
+ readonly provider: "elevenlabs";
159
+ /** An ElevenLabs voice ID (`^[A-Za-z0-9]{1,64}$`). */
160
+ readonly voiceId: string;
161
+ readonly model?: ElevenLabsTtsModel;
162
+ }) | (SynthesizeVoiceAudioBase & {
163
+ readonly provider: "openai";
164
+ readonly voiceId: OpenAiTtsVoice;
165
+ readonly model?: OpenAiTtsModel;
166
+ });
167
+ export interface UpdateVoiceAudioInput {
168
+ /** Refuse the change with `voice_asset_revision_conflict` if the asset has another revision. */
169
+ readonly expectedRevision?: number;
170
+ readonly name?: string;
171
+ /** Send `null` to keep the asset until it is deleted. */
172
+ readonly retentionDays?: number | null;
173
+ }
174
+ export interface WaitForVoiceAudioOptions {
175
+ /** Give up after this long. Default 120000. */
176
+ readonly timeoutMs?: number;
177
+ /** Delay between reads. Default 2000. */
178
+ readonly intervalMs?: number;
179
+ readonly signal?: AbortSignal;
180
+ }
181
+ export interface ListVoiceProviderCredentialsParams {
182
+ /** Adds that project's credentials to the team-wide ones. */
183
+ readonly projectId?: string;
184
+ }
185
+ interface CreateVoiceProviderCredentialBase {
186
+ readonly provider: KnownVoiceProvider;
187
+ /** 1 to 100 characters. */
188
+ readonly label: string;
189
+ /** Write-only, 1 to 512 characters. Never returned, logged or echoed in errors. */
190
+ readonly apiKey: string;
191
+ }
192
+ export type CreateVoiceProviderCredentialInput<O extends ClientOwner = "organization"> = O extends "project" ? CreateVoiceProviderCredentialBase : CreateVoiceProviderCredentialBase & {
193
+ /** A project, or `null`/omitted for a credential every project can use. */
194
+ readonly projectId?: string | null;
195
+ };
196
+ type ProjectArgument<O extends ClientOwner> = O extends "project" ? [] : [projectId: string];
197
+ type CredentialListArguments<O extends ClientOwner> = O extends "project" ? [options?: RequestOptions] : [params?: ListVoiceProviderCredentialsParams, options?: RequestOptions];
198
+ /**
199
+ * Follows the merged Voice Automation API contract. Writes require the
200
+ * `calls.voice-automation` beta; other teams get `voice_not_enabled`.
201
+ * Reads, previews and deletes keep working after withdrawal. An installed
202
+ * resource does not grant access or establish an enabled audience.
203
+ */
204
+ export declare class VoiceResource<O extends ClientOwner> {
205
+ readonly audio: VoiceAudioResource<O>;
206
+ readonly providerCredentials: VoiceProviderCredentialsResource<O>;
207
+ constructor(transport: HttpTransport, projectId: string | null, confineById: boolean);
208
+ }
209
+ /**
210
+ * The project's audio library: uploaded recordings and text-to-speech
211
+ * renders, transcoded to 16 kHz mono for calls. Team clients name the project
212
+ * on `list`, `createUpload`, `upload` and `synthesize`; project clients use
213
+ * their own project.
214
+ */
215
+ export declare class VoiceAudioResource<O extends ClientOwner> {
216
+ #private;
217
+ private readonly transport;
218
+ private readonly projectId;
219
+ /**
220
+ * Team keys reach every asset of the team by ID, so a project client
221
+ * built from one checks an asset's project before acting on it.
222
+ */
223
+ private readonly confineById;
224
+ constructor(transport: HttpTransport, projectId: string | null,
225
+ /**
226
+ * Team keys reach every asset of the team by ID, so a project client
227
+ * built from one checks an asset's project before acting on it.
228
+ */
229
+ confineById: boolean);
230
+ list(...args: [
231
+ ...ProjectArgument<O>,
232
+ params?: ListVoiceAudioParams,
233
+ options?: RequestOptions
234
+ ]): Promise<CursorPage<VoiceAudioAsset>>;
235
+ /**
236
+ * Creates an asset in `pending_upload` and returns where to send the file.
237
+ * Send it with `POST upload.url`, only the `upload.headers`, and no
238
+ * `Authorization` header, then call `complete`. `upload` does all three.
239
+ */
240
+ createUpload(...args: [
241
+ ...ProjectArgument<O>,
242
+ input: CreateVoiceAudioUploadInput,
243
+ options?: RequestOptions
244
+ ]): Promise<ApiResponse<VoiceAudioUploadCreated>>;
245
+ /**
246
+ * Uploads a file into the library: creates the asset, sends the bytes to
247
+ * the upload URL without your credential, and completes it. Resolves with
248
+ * the asset in `transcoding`; wait for `voice.asset_ready` or use
249
+ * `waitUntilReady`. If sending fails, the asset stays in `pending_upload`.
250
+ * `options` apply to the API requests, not to the upload URL, except
251
+ * `signal` and `timeoutMs`.
252
+ */
253
+ upload(...args: [
254
+ ...ProjectArgument<O>,
255
+ input: UploadVoiceAudioInput,
256
+ options?: RequestOptions
257
+ ]): Promise<ApiResponse<VoiceAudioAsset>>;
258
+ /** Starts transcoding after the upload. Fails with `state_conflict` if the file was not received. */
259
+ complete(assetId: string, options?: RequestOptions): Promise<ApiResponse<VoiceAudioAsset>>;
260
+ /** Renders text to speech into a new asset, returned in `transcoding`. */
261
+ synthesize(...args: [
262
+ ...ProjectArgument<O>,
263
+ input: SynthesizeVoiceAudioInput,
264
+ options?: RequestOptions
265
+ ]): Promise<ApiResponse<VoiceAudioAsset>>;
266
+ retrieve(assetId: string, options?: RequestOptions): Promise<ApiResponse<VoiceAudioAsset>>;
267
+ update(assetId: string, input: UpdateVoiceAudioInput, options?: RequestOptions): Promise<ApiResponse<VoiceAudioAsset>>;
268
+ /** Fails with `voice_asset_in_use` while a campaign or flow uses the asset. */
269
+ delete(assetId: string, options?: RequestOptions): Promise<ApiResponse<VoiceResourceDeleted>>;
270
+ /** A 5-minute link to the transcoded audio. Fails with `asset_not_ready` before `ready`. */
271
+ previewUrl(assetId: string, options?: RequestOptions): Promise<ApiResponse<VoiceAudioPreview>>;
272
+ /**
273
+ * Reads the asset until it is `ready` or `failed` and returns it; check
274
+ * `status` and `failureReason`. Throws `PolymorfaTimeoutError` (code
275
+ * `request_timeout`) once `timeoutMs` has elapsed: a read still in flight
276
+ * at the deadline is cancelled, and a result that arrives after it is not
277
+ * returned. Prefer the `voice.asset_ready` and `voice.asset_failed`
278
+ * webhooks in production.
279
+ */
280
+ waitUntilReady(assetId: string, wait?: WaitForVoiceAudioOptions, options?: RequestOptions): Promise<ApiResponse<VoiceAudioAsset>>;
281
+ }
282
+ /**
283
+ * Your own ElevenLabs or OpenAI keys for text-to-speech. A credential belongs
284
+ * to one project or, when created by a team key without a project, to every
285
+ * project of the team. The key is write-only: responses carry only its
286
+ * fingerprint, and the SDK never logs it or includes it in errors.
287
+ */
288
+ export declare class VoiceProviderCredentialsResource<O extends ClientOwner> {
289
+ #private;
290
+ private readonly transport;
291
+ private readonly projectId;
292
+ /**
293
+ * A project client built from a team key checks a credential's project
294
+ * before acting on it. It can read team-wide credentials but manages only
295
+ * its own project's.
296
+ */
297
+ private readonly confineById;
298
+ constructor(transport: HttpTransport, projectId: string | null,
299
+ /**
300
+ * A project client built from a team key checks a credential's project
301
+ * before acting on it. It can read team-wide credentials but manages only
302
+ * its own project's.
303
+ */
304
+ confineById: boolean);
305
+ /** Team-wide credentials plus, when a project is named, that project's. */
306
+ list(...args: CredentialListArguments<O>): Promise<ApiResponse<readonly VoiceProviderCredential[]>>;
307
+ /** Stores and checks a provider key. Fails with `provider_credential_invalid` if the provider rejects it. */
308
+ create(input: CreateVoiceProviderCredentialInput<O>, options?: RequestOptions): Promise<ApiResponse<VoiceProviderCredential>>;
309
+ retrieve(credentialId: string, options?: RequestOptions): Promise<ApiResponse<VoiceProviderCredential>>;
310
+ /** Checks the stored key with the provider again and returns the updated status. */
311
+ verify(credentialId: string, options?: RequestOptions): Promise<ApiResponse<VoiceProviderCredential>>;
312
+ delete(credentialId: string, options?: RequestOptions): Promise<ApiResponse<VoiceResourceDeleted>>;
313
+ }
314
+ export {};
315
+ //# sourceMappingURL=voice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../src/platform/voice.ts"],"names":[],"mappings":"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"}