@nodaro/sdk 1.3.0 → 1.4.0

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.
package/dist/index.d.cts CHANGED
@@ -3432,6 +3432,39 @@ declare class VoicesResource {
3432
3432
  recast(input: VoiceChangerProInput): Promise<{
3433
3433
  jobId: string;
3434
3434
  }>;
3435
+ /**
3436
+ * Detect the speakers in a clip WITHOUT recasting yet
3437
+ * (`POST /v1/voice-changer-pro/analyze`) — the first step of the interactive
3438
+ * flow. Separates voice from music once and diarizes the vocals, returning the
3439
+ * speaker list so a user (or agent) can choose a voice per speaker before
3440
+ * committing to a paid recast. Poll `jobs.get(jobId)`: the completed job's
3441
+ * `output_data` carries the separated stem urls + the detected `speakers`
3442
+ * (each with `id`, time `segments`, `firstStartSec`, `wordCount`, `snippet`)
3443
+ * and the detected language — reshape it into a {@link VcpAnalysis} and pass it
3444
+ * as `recast({ ..., analysis })` to skip re-detection. With `suggestTitle`,
3445
+ * `output_data.suggestedTitle` also carries an LLM-proposed title.
3446
+ *
3447
+ * Cloud-only; costs credits and runs async.
3448
+ */
3449
+ analyze(input: VcpAnalyzeInput): Promise<{
3450
+ jobId: string;
3451
+ }>;
3452
+ /**
3453
+ * Render a final video from a mixed set of stems
3454
+ * (`POST /v1/voice-changer-pro/export`) — the last step of the interactive
3455
+ * flow. After `recast({ output: "stems" })` hands back the dry per-track stems
3456
+ * and the user has set levels / mutes / an effect in your editor, pass those
3457
+ * `tracks` (plus the source `videoUrl`) here to mix and remux into the finished
3458
+ * video. The video is stream-copied (never re-encoded), so the export is
3459
+ * bit-identical to your preview. At least one track must be un-muted (all-muted
3460
+ * is a 400); `voiceFx` is applied to the voice tracks at render time.
3461
+ *
3462
+ * Cloud-only; costs credits and runs async — poll `jobs.get(jobId)` for the
3463
+ * result (`output_data.videoUrl`).
3464
+ */
3465
+ exportMix(input: VcpExportInput): Promise<{
3466
+ jobId: string;
3467
+ }>;
3435
3468
  }
3436
3469
  /**
3437
3470
  * One entry in {@link VoiceChangerProInput.orderedVoices}. Either a bare voice id
@@ -3522,6 +3555,96 @@ interface VoiceChangerProInput {
3522
3555
  /** Echo decay / feedback (0–1). Higher = more repeats. Used by the `echo` / `custom` presets. */
3523
3556
  decay?: number;
3524
3557
  };
3558
+ /**
3559
+ * Output mode. `"video"` (default) mixes the recast voices with the preserved
3560
+ * background and returns a finished merged video. `"stems"` returns the dry,
3561
+ * unleveled per-track stems instead (rendering nothing) so you can drive an
3562
+ * INTERACTIVE mix — adjust levels/mutes/effect in your own UI, then render the
3563
+ * final video with {@link VoicesResource.exportMix}. This is how an app builds
3564
+ * a full editor around VCP rather than a one-shot recast.
3565
+ */
3566
+ output?: "video" | "stems";
3567
+ /**
3568
+ * A prior {@link VoicesResource.analyze} result. Pass it to SKIP re-detection:
3569
+ * the recast reuses the already-separated stems and speaker segments instead of
3570
+ * running separation + diarization again. This is the fast-path for the
3571
+ * detect → pick voices → recast interactive flow (analyze once, recast N times
3572
+ * as the user tweaks voice assignments). Omit to auto-detect from the source.
3573
+ */
3574
+ analysis?: VcpAnalysis;
3575
+ }
3576
+ /** One detected speaker in a {@link VcpAnalysis} (from `analyze`). */
3577
+ interface VcpAnalysisSpeaker {
3578
+ /** Stable speaker id (first-appearance order). */
3579
+ id: string;
3580
+ /** The speaker's spoken time ranges (seconds). */
3581
+ segments: Array<{
3582
+ start: number;
3583
+ end: number;
3584
+ }>;
3585
+ /** When the speaker first speaks (seconds). */
3586
+ firstStartSec?: number;
3587
+ /** Rough word count across the clip — a proxy for how much this speaker says. */
3588
+ wordCount?: number;
3589
+ /** The first few transcribed words, to help a user tell speakers apart. */
3590
+ snippet?: string;
3591
+ }
3592
+ /**
3593
+ * The result of {@link VoicesResource.analyze}, reshaped to pass back into
3594
+ * {@link VoiceChangerProInput.analysis}. Read a completed analyze job's
3595
+ * `output_data` into this shape (it carries the separated stem urls + the
3596
+ * detected speakers) and thread it into `recast` to skip re-detection.
3597
+ */
3598
+ interface VcpAnalysis {
3599
+ /** URL of the isolated vocal stem. */
3600
+ vocalsUrl: string;
3601
+ /** URL of the separated music/SFX stem (absent when the source had none). */
3602
+ backgroundUrl?: string;
3603
+ /** The detected speakers, in first-appearance order. */
3604
+ speakers: VcpAnalysisSpeaker[];
3605
+ /** Scribe's detected language code, round-tripped so the recast auto-selects the STS model. */
3606
+ languageCode?: string;
3607
+ /** Confidence (0–1) of {@link VcpAnalysis.languageCode}. */
3608
+ languageProbability?: number;
3609
+ }
3610
+ /** Input for {@link VoicesResource.analyze}. */
3611
+ interface VcpAnalyzeInput {
3612
+ /** URL of an audio file to analyze. Exactly one of `audioUrl` / `videoUrl` is required. */
3613
+ audioUrl?: string;
3614
+ /** URL of a video file to analyze (its audio track is used). Exactly one of `audioUrl` / `videoUrl` is required. */
3615
+ videoUrl?: string;
3616
+ /** Quality of the voice/music separation run before diarization: `"fast"` (default) or `"best"`. */
3617
+ separationQuality?: "fast" | "best";
3618
+ /** Also suggest a conversion title from the transcript (returned on the job's `output_data.suggestedTitle`). */
3619
+ suggestTitle?: boolean;
3620
+ }
3621
+ /** One track in a {@link VcpExportInput} mix. */
3622
+ interface VcpExportTrack {
3623
+ /** URL of the stem for this lane (a recast voice stem or the background stem). */
3624
+ url: string;
3625
+ /** Fader position as a percentage: 0 = silent, 100 = unity, 200 = +6dB. */
3626
+ gain: number;
3627
+ /** Whether this lane is muted in the mix. */
3628
+ muted: boolean;
3629
+ /**
3630
+ * Which bucket the track is in, and so whether `voiceFx` lands on it. Defaults
3631
+ * to `"voice"`. Set `"background"` for the music/SFX lane (the effect never
3632
+ * touches it).
3633
+ */
3634
+ kind?: "voice" | "background";
3635
+ }
3636
+ /** Input for {@link VoicesResource.exportMix}. */
3637
+ interface VcpExportInput {
3638
+ /** The source video to remux the mixed audio onto (stream-copied — never re-encoded). */
3639
+ videoUrl: string;
3640
+ /** The mix: one entry per lane. At least one must be un-muted (all-muted is a 400). Max 16 tracks. */
3641
+ tracks: VcpExportTrack[];
3642
+ /**
3643
+ * A reverb/echo applied to the VOICE tracks only (not `"background"` lanes)
3644
+ * at render time — so iterating the effect in your editor is free until you
3645
+ * export. Same shape as {@link VoiceChangerProInput.voiceFx}.
3646
+ */
3647
+ voiceFx?: VoiceChangerProInput["voiceFx"];
3525
3648
  }
3526
3649
 
3527
3650
  /**
@@ -4053,4 +4176,4 @@ interface ApiErrorBody {
4053
4176
  }
4054
4177
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
4055
4178
 
4056
- export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DuplicateCharacterInput, type EnhanceInput, type ExchangeCodeInput, type ExecutionStatus, type ExecutionTriggerType, ExecutionsResource, type FactoryPresetsResult, ForbiddenError, type GenerateAssetInput, type GenerateCharacterInput, type GenerateCharacterResult, type GenerateCreatureAssetInput, type GenerateCreatureAssetResult, type GenerateCreatureInput, type GenerateCreatureMotionInput, type GenerateCreatureMotionResult, type GenerateCreatureResult, type GenerateImageParams, type GenerateInput, type GenerateLocationAssetInput, type GenerateLocationInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type ModelCostsResult, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateWorkflowInput, type UploadResult, UploadsResource, type UpsertCharacterInput, type UpsertCharacterResult, type UpsertCreatureInput, type UpsertCreatureResult, type UpsertObjectInput, type UpsertObjectResult, type UserBalance, type UserIdentity, type VoiceChangerProInput, type VoiceChangerProVoice, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
4179
+ export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DuplicateCharacterInput, type EnhanceInput, type ExchangeCodeInput, type ExecutionStatus, type ExecutionTriggerType, ExecutionsResource, type FactoryPresetsResult, ForbiddenError, type GenerateAssetInput, type GenerateCharacterInput, type GenerateCharacterResult, type GenerateCreatureAssetInput, type GenerateCreatureAssetResult, type GenerateCreatureInput, type GenerateCreatureMotionInput, type GenerateCreatureMotionResult, type GenerateCreatureResult, type GenerateImageParams, type GenerateInput, type GenerateLocationAssetInput, type GenerateLocationInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type ModelCostsResult, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateWorkflowInput, type UploadResult, UploadsResource, type UpsertCharacterInput, type UpsertCharacterResult, type UpsertCreatureInput, type UpsertCreatureResult, type UpsertObjectInput, type UpsertObjectResult, type UserBalance, type UserIdentity, type VcpAnalysis, type VcpAnalysisSpeaker, type VcpAnalyzeInput, type VcpExportInput, type VcpExportTrack, type VoiceChangerProInput, type VoiceChangerProVoice, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
package/dist/index.d.ts CHANGED
@@ -3432,6 +3432,39 @@ declare class VoicesResource {
3432
3432
  recast(input: VoiceChangerProInput): Promise<{
3433
3433
  jobId: string;
3434
3434
  }>;
3435
+ /**
3436
+ * Detect the speakers in a clip WITHOUT recasting yet
3437
+ * (`POST /v1/voice-changer-pro/analyze`) — the first step of the interactive
3438
+ * flow. Separates voice from music once and diarizes the vocals, returning the
3439
+ * speaker list so a user (or agent) can choose a voice per speaker before
3440
+ * committing to a paid recast. Poll `jobs.get(jobId)`: the completed job's
3441
+ * `output_data` carries the separated stem urls + the detected `speakers`
3442
+ * (each with `id`, time `segments`, `firstStartSec`, `wordCount`, `snippet`)
3443
+ * and the detected language — reshape it into a {@link VcpAnalysis} and pass it
3444
+ * as `recast({ ..., analysis })` to skip re-detection. With `suggestTitle`,
3445
+ * `output_data.suggestedTitle` also carries an LLM-proposed title.
3446
+ *
3447
+ * Cloud-only; costs credits and runs async.
3448
+ */
3449
+ analyze(input: VcpAnalyzeInput): Promise<{
3450
+ jobId: string;
3451
+ }>;
3452
+ /**
3453
+ * Render a final video from a mixed set of stems
3454
+ * (`POST /v1/voice-changer-pro/export`) — the last step of the interactive
3455
+ * flow. After `recast({ output: "stems" })` hands back the dry per-track stems
3456
+ * and the user has set levels / mutes / an effect in your editor, pass those
3457
+ * `tracks` (plus the source `videoUrl`) here to mix and remux into the finished
3458
+ * video. The video is stream-copied (never re-encoded), so the export is
3459
+ * bit-identical to your preview. At least one track must be un-muted (all-muted
3460
+ * is a 400); `voiceFx` is applied to the voice tracks at render time.
3461
+ *
3462
+ * Cloud-only; costs credits and runs async — poll `jobs.get(jobId)` for the
3463
+ * result (`output_data.videoUrl`).
3464
+ */
3465
+ exportMix(input: VcpExportInput): Promise<{
3466
+ jobId: string;
3467
+ }>;
3435
3468
  }
3436
3469
  /**
3437
3470
  * One entry in {@link VoiceChangerProInput.orderedVoices}. Either a bare voice id
@@ -3522,6 +3555,96 @@ interface VoiceChangerProInput {
3522
3555
  /** Echo decay / feedback (0–1). Higher = more repeats. Used by the `echo` / `custom` presets. */
3523
3556
  decay?: number;
3524
3557
  };
3558
+ /**
3559
+ * Output mode. `"video"` (default) mixes the recast voices with the preserved
3560
+ * background and returns a finished merged video. `"stems"` returns the dry,
3561
+ * unleveled per-track stems instead (rendering nothing) so you can drive an
3562
+ * INTERACTIVE mix — adjust levels/mutes/effect in your own UI, then render the
3563
+ * final video with {@link VoicesResource.exportMix}. This is how an app builds
3564
+ * a full editor around VCP rather than a one-shot recast.
3565
+ */
3566
+ output?: "video" | "stems";
3567
+ /**
3568
+ * A prior {@link VoicesResource.analyze} result. Pass it to SKIP re-detection:
3569
+ * the recast reuses the already-separated stems and speaker segments instead of
3570
+ * running separation + diarization again. This is the fast-path for the
3571
+ * detect → pick voices → recast interactive flow (analyze once, recast N times
3572
+ * as the user tweaks voice assignments). Omit to auto-detect from the source.
3573
+ */
3574
+ analysis?: VcpAnalysis;
3575
+ }
3576
+ /** One detected speaker in a {@link VcpAnalysis} (from `analyze`). */
3577
+ interface VcpAnalysisSpeaker {
3578
+ /** Stable speaker id (first-appearance order). */
3579
+ id: string;
3580
+ /** The speaker's spoken time ranges (seconds). */
3581
+ segments: Array<{
3582
+ start: number;
3583
+ end: number;
3584
+ }>;
3585
+ /** When the speaker first speaks (seconds). */
3586
+ firstStartSec?: number;
3587
+ /** Rough word count across the clip — a proxy for how much this speaker says. */
3588
+ wordCount?: number;
3589
+ /** The first few transcribed words, to help a user tell speakers apart. */
3590
+ snippet?: string;
3591
+ }
3592
+ /**
3593
+ * The result of {@link VoicesResource.analyze}, reshaped to pass back into
3594
+ * {@link VoiceChangerProInput.analysis}. Read a completed analyze job's
3595
+ * `output_data` into this shape (it carries the separated stem urls + the
3596
+ * detected speakers) and thread it into `recast` to skip re-detection.
3597
+ */
3598
+ interface VcpAnalysis {
3599
+ /** URL of the isolated vocal stem. */
3600
+ vocalsUrl: string;
3601
+ /** URL of the separated music/SFX stem (absent when the source had none). */
3602
+ backgroundUrl?: string;
3603
+ /** The detected speakers, in first-appearance order. */
3604
+ speakers: VcpAnalysisSpeaker[];
3605
+ /** Scribe's detected language code, round-tripped so the recast auto-selects the STS model. */
3606
+ languageCode?: string;
3607
+ /** Confidence (0–1) of {@link VcpAnalysis.languageCode}. */
3608
+ languageProbability?: number;
3609
+ }
3610
+ /** Input for {@link VoicesResource.analyze}. */
3611
+ interface VcpAnalyzeInput {
3612
+ /** URL of an audio file to analyze. Exactly one of `audioUrl` / `videoUrl` is required. */
3613
+ audioUrl?: string;
3614
+ /** URL of a video file to analyze (its audio track is used). Exactly one of `audioUrl` / `videoUrl` is required. */
3615
+ videoUrl?: string;
3616
+ /** Quality of the voice/music separation run before diarization: `"fast"` (default) or `"best"`. */
3617
+ separationQuality?: "fast" | "best";
3618
+ /** Also suggest a conversion title from the transcript (returned on the job's `output_data.suggestedTitle`). */
3619
+ suggestTitle?: boolean;
3620
+ }
3621
+ /** One track in a {@link VcpExportInput} mix. */
3622
+ interface VcpExportTrack {
3623
+ /** URL of the stem for this lane (a recast voice stem or the background stem). */
3624
+ url: string;
3625
+ /** Fader position as a percentage: 0 = silent, 100 = unity, 200 = +6dB. */
3626
+ gain: number;
3627
+ /** Whether this lane is muted in the mix. */
3628
+ muted: boolean;
3629
+ /**
3630
+ * Which bucket the track is in, and so whether `voiceFx` lands on it. Defaults
3631
+ * to `"voice"`. Set `"background"` for the music/SFX lane (the effect never
3632
+ * touches it).
3633
+ */
3634
+ kind?: "voice" | "background";
3635
+ }
3636
+ /** Input for {@link VoicesResource.exportMix}. */
3637
+ interface VcpExportInput {
3638
+ /** The source video to remux the mixed audio onto (stream-copied — never re-encoded). */
3639
+ videoUrl: string;
3640
+ /** The mix: one entry per lane. At least one must be un-muted (all-muted is a 400). Max 16 tracks. */
3641
+ tracks: VcpExportTrack[];
3642
+ /**
3643
+ * A reverb/echo applied to the VOICE tracks only (not `"background"` lanes)
3644
+ * at render time — so iterating the effect in your editor is free until you
3645
+ * export. Same shape as {@link VoiceChangerProInput.voiceFx}.
3646
+ */
3647
+ voiceFx?: VoiceChangerProInput["voiceFx"];
3525
3648
  }
3526
3649
 
3527
3650
  /**
@@ -4053,4 +4176,4 @@ interface ApiErrorBody {
4053
4176
  }
4054
4177
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
4055
4178
 
4056
- export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DuplicateCharacterInput, type EnhanceInput, type ExchangeCodeInput, type ExecutionStatus, type ExecutionTriggerType, ExecutionsResource, type FactoryPresetsResult, ForbiddenError, type GenerateAssetInput, type GenerateCharacterInput, type GenerateCharacterResult, type GenerateCreatureAssetInput, type GenerateCreatureAssetResult, type GenerateCreatureInput, type GenerateCreatureMotionInput, type GenerateCreatureMotionResult, type GenerateCreatureResult, type GenerateImageParams, type GenerateInput, type GenerateLocationAssetInput, type GenerateLocationInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type ModelCostsResult, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateWorkflowInput, type UploadResult, UploadsResource, type UpsertCharacterInput, type UpsertCharacterResult, type UpsertCreatureInput, type UpsertCreatureResult, type UpsertObjectInput, type UpsertObjectResult, type UserBalance, type UserIdentity, type VoiceChangerProInput, type VoiceChangerProVoice, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
4179
+ export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DuplicateCharacterInput, type EnhanceInput, type ExchangeCodeInput, type ExecutionStatus, type ExecutionTriggerType, ExecutionsResource, type FactoryPresetsResult, ForbiddenError, type GenerateAssetInput, type GenerateCharacterInput, type GenerateCharacterResult, type GenerateCreatureAssetInput, type GenerateCreatureAssetResult, type GenerateCreatureInput, type GenerateCreatureMotionInput, type GenerateCreatureMotionResult, type GenerateCreatureResult, type GenerateImageParams, type GenerateInput, type GenerateLocationAssetInput, type GenerateLocationInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type ModelCostsResult, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateWorkflowInput, type UploadResult, UploadsResource, type UpsertCharacterInput, type UpsertCharacterResult, type UpsertCreatureInput, type UpsertCreatureResult, type UpsertObjectInput, type UpsertObjectResult, type UserBalance, type UserIdentity, type VcpAnalysis, type VcpAnalysisSpeaker, type VcpAnalyzeInput, type VcpExportInput, type VcpExportTrack, type VoiceChangerProInput, type VoiceChangerProVoice, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
package/dist/index.js CHANGED
@@ -1550,6 +1550,39 @@ var VoicesResource = class {
1550
1550
  recast(input) {
1551
1551
  return this.client.request("POST", "/v1/voice-changer-pro", { body: input });
1552
1552
  }
1553
+ /**
1554
+ * Detect the speakers in a clip WITHOUT recasting yet
1555
+ * (`POST /v1/voice-changer-pro/analyze`) — the first step of the interactive
1556
+ * flow. Separates voice from music once and diarizes the vocals, returning the
1557
+ * speaker list so a user (or agent) can choose a voice per speaker before
1558
+ * committing to a paid recast. Poll `jobs.get(jobId)`: the completed job's
1559
+ * `output_data` carries the separated stem urls + the detected `speakers`
1560
+ * (each with `id`, time `segments`, `firstStartSec`, `wordCount`, `snippet`)
1561
+ * and the detected language — reshape it into a {@link VcpAnalysis} and pass it
1562
+ * as `recast({ ..., analysis })` to skip re-detection. With `suggestTitle`,
1563
+ * `output_data.suggestedTitle` also carries an LLM-proposed title.
1564
+ *
1565
+ * Cloud-only; costs credits and runs async.
1566
+ */
1567
+ analyze(input) {
1568
+ return this.client.request("POST", "/v1/voice-changer-pro/analyze", { body: input });
1569
+ }
1570
+ /**
1571
+ * Render a final video from a mixed set of stems
1572
+ * (`POST /v1/voice-changer-pro/export`) — the last step of the interactive
1573
+ * flow. After `recast({ output: "stems" })` hands back the dry per-track stems
1574
+ * and the user has set levels / mutes / an effect in your editor, pass those
1575
+ * `tracks` (plus the source `videoUrl`) here to mix and remux into the finished
1576
+ * video. The video is stream-copied (never re-encoded), so the export is
1577
+ * bit-identical to your preview. At least one track must be un-muted (all-muted
1578
+ * is a 400); `voiceFx` is applied to the voice tracks at render time.
1579
+ *
1580
+ * Cloud-only; costs credits and runs async — poll `jobs.get(jobId)` for the
1581
+ * result (`output_data.videoUrl`).
1582
+ */
1583
+ exportMix(input) {
1584
+ return this.client.request("POST", "/v1/voice-changer-pro/export", { body: input });
1585
+ }
1553
1586
  };
1554
1587
 
1555
1588
  // src/resources/credits.ts