@nodaro/sdk 1.16.0 → 1.17.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
@@ -141,7 +141,8 @@ declare class WorkflowsResource {
141
141
  update(id: string, input: UpdateWorkflowInput): Promise<{
142
142
  data: Workflow;
143
143
  }>;
144
- /** Delete a workflow. Returns `{ success: true }`. */
144
+ /** Delete a workflow. Returns `{ success: true }`. Throws `NotFoundError`
145
+ * when the id doesn't exist or isn't yours (the delete is not silent). */
145
146
  delete(id: string): Promise<{
146
147
  success: true;
147
148
  }>;
@@ -455,7 +456,10 @@ interface NodeDescriptor {
455
456
  category: NodeCategory;
456
457
  description: string;
457
458
  outputType: OutputType;
458
- /** Credit cost. Number when fixed, string range like "1-8" when model-dependent, undefined if free. */
459
+ /** Credit cost. Number when fixed, string range like "1-8" when
460
+ * model-dependent. Undefined when the node is free — or on editions
461
+ * without a credit system (community/business omit the field entirely;
462
+ * it is meaningful on Cloud only). */
459
463
  creditCost?: number | string;
460
464
  /** Input fields the node exposes for user override (subset of full config). */
461
465
  inputSchema?: NodeInputSchema;
@@ -463,6 +467,16 @@ interface NodeDescriptor {
463
467
  providers?: string[];
464
468
  /** Capability flags such as "supports-reference-image" or "supports-end-frame". */
465
469
  capabilities?: string[];
470
+ /** Hard duration ceiling in seconds (e.g. Generate Video Pro's env-configured cap). */
471
+ maxDurationSec?: number;
472
+ /** Providers whose segment-duration menu is sparse (off-menu values snap to the nearest entry). */
473
+ sparseProviders?: string[];
474
+ /** Per-provider resolution tiers, e.g. `{ "minimax-h3": ["2K", "768P"] }`. */
475
+ providerResolutions?: Record<string, string[]>;
476
+ /** Per-provider map of display resolution → the literal wire value the API expects. */
477
+ providerResolutionWire?: Record<string, Record<string, string>>;
478
+ /** Generate Video Pro: the deployed engine accepts the `soundtrack` input (original-audio replay). */
479
+ soundtrack?: boolean;
466
480
  }
467
481
  /**
468
482
  * Result of a direct node execution. Most node types return `{ jobId }` and
@@ -736,7 +750,8 @@ declare class DeveloperAppsResource {
736
750
  update(id: string, input: UpdateDeveloperAppInput): Promise<{
737
751
  data: DeveloperApp;
738
752
  }>;
739
- /** Delete a developer app. Returns `{ success: true }`. */
753
+ /** Delete a developer app. Returns `{ success: true }`. Throws
754
+ * `NotFoundError` when the id doesn't exist or isn't yours. */
740
755
  delete(id: string): Promise<{
741
756
  success: true;
742
757
  }>;
@@ -3338,7 +3353,9 @@ interface ReduceInput {
3338
3353
  /**
3339
3354
  * Strategy-specific config. Defaults to `{}` server-side, which uses every
3340
3355
  * strategy's `defaultConfig`. Schemas (from `@nodaro/shared`):
3341
- * - `pick-best-llm`: `{ criteria: string, inputKind?: "text" | "image-url" }`
3356
+ * - `pick-best-llm`: `{ criteria: string, inputKind?: "text" | "image-url", llmModel?: string }`
3357
+ * (`llmModel` = the judge model id from the LLM registry; omitted → the
3358
+ * feature default. Its tier sets the price: economy / standard / premium.)
3342
3359
  * - `concat`: `{ separator?: string }`
3343
3360
  * - `vote`: `{ caseSensitive?: boolean }`
3344
3361
  * - `merge-json`: `{ strategy?: "deep" | "shallow" }`
@@ -4446,7 +4463,9 @@ interface ModelSummary {
4446
4463
  description: string;
4447
4464
  modes: string[];
4448
4465
  useCases: string[];
4449
- pricing: Array<{
4466
+ /** Per-variant credit pricing. Cloud only — editions without a credit
4467
+ * system (community/business) omit the field entirely. */
4468
+ pricing?: Array<{
4450
4469
  identifier: string;
4451
4470
  credits: number;
4452
4471
  note?: string;
@@ -4498,6 +4517,198 @@ declare class ModelsResource {
4498
4517
  list(opts?: ListModelsOptions): Promise<ModelsListResult>;
4499
4518
  }
4500
4519
 
4520
+ /**
4521
+ * Cine shots — the Share → Remix record behind `/s/:id` share links.
4522
+ * Mirrors the backend's `/v1/shots` wire contract (`shots.ts::toWire`);
4523
+ * types are declared here so the SDK stays dependency-free — same
4524
+ * convention as `ModelSummary` / `PickerCatalog`.
4525
+ */
4526
+ /** An `@`-mention entity reference captured in the shot's prompt state. */
4527
+ interface ShotEntityRef {
4528
+ entitySlug: string;
4529
+ variantSlug?: string;
4530
+ role?: string;
4531
+ kind?: "character" | "location" | "object" | "creature";
4532
+ }
4533
+ type ShotMode = "single" | "multi-shot" | "frame-to-motion" | "storyboard";
4534
+ interface Shot {
4535
+ id: string;
4536
+ mode: ShotMode;
4537
+ /** Opaque picker/builder selection state — round-tripped verbatim. */
4538
+ selectionState: Record<string, unknown>;
4539
+ freeText?: string;
4540
+ negativePrompt?: string;
4541
+ assembledPrompt?: string;
4542
+ perModelPrompts?: Record<string, string>;
4543
+ models?: string[];
4544
+ entityRefs?: ShotEntityRef[];
4545
+ resultUrls?: string[];
4546
+ visibility: "private" | "public";
4547
+ schemaVersion: number;
4548
+ ownerId: string;
4549
+ createdAt: string;
4550
+ updatedAt: string;
4551
+ }
4552
+ interface CreateShotInput {
4553
+ mode?: ShotMode;
4554
+ selectionState?: Record<string, unknown>;
4555
+ freeText?: string;
4556
+ negativePrompt?: string;
4557
+ assembledPrompt?: string;
4558
+ perModelPrompts?: Record<string, string>;
4559
+ /** Video model ids the shot targets (max 16). */
4560
+ models?: string[];
4561
+ entityRefs?: ShotEntityRef[];
4562
+ /**
4563
+ * Result media URLs (max 32). Must be plain public http(s) URLs — the
4564
+ * backend rejects signed URLs so a token can never leak into a share
4565
+ * record.
4566
+ */
4567
+ resultUrls?: string[];
4568
+ /** Rows default to private; sharing is an explicit "make public" action. */
4569
+ visibility?: "private" | "public";
4570
+ }
4571
+ type UpdateShotInput = CreateShotInput;
4572
+ declare class ShotsResource {
4573
+ private client;
4574
+ constructor(client: NodaroClient);
4575
+ /** Create a shot record. Returns the new shot's id — an unguessable
4576
+ * capability string that doubles as the share-link path segment. */
4577
+ create(input?: CreateShotInput): Promise<{
4578
+ id: string;
4579
+ }>;
4580
+ /** Read a shot. Public shots are readable by anyone holding the id;
4581
+ * private shots resolve only for their owner (404 otherwise). */
4582
+ get(id: string): Promise<{
4583
+ shot: Shot;
4584
+ }>;
4585
+ /** Update an owned shot (any subset of fields, e.g. a visibility toggle). */
4586
+ update(id: string, input: UpdateShotInput): Promise<{
4587
+ shot: Shot;
4588
+ }>;
4589
+ /** Delete an owned shot. */
4590
+ delete(id: string): Promise<void>;
4591
+ }
4592
+
4593
+ /**
4594
+ * Recast — regenerate an analyzed source video with your own cast (the engine
4595
+ * behind recast.nodaro.ai), plus the authored-script import lane ("movie as
4596
+ * JSON", no source video).
4597
+ *
4598
+ * Cloud edition only: the `/v1/recast/*` and `/v1/video-analysis/import*`
4599
+ * routes are served by the cloud plugin and 404 on self-hosted installs.
4600
+ * Wire contract: docs/api-integration.md §13c/§13d and
4601
+ * docs/mcp/recast-authoring.md. The interactive run is server-driven — poll
4602
+ * `get()` and answer gates with `resolveGate()`; the platform advances every
4603
+ * non-gate step itself.
4604
+ */
4605
+ interface RecastScriptValidationError {
4606
+ path: string;
4607
+ message: string;
4608
+ /** Written for an LLM repair loop — fix `path` using this and re-validate. */
4609
+ hint?: string;
4610
+ }
4611
+ interface RecastScriptValidation {
4612
+ valid: boolean;
4613
+ errors: RecastScriptValidationError[];
4614
+ warnings: string[];
4615
+ }
4616
+ interface RecastScriptImportResult {
4617
+ /** A standard completed analysis job — feed it to `create()` as `analysisJobId`. */
4618
+ jobId: string;
4619
+ /** false when an identical script was already imported (idempotent re-import). */
4620
+ created: boolean;
4621
+ warnings: string[];
4622
+ /** The document of record — WITH the server-derived fields; always prefer it
4623
+ * over your input. */
4624
+ json: Record<string, unknown>;
4625
+ }
4626
+ interface CreateRecastInput {
4627
+ /** Required: an existing workflow you own that the run attaches to. */
4628
+ workflowId: string;
4629
+ /** The source analysis job (from a video analysis or an authored-script import). */
4630
+ analysisJobId: string;
4631
+ /** Authored imports render `"faithful"` — exactly as written. */
4632
+ fidelity?: string;
4633
+ /** Required (`true`) for faithful renders of authored scripts. */
4634
+ rightsAttested?: boolean;
4635
+ resolution?: string;
4636
+ segmentSec?: number;
4637
+ renderMethod?: string;
4638
+ /** Opt in to the interactive walk (pick-1-of-3 gates surfaced via `get()`). */
4639
+ interactive?: boolean;
4640
+ provider?: string;
4641
+ /**
4642
+ * Interactive gates the CLIENT can answer, e.g. `["sheet-gate"]`. The
4643
+ * platform only opens a gate kind for runs whose create declared support
4644
+ * for it — undeclared kinds are decided automatically.
4645
+ */
4646
+ clientCapabilities?: string[];
4647
+ }
4648
+ type EstimateRecastInput = Omit<CreateRecastInput, "workflowId" | "rightsAttested" | "clientCapabilities">;
4649
+ interface RecastEstimate {
4650
+ totalCredits?: number;
4651
+ breakdown?: Record<string, number>;
4652
+ [key: string]: unknown;
4653
+ }
4654
+ /** Run snapshot — `status` plus, on interactive runs, the pending step. */
4655
+ interface RecastRunSnapshot {
4656
+ status: string;
4657
+ interactive?: Record<string, unknown>;
4658
+ [key: string]: unknown;
4659
+ }
4660
+ interface ResolveRecastGateInput {
4661
+ /** Which gate the picks answer. Defaults server-side to `"cast"`. */
4662
+ gate?: "cast" | "sheet" | "anchors" | "music";
4663
+ /** cast / sheet gates: the pick payload as surfaced by the pending gate. */
4664
+ picks?: unknown;
4665
+ /** anchors gate: which segment the anchor picks apply to. */
4666
+ segment?: number;
4667
+ anchorPicks?: {
4668
+ start?: number;
4669
+ end?: number;
4670
+ };
4671
+ /** music gate: which section the pick applies to. */
4672
+ section?: number;
4673
+ musicPick?: number | string;
4674
+ /** Let the critic decide this and every remaining gate automatically. */
4675
+ finishAuto?: boolean;
4676
+ }
4677
+ declare class RecastResource {
4678
+ private client;
4679
+ constructor(client: NodaroClient);
4680
+ /** The generated authoring guide (markdown): document contract, enum
4681
+ * vocabularies, bounds, audio rules, and a validated worked example. */
4682
+ authoringSkill(): Promise<string>;
4683
+ /** FREE validation of an authored script. Loop until `valid: true`. */
4684
+ validateScript(script: Record<string, unknown>): Promise<RecastScriptValidation>;
4685
+ /**
4686
+ * Import a VALIDATED authored script as a completed analysis job.
4687
+ * `rightsAttested: true` is required (403 otherwise) — authored recasts
4688
+ * render Faithful, exactly as written, so only import work you own.
4689
+ */
4690
+ importScript(script: Record<string, unknown>, opts: {
4691
+ rightsAttested: true;
4692
+ }): Promise<RecastScriptImportResult>;
4693
+ /** Quote a run (credits) before buying the plan. */
4694
+ estimate(input: EstimateRecastInput): Promise<RecastEstimate>;
4695
+ /** Create a run (buys the plan). Returns `{ recastId }`. */
4696
+ create(input: CreateRecastInput): Promise<{
4697
+ recastId: string;
4698
+ }>;
4699
+ /** Poll the run — status plus any pending interactive step. */
4700
+ get(recastId: string): Promise<RecastRunSnapshot>;
4701
+ /** Start rendering a `planned` run. Idempotent server-side. */
4702
+ start(recastId: string, opts?: {
4703
+ segmentSec?: number;
4704
+ provider?: string;
4705
+ }): Promise<{
4706
+ gvpJobId?: string;
4707
+ }>;
4708
+ /** Answer a pending interactive gate (the pick itself is free). */
4709
+ resolveGate(recastId: string, input: ResolveRecastGateInput): Promise<Record<string, unknown>>;
4710
+ }
4711
+
4501
4712
  /**
4502
4713
  * The community-listing types are the single source of truth in
4503
4714
  * `@nodaro/shared` (re-used by the backend, frontend, and CLI). Re-export them
@@ -4812,6 +5023,8 @@ declare class NodaroClient {
4812
5023
  readonly presets: PresetsResource;
4813
5024
  readonly pickerCatalogs: PickerCatalogsResource;
4814
5025
  readonly models: ModelsResource;
5026
+ readonly shots: ShotsResource;
5027
+ readonly recast: RecastResource;
4815
5028
  readonly community: CommunityResource;
4816
5029
  readonly templates: TemplatesResource;
4817
5030
  readonly tutorials: TutorialsResource;
@@ -4916,4 +5129,4 @@ interface ApiErrorBody {
4916
5129
  }
4917
5130
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
4918
5131
 
4919
- export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, AudioResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, type BrowseTemplatesParams, type BrowseTemplatesResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, type CloneTemplateParams, type CloneTemplateResult, CommunityResource, type ContinueVideoProResult, 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 DownloadVideoProgress, type DubbingInput, 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 ListCharactersResult, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListModelsOptions, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, MediaResource, type ModelCostsResult, type ModelSummary, type ModelsListResult, ModelsResource, 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, type StopVideoProResult, StorageExceededError, type StructuredReferenceParams, type Template, type TemplateBrowseCard, type TemplateSort, TemplatesResource, type TutorialCategory, type TutorialFlowItem, type TutorialVideoItem, TutorialsResource, 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 VideoMetadata, VideoProResource, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, WorkflowConflictError, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
5132
+ export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, AudioResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, type BrowseTemplatesParams, type BrowseTemplatesResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, type CloneTemplateParams, type CloneTemplateResult, CommunityResource, type ContinueVideoProResult, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateRecastInput, type CreateShotInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DownloadVideoProgress, type DubbingInput, type DuplicateCharacterInput, type EnhanceInput, type EstimateRecastInput, 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 ListCharactersResult, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListModelsOptions, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, MediaResource, type ModelCostsResult, type ModelSummary, type ModelsListResult, ModelsResource, 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 RecastEstimate, RecastResource, type RecastRunSnapshot, type RecastScriptImportResult, type RecastScriptValidation, type RecastScriptValidationError, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type ResolveRecastGateInput, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, type Shot, type ShotEntityRef, type ShotMode, ShotsResource, StaticTokenAuth, type StopVideoProResult, StorageExceededError, type StructuredReferenceParams, type Template, type TemplateBrowseCard, type TemplateSort, TemplatesResource, type TutorialCategory, type TutorialFlowItem, type TutorialVideoItem, TutorialsResource, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateShotInput, 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 VideoMetadata, VideoProResource, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, WorkflowConflictError, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
package/dist/index.d.ts CHANGED
@@ -141,7 +141,8 @@ declare class WorkflowsResource {
141
141
  update(id: string, input: UpdateWorkflowInput): Promise<{
142
142
  data: Workflow;
143
143
  }>;
144
- /** Delete a workflow. Returns `{ success: true }`. */
144
+ /** Delete a workflow. Returns `{ success: true }`. Throws `NotFoundError`
145
+ * when the id doesn't exist or isn't yours (the delete is not silent). */
145
146
  delete(id: string): Promise<{
146
147
  success: true;
147
148
  }>;
@@ -455,7 +456,10 @@ interface NodeDescriptor {
455
456
  category: NodeCategory;
456
457
  description: string;
457
458
  outputType: OutputType;
458
- /** Credit cost. Number when fixed, string range like "1-8" when model-dependent, undefined if free. */
459
+ /** Credit cost. Number when fixed, string range like "1-8" when
460
+ * model-dependent. Undefined when the node is free — or on editions
461
+ * without a credit system (community/business omit the field entirely;
462
+ * it is meaningful on Cloud only). */
459
463
  creditCost?: number | string;
460
464
  /** Input fields the node exposes for user override (subset of full config). */
461
465
  inputSchema?: NodeInputSchema;
@@ -463,6 +467,16 @@ interface NodeDescriptor {
463
467
  providers?: string[];
464
468
  /** Capability flags such as "supports-reference-image" or "supports-end-frame". */
465
469
  capabilities?: string[];
470
+ /** Hard duration ceiling in seconds (e.g. Generate Video Pro's env-configured cap). */
471
+ maxDurationSec?: number;
472
+ /** Providers whose segment-duration menu is sparse (off-menu values snap to the nearest entry). */
473
+ sparseProviders?: string[];
474
+ /** Per-provider resolution tiers, e.g. `{ "minimax-h3": ["2K", "768P"] }`. */
475
+ providerResolutions?: Record<string, string[]>;
476
+ /** Per-provider map of display resolution → the literal wire value the API expects. */
477
+ providerResolutionWire?: Record<string, Record<string, string>>;
478
+ /** Generate Video Pro: the deployed engine accepts the `soundtrack` input (original-audio replay). */
479
+ soundtrack?: boolean;
466
480
  }
467
481
  /**
468
482
  * Result of a direct node execution. Most node types return `{ jobId }` and
@@ -736,7 +750,8 @@ declare class DeveloperAppsResource {
736
750
  update(id: string, input: UpdateDeveloperAppInput): Promise<{
737
751
  data: DeveloperApp;
738
752
  }>;
739
- /** Delete a developer app. Returns `{ success: true }`. */
753
+ /** Delete a developer app. Returns `{ success: true }`. Throws
754
+ * `NotFoundError` when the id doesn't exist or isn't yours. */
740
755
  delete(id: string): Promise<{
741
756
  success: true;
742
757
  }>;
@@ -3338,7 +3353,9 @@ interface ReduceInput {
3338
3353
  /**
3339
3354
  * Strategy-specific config. Defaults to `{}` server-side, which uses every
3340
3355
  * strategy's `defaultConfig`. Schemas (from `@nodaro/shared`):
3341
- * - `pick-best-llm`: `{ criteria: string, inputKind?: "text" | "image-url" }`
3356
+ * - `pick-best-llm`: `{ criteria: string, inputKind?: "text" | "image-url", llmModel?: string }`
3357
+ * (`llmModel` = the judge model id from the LLM registry; omitted → the
3358
+ * feature default. Its tier sets the price: economy / standard / premium.)
3342
3359
  * - `concat`: `{ separator?: string }`
3343
3360
  * - `vote`: `{ caseSensitive?: boolean }`
3344
3361
  * - `merge-json`: `{ strategy?: "deep" | "shallow" }`
@@ -4446,7 +4463,9 @@ interface ModelSummary {
4446
4463
  description: string;
4447
4464
  modes: string[];
4448
4465
  useCases: string[];
4449
- pricing: Array<{
4466
+ /** Per-variant credit pricing. Cloud only — editions without a credit
4467
+ * system (community/business) omit the field entirely. */
4468
+ pricing?: Array<{
4450
4469
  identifier: string;
4451
4470
  credits: number;
4452
4471
  note?: string;
@@ -4498,6 +4517,198 @@ declare class ModelsResource {
4498
4517
  list(opts?: ListModelsOptions): Promise<ModelsListResult>;
4499
4518
  }
4500
4519
 
4520
+ /**
4521
+ * Cine shots — the Share → Remix record behind `/s/:id` share links.
4522
+ * Mirrors the backend's `/v1/shots` wire contract (`shots.ts::toWire`);
4523
+ * types are declared here so the SDK stays dependency-free — same
4524
+ * convention as `ModelSummary` / `PickerCatalog`.
4525
+ */
4526
+ /** An `@`-mention entity reference captured in the shot's prompt state. */
4527
+ interface ShotEntityRef {
4528
+ entitySlug: string;
4529
+ variantSlug?: string;
4530
+ role?: string;
4531
+ kind?: "character" | "location" | "object" | "creature";
4532
+ }
4533
+ type ShotMode = "single" | "multi-shot" | "frame-to-motion" | "storyboard";
4534
+ interface Shot {
4535
+ id: string;
4536
+ mode: ShotMode;
4537
+ /** Opaque picker/builder selection state — round-tripped verbatim. */
4538
+ selectionState: Record<string, unknown>;
4539
+ freeText?: string;
4540
+ negativePrompt?: string;
4541
+ assembledPrompt?: string;
4542
+ perModelPrompts?: Record<string, string>;
4543
+ models?: string[];
4544
+ entityRefs?: ShotEntityRef[];
4545
+ resultUrls?: string[];
4546
+ visibility: "private" | "public";
4547
+ schemaVersion: number;
4548
+ ownerId: string;
4549
+ createdAt: string;
4550
+ updatedAt: string;
4551
+ }
4552
+ interface CreateShotInput {
4553
+ mode?: ShotMode;
4554
+ selectionState?: Record<string, unknown>;
4555
+ freeText?: string;
4556
+ negativePrompt?: string;
4557
+ assembledPrompt?: string;
4558
+ perModelPrompts?: Record<string, string>;
4559
+ /** Video model ids the shot targets (max 16). */
4560
+ models?: string[];
4561
+ entityRefs?: ShotEntityRef[];
4562
+ /**
4563
+ * Result media URLs (max 32). Must be plain public http(s) URLs — the
4564
+ * backend rejects signed URLs so a token can never leak into a share
4565
+ * record.
4566
+ */
4567
+ resultUrls?: string[];
4568
+ /** Rows default to private; sharing is an explicit "make public" action. */
4569
+ visibility?: "private" | "public";
4570
+ }
4571
+ type UpdateShotInput = CreateShotInput;
4572
+ declare class ShotsResource {
4573
+ private client;
4574
+ constructor(client: NodaroClient);
4575
+ /** Create a shot record. Returns the new shot's id — an unguessable
4576
+ * capability string that doubles as the share-link path segment. */
4577
+ create(input?: CreateShotInput): Promise<{
4578
+ id: string;
4579
+ }>;
4580
+ /** Read a shot. Public shots are readable by anyone holding the id;
4581
+ * private shots resolve only for their owner (404 otherwise). */
4582
+ get(id: string): Promise<{
4583
+ shot: Shot;
4584
+ }>;
4585
+ /** Update an owned shot (any subset of fields, e.g. a visibility toggle). */
4586
+ update(id: string, input: UpdateShotInput): Promise<{
4587
+ shot: Shot;
4588
+ }>;
4589
+ /** Delete an owned shot. */
4590
+ delete(id: string): Promise<void>;
4591
+ }
4592
+
4593
+ /**
4594
+ * Recast — regenerate an analyzed source video with your own cast (the engine
4595
+ * behind recast.nodaro.ai), plus the authored-script import lane ("movie as
4596
+ * JSON", no source video).
4597
+ *
4598
+ * Cloud edition only: the `/v1/recast/*` and `/v1/video-analysis/import*`
4599
+ * routes are served by the cloud plugin and 404 on self-hosted installs.
4600
+ * Wire contract: docs/api-integration.md §13c/§13d and
4601
+ * docs/mcp/recast-authoring.md. The interactive run is server-driven — poll
4602
+ * `get()` and answer gates with `resolveGate()`; the platform advances every
4603
+ * non-gate step itself.
4604
+ */
4605
+ interface RecastScriptValidationError {
4606
+ path: string;
4607
+ message: string;
4608
+ /** Written for an LLM repair loop — fix `path` using this and re-validate. */
4609
+ hint?: string;
4610
+ }
4611
+ interface RecastScriptValidation {
4612
+ valid: boolean;
4613
+ errors: RecastScriptValidationError[];
4614
+ warnings: string[];
4615
+ }
4616
+ interface RecastScriptImportResult {
4617
+ /** A standard completed analysis job — feed it to `create()` as `analysisJobId`. */
4618
+ jobId: string;
4619
+ /** false when an identical script was already imported (idempotent re-import). */
4620
+ created: boolean;
4621
+ warnings: string[];
4622
+ /** The document of record — WITH the server-derived fields; always prefer it
4623
+ * over your input. */
4624
+ json: Record<string, unknown>;
4625
+ }
4626
+ interface CreateRecastInput {
4627
+ /** Required: an existing workflow you own that the run attaches to. */
4628
+ workflowId: string;
4629
+ /** The source analysis job (from a video analysis or an authored-script import). */
4630
+ analysisJobId: string;
4631
+ /** Authored imports render `"faithful"` — exactly as written. */
4632
+ fidelity?: string;
4633
+ /** Required (`true`) for faithful renders of authored scripts. */
4634
+ rightsAttested?: boolean;
4635
+ resolution?: string;
4636
+ segmentSec?: number;
4637
+ renderMethod?: string;
4638
+ /** Opt in to the interactive walk (pick-1-of-3 gates surfaced via `get()`). */
4639
+ interactive?: boolean;
4640
+ provider?: string;
4641
+ /**
4642
+ * Interactive gates the CLIENT can answer, e.g. `["sheet-gate"]`. The
4643
+ * platform only opens a gate kind for runs whose create declared support
4644
+ * for it — undeclared kinds are decided automatically.
4645
+ */
4646
+ clientCapabilities?: string[];
4647
+ }
4648
+ type EstimateRecastInput = Omit<CreateRecastInput, "workflowId" | "rightsAttested" | "clientCapabilities">;
4649
+ interface RecastEstimate {
4650
+ totalCredits?: number;
4651
+ breakdown?: Record<string, number>;
4652
+ [key: string]: unknown;
4653
+ }
4654
+ /** Run snapshot — `status` plus, on interactive runs, the pending step. */
4655
+ interface RecastRunSnapshot {
4656
+ status: string;
4657
+ interactive?: Record<string, unknown>;
4658
+ [key: string]: unknown;
4659
+ }
4660
+ interface ResolveRecastGateInput {
4661
+ /** Which gate the picks answer. Defaults server-side to `"cast"`. */
4662
+ gate?: "cast" | "sheet" | "anchors" | "music";
4663
+ /** cast / sheet gates: the pick payload as surfaced by the pending gate. */
4664
+ picks?: unknown;
4665
+ /** anchors gate: which segment the anchor picks apply to. */
4666
+ segment?: number;
4667
+ anchorPicks?: {
4668
+ start?: number;
4669
+ end?: number;
4670
+ };
4671
+ /** music gate: which section the pick applies to. */
4672
+ section?: number;
4673
+ musicPick?: number | string;
4674
+ /** Let the critic decide this and every remaining gate automatically. */
4675
+ finishAuto?: boolean;
4676
+ }
4677
+ declare class RecastResource {
4678
+ private client;
4679
+ constructor(client: NodaroClient);
4680
+ /** The generated authoring guide (markdown): document contract, enum
4681
+ * vocabularies, bounds, audio rules, and a validated worked example. */
4682
+ authoringSkill(): Promise<string>;
4683
+ /** FREE validation of an authored script. Loop until `valid: true`. */
4684
+ validateScript(script: Record<string, unknown>): Promise<RecastScriptValidation>;
4685
+ /**
4686
+ * Import a VALIDATED authored script as a completed analysis job.
4687
+ * `rightsAttested: true` is required (403 otherwise) — authored recasts
4688
+ * render Faithful, exactly as written, so only import work you own.
4689
+ */
4690
+ importScript(script: Record<string, unknown>, opts: {
4691
+ rightsAttested: true;
4692
+ }): Promise<RecastScriptImportResult>;
4693
+ /** Quote a run (credits) before buying the plan. */
4694
+ estimate(input: EstimateRecastInput): Promise<RecastEstimate>;
4695
+ /** Create a run (buys the plan). Returns `{ recastId }`. */
4696
+ create(input: CreateRecastInput): Promise<{
4697
+ recastId: string;
4698
+ }>;
4699
+ /** Poll the run — status plus any pending interactive step. */
4700
+ get(recastId: string): Promise<RecastRunSnapshot>;
4701
+ /** Start rendering a `planned` run. Idempotent server-side. */
4702
+ start(recastId: string, opts?: {
4703
+ segmentSec?: number;
4704
+ provider?: string;
4705
+ }): Promise<{
4706
+ gvpJobId?: string;
4707
+ }>;
4708
+ /** Answer a pending interactive gate (the pick itself is free). */
4709
+ resolveGate(recastId: string, input: ResolveRecastGateInput): Promise<Record<string, unknown>>;
4710
+ }
4711
+
4501
4712
  /**
4502
4713
  * The community-listing types are the single source of truth in
4503
4714
  * `@nodaro/shared` (re-used by the backend, frontend, and CLI). Re-export them
@@ -4812,6 +5023,8 @@ declare class NodaroClient {
4812
5023
  readonly presets: PresetsResource;
4813
5024
  readonly pickerCatalogs: PickerCatalogsResource;
4814
5025
  readonly models: ModelsResource;
5026
+ readonly shots: ShotsResource;
5027
+ readonly recast: RecastResource;
4815
5028
  readonly community: CommunityResource;
4816
5029
  readonly templates: TemplatesResource;
4817
5030
  readonly tutorials: TutorialsResource;
@@ -4916,4 +5129,4 @@ interface ApiErrorBody {
4916
5129
  }
4917
5130
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
4918
5131
 
4919
- export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, AudioResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, type BrowseTemplatesParams, type BrowseTemplatesResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, type CloneTemplateParams, type CloneTemplateResult, CommunityResource, type ContinueVideoProResult, 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 DownloadVideoProgress, type DubbingInput, 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 ListCharactersResult, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListModelsOptions, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, MediaResource, type ModelCostsResult, type ModelSummary, type ModelsListResult, ModelsResource, 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, type StopVideoProResult, StorageExceededError, type StructuredReferenceParams, type Template, type TemplateBrowseCard, type TemplateSort, TemplatesResource, type TutorialCategory, type TutorialFlowItem, type TutorialVideoItem, TutorialsResource, 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 VideoMetadata, VideoProResource, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, WorkflowConflictError, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
5132
+ export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, AudioResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, type BrowseTemplatesParams, type BrowseTemplatesResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, type CloneTemplateParams, type CloneTemplateResult, CommunityResource, type ContinueVideoProResult, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateRecastInput, type CreateShotInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DownloadVideoProgress, type DubbingInput, type DuplicateCharacterInput, type EnhanceInput, type EstimateRecastInput, 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 ListCharactersResult, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListModelsOptions, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, MediaResource, type ModelCostsResult, type ModelSummary, type ModelsListResult, ModelsResource, 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 RecastEstimate, RecastResource, type RecastRunSnapshot, type RecastScriptImportResult, type RecastScriptValidation, type RecastScriptValidationError, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type ResolveRecastGateInput, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, type Shot, type ShotEntityRef, type ShotMode, ShotsResource, StaticTokenAuth, type StopVideoProResult, StorageExceededError, type StructuredReferenceParams, type Template, type TemplateBrowseCard, type TemplateSort, TemplatesResource, type TutorialCategory, type TutorialFlowItem, type TutorialVideoItem, TutorialsResource, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateShotInput, 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 VideoMetadata, VideoProResource, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, WorkflowConflictError, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };