@nodaro/sdk 1.13.1 → 1.15.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
@@ -1204,6 +1204,13 @@ interface ListCharactersParams {
1204
1204
  * server default — passing it just narrows further.
1205
1205
  */
1206
1206
  limit?: number;
1207
+ /** Opaque cursor from a prior page's `nextCursor` (fetches the next page). */
1208
+ cursor?: string;
1209
+ }
1210
+ interface ListCharactersResult {
1211
+ characters: Character[];
1212
+ /** Pass back as `cursor` for the next page; `null` when there are no more. */
1213
+ nextCursor: string | null;
1207
1214
  }
1208
1215
  interface DuplicateCharacterInput {
1209
1216
  /** Optional canvas node id to bind the new row to. */
@@ -1370,10 +1377,24 @@ declare class CharactersResource {
1370
1377
  * pass `archived: true` to fetch soft-deleted rows for an "archive" view.
1371
1378
  * When `projectId` is set, only characters belonging to that project are
1372
1379
  * returned.
1373
- */
1374
- list(params?: ListCharactersParams): Promise<{
1375
- characters: Character[];
1376
- }>;
1380
+ *
1381
+ * Cursor-paginated: a response carrying a non-null `nextCursor` means more
1382
+ * rows exist. Pass it back as `cursor` to fetch the next page, and keep going
1383
+ * until `nextCursor` is `null` — a single call returns at most `limit` rows
1384
+ * (default 100), so treating one call as "all characters" silently truncates
1385
+ * the list for anyone past that count.
1386
+ *
1387
+ * ```ts
1388
+ * const all: Character[] = []
1389
+ * let cursor: string | undefined
1390
+ * do {
1391
+ * const page = await client.characters.list({ cursor })
1392
+ * all.push(...page.characters)
1393
+ * cursor = page.nextCursor ?? undefined
1394
+ * } while (cursor)
1395
+ * ```
1396
+ */
1397
+ list(params?: ListCharactersParams): Promise<ListCharactersResult>;
1377
1398
  /**
1378
1399
  * Fetch a single character including in-flight portrait / asset job state.
1379
1400
  * Soft-deleted (archived) rows are returned by id intentionally so canvas
@@ -4361,6 +4382,40 @@ interface GetPickerCatalogOptions {
4361
4382
  /** multi-dim: only this dimension field. */
4362
4383
  field?: string;
4363
4384
  }
4385
+ /** Input for `analyzeText` (POST /v1/text-to-picker). */
4386
+ interface TextToPickerParams {
4387
+ /** Free-text scene/shot description to analyze. */
4388
+ text: string;
4389
+ /** Picker node types to fill. Omit for ALL analyzable pickers (the server
4390
+ * fans the analysis out per family and merges). */
4391
+ targetPickers?: string[];
4392
+ /** Extra guidance appended to the analyzer system prompt. */
4393
+ instructions?: string;
4394
+ /** Originating client app slug (e.g. "cine") — attribution only. */
4395
+ origin?: string;
4396
+ llmModel?: string;
4397
+ reasoningEffort?: string;
4398
+ }
4399
+ interface TextToPickerResult {
4400
+ jobId: string;
4401
+ /** pickerType → dimension → chosen catalog id(s) — same shape as
4402
+ * describe-to-picker; hydrate pickers from it verbatim. */
4403
+ pickerJson: Record<string, Record<string, string | string[]>>;
4404
+ /** Catalog-coverage feedback (attributes the text described that no
4405
+ * catalog id represents well). Surface as "we couldn't infer X". */
4406
+ gaps?: {
4407
+ missingItems: Array<{
4408
+ picker: string;
4409
+ dimension: string;
4410
+ observed: string;
4411
+ }>;
4412
+ missingCategories: Array<{
4413
+ picker: string;
4414
+ suggestedDimension: string;
4415
+ observed: string;
4416
+ }>;
4417
+ };
4418
+ }
4364
4419
  declare class PickerCatalogsResource {
4365
4420
  private client;
4366
4421
  constructor(client: NodaroClient);
@@ -4368,12 +4423,78 @@ declare class PickerCatalogsResource {
4368
4423
  list(): Promise<{
4369
4424
  data: PickerCatalogSummary[];
4370
4425
  }>;
4426
+ /** Fill pickers from a free-text description (Cine "AI Fill"): returns the
4427
+ * same pickerJson shape as describe-to-picker, keyed by picker node type. */
4428
+ analyzeText(params: TextToPickerParams): Promise<TextToPickerResult>;
4371
4429
  /** Get one picker's catalog of valid values. */
4372
4430
  get(nodeType: string, opts?: GetPickerCatalogOptions): Promise<{
4373
4431
  data: PickerCatalog;
4374
4432
  }>;
4375
4433
  }
4376
4434
 
4435
+ /**
4436
+ * Model-catalog types. Mirrors the backend's `GET /v1/models` projection
4437
+ * (itself shared with the MCP `list_models` tool) so the SDK stays
4438
+ * dependency-free — same convention as `PickerCatalog` / `NodeDescriptor`.
4439
+ */
4440
+ interface ModelSummary {
4441
+ id: string;
4442
+ label: string;
4443
+ description: string;
4444
+ modes: string[];
4445
+ useCases: string[];
4446
+ pricing: Array<{
4447
+ identifier: string;
4448
+ credits: number;
4449
+ note?: string;
4450
+ }>;
4451
+ featured?: boolean;
4452
+ features?: string[];
4453
+ aspectRatios?: string[];
4454
+ resolutions?: string[];
4455
+ qualities?: string[];
4456
+ durations?: number[];
4457
+ /** Compact per-model prompting tips (present when a doctrine exists). */
4458
+ promptTips?: string[];
4459
+ /** TRUE only when a sourced per-family prompt doctrine exists for this
4460
+ * model — gate "vendor doctrine · real rewrite" badges on this and show
4461
+ * a generic label otherwise (never overclaim). */
4462
+ doctrineCovered: boolean;
4463
+ }
4464
+ interface ModelFamilyGroup {
4465
+ family: string;
4466
+ models: ModelSummary[];
4467
+ }
4468
+ interface ModelsListResult {
4469
+ sections: Array<{
4470
+ kind: "image" | "video" | "audio";
4471
+ families: ModelFamilyGroup[];
4472
+ }>;
4473
+ recommendations: Array<{
4474
+ id: string;
4475
+ title: string;
4476
+ modelIds: string[];
4477
+ reason?: string;
4478
+ } & Record<string, unknown>>;
4479
+ totalModels: number;
4480
+ }
4481
+ interface ListModelsOptions {
4482
+ kind?: "image" | "video" | "audio";
4483
+ /** Operation filter, e.g. "t2v", "i2v", "t2i". */
4484
+ mode?: string;
4485
+ /** Vendor / lab name, e.g. "Google", "Bytedance". */
4486
+ family?: string;
4487
+ featuredOnly?: boolean;
4488
+ }
4489
+ declare class ModelsResource {
4490
+ private client;
4491
+ constructor(client: NodaroClient);
4492
+ /** Browse the models available on this instance — capability sheets,
4493
+ * per-variant credit pricing, prompt tips, and the `doctrineCovered`
4494
+ * truth flag. Public endpoint; cached 5 minutes. */
4495
+ list(opts?: ListModelsOptions): Promise<ModelsListResult>;
4496
+ }
4497
+
4377
4498
  /**
4378
4499
  * The community-listing types are the single source of truth in
4379
4500
  * `@nodaro/shared` (re-used by the backend, frontend, and CLI). Re-export them
@@ -4687,6 +4808,7 @@ declare class NodaroClient {
4687
4808
  readonly library: LibraryResource;
4688
4809
  readonly presets: PresetsResource;
4689
4810
  readonly pickerCatalogs: PickerCatalogsResource;
4811
+ readonly models: ModelsResource;
4690
4812
  readonly community: CommunityResource;
4691
4813
  readonly templates: TemplatesResource;
4692
4814
  readonly tutorials: TutorialsResource;
@@ -4791,4 +4913,4 @@ interface ApiErrorBody {
4791
4913
  }
4792
4914
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
4793
4915
 
4794
- 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 ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, MediaResource, type ModelCostsResult, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, 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 };
4916
+ 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 };
package/dist/index.d.ts CHANGED
@@ -1204,6 +1204,13 @@ interface ListCharactersParams {
1204
1204
  * server default — passing it just narrows further.
1205
1205
  */
1206
1206
  limit?: number;
1207
+ /** Opaque cursor from a prior page's `nextCursor` (fetches the next page). */
1208
+ cursor?: string;
1209
+ }
1210
+ interface ListCharactersResult {
1211
+ characters: Character[];
1212
+ /** Pass back as `cursor` for the next page; `null` when there are no more. */
1213
+ nextCursor: string | null;
1207
1214
  }
1208
1215
  interface DuplicateCharacterInput {
1209
1216
  /** Optional canvas node id to bind the new row to. */
@@ -1370,10 +1377,24 @@ declare class CharactersResource {
1370
1377
  * pass `archived: true` to fetch soft-deleted rows for an "archive" view.
1371
1378
  * When `projectId` is set, only characters belonging to that project are
1372
1379
  * returned.
1373
- */
1374
- list(params?: ListCharactersParams): Promise<{
1375
- characters: Character[];
1376
- }>;
1380
+ *
1381
+ * Cursor-paginated: a response carrying a non-null `nextCursor` means more
1382
+ * rows exist. Pass it back as `cursor` to fetch the next page, and keep going
1383
+ * until `nextCursor` is `null` — a single call returns at most `limit` rows
1384
+ * (default 100), so treating one call as "all characters" silently truncates
1385
+ * the list for anyone past that count.
1386
+ *
1387
+ * ```ts
1388
+ * const all: Character[] = []
1389
+ * let cursor: string | undefined
1390
+ * do {
1391
+ * const page = await client.characters.list({ cursor })
1392
+ * all.push(...page.characters)
1393
+ * cursor = page.nextCursor ?? undefined
1394
+ * } while (cursor)
1395
+ * ```
1396
+ */
1397
+ list(params?: ListCharactersParams): Promise<ListCharactersResult>;
1377
1398
  /**
1378
1399
  * Fetch a single character including in-flight portrait / asset job state.
1379
1400
  * Soft-deleted (archived) rows are returned by id intentionally so canvas
@@ -4361,6 +4382,40 @@ interface GetPickerCatalogOptions {
4361
4382
  /** multi-dim: only this dimension field. */
4362
4383
  field?: string;
4363
4384
  }
4385
+ /** Input for `analyzeText` (POST /v1/text-to-picker). */
4386
+ interface TextToPickerParams {
4387
+ /** Free-text scene/shot description to analyze. */
4388
+ text: string;
4389
+ /** Picker node types to fill. Omit for ALL analyzable pickers (the server
4390
+ * fans the analysis out per family and merges). */
4391
+ targetPickers?: string[];
4392
+ /** Extra guidance appended to the analyzer system prompt. */
4393
+ instructions?: string;
4394
+ /** Originating client app slug (e.g. "cine") — attribution only. */
4395
+ origin?: string;
4396
+ llmModel?: string;
4397
+ reasoningEffort?: string;
4398
+ }
4399
+ interface TextToPickerResult {
4400
+ jobId: string;
4401
+ /** pickerType → dimension → chosen catalog id(s) — same shape as
4402
+ * describe-to-picker; hydrate pickers from it verbatim. */
4403
+ pickerJson: Record<string, Record<string, string | string[]>>;
4404
+ /** Catalog-coverage feedback (attributes the text described that no
4405
+ * catalog id represents well). Surface as "we couldn't infer X". */
4406
+ gaps?: {
4407
+ missingItems: Array<{
4408
+ picker: string;
4409
+ dimension: string;
4410
+ observed: string;
4411
+ }>;
4412
+ missingCategories: Array<{
4413
+ picker: string;
4414
+ suggestedDimension: string;
4415
+ observed: string;
4416
+ }>;
4417
+ };
4418
+ }
4364
4419
  declare class PickerCatalogsResource {
4365
4420
  private client;
4366
4421
  constructor(client: NodaroClient);
@@ -4368,12 +4423,78 @@ declare class PickerCatalogsResource {
4368
4423
  list(): Promise<{
4369
4424
  data: PickerCatalogSummary[];
4370
4425
  }>;
4426
+ /** Fill pickers from a free-text description (Cine "AI Fill"): returns the
4427
+ * same pickerJson shape as describe-to-picker, keyed by picker node type. */
4428
+ analyzeText(params: TextToPickerParams): Promise<TextToPickerResult>;
4371
4429
  /** Get one picker's catalog of valid values. */
4372
4430
  get(nodeType: string, opts?: GetPickerCatalogOptions): Promise<{
4373
4431
  data: PickerCatalog;
4374
4432
  }>;
4375
4433
  }
4376
4434
 
4435
+ /**
4436
+ * Model-catalog types. Mirrors the backend's `GET /v1/models` projection
4437
+ * (itself shared with the MCP `list_models` tool) so the SDK stays
4438
+ * dependency-free — same convention as `PickerCatalog` / `NodeDescriptor`.
4439
+ */
4440
+ interface ModelSummary {
4441
+ id: string;
4442
+ label: string;
4443
+ description: string;
4444
+ modes: string[];
4445
+ useCases: string[];
4446
+ pricing: Array<{
4447
+ identifier: string;
4448
+ credits: number;
4449
+ note?: string;
4450
+ }>;
4451
+ featured?: boolean;
4452
+ features?: string[];
4453
+ aspectRatios?: string[];
4454
+ resolutions?: string[];
4455
+ qualities?: string[];
4456
+ durations?: number[];
4457
+ /** Compact per-model prompting tips (present when a doctrine exists). */
4458
+ promptTips?: string[];
4459
+ /** TRUE only when a sourced per-family prompt doctrine exists for this
4460
+ * model — gate "vendor doctrine · real rewrite" badges on this and show
4461
+ * a generic label otherwise (never overclaim). */
4462
+ doctrineCovered: boolean;
4463
+ }
4464
+ interface ModelFamilyGroup {
4465
+ family: string;
4466
+ models: ModelSummary[];
4467
+ }
4468
+ interface ModelsListResult {
4469
+ sections: Array<{
4470
+ kind: "image" | "video" | "audio";
4471
+ families: ModelFamilyGroup[];
4472
+ }>;
4473
+ recommendations: Array<{
4474
+ id: string;
4475
+ title: string;
4476
+ modelIds: string[];
4477
+ reason?: string;
4478
+ } & Record<string, unknown>>;
4479
+ totalModels: number;
4480
+ }
4481
+ interface ListModelsOptions {
4482
+ kind?: "image" | "video" | "audio";
4483
+ /** Operation filter, e.g. "t2v", "i2v", "t2i". */
4484
+ mode?: string;
4485
+ /** Vendor / lab name, e.g. "Google", "Bytedance". */
4486
+ family?: string;
4487
+ featuredOnly?: boolean;
4488
+ }
4489
+ declare class ModelsResource {
4490
+ private client;
4491
+ constructor(client: NodaroClient);
4492
+ /** Browse the models available on this instance — capability sheets,
4493
+ * per-variant credit pricing, prompt tips, and the `doctrineCovered`
4494
+ * truth flag. Public endpoint; cached 5 minutes. */
4495
+ list(opts?: ListModelsOptions): Promise<ModelsListResult>;
4496
+ }
4497
+
4377
4498
  /**
4378
4499
  * The community-listing types are the single source of truth in
4379
4500
  * `@nodaro/shared` (re-used by the backend, frontend, and CLI). Re-export them
@@ -4687,6 +4808,7 @@ declare class NodaroClient {
4687
4808
  readonly library: LibraryResource;
4688
4809
  readonly presets: PresetsResource;
4689
4810
  readonly pickerCatalogs: PickerCatalogsResource;
4811
+ readonly models: ModelsResource;
4690
4812
  readonly community: CommunityResource;
4691
4813
  readonly templates: TemplatesResource;
4692
4814
  readonly tutorials: TutorialsResource;
@@ -4791,4 +4913,4 @@ interface ApiErrorBody {
4791
4913
  }
4792
4914
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
4793
4915
 
4794
- 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 ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, MediaResource, type ModelCostsResult, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, 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 };
4916
+ 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 };
package/dist/index.js CHANGED
@@ -591,12 +591,29 @@ var CharactersResource = class {
591
591
  * pass `archived: true` to fetch soft-deleted rows for an "archive" view.
592
592
  * When `projectId` is set, only characters belonging to that project are
593
593
  * returned.
594
+ *
595
+ * Cursor-paginated: a response carrying a non-null `nextCursor` means more
596
+ * rows exist. Pass it back as `cursor` to fetch the next page, and keep going
597
+ * until `nextCursor` is `null` — a single call returns at most `limit` rows
598
+ * (default 100), so treating one call as "all characters" silently truncates
599
+ * the list for anyone past that count.
600
+ *
601
+ * ```ts
602
+ * const all: Character[] = []
603
+ * let cursor: string | undefined
604
+ * do {
605
+ * const page = await client.characters.list({ cursor })
606
+ * all.push(...page.characters)
607
+ * cursor = page.nextCursor ?? undefined
608
+ * } while (cursor)
609
+ * ```
594
610
  */
595
611
  list(params = {}) {
596
612
  const query = {};
597
613
  if (params.projectId) query.projectId = params.projectId;
598
614
  if (params.archived) query.archived = "true";
599
615
  if (params.limit !== void 0) query.limit = String(params.limit);
616
+ if (params.cursor) query.cursor = params.cursor;
600
617
  return this.client.request("GET", "/v1/characters", { query });
601
618
  }
602
619
  /**
@@ -1985,6 +2002,11 @@ var PickerCatalogsResource = class {
1985
2002
  list() {
1986
2003
  return this.client.request("GET", "/v1/picker-catalogs");
1987
2004
  }
2005
+ /** Fill pickers from a free-text description (Cine "AI Fill"): returns the
2006
+ * same pickerJson shape as describe-to-picker, keyed by picker node type. */
2007
+ analyzeText(params) {
2008
+ return this.client.request("POST", "/v1/text-to-picker", { body: params });
2009
+ }
1988
2010
  /** Get one picker's catalog of valid values. */
1989
2011
  get(nodeType, opts = {}) {
1990
2012
  const qs = new URLSearchParams();
@@ -1999,6 +2021,26 @@ var PickerCatalogsResource = class {
1999
2021
  }
2000
2022
  };
2001
2023
 
2024
+ // src/resources/models.ts
2025
+ var ModelsResource = class {
2026
+ constructor(client) {
2027
+ this.client = client;
2028
+ }
2029
+ client;
2030
+ /** Browse the models available on this instance — capability sheets,
2031
+ * per-variant credit pricing, prompt tips, and the `doctrineCovered`
2032
+ * truth flag. Public endpoint; cached 5 minutes. */
2033
+ list(opts = {}) {
2034
+ const qs = new URLSearchParams();
2035
+ if (opts.kind) qs.set("kind", opts.kind);
2036
+ if (opts.mode) qs.set("mode", opts.mode);
2037
+ if (opts.family) qs.set("family", opts.family);
2038
+ if (opts.featuredOnly) qs.set("featuredOnly", "true");
2039
+ const query = qs.toString();
2040
+ return this.client.request("GET", `/v1/models${query ? `?${query}` : ""}`);
2041
+ }
2042
+ };
2043
+
2002
2044
  // src/resources/community.ts
2003
2045
  var CommunityResource = class {
2004
2046
  constructor(client) {
@@ -2152,7 +2194,7 @@ var TutorialsResource = class {
2152
2194
  };
2153
2195
 
2154
2196
  // src/client.ts
2155
- var SDK_VERSION = "1.13.1" ;
2197
+ var SDK_VERSION = "1.15.0" ;
2156
2198
  var CLIENT_HEADER = "X-Nodaro-Client";
2157
2199
  var isBrowser = () => typeof window !== "undefined" && typeof window.document !== "undefined";
2158
2200
  var NodaroClient = class {
@@ -2197,6 +2239,7 @@ var NodaroClient = class {
2197
2239
  library;
2198
2240
  presets;
2199
2241
  pickerCatalogs;
2242
+ models;
2200
2243
  community;
2201
2244
  templates;
2202
2245
  tutorials;
@@ -2231,6 +2274,7 @@ var NodaroClient = class {
2231
2274
  this.library = new LibraryResource(this);
2232
2275
  this.presets = new PresetsResource(this);
2233
2276
  this.pickerCatalogs = new PickerCatalogsResource(this);
2277
+ this.models = new ModelsResource(this);
2234
2278
  this.community = new CommunityResource(this);
2235
2279
  this.templates = new TemplatesResource(this);
2236
2280
  this.tutorials = new TutorialsResource(this);
@@ -2326,6 +2370,6 @@ function supabaseAuth(supabase) {
2326
2370
  };
2327
2371
  }
2328
2372
 
2329
- export { AppsResource, AudioResource, CREATURE_ASSET_TYPES, CallbackAuth, CharactersResource, CommunityResource, CreaturesResource, CreditsResource, DeveloperAppsResource, ExecutionsResource, ForbiddenError, InsufficientCreditsError, JobAbortedError, JobFailedError, JobTimeoutError, JobsResource, LibraryResource, LocationsResource, MediaResource, NodaroClient, NodaroError, NodesResource, NotFoundError, OAuthResource, ObjectsResource, PickerCatalogsResource, PipelinesResource, PresetsResource, ProjectsResource, PromptHelperResource, RateLimitedError, ReduceResource, StaticTokenAuth, StorageExceededError, TemplatesResource, TutorialsResource, UnauthorizedError, UploadsResource, VideoProResource, VoicesResource, WorkflowConflictError, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
2373
+ export { AppsResource, AudioResource, CREATURE_ASSET_TYPES, CallbackAuth, CharactersResource, CommunityResource, CreaturesResource, CreditsResource, DeveloperAppsResource, ExecutionsResource, ForbiddenError, InsufficientCreditsError, JobAbortedError, JobFailedError, JobTimeoutError, JobsResource, LibraryResource, LocationsResource, MediaResource, ModelsResource, NodaroClient, NodaroError, NodesResource, NotFoundError, OAuthResource, ObjectsResource, PickerCatalogsResource, PipelinesResource, PresetsResource, ProjectsResource, PromptHelperResource, RateLimitedError, ReduceResource, StaticTokenAuth, StorageExceededError, TemplatesResource, TutorialsResource, UnauthorizedError, UploadsResource, VideoProResource, VoicesResource, WorkflowConflictError, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
2330
2374
  //# sourceMappingURL=index.js.map
2331
2375
  //# sourceMappingURL=index.js.map