@nodaro/sdk 2.25.0 → 2.27.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.ts CHANGED
@@ -1,8 +1,37 @@
1
- import * as _nodaro_shared from '@nodaro/shared';
2
- import { CollaboratorRole, GenericNode, GenericEdge, WorkflowExport, WorkflowImportReport, WorkflowVisibility, ExecutionOutcome, NodeExecutionStateWire, Scene3DReference, Scene3DPlan, Scene3DEditOperation, Scene3DV2EditOperation, Pro3DRenderSource, Pro3DRenderEngine, Pro3DRenderQuality, Pro3DRenderStyle, Scene3DJobOutputAny, Pro3DRenderJobOutput as Pro3DRenderJobOutput$1, Pro3DRenderCapabilities, Scene3DPlanV2, Pro3DRenderQuote as Pro3DRenderQuote$1, ModelInputAdjustment, ConnectedReference, DescribedReference, VideoCharacterReference, SocialSearchParams, VideoDepthProvider, VideoDepthModelSize, VideoDepthColormap, VideoDepthResolution, SocialPost, SocialPlatform, SocialSearchMode, Scene3DAssetRef, OAuthScope, TtsProvider, EntityStyle, CharacterAspectRatio, CharacterAttachColumn, LocationAssetType, LocationAttachColumn, SurroundDirection, ObjectAssetType, ObjectAttachColumn, ObjectAspectRatio, CreatureAttachColumn, PipelineInput, PipelineStatus, PipelineMode, PipelineStageName, AnimateSubGate, ChatEnabledStage, ProposedChange, ReduceStrategyId, ReduceMeta, Voice, VoiceLibraryParams, VoiceLibraryResponse, VoiceClone, AudioFxPreset, DialogueProvider, CaptionLookId, SupportedFontName, TranscribeLane, CaptionStyle, OverlayAnchor, VideoOverlayRequest, VideoMaskRequest, MaskCompositeRequest, TranscribeProvider, Transcript, ListSavedPostsParams, ListSavedPostsResult, SavePostInput, SavedPost, SavedPostsLookupResult, UpdateSavedPostInput, ListCollectionsResult, Collection, CreateCollectionInput, UpdateCollectionInput, ListCollectionRecordsParams, ListCollectionRecordsResult, CollectionRecord, BulkCollectionRecordsInput, BulkCollectionRecordsResult, CollectionRecordSource, AddCollectionRecordInput, AddCollectionRecordResult, CollectionExportFormat, CollectionUsage, TrackedCompetitor, CompetitorListResult, CompetitorDetail, CompetitorHistory, CompetitorCompareInput, CompetitorCompareResult, CreateCompetitorInput, UpdateCompetitorInput, CompetitorCardsResult, CompetitorLessonsResult, CompetitorActionsResult, CardActionResult, CompetitorDiscovery, CharacterMotionMetadata, RecastSegmentPack, BrowseCommunityParams, BrowseCommunityResult, CommunityCard, CommunityFullDetail, CommunityEntityType, CloneListingResult, FavoriteListingResult, CommunityReportReason, ReportListingResult, PublishListingParams, PublishListingResult, SharedListing, OrganizationView, OrgKind, OrgSettings, OrgPage, OrgMemberView, MemberStatus, WorkspaceRole, InvitationDelivery, InvitationState, InvitationView, InvitationPreview, OrgAuditEntry, UsageQuery, UsageReport, UsageLogEntry, WorkspaceSummary, WorkspaceView, WorkspaceSettings, WorkspaceMemberView, JoinCodeView, Edl, EditPlanMode, EditPlanTier, MeOrganizations } from '@nodaro/shared';
3
- export { ActionCard, ActionCardKind, ActionCardPriority, AddCollectionRecordInput, AddCollectionRecordResult, AdviceFamily, AdviceRecord, AnimateSubGate, AudioFxPreset, BrandLesson, BrandLessonKind, BrandLessons, BrandPlatformLessons, BrowseCommunityParams, BrowseCommunityResult, CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_STYLES, OBJECT_ASPECT_DEFAULTS as CREATURE_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS as CREATURE_ASPECT_OPTIONS, CREATURE_ATTACH_COLUMNS, CardAction, CardActionResult, CardOutcome, CardOutcomeState, CardSnapshot, CardVerdict, ChapterSet, CharacterAspectRatio, ChatEnabledStage, CloneListingResult, Collection, CollectionCaps, CollectionDigestFormat, CollectionExportFormat, CollectionFieldValue, CollectionLimits, CollectionMedia, CollectionMediaType, CollectionRecord, CollectionRecordSource, CollectionWriteOutcome, CommunityCard, CommunityEntityType, CommunityFullDetail, CommunityReportReason, CommunitySort, CompetitorAboutPlatform, CompetitorAccountKey, CompetitorAccounts, CompetitorActionsResult, CompetitorBrandTally, CompetitorCardsResult, CompetitorCompareInput, CompetitorCompareResult, CompetitorDetail, CompetitorDiscovery, CompetitorHistory, CompetitorHistoryPlatform, CompetitorHistoryPoint, CompetitorLessonsResult, CompetitorListResult, CompetitorPeriod, CompetitorPeriodFollowers, CompetitorPeriodPlatform, CompetitorPlatformTally, CompetitorPost, CompetitorScan, CompetitorScanCounts, CompetitorScanSummary, CompetitorSchedule, CompetitorSearch, CompetitorSearchKind, ConnectedReference, CreateCollectionInput, CreateCompetitorInput, ObjectAspectRatio as CreatureAspectRatio, CreatureAttachColumn, DescribedReference, EditPlanMode, EditPlanTier, Edl, EdlClipSet, EntityStyle, ExecutionOutcome, FavoriteListingResult, GeminiOmniVoicePresetId, GenericEdge, GenericNode, InvitationDelivery, InvitationPreview, InvitationState, InvitationView, JoinCodeView, LOCATION_ASSET_TYPES, LOCATION_ATTACH_COLUMNS, ListCollectionRecordsParams, ListCollectionRecordsResult, ListCollectionsResult, ListSavedPostsParams, ListSavedPostsResult, LocationAssetType, LocationAttachColumn, MarkCardInput, MeOrganizations, MemberStatus, NodeExecutionStatus, NodeSkipReason, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ATTACH_COLUMNS, OUTPUT_BEARING_NODE_STATUSES, ObjectAspectRatio, ObjectAssetType, ObjectAttachColumn, OrgAuditEntry, OrgErrorCode, OrgKind, OrgMemberView, OrgPage, OrgRole, OrgSettings, OrgStatus, OrganizationSummary, OrganizationView, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PipelineInput, PipelineMode, PipelineStageName, PipelineStatus, PromptAffixFields, ProposedChange, PublishListingParams, PublishListingResult, RECAST_SEGMENT_PACKS, RecastSegmentPack, ReduceMeta, ReduceStrategyId, ReportListingResult, SURROUND_DIRECTIONS, SavePostInput, SavedPost, SavedPostSource, SavedPostsLookupResult, SharedListing, SharedVoice, SocialPlatform, SocialPost, SocialPostAuthor, SocialPostMedia, SocialPostMetrics, SocialSearchCount, SocialSearchMode, SocialSearchParams, SocialSearchPeriod, SocialSearchSort, SocialSearchVideoKind, SubGateName, SurroundDirection, TrackedCompetitor, TranscribeLane, TranscribeProvider, Transcript, USAGE_GROUP_BYS, UpdateCardActionInput, UpdateCollectionInput, UpdateCompetitorInput, UpdateSavedPostInput, UsageGroupBy, UsageLogEntry, UsageQuery, UsageReport, UsageReportRow, UsageReportTotals, UsageVarianceRow, VideoCharacterReference, VideoCharacterVoice, VideoDepthColormap, VideoDepthModelSize, VideoDepthProvider, VideoDepthResolution, Voice, VoiceClone, VoiceLibraryParams, VoiceLibraryResponse, WORKSPACE_HEADER, WorkflowExport, WorkflowExportCharacter, WorkflowExportLocation, WorkflowExportObject, WorkspaceMemberView, WorkspaceRole, WorkspaceSettings, WorkspaceSummary, WorkspaceView, nodeStateMayCarryOutput, unwrapEditPlanOutput } from '@nodaro/shared';
4
- import { DirectionFields, SubjectFields, PersonValue, WizardNodeContext, WizardQuestion, WizardSelection, RecommendedModel, FactoryPreset } from '@nodaro/prompts';
5
- export { PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PersonValue, RecommendedModel, WizardNodeContext, WizardOption, WizardQuestion, WizardSelection, buildPersonHints } from '@nodaro/prompts';
1
+ import { GenericNode, GenericEdge, ConnectedReference, DescribedReference, CharacterMotionMetadata } from '@nodaro/shared/types';
2
+ export { ConnectedReference, DescribedReference, GenericEdge, GenericNode } from '@nodaro/shared/types';
3
+ import { WorkflowExport, WorkflowImportReport, ExecutionOutcome, NodeExecutionStateWire, ReduceStrategyId, ReduceMeta } from '@nodaro/shared/workflow';
4
+ export { ExecutionOutcome, NodeExecutionStatus, NodeSkipReason, OUTPUT_BEARING_NODE_STATUSES, ReduceMeta, ReduceStrategyId, WorkflowExport, WorkflowExportCharacter, WorkflowExportLocation, WorkflowExportObject, nodeStateMayCarryOutput } from '@nodaro/shared/workflow';
5
+ import { CollaboratorRole, WorkflowVisibility, OrganizationView, OrgKind, OrgSettings, OrgPage, OrgMemberView, MemberStatus, WorkspaceRole, InvitationDelivery, InvitationState, InvitationView, InvitationPreview, OrgAuditEntry, UsageQuery, UsageReport, UsageLogEntry, WorkspaceSummary, WorkspaceView, WorkspaceSettings, WorkspaceMemberView, JoinCodeView, MeOrganizations } from '@nodaro/shared/organizations';
6
+ export { InvitationDelivery, InvitationPreview, InvitationState, InvitationView, JoinCodeView, MeOrganizations, MemberStatus, OrgAuditEntry, OrgErrorCode, OrgKind, OrgMemberView, OrgPage, OrgRole, OrgSettings, OrgStatus, OrganizationSummary, OrganizationView, USAGE_GROUP_BYS, UsageGroupBy, UsageLogEntry, UsageQuery, UsageReport, UsageReportRow, UsageReportTotals, UsageVarianceRow, WORKSPACE_HEADER, WorkspaceMemberView, WorkspaceRole, WorkspaceSettings, WorkspaceSummary, WorkspaceView } from '@nodaro/shared/organizations';
7
+ import * as _nodaro_shared_scene3d from '@nodaro/shared/scene3d';
8
+ import { Scene3DReference, Scene3DPlan, Scene3DEditOperation, Scene3DV2EditOperation, Pro3DRenderSource, Pro3DRenderEngine, Pro3DRenderQuality, Pro3DRenderStyle, Scene3DJobOutputAny, Pro3DRenderJobOutput as Pro3DRenderJobOutput$1, Pro3DRenderCapabilities, Scene3DPlanV2, Pro3DRenderQuote as Pro3DRenderQuote$1, Scene3DAssetRef } from '@nodaro/shared/scene3d';
9
+ import { SocialSearchParams, SocialPost, SocialPlatform, SocialSearchMode, ListSavedPostsParams, ListSavedPostsResult, SavePostInput, SavedPost, SavedPostsLookupResult, UpdateSavedPostInput, TrackedCompetitor, CompetitorListResult, CompetitorDetail, CompetitorHistory, CompetitorCompareInput, CompetitorCompareResult, CreateCompetitorInput, UpdateCompetitorInput, CompetitorCardsResult, CompetitorLessonsResult, CompetitorActionsResult, CardActionResult, CompetitorDiscovery } from '@nodaro/shared/social';
10
+ export { ActionCard, ActionCardKind, ActionCardPriority, AdviceFamily, AdviceRecord, BrandLesson, BrandLessonKind, BrandLessons, BrandPlatformLessons, CardAction, CardActionResult, CardOutcome, CardOutcomeState, CardSnapshot, CardVerdict, CompetitorAboutPlatform, CompetitorAccountKey, CompetitorAccounts, CompetitorActionsResult, CompetitorBrandTally, CompetitorCardsResult, CompetitorCompareInput, CompetitorCompareResult, CompetitorDetail, CompetitorDiscovery, CompetitorHistory, CompetitorHistoryPlatform, CompetitorHistoryPoint, CompetitorLessonsResult, CompetitorListResult, CompetitorPeriod, CompetitorPeriodFollowers, CompetitorPeriodPlatform, CompetitorPlatformTally, CompetitorPost, CompetitorScan, CompetitorScanCounts, CompetitorScanSummary, CompetitorSchedule, CompetitorSearch, CompetitorSearchKind, CreateCompetitorInput, ListSavedPostsParams, ListSavedPostsResult, MarkCardInput, SavePostInput, SavedPost, SavedPostSource, SavedPostsLookupResult, SocialPlatform, SocialPost, SocialPostAuthor, SocialPostMedia, SocialPostMetrics, SocialSearchCount, SocialSearchMode, SocialSearchParams, SocialSearchPeriod, SocialSearchSort, SocialSearchVideoKind, TrackedCompetitor, UpdateCardActionInput, UpdateCompetitorInput, UpdateSavedPostInput } from '@nodaro/shared/social';
11
+ import { VideoCharacterReference, VideoOverlayRequest } from '@nodaro/shared/video';
12
+ export { VideoCharacterReference, VideoCharacterVoice } from '@nodaro/shared/video';
13
+ import { ModelInputAdjustment } from '@nodaro/shared/model-catalog';
14
+ import { VideoDepthProvider, VideoDepthModelSize, VideoDepthColormap, VideoDepthResolution, AudioFxPreset, OverlayAnchor, VideoMaskRequest, MaskCompositeRequest } from '@nodaro/shared/media';
15
+ export { AudioFxPreset, VideoDepthColormap, VideoDepthModelSize, VideoDepthProvider, VideoDepthResolution } from '@nodaro/shared/media';
16
+ import { DirectionFields, SubjectFields } from '@nodaro/prompts/prompt-builder';
17
+ import { OAuthScope, RecastSegmentPack, BrowseCommunityParams, BrowseCommunityResult, CommunityCard, CommunityFullDetail, CommunityEntityType, CloneListingResult, FavoriteListingResult, CommunityReportReason, ReportListingResult, PublishListingParams, PublishListingResult, SharedListing } from '@nodaro/shared/apps';
18
+ export { BrowseCommunityParams, BrowseCommunityResult, CloneListingResult, CommunityCard, CommunityEntityType, CommunityFullDetail, CommunityReportReason, CommunitySort, FavoriteListingResult, PublishListingParams, PublishListingResult, RECAST_SEGMENT_PACKS, RecastSegmentPack, ReportListingResult, SharedListing } from '@nodaro/shared/apps';
19
+ import { PersonValue } from '@nodaro/prompts/person';
20
+ export { PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PersonValue, buildPersonHints } from '@nodaro/prompts/person';
21
+ import { EntityStyle, CharacterAspectRatio, CharacterAttachColumn, LocationAssetType, LocationAttachColumn, SurroundDirection, ObjectAssetType, ObjectAttachColumn, ObjectAspectRatio, CreatureAttachColumn } from '@nodaro/shared/entities';
22
+ export { CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_STYLES, OBJECT_ASPECT_DEFAULTS as CREATURE_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS as CREATURE_ASPECT_OPTIONS, CREATURE_ATTACH_COLUMNS, CharacterAspectRatio, ObjectAspectRatio as CreatureAspectRatio, CreatureAttachColumn, EntityStyle, LOCATION_ASSET_TYPES, LOCATION_ATTACH_COLUMNS, LocationAssetType, LocationAttachColumn, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ATTACH_COLUMNS, ObjectAspectRatio, ObjectAssetType, ObjectAttachColumn, SURROUND_DIRECTIONS, SurroundDirection } from '@nodaro/shared/entities';
23
+ import { TtsProvider, DialogueProvider, TranscribeLane, TranscribeProvider } from '@nodaro/shared/models';
24
+ export { GeminiOmniVoicePresetId, TranscribeLane, TranscribeProvider } from '@nodaro/shared/models';
25
+ import { PipelineInput, PipelineStatus, PipelineMode, PipelineStageName, AnimateSubGate, ChatEnabledStage, ProposedChange, Voice, VoiceLibraryParams, VoiceLibraryResponse, VoiceClone } from '@nodaro/shared/pipeline';
26
+ export { AnimateSubGate, ChatEnabledStage, PipelineInput, PipelineMode, PipelineStageName, PipelineStatus, ProposedChange, SharedVoice, SubGateName, Voice, VoiceClone, VoiceLibraryParams, VoiceLibraryResponse } from '@nodaro/shared/pipeline';
27
+ import { WizardNodeContext, WizardQuestion, WizardSelection, RecommendedModel } from '@nodaro/prompts/doctrine';
28
+ export { RecommendedModel, WizardNodeContext, WizardOption, WizardQuestion, WizardSelection } from '@nodaro/prompts/doctrine';
29
+ import { CaptionLookId, SupportedFontName, CaptionStyle } from '@nodaro/shared/captions';
30
+ import { Transcript, Edl, EdlTargetAspect, EditPlanTier, EditPlanMode } from '@nodaro/shared/edl';
31
+ export { ChapterSet, EditPlanMode, EditPlanTier, Edl, EdlClipSet, Transcript, unwrapEditPlanOutput } from '@nodaro/shared/edl';
32
+ import { FactoryPreset } from '@nodaro/prompts/presets';
33
+ import { ListCollectionsResult, Collection, CreateCollectionInput, UpdateCollectionInput, ListCollectionRecordsParams, ListCollectionRecordsResult, CollectionRecord, BulkCollectionRecordsInput, BulkCollectionRecordsResult, CollectionRecordSource, AddCollectionRecordInput, AddCollectionRecordResult, CollectionExportFormat, CollectionUsage } from '@nodaro/shared/nodes';
34
+ export { AddCollectionRecordInput, AddCollectionRecordResult, Collection, CollectionCaps, CollectionDigestFormat, CollectionExportFormat, CollectionFieldValue, CollectionLimits, CollectionMedia, CollectionMediaType, CollectionRecord, CollectionRecordSource, CollectionWriteOutcome, CreateCollectionInput, ListCollectionRecordsParams, ListCollectionRecordsResult, ListCollectionsResult, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PromptAffixFields, UpdateCollectionInput } from '@nodaro/shared/nodes';
6
35
 
7
36
  /**
8
37
  * Auth provides the token used for `Authorization: Bearer <token>` on each request.
@@ -111,7 +140,13 @@ interface RunWorkflowParams {
111
140
  * not used). A run through the API has nobody to review a Preview render, so
112
141
  * a workflow whose Apply EDL render is set to Preview is refused
113
142
  * (`preview_review_required`) unless the run sets it to Final:
114
- * `{ [renderNodeId]: { quality: "final" } }`.
143
+ * `{ [renderNodeId]: { quality: "final" } }`. A Tighten Episode node with
144
+ * Review before render on is refused the same way (turn its review off). A
145
+ * failed execution records what held it — `preview_review_required` /
146
+ * `preview_render_nested` (a render), `…_review_on` (a review-on node) or
147
+ * `…_mixed` (both); match all six with `isPreviewRefusalCode` from
148
+ * `@nodaro/shared`. A review-on Tighten Episode fed by a List is refused
149
+ * with `use_case_review_list_driven`.
115
150
  */
116
151
  inputOverrides?: Record<string, Record<string, unknown>>;
117
152
  /**
@@ -486,7 +521,17 @@ interface Job {
486
521
  * `usage_logs.status`. `null` when there is no usage log to report. Never
487
522
  * changes the meaning of `credits` (the reserved amount) below. */
488
523
  credit_status?: CreditStatus | null;
524
+ /** The credits HELD when the job was accepted. Never changes — a job can
525
+ * settle below it; read {@link Job.credits_charged} for what it cost. */
489
526
  credits: number | null;
527
+ /**
528
+ * What the job actually cost once its hold settled. Can be lower than
529
+ * `credits` (the unused part goes back to the balance), `0` when the hold was
530
+ * refunded, `null` while the job is still running or when it reserved
531
+ * nothing of its own. Sum this — not `credits` — to total spend. Returned by
532
+ * `get()` and `list()`.
533
+ */
534
+ credits_charged?: number | null;
490
535
  job_type: string | null;
491
536
  created_at: string;
492
537
  started_at: string | null;
@@ -530,9 +575,9 @@ interface ListJobsPage {
530
575
  }
531
576
  /**
532
577
  * Lean job status returned by `GET /v1/jobs/:id/status`. Skips the
533
- * `input_data` JSONB and cost/timestamp columns. Its `output_data` still goes
578
+ * `input_data` JSONB and cost columns. Its `output_data` still goes
534
579
  * through the server-only nested-field redaction. Intended for poll loops that
535
- * only need progress/output/error.
580
+ * only need progress/output/error, and when the job finished.
536
581
  */
537
582
  interface JobStatusResult {
538
583
  id: string;
@@ -544,6 +589,8 @@ interface JobStatusResult {
544
589
  error_hint?: JobErrorHint | null;
545
590
  /** PR9: see {@link Job.credit_status}. */
546
591
  credit_status?: CreditStatus | null;
592
+ /** When the job finished, on the server's clock; null until it has. */
593
+ completed_at?: string | null;
547
594
  }
548
595
  declare class JobsResource {
549
596
  private client;
@@ -851,7 +898,7 @@ interface Scene3DEngineParams {
851
898
  /** Structured authoring inputs; reference roles are interpreted by the platform. */
852
899
  interface GenerateScene3DParams extends Record<string, unknown>, Scene3DEngineParams {
853
900
  /** Existing GLBs selected by immutable revision/artifact IDs. Requires an import-capable advanced engine. */
854
- inputAssets?: readonly _nodaro_shared.Scene3DInputAsset[];
901
+ inputAssets?: readonly _nodaro_shared_scene3d.Scene3DInputAsset[];
855
902
  prompt: string;
856
903
  durationSeconds?: number;
857
904
  fps?: number;
@@ -1065,10 +1112,9 @@ interface NodeDescriptor {
1065
1112
  * are processed asynchronously by a worker — the caller polls
1066
1113
  * `client.jobs.get(jobId)` until status is `completed`/`failed`.
1067
1114
  *
1068
- * A small subset (combine-text, split-text, composite — the "inline"
1069
- * orchestrator categories) execute synchronously and return their full
1070
- * result body. The shape is route-specific; consumers should branch on the
1071
- * presence of `jobId`.
1115
+ * Some node types (`meta-ads-scrape`, for one) answer synchronously and
1116
+ * return their full result body. The shape is route-specific; consumers
1117
+ * should branch on the presence of `jobId`.
1072
1118
  */
1073
1119
  /**
1074
1120
  * One parameter the server corrected because the chosen model does not accept
@@ -1196,6 +1242,12 @@ interface GenerateVideoParams extends StructuredReferenceParams, ReferenceCaptio
1196
1242
  * bound in the prompt as the opening frame. Default `"auto"`, which picks per
1197
1243
  * model. Ignored by models that take no reference images. */
1198
1244
  frameDelivery?: "auto" | "frame" | "reference";
1245
+ /** Seedance Draft (`seedance-2-5` only; ignored elsewhere): render a 480p
1246
+ * DRAFT — it costs the same as a 480p run and any `resolution` is replaced
1247
+ * by 480p. Finalize the take you like with `nodes.run("video-upscale",
1248
+ * { provider: "seedance-2-5-hd", sourceJobId })`: the same take, frame for
1249
+ * frame, at 1080p. Drafts are kept about 7 days. */
1250
+ draft?: boolean;
1199
1251
  [k: string]: unknown;
1200
1252
  }
1201
1253
  /**
@@ -1229,6 +1281,34 @@ interface TextToVideoParams extends StructuredReferenceParams, ReferenceCaptionP
1229
1281
  direction?: DirectionFields;
1230
1282
  /** SUBJECT ids (who is in the shot), folded ahead of the direction clauses. */
1231
1283
  subject?: SubjectFields;
1284
+ /** Seedance Draft (`seedance-2-5` only; ignored elsewhere): render a 480p
1285
+ * DRAFT — it costs the same as a 480p run and any `resolution` is replaced
1286
+ * by 480p. Finalize the take you like with `nodes.run("video-upscale",
1287
+ * { provider: "seedance-2-5-hd", sourceJobId })`: the same take, frame for
1288
+ * frame, at 1080p. Drafts are kept about 7 days. */
1289
+ draft?: boolean;
1290
+ [k: string]: unknown;
1291
+ }
1292
+ /**
1293
+ * Typed request body for `nodes.run("video-upscale", …)` / `runAndWait`.
1294
+ *
1295
+ * - `topaz` (default): upscale any `videoUrl` by `upscaleFactor`.
1296
+ * - `veo-1080p` / `veo-4k`: re-render a VEO generation by its `taskId`.
1297
+ * - `seedance-2-5-hd`: finalize a Seedance 2.5 DRAFT (a `draft: true` run) —
1298
+ * the same take re-rendered at 1080p at the draft's own length. Name the
1299
+ * draft by `sourceJobId` (its job id) or `taskId` (its providerTaskId). The
1300
+ * price comes from the draft (its length, and whether it used a reference
1301
+ * video), never from this body. A foreign, unfinished or non-draft source is
1302
+ * refused with a 4xx before anything is charged.
1303
+ *
1304
+ * Any other route field passes through.
1305
+ */
1306
+ interface VideoUpscaleParams {
1307
+ provider?: "topaz" | "veo-1080p" | "veo-4k" | "seedance-2-5-hd";
1308
+ videoUrl?: string;
1309
+ upscaleFactor?: "1" | "2" | "4";
1310
+ taskId?: string;
1311
+ sourceJobId?: string;
1232
1312
  [k: string]: unknown;
1233
1313
  }
1234
1314
  /**
@@ -1381,16 +1461,28 @@ declare class NodesResource {
1381
1461
  /**
1382
1462
  * Run a single node directly without wrapping it in a workflow. Posts
1383
1463
  * `params` as the request body to the node's API route. Most use
1384
- * `POST /v1/<type>`; scene authoring uses `/v1/3d-scene/generate|edit`,
1385
- * and render-video with a planType uses `/v1/render-video/plan`.
1464
+ * `POST /v1/<type>`; the rest are listed in `NODE_RUN_ROUTES` (exported by
1465
+ * `@nodaro/shared`): scene authoring uses `/v1/3d-scene/generate|edit`,
1466
+ * `llm-chat` uses `/v1/llm-chat/generate`, the Suno nodes `/v1/suno/…`, the
1467
+ * social post nodes `/v1/social/publish` (a per-platform node fills in its
1468
+ * `platform` when you leave it out), and render-video with a planType uses
1469
+ * `/v1/render-video/plan`.
1470
+ *
1471
+ * A node type with no route of its own (`NODE_TYPES_WITHOUT_RUN_ROUTE`, e.g.
1472
+ * `modify-image`, which runs through `image-to-image`) rejects with a
1473
+ * {@link NodaroError} of code `node_not_runnable` naming what to run
1474
+ * instead, without calling the API. A type that runs only inside a workflow
1475
+ * (an input, trigger, utility or parameter node such as `upload-image`)
1476
+ * rejects the same way once the API answers that it has no such route; a
1477
+ * 404 about a missing resource stays a `NotFoundError`.
1386
1478
  *
1387
1479
  * This is the SDK equivalent of the MCP server's verb tools — and the
1388
1480
  * path the Nodaro CLI uses for `nodaro nodes run <type>`.
1389
1481
  *
1390
1482
  * Most node types are async: the response includes `{ jobId }` and the
1391
1483
  * actual generation runs on a worker. Poll `client.jobs.get(jobId)` until
1392
- * completed. Inline node types (combine-text, etc.) return their full
1393
- * result synchronously without a `jobId` field.
1484
+ * completed. Synchronous node types (`meta-ads-scrape`, etc.) return their
1485
+ * full result without a `jobId` field.
1394
1486
  *
1395
1487
  * @param type Node type slug — must match an entry in the registry
1396
1488
  * returned by `list()` (e.g. "generate-image").
@@ -1405,6 +1497,7 @@ declare class NodesResource {
1405
1497
  run(type: "text-to-speech", params: TextToSpeechParams): Promise<RunNodeResult>;
1406
1498
  run(type: "generate-video", params?: GenerateVideoParams): Promise<RunNodeResult>;
1407
1499
  run(type: "text-to-video", params: TextToVideoParams): Promise<RunNodeResult>;
1500
+ run(type: "video-upscale", params: VideoUpscaleParams): Promise<RunNodeResult>;
1408
1501
  run(type: "assemble-narrated-video", params?: AssembleNarratedVideoParams): Promise<RunNodeResult>;
1409
1502
  run(type: "social-search", params: SocialSearchParams, options?: RunNodeOptions): Promise<RunNodeResult>;
1410
1503
  run(type: "video-depth", params: VideoDepthParams, options?: RunNodeOptions): Promise<RunNodeResult>;
@@ -1444,6 +1537,7 @@ declare class NodesResource {
1444
1537
  runAndWait(type: "text-to-speech", params: TextToSpeechParams, opts?: RunAndWaitOptions): Promise<NodeJobOutput>;
1445
1538
  runAndWait(type: "generate-video", params?: GenerateVideoParams, opts?: RunAndWaitOptions): Promise<NodeJobOutput>;
1446
1539
  runAndWait(type: "text-to-video", params: TextToVideoParams, opts?: RunAndWaitOptions): Promise<NodeJobOutput>;
1540
+ runAndWait(type: "video-upscale", params: VideoUpscaleParams, opts?: RunAndWaitOptions): Promise<NodeJobOutput>;
1447
1541
  runAndWait(type: "assemble-narrated-video", params?: AssembleNarratedVideoParams, opts?: RunAndWaitOptions): Promise<NodeJobOutput>;
1448
1542
  runAndWait(type: "social-search", params: SocialSearchParams, opts?: RunAndWaitOptions): Promise<SocialSearchJobOutput>;
1449
1543
  runAndWait(type: "video-depth", params: VideoDepthParams, opts?: RunAndWaitOptions): Promise<NodeJobOutput>;
@@ -5410,6 +5504,20 @@ declare class MediaResource {
5410
5504
  }): Promise<{
5411
5505
  jobId: string;
5412
5506
  }>;
5507
+ /**
5508
+ * Cut a video and/or an audio file into consecutive parts
5509
+ * (`POST /v1/split-media`). Every part is at most `chunkDuration` seconds and
5510
+ * at least `minPartDuration` (default 4, never above `chunkDuration`) — a
5511
+ * short leftover is evened out with the parts before it. Video is cut on
5512
+ * whole frames with each part's sound matching its picture; audio parts are
5513
+ * sample-exact, in `audioFormat` (`mp3` default / `wav` / `aac`). With both
5514
+ * sources each is split on its own. At most 200 parts per input. Poll
5515
+ * `jobs.get(jobId)`; the parts are on the completed job's `output_data` —
5516
+ * see {@link SplitMediaOutput}.
5517
+ */
5518
+ splitMedia(input: SplitMediaInput): Promise<{
5519
+ jobId: string;
5520
+ }>;
5413
5521
  /**
5414
5522
  * Turn one still image + one audio track into an MP4
5415
5523
  * (`POST /v1/still-to-video`) — locally rendered (FFmpeg), no AI model,
@@ -5547,6 +5655,32 @@ interface VideoMetadata {
5547
5655
  isLive?: boolean;
5548
5656
  [key: string]: unknown;
5549
5657
  }
5658
+ /** Body of {@link MediaResource.splitMedia} (`POST /v1/split-media`). At least one of `videoUrl` / `audioUrl`. */
5659
+ interface SplitMediaInput {
5660
+ /** Video to split. */
5661
+ videoUrl?: string;
5662
+ /** Audio file to split (split on its own when a video is given too). */
5663
+ audioUrl?: string;
5664
+ /** The longest a part may be, in seconds (at least 1). Every part is at most this long. */
5665
+ chunkDuration: number;
5666
+ /** The shortest a part may be, in seconds (0 or more, default 4). Must not exceed `chunkDuration` (400 otherwise). */
5667
+ minPartDuration?: number;
5668
+ /** Format of the audio parts. Default `mp3`. */
5669
+ audioFormat?: "mp3" | "wav" | "aac";
5670
+ }
5671
+ /** A completed split-media job's `output_data`. */
5672
+ interface SplitMediaOutput {
5673
+ /** The video parts, in order (when a video was split). */
5674
+ videoUrls?: string[];
5675
+ /** The audio parts, in order (when an audio file was split). */
5676
+ audioUrls?: string[];
5677
+ /** The number of parts — the larger of the two lists. */
5678
+ chunkCount: number;
5679
+ /** Each part's exact length in seconds: the video parts' when a video was split, else the audio parts'. */
5680
+ partDurationsSec?: number[];
5681
+ /** The audio parts' lengths, only when BOTH a video and an audio file were split. */
5682
+ audioPartDurationsSec?: number[];
5683
+ }
5550
5684
  interface MediaProcessInput {
5551
5685
  sourceUrl: string;
5552
5686
  type: "video" | "audio";
@@ -5664,7 +5798,10 @@ declare class AudioResource {
5664
5798
  * `ratio` (1–20, overrides `amount`), `attackMs` (1–2000, default 20) and
5665
5799
  * `releaseMs` (10–9000, default 500) are optional fine controls. A ducked mix
5666
5800
  * sums its tracks rather than averaging them, so the voice keeps its level;
5667
- * the price is the same with or without a duck.
5801
+ * the price is the same with or without a duck. `endAt` (`"longest"`, the
5802
+ * default, or `"voice"`) says where the mix ends: `"voice"` ends it when the
5803
+ * voice (the `duck.under` track) ends (needs `duck`). A video URL is a track
5804
+ * too: its audio is mixed, and a video with no sound is a silent track.
5668
5805
  */
5669
5806
  mix(input: {
5670
5807
  audioUrls: string[];
@@ -5677,6 +5814,7 @@ declare class AudioResource {
5677
5814
  attackMs?: number;
5678
5815
  releaseMs?: number;
5679
5816
  };
5817
+ endAt?: "longest" | "voice";
5680
5818
  }): Promise<{
5681
5819
  jobId: string;
5682
5820
  }>;
@@ -5803,6 +5941,66 @@ interface ModelCostsResult {
5803
5941
  missing: string[];
5804
5942
  errors: string[];
5805
5943
  }
5944
+ /**
5945
+ * The two browser signals a claim reports — SHA-256 hex digests computed by
5946
+ * `@nodaro/sdk/signup-signals` (`collectSignupKeys`). Either may be absent:
5947
+ * a browser that cannot be measured still claims, and the server treats the
5948
+ * absence as what it is. Any other value is stored as absent server-side.
5949
+ */
5950
+ interface SignupKeys {
5951
+ browserKey?: string;
5952
+ deviceKey?: string;
5953
+ }
5954
+ /** The answer of `POST /v1/credits/claim-signup-grant`. */
5955
+ interface SignupGrantClaimResult {
5956
+ /** Where the account's free grant stands after this call. */
5957
+ state: "unclaimed" | "granted" | "withheld" | "revoked";
5958
+ /** True only when THIS call moved the credits — a repeat is `false` with the same state. */
5959
+ granted: boolean;
5960
+ }
5961
+ /**
5962
+ * One row of `GET /v1/credits/transactions` — a run's reservation and how it
5963
+ * settled.
5964
+ *
5965
+ * Which amount to read: a run first HOLDS credits and is then settled — charged
5966
+ * all or part of the hold, the rest returned. `credits_charged` is what the run
5967
+ * cost (`null` while the hold is still open, `0` once refunded); sum it for
5968
+ * spend. `credits_reserved` is the hold, which never changes. `credits_used`
5969
+ * is the same hold under its original name, kept for existing integrations.
5970
+ */
5971
+ interface CreditTransaction {
5972
+ id: string;
5973
+ /** ISO-8601. Also the paging cursor: pass the last row's value as `cursor`. */
5974
+ created_at: string;
5975
+ /** Settled charge; `null` while `status` is `"reserved"`, `0` when refunded. */
5976
+ credits_charged: number | null;
5977
+ /** The hold taken when the run was accepted. */
5978
+ credits_reserved: number | null;
5979
+ /** The hold, under its original name. Prefer `credits_charged`. */
5980
+ credits_used: number | null;
5981
+ /** The model or operation the credits were for. */
5982
+ action: string | null;
5983
+ provider: string | null;
5984
+ /** Reservation lifecycle: `"reserved"`, `"committed"` or `"refunded"`. */
5985
+ status: string | null;
5986
+ /** The caller's own billing details for the run (model, which pool paid, …). */
5987
+ metadata: Record<string, unknown>;
5988
+ /** `"workspace"` when a class or team budget paid, not your balance. */
5989
+ payer: "user" | "workspace";
5990
+ workspaceId: string | null;
5991
+ }
5992
+ /** A page of {@link CreditTransaction}s, newest first. */
5993
+ interface CreditTransactionsPage {
5994
+ data: CreditTransaction[];
5995
+ /** Pass as `cursor` for the next page; `null` when there are no more rows. */
5996
+ nextCursor: string | null;
5997
+ }
5998
+ interface CreditTransactionsOptions {
5999
+ /** Rows per page, 1–50 (server default 20). */
6000
+ limit?: number;
6001
+ /** The `nextCursor` of the previous page. */
6002
+ cursor?: string;
6003
+ }
5806
6004
  declare class CreditsResource {
5807
6005
  private client;
5808
6006
  constructor(client: NodaroClient);
@@ -5812,6 +6010,14 @@ declare class CreditsResource {
5812
6010
  * other typed errors on the usual statuses.
5813
6011
  */
5814
6012
  balance(): Promise<UserBalance>;
6013
+ /**
6014
+ * `GET /v1/credits/transactions` → one page of the caller's credit
6015
+ * transactions, newest first, with `nextCursor` for the next page (`null`
6016
+ * at the end). Read `credits_charged` for what each run cost — it can be
6017
+ * below the hold (`credits_reserved`) and is `null` while the hold is open.
6018
+ * Cloud-only route: a self-hosted instance answers 404.
6019
+ */
6020
+ transactions(options?: CreditTransactionsOptions): Promise<CreditTransactionsPage>;
5815
6021
  /**
5816
6022
  * `POST /v1/credits/model-costs` → per-identifier credit cost, for editor
5817
6023
  * cost previews. Capped at the first {@link MODEL_COSTS_LIMIT} identifiers
@@ -5819,6 +6025,19 @@ declare class CreditsResource {
5819
6025
  * fault-isolation shape verbatim (see {@link ModelCostsResult}).
5820
6026
  */
5821
6027
  modelCosts(ids: string[]): Promise<ModelCostsResult>;
6028
+ /**
6029
+ * `POST /v1/credits/claim-signup-grant` → claims the account's free signup
6030
+ * grant, once, with the browser signals of the page making the claim.
6031
+ *
6032
+ * Call it once per page load as soon as the session is known, and never
6033
+ * wait on it for rendering: it is idempotent (a decided account answers
6034
+ * with its state and `granted: false`), it costs the user nothing when it
6035
+ * fails (the next load asks again), and the signals are what make the
6036
+ * claim worth sending — collect them with `collectSignupKeys()` from
6037
+ * `@nodaro/sdk/signup-signals` and pass whatever came back, `{}` included.
6038
+ * Cloud-only route: a self-hosted instance answers 404.
6039
+ */
6040
+ claimSignupGrant(keys?: SignupKeys): Promise<SignupGrantClaimResult>;
5822
6041
  }
5823
6042
 
5824
6043
  /**
@@ -8672,6 +8891,90 @@ interface CameraSwitchInput {
8672
8891
  /** Optionally associate this run with a workflow execution (display only). */
8673
8892
  workflowId?: string;
8674
8893
  }
8894
+ /**
8895
+ * Input for {@link EditResource.tightenEpisode} and
8896
+ * {@link EditResource.estimateTightenEpisode}: one recording in, the tightened
8897
+ * episode out. Only `mediaUrl` is required; every other field left out takes
8898
+ * the node's default.
8899
+ */
8900
+ interface TightenEpisodeInput {
8901
+ /** The recording — a video or audio URL, up to 3 hours. */
8902
+ mediaUrl: string;
8903
+ /** Optional music bed, ducked under the voice and ending with the episode. */
8904
+ musicUrl?: string;
8905
+ /** `"video"` or `"audio"`; an audio recording always makes an audio episode. */
8906
+ output?: "video" | "audio";
8907
+ /**
8908
+ * Frame a video episode with Speaker View: an output aspect and a layout,
8909
+ * over automatic boxes on the speakers on screen. A layout the aspect does
8910
+ * not draw is snapped to one it does. `null` or absent: no framing.
8911
+ */
8912
+ framing?: {
8913
+ aspect: EdlTargetAspect;
8914
+ layout: "auto" | "single" | "side-by-side" | "stacked" | "grid" | "pip";
8915
+ } | null;
8916
+ /** Captions on a video episode (on by default). */
8917
+ captions?: boolean;
8918
+ /** The captions' look. */
8919
+ captionStyle?: CaptionStyle;
8920
+ /**
8921
+ * Stop at a quick preview for a person to review; render the full-quality
8922
+ * episode afterwards with {@link EditResource.continueUseCase}
8923
+ * (`mode: "render-final"`).
8924
+ */
8925
+ reviewBeforeRender?: boolean;
8926
+ /** The planner's tier. */
8927
+ planTier?: EditPlanTier;
8928
+ /** Editing instructions for the planner (up to 4 000 characters). */
8929
+ instructions?: string;
8930
+ /** A style guide for the planner (up to 4 000 characters). */
8931
+ styleGuide?: string;
8932
+ /** How far the music dips under the voice, 0–100 (default 75). */
8933
+ musicDuckAmount?: number;
8934
+ }
8935
+ /** What `tightenEpisode` and `continueUseCase` answer: the run's job to poll. */
8936
+ interface TightenEpisodeJobResult extends EditJobResult {
8937
+ /** The run's execution (absent on a deduplicated retry). */
8938
+ executionId?: string;
8939
+ /** `true` when an `Idempotency-Key` retry found the run already started: `jobId` is that run. */
8940
+ deduped?: boolean;
8941
+ }
8942
+ /**
8943
+ * What a Tighten Episode run is estimated at (`data`). Every credit amount is 0
8944
+ * on an edition without credits; `durationSec` is `null` when the recording's
8945
+ * length could not be read.
8946
+ */
8947
+ interface TightenEpisodeEstimate {
8948
+ /** The whole run: its steps plus the fee. */
8949
+ totalCredits: number;
8950
+ /** The steps at their own rates. */
8951
+ stepsCredits: number;
8952
+ /** The per-run fee. */
8953
+ feeCredits: number;
8954
+ /** The recording's length, in seconds. */
8955
+ durationSec: number | null;
8956
+ }
8957
+ /** Input for {@link EditResource.continueUseCase}. */
8958
+ interface UseCaseContinueInput {
8959
+ /** The run to continue: the job `tightenEpisode` (or an earlier continuation) answered. */
8960
+ jobId: string;
8961
+ /**
8962
+ * `"from-failed"` re-runs what did not finish of a failed run;
8963
+ * `"render-final"` renders the full-quality episode after a review-on preview.
8964
+ */
8965
+ mode: "from-failed" | "render-final";
8966
+ /** Render final only: the reviewer's edit of the plan (an EDL). */
8967
+ editedEdl?: unknown;
8968
+ }
8969
+ /** Per-call options for the Tighten Episode requests. */
8970
+ interface UseCaseRequestOptions {
8971
+ /**
8972
+ * Sent as the `Idempotency-Key` header. Reuse the same value when retrying
8973
+ * the same request and the server answers the run it already started
8974
+ * (`deduped: true`) instead of starting a second one.
8975
+ */
8976
+ idempotencyKey?: string;
8977
+ }
8675
8978
  /**
8676
8979
  * Editorial primitives for podcast / long-form video editing, single-camera
8677
8980
  * and multicam: measure the cameras' offsets ({@link audioSync}), plan the cut
@@ -8684,11 +8987,17 @@ interface CameraSwitchInput {
8684
8987
  * - {@link editPlan} and {@link cameraSwitch} run on nodaro.ai; a self-hosted
8685
8988
  * install relays them once it is connected (a 503
8686
8989
  * `code: "nodaro_connection_required"` otherwise).
8990
+ * - {@link tightenEpisode} runs the whole chain (transcribe, plan, render, and
8991
+ * optionally captions, music and framing) in one call. It is core, but a
8992
+ * self-hosted install needs a nodaro.ai connection for the steps that run
8993
+ * there (a 503 `code: "nodaro_connection_required"` otherwise).
8994
+ * {@link continueUseCase} continues one of its runs.
8687
8995
  * - {@link remapTranscript} is a PURE local transform (no request) — the same
8688
8996
  * remap `applyEdl` performs on its `transcript`, exposed for callers that hold
8689
8997
  * an EDL and a transcript and only want the re-timed transcript.
8690
8998
  *
8691
- * Every request method returns {@link EditJobResult}; poll the `jobId` with
8999
+ * Every request method except {@link estimateTightenEpisode} (a quote,
9000
+ * `{ data }`) returns {@link EditJobResult}; poll the `jobId` with
8692
9001
  * `client.jobs.getStatus(jobId)`.
8693
9002
  */
8694
9003
  declare class EditResource {
@@ -8716,6 +9025,35 @@ declare class EditResource {
8716
9025
  * "invalid_edl"`) before any credits are reserved.
8717
9026
  */
8718
9027
  applyEdl(input: ApplyEdlInput): Promise<EditJobResult>;
9028
+ /**
9029
+ * Tighten Episode (`POST /v1/tighten-episode`): tighten a podcast recording
9030
+ * in one call — transcribe, cut the silences and filler, render, with
9031
+ * optional captions, music and framing. Answers the run's job to poll; its
9032
+ * `output_data` holds the episode. The run is priced as its steps at their own
9033
+ * rates plus the listed per-run fee. Quote it first with
9034
+ * {@link estimateTightenEpisode}.
9035
+ */
9036
+ tightenEpisode(input: TightenEpisodeInput, options?: UseCaseRequestOptions): Promise<TightenEpisodeJobResult>;
9037
+ /**
9038
+ * What a Tighten Episode run is estimated at (`POST /v1/tighten-episode/estimate`):
9039
+ * its steps at their own rates plus its per-run fee. Nothing is created or
9040
+ * charged. The estimate leans high: the render is priced at the recording's
9041
+ * full length, while the charge follows the minutes actually rendered.
9042
+ */
9043
+ estimateTightenEpisode(input: TightenEpisodeInput): Promise<{
9044
+ data: TightenEpisodeEstimate;
9045
+ }>;
9046
+ /**
9047
+ * Continue a Tighten Episode run as a new job (`POST /v1/tighten-episode/continue`):
9048
+ * `"from-failed"` keeps the steps that finished and runs the rest (the fee is
9049
+ * held again; the failed run's was refunded); `"render-final"` renders the
9050
+ * full-quality episode after a review-on preview, with the preview's
9051
+ * settings and no fee. A refusal that names another job
9052
+ * (`already_running`, `continuation_superseded`,
9053
+ * `render_final_already_rendered`) throws a `ContinuationRefusedError`
9054
+ * carrying that `jobId`.
9055
+ */
9056
+ continueUseCase(input: UseCaseContinueInput, options?: UseCaseRequestOptions): Promise<TightenEpisodeJobResult>;
8719
9057
  /**
8720
9058
  * Plan a transcript-driven cut (`POST /v1/edit-plan`). Reads a timed
8721
9059
  * transcript (plus optional silence ranges) and the media sources, and plans
@@ -8989,6 +9327,24 @@ declare class StudioOpError extends NodaroError {
8989
9327
  /** Zero-based index into the `ops` array that was sent. */
8990
9328
  opIndex: number);
8991
9329
  }
9330
+ /**
9331
+ * A 409 that names the job to turn to instead: continuing a use-case run
9332
+ * (`client.edit.continueUseCase`) answers `already_running` (a continuation is
9333
+ * under way, or one that already completed — follow `jobId`),
9334
+ * `continuation_superseded` (a later continuation failed too — continue
9335
+ * `jobId` instead) or `render_final_already_rendered` (a Render final with this
9336
+ * very edit already completed — `jobId` holds the result). `code` and `status`
9337
+ * are what the server sent. Selected for exactly those three codes when the
9338
+ * answer carries a top-level `jobId`; every other 409 stays a plain
9339
+ * `NodaroError`.
9340
+ */
9341
+ declare class ContinuationRefusedError extends NodaroError {
9342
+ /** The job the refusal names. */
9343
+ readonly jobId: string;
9344
+ constructor(message: string, code: string,
9345
+ /** The job the refusal names. */
9346
+ jobId: string);
9347
+ }
8992
9348
  /**
8993
9349
  * HTTP 422 `job_blocked`. A job policy registered by this deployment refused
8994
9350
  * the generation **before it ran** — no job was created, nothing was reserved
@@ -9142,7 +9498,11 @@ interface ApiErrorBody {
9142
9498
  opIndex?: number;
9143
9499
  [key: string]: unknown;
9144
9500
  };
9501
+ /** The server framework's own top-level message, e.g. for a route it does not have. */
9502
+ message?: unknown;
9503
+ /** A refusal that names another job (see {@link ContinuationRefusedError}). */
9504
+ jobId?: unknown;
9145
9505
  }
9146
9506
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
9147
9507
 
9148
- export { type AccessTokenResponse, type AddCaptionsInput, type AddCollaboratorInput, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApplyEdlInput, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, type AssembleNarratedVideoParams, AudioResource, type AudioSyncInput, type AudioSyncOffset, type AudioSyncResult, type AudioSyncSource, type Auth, type BranchPipelineInput, type BranchPipelineResult, type BrowseTemplatesParams, type BrowseTemplatesResult, CREATURE_ASSET_TYPES, CallbackAuth, type CameraSwitchInput, type CancelExecutionParams, type CancelJobResult, type CaptionEntry, type CaptionLookInput, type CaptionSegmentInput, type CatalogsListResponse, CatalogsResource, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, type CloneTemplateParams, type CloneTemplateResult, type Collaborator, CollectionsResource, CommunityResource, CompetitorsResource, type ContinueVideoProResult, type CopilotMemorySavedFrameData, type CopilotMessage, type CopilotMessagePart, type CopilotMetadataFrameData, type CopilotModelTier, CopilotResource, type CopilotRunMode, type CopilotRunProposalFrameData, type CopilotRunProposalNode, type CopilotStreamFrame, type CopilotStreamOptions, type CopilotSurface, type CopilotThread, type CopilotThreadWorkflow, type CopilotToolCallFrameData, type CopilotWiredAsset, type CopilotWorkflowCreatedFrameData, type CopilotWorkflowUpdateFrameData, type CreateCopilotThreadInput, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateOrgInput, type CreateProjectInput, type CreateRecastInput, type CreateShotInput, type CreateWorkflowInput, type CreateWorkspaceInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, type CreatureVoice, CreaturesResource, type CreditStatus, CreditsResource, type DeleteAppRunResult, type DeleteJobResult, type DeveloperApp, type DeveloperAppKind, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DownloadVideoProgress, type DroppedCollaborator, type DubbingInput, type DuplicateCharacterInput, type EditJobResult, type EditPlanInput, type EditPlanSource, EditResource, type EditScene3DParams, type EnhanceInput, type EstimateRecastInput, type EstimateRecastRescoreInput, 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 GenerateLocationMotionInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateScene3DParams, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetCharacterOptions, type GetPickerCatalogOptions, type GetProductionOptions, InsufficientCreditsError, type InviteInput, type Job, JobAbortedError, JobBlockedError, type JobErrorHint, JobFailedError, JobHeldError, 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 ListInvitationsOptions, type ListJobsPage, type ListJobsParams, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListModelsOptions, type ListObjectsParams, type ListStudioProductionsOptions, type ListWorkflowsParams, LlmResource, type LlmStructuredInput, type LlmStructuredJobInput, type LlmStructuredJobOutput, type LlmStructuredResult, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type MediaProcessInput, type MediaProcessResult, MediaResource, type ModelCostsResult, type ModelFamilyGroup, 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, OrganizationsResource, type OutputType, type OverlayPlacement, type PendingApproval, type PickerCatalog, type PickerCatalogSection, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, type PipelineRecord, type PipelineTimeline, PipelinesResource, type PolicyBlockHint, PresetsResource, type Pro3DRenderJobOutput, type Pro3DRenderParams, type Pro3DRenderQuote, type Pro3DRenderRunOptions, type Pro3DRenderRunParams, type Project, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, type ProjectedCatalogSection, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type RecastAudioLayerName, type RecastAudioManifestV1, type RecastAudioMix, type RecastAudioMixControl, type RecastAudioSectionReplacement, type RecastEstimate, type RecastRescoreOperation, type RecastRescoreQuote, type RecastRescoreReplacement, type RecastRescoreRequestV2, type RecastRescoreResponse, RecastResource, type RecastRunSnapshot, type RecastScriptImportResult, type RecastScriptValidation, type RecastScriptValidationError, type ReduceInput, ReduceResource, type ReduceResult, type ReferenceCaptionParams, type ReferencePhoto, type ReferencePhotoKind, type RenderFinalParams, type RenderFinalQuote, type RenderScene3DParams, type ResolveRecastGateInput, type RetainedScene3DEditParams, type RetainedScene3DEditResult, type RotateSecretResult, type RunAndWaitOptions, type RunAppOptions, type RunManyResult, type RunNodeAdjustment, type RunNodeOptions, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, SCENE3D_DELIVERY_ASSET_USAGE, type SafetyBlockHint, SavedPostsResource, type Scene3DAuthoringEngine, type Scene3DCapabilities, type Scene3DDelivery, type Scene3DDeliveryAsset, type Scene3DDeliveryAssetKind, type Scene3DJobOutput, Scene3DResource, type SharedWorkflow, type Shot, type ShotEntityRef, type ShotMode, ShotsResource, type SilenceDetectInput, type SilenceRanges, type SocialSearchJobOutput, StaticTokenAuth, type StopVideoProResult, StorageExceededError, type StructuredReferenceParams, type StudioClientRequestId, type StudioCloneRequest, type StudioCreateProductionRequest, type StudioDescribeRequest, type StudioDocumentJson, type StudioEditInput, type StudioExportPlanOptions, type StudioExportPlanResponse, type StudioExportStep, type StudioFrameRequest, type StudioGenerateEstimate, type StudioGenerateOptions, type StudioGenerateRequest, type StudioGenerateResponse, type StudioGenerateResult, type StudioGenerationReply, type StudioImportSummary, type StudioJobStartedResponse, type StudioKeyframeAcceptanceInput, type StudioKeyframeGenerationInput, type StudioKeyframeRecord, type StudioListProductionsResponse, type StudioMediaResponse, type StudioMusicRequest, type StudioOpClass, StudioOpError, type StudioOpsDryRunReceipt, type StudioOpsDryRunResponse, type StudioOpsImpact, type StudioOpsReceipt, type StudioOpsRequest, type StudioOpsResponse, type StudioPlanIssue, StudioPreviewAppliedError, StudioPreviewUnavailable, type StudioProduction, type StudioProductionCapabilities, type StudioProductionDetail, type StudioProductionRecord, type StudioProductionReply, type StudioProductionResponse, StudioProductionsResource, type StudioReconcileResponse, StudioResource, type StudioRevoiceRequest, type StudioShotGenerationInput, type StudioSkillResponse, type StudioValidatePlanResponse, type StudioVideoLane, type StudioVoiceRequest, type Template, type TemplateBrowseCard, type TemplateSort, TemplatesResource, type TextToPickerParams, type TextToPickerResult, type TextToSpeechParams, type TextToVideoParams, type TranscribeJobOutput, type TranscribeWord, 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 VideoDepthParams, type VideoMetadata, VideoProResource, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, type WorkflowConflictCode, WorkflowConflictError, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, WorkspacesResource, buildPersonSeedPrompt, createClient, isStudioGenerateEstimate, supabaseAuth, throwFromResponse };
9508
+ export { type AccessTokenResponse, type AddCaptionsInput, type AddCollaboratorInput, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApplyEdlInput, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, type AssembleNarratedVideoParams, AudioResource, type AudioSyncInput, type AudioSyncOffset, type AudioSyncResult, type AudioSyncSource, type Auth, type BranchPipelineInput, type BranchPipelineResult, type BrowseTemplatesParams, type BrowseTemplatesResult, CREATURE_ASSET_TYPES, CallbackAuth, type CameraSwitchInput, type CancelExecutionParams, type CancelJobResult, type CaptionEntry, type CaptionLookInput, type CaptionSegmentInput, type CatalogsListResponse, CatalogsResource, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, type CloneTemplateParams, type CloneTemplateResult, type Collaborator, CollectionsResource, CommunityResource, CompetitorsResource, ContinuationRefusedError, type ContinueVideoProResult, type CopilotMemorySavedFrameData, type CopilotMessage, type CopilotMessagePart, type CopilotMetadataFrameData, type CopilotModelTier, CopilotResource, type CopilotRunMode, type CopilotRunProposalFrameData, type CopilotRunProposalNode, type CopilotStreamFrame, type CopilotStreamOptions, type CopilotSurface, type CopilotThread, type CopilotThreadWorkflow, type CopilotToolCallFrameData, type CopilotWiredAsset, type CopilotWorkflowCreatedFrameData, type CopilotWorkflowUpdateFrameData, type CreateCopilotThreadInput, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateOrgInput, type CreateProjectInput, type CreateRecastInput, type CreateShotInput, type CreateWorkflowInput, type CreateWorkspaceInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, type CreatureVoice, CreaturesResource, type CreditStatus, type CreditTransaction, type CreditTransactionsOptions, type CreditTransactionsPage, CreditsResource, type DeleteAppRunResult, type DeleteJobResult, type DeveloperApp, type DeveloperAppKind, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DownloadVideoProgress, type DroppedCollaborator, type DubbingInput, type DuplicateCharacterInput, type EditJobResult, type EditPlanInput, type EditPlanSource, EditResource, type EditScene3DParams, type EnhanceInput, type EstimateRecastInput, type EstimateRecastRescoreInput, 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 GenerateLocationMotionInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateScene3DParams, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetCharacterOptions, type GetPickerCatalogOptions, type GetProductionOptions, InsufficientCreditsError, type InviteInput, type Job, JobAbortedError, JobBlockedError, type JobErrorHint, JobFailedError, JobHeldError, 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 ListInvitationsOptions, type ListJobsPage, type ListJobsParams, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListModelsOptions, type ListObjectsParams, type ListStudioProductionsOptions, type ListWorkflowsParams, LlmResource, type LlmStructuredInput, type LlmStructuredJobInput, type LlmStructuredJobOutput, type LlmStructuredResult, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type MediaProcessInput, type MediaProcessResult, MediaResource, type ModelCostsResult, type ModelFamilyGroup, 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, OrganizationsResource, type OutputType, type OverlayPlacement, type PendingApproval, type PickerCatalog, type PickerCatalogSection, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, type PipelineRecord, type PipelineTimeline, PipelinesResource, type PolicyBlockHint, PresetsResource, type Pro3DRenderJobOutput, type Pro3DRenderParams, type Pro3DRenderQuote, type Pro3DRenderRunOptions, type Pro3DRenderRunParams, type Project, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, type ProjectedCatalogSection, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type RecastAudioLayerName, type RecastAudioManifestV1, type RecastAudioMix, type RecastAudioMixControl, type RecastAudioSectionReplacement, type RecastEstimate, type RecastRescoreOperation, type RecastRescoreQuote, type RecastRescoreReplacement, type RecastRescoreRequestV2, type RecastRescoreResponse, RecastResource, type RecastRunSnapshot, type RecastScriptImportResult, type RecastScriptValidation, type RecastScriptValidationError, type ReduceInput, ReduceResource, type ReduceResult, type ReferenceCaptionParams, type ReferencePhoto, type ReferencePhotoKind, type RenderFinalParams, type RenderFinalQuote, type RenderScene3DParams, type ResolveRecastGateInput, type RetainedScene3DEditParams, type RetainedScene3DEditResult, type RotateSecretResult, type RunAndWaitOptions, type RunAppOptions, type RunManyResult, type RunNodeAdjustment, type RunNodeOptions, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, SCENE3D_DELIVERY_ASSET_USAGE, type SafetyBlockHint, SavedPostsResource, type Scene3DAuthoringEngine, type Scene3DCapabilities, type Scene3DDelivery, type Scene3DDeliveryAsset, type Scene3DDeliveryAssetKind, type Scene3DJobOutput, Scene3DResource, type SharedWorkflow, type Shot, type ShotEntityRef, type ShotMode, ShotsResource, type SignupGrantClaimResult, type SignupKeys, type SilenceDetectInput, type SilenceRanges, type SocialSearchJobOutput, type SplitMediaInput, type SplitMediaOutput, StaticTokenAuth, type StopVideoProResult, StorageExceededError, type StructuredReferenceParams, type StudioClientRequestId, type StudioCloneRequest, type StudioCreateProductionRequest, type StudioDescribeRequest, type StudioDocumentJson, type StudioEditInput, type StudioExportPlanOptions, type StudioExportPlanResponse, type StudioExportStep, type StudioFrameRequest, type StudioGenerateEstimate, type StudioGenerateOptions, type StudioGenerateRequest, type StudioGenerateResponse, type StudioGenerateResult, type StudioGenerationReply, type StudioImportSummary, type StudioJobStartedResponse, type StudioKeyframeAcceptanceInput, type StudioKeyframeGenerationInput, type StudioKeyframeRecord, type StudioListProductionsResponse, type StudioMediaResponse, type StudioMusicRequest, type StudioOpClass, StudioOpError, type StudioOpsDryRunReceipt, type StudioOpsDryRunResponse, type StudioOpsImpact, type StudioOpsReceipt, type StudioOpsRequest, type StudioOpsResponse, type StudioPlanIssue, StudioPreviewAppliedError, StudioPreviewUnavailable, type StudioProduction, type StudioProductionCapabilities, type StudioProductionDetail, type StudioProductionRecord, type StudioProductionReply, type StudioProductionResponse, StudioProductionsResource, type StudioReconcileResponse, StudioResource, type StudioRevoiceRequest, type StudioShotGenerationInput, type StudioSkillResponse, type StudioValidatePlanResponse, type StudioVideoLane, type StudioVoiceRequest, type Template, type TemplateBrowseCard, type TemplateSort, TemplatesResource, type TextToPickerParams, type TextToPickerResult, type TextToSpeechParams, type TextToVideoParams, type TightenEpisodeEstimate, type TightenEpisodeInput, type TightenEpisodeJobResult, type TranscribeJobOutput, type TranscribeWord, 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 UseCaseContinueInput, type UseCaseRequestOptions, type UserBalance, type UserIdentity, type VcpAnalysis, type VcpAnalysisSpeaker, type VcpAnalyzeInput, type VcpExportInput, type VcpExportTrack, type VideoDepthParams, type VideoMetadata, VideoProResource, type VideoUpscaleParams, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, type WorkflowConflictCode, WorkflowConflictError, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, WorkspacesResource, buildPersonSeedPrompt, createClient, isStudioGenerateEstimate, supabaseAuth, throwFromResponse };