pixelkiln 0.34.0 → 0.35.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
@@ -4639,13 +4639,61 @@ interface ResolvedSpec {
4639
4639
  outlineMode?: string;
4640
4640
  }
4641
4641
 
4642
+ /**
4643
+ * One retry policy for every provider.
4644
+ *
4645
+ * The policy started life inside the PixelLab client, and its reasoning holds
4646
+ * for every backend PixelKiln talks to: retry only what is safe to retry
4647
+ * (transport failures, 408, 429, 5xx), honour Retry-After, back off with
4648
+ * jitter so parallel workers don't retry in lockstep, and give up after a
4649
+ * bounded number of attempts. POSTs that create work are included on purpose.
4650
+ * A dropped asset in a 65-item run is more common than a duplicate job, and a
4651
+ * duplicate is visible and free to delete whereas a silent gap is neither.
4652
+ *
4653
+ * Every attempt gets its own timeout unless the caller brings a signal. An
4654
+ * abort the caller asked for is never retried; a timeout of our own is.
4655
+ */
4642
4656
  declare const MAX_RETRIES = 4;
4643
- declare const MAX_DOWNLOAD_BYTES: number;
4657
+ declare const DEFAULT_TIMEOUT_MS = 120000;
4658
+ /**
4659
+ * Throttling, a timed-out request, and the four 5xx codes that describe a
4660
+ * passing condition. 501, 505, 507 and friends describe the server itself
4661
+ * and will not clear in the next sixteen seconds.
4662
+ */
4644
4663
  declare function shouldRetry(status: number): boolean;
4645
4664
  /** Exponential backoff with jitter, so parallel workers don't retry in lockstep. */
4646
4665
  declare function backoffMs(attempt: number): number;
4647
4666
  /** Supports both Retry-After forms: seconds and an HTTP date. */
4648
4667
  declare function retryAfterMs(value: string | null, now?: number): number | null;
4668
+ interface RetryOptions {
4669
+ /** Attempts after the first. 0 disables retrying. */
4670
+ retries?: number;
4671
+ /** Per-attempt timeout used when the caller passes no signal. */
4672
+ timeoutMs?: number;
4673
+ /** Replaced in tests so backoff costs no wall-clock time. */
4674
+ sleep?: (ms: number) => Promise<void>;
4675
+ /** Called before each wait; lets a client log or count retries. */
4676
+ onRetry?: (info: {
4677
+ attempt: number;
4678
+ waitMs: number;
4679
+ status?: number;
4680
+ error?: unknown;
4681
+ }) => void;
4682
+ }
4683
+ /** `fetch` init plus a per-call override of how many times to retry. */
4684
+ type RetryInit = RequestInit & {
4685
+ retries?: number;
4686
+ };
4687
+ type RetryingFetch = (input: string | URL, init?: RetryInit) => Promise<Response>;
4688
+ /**
4689
+ * Wrap a `fetch`-shaped function so it retries. When `request` is omitted the
4690
+ * global fetch is looked up per call, so tests that stub it after a client
4691
+ * was built still take effect.
4692
+ */
4693
+ declare function fetchWithRetry(request?: typeof fetch, opts?: RetryOptions): RetryingFetch;
4694
+
4695
+ declare const MAX_DOWNLOAD_BYTES: number;
4696
+
4649
4697
  interface Balance {
4650
4698
  usd: number;
4651
4699
  generations: number;
@@ -4699,17 +4747,9 @@ declare class PixelLabError extends Error {
4699
4747
  }
4700
4748
  declare class PixelLabClient {
4701
4749
  private readonly apiKey;
4702
- private readonly timeoutMs;
4750
+ private readonly http;
4703
4751
  constructor(apiKey: string, timeoutMs?: number);
4704
- /**
4705
- * Retries only what is safe to retry: transport failures, 429, and 5xx.
4706
- * A 4xx other than 429 is a bad request and retrying it just wastes time.
4707
- *
4708
- * POSTs that create objects are included, which is a deliberate trade: the
4709
- * failure mode of not retrying (a dropped asset in a 65-item run) is more
4710
- * common than the failure mode of retrying (a duplicate object), and a
4711
- * duplicate is visible and free to delete whereas a silent gap is neither.
4712
- */
4752
+ /** Retries transport failures, 429, and 5xx; see http.ts for the policy. */
4713
4753
  private request;
4714
4754
  balance(): Promise<Balance>;
4715
4755
  /**
@@ -4824,6 +4864,19 @@ declare class PixelLabClient {
4824
4864
  }
4825
4865
  declare function clientFromEnv(): PixelLabClient;
4826
4866
 
4867
+ /**
4868
+ * Hand a URL or file to the operating system's default handler. Before this
4869
+ * lived in one place, the gallery and the review sheet only opened a browser
4870
+ * on macOS; on Linux and Windows the server came up and nothing appeared,
4871
+ * with the address printed to a terminal the person may not be watching.
4872
+ *
4873
+ * Returns the command used, for callers that print it. Failure to launch is
4874
+ * deliberately quiet: the URL has already been printed, and that is the part
4875
+ * that matters when there is no desktop to open it on.
4876
+ */
4877
+ declare function openExternal(target: string, command?: string[]): string;
4878
+ declare function defaultOpenCommand(platform?: NodeJS.Platform): string[];
4879
+
4827
4880
  declare class PixelLabProvider implements Provider {
4828
4881
  private readonly client;
4829
4882
  readonly id = "pixellab";
@@ -4912,11 +4965,13 @@ declare class RetroDiffusionClient {
4912
4965
  private readonly token;
4913
4966
  private readonly baseUrl;
4914
4967
  private readonly request;
4915
- constructor(token: string | undefined, baseUrl?: string, request?: typeof fetch);
4968
+ constructor(token: string | undefined, baseUrl?: string, request?: typeof fetch, retry?: RetryOptions);
4916
4969
  submit(body: Record<string, unknown>): Promise<string>;
4917
4970
  quote(body: Record<string, unknown>): Promise<number>;
4918
4971
  task(id: string): Promise<TaskResponse>;
4919
4972
  balance(): Promise<number>;
4973
+ /** Result URLs are signed; no token header, and the same retry policy as the API. */
4974
+ download(url: string): Promise<Buffer>;
4920
4975
  private call;
4921
4976
  }
4922
4977
  /** Experimental native pixel-art still, tileset, and animation adapter. */
@@ -4987,12 +5042,13 @@ declare class ScenarioClient {
4987
5042
  private readonly apiSecret;
4988
5043
  private readonly baseUrl;
4989
5044
  private readonly request;
4990
- constructor(apiKey: string | undefined, apiSecret: string | undefined, baseUrl?: string, request?: typeof fetch);
5045
+ constructor(apiKey: string | undefined, apiSecret: string | undefined, baseUrl?: string, request?: typeof fetch, retry?: RetryOptions);
4991
5046
  quote(modelId: string, body: Record<string, unknown>, projectId?: string): Promise<ScenarioQuote>;
4992
5047
  submit(modelId: string, body: Record<string, unknown>, projectId?: string): Promise<string>;
4993
5048
  job(id: string, projectId?: string): Promise<ScenarioJob>;
4994
5049
  asset(id: string, projectId?: string): Promise<ScenarioAsset>;
4995
5050
  download(url: string): Promise<Buffer>;
5051
+ /** A connectivity check should answer fast, so it does not retry. */
4996
5052
  checkConnection(): Promise<void>;
4997
5053
  private call;
4998
5054
  }
@@ -5072,9 +5128,10 @@ interface ComfyImage {
5072
5128
  type: "output";
5073
5129
  }
5074
5130
  declare class ComfyUIClient {
5075
- private readonly request;
5076
5131
  readonly baseUrl: string;
5077
- constructor(baseUrl?: string, request?: typeof fetch);
5132
+ private readonly request;
5133
+ constructor(baseUrl?: string, request?: typeof fetch, retry?: RetryOptions);
5134
+ /** A connectivity check should answer fast, so it does not retry. */
5078
5135
  checkConnection(): Promise<void>;
5079
5136
  submit(workflow: ComfyWorkflow): Promise<string>;
5080
5137
  uploadImage(bytes: Buffer, sha256: string, format: "png" | "jpeg"): Promise<string>;
@@ -5232,6 +5289,141 @@ declare function styleImagesBase64(loaded: LoadedManifest, styleId: string): Pro
5232
5289
  /** Reads dimensions without decoding pixel data. */
5233
5290
  declare function imageMetadata(buf: Buffer): Pick<ResolvedStyleImage, "width" | "height" | "format"> | null;
5234
5291
 
5292
+ type QualityProfileState = "blocked" | "needs-refinement" | "needs-approval" | "approved";
5293
+ interface QualityProfileInspection {
5294
+ key: string;
5295
+ state: QualityProfileState;
5296
+ reason: string;
5297
+ source: string | null;
5298
+ sources?: string[];
5299
+ output: string;
5300
+ outputs?: string[];
5301
+ record: string;
5302
+ }
5303
+ interface RefineQualityProfilesOptions {
5304
+ fixerPython?: string;
5305
+ force?: boolean;
5306
+ /** @internal Alternate fixer command used by compatibility tests. */
5307
+ fixerCommand?: string;
5308
+ /** @internal Prefix arguments for the alternate fixer command. */
5309
+ fixerArgsPrefix?: string[];
5310
+ }
5311
+ interface RefineQualityProfilesResult {
5312
+ processed: number;
5313
+ skipped: number;
5314
+ failed: number;
5315
+ items: QualityProfileInspection[];
5316
+ }
5317
+ /** Inspect one configured quality output without changing files or contacting a provider. */
5318
+ declare function inspectQualityProfile(spec: ResolvedSpec, lock: Lock): Promise<QualityProfileInspection | null>;
5319
+ /** Refine every configured, selected asset while preserving current approvals. */
5320
+ declare function refineQualityProfiles(specs: ResolvedSpec[], lock: Lock, options?: RefineQualityProfilesOptions): Promise<RefineQualityProfilesResult>;
5321
+ /** Return approved derived files for a packaging command, or fail closed. */
5322
+ declare function requireApprovedQualitySources(specs: ResolvedSpec[], lock: Lock, assetIds?: ReadonlySet<string>, outputRoles?: Readonly<Record<string, string>>): Promise<Record<string, string> | undefined>;
5323
+
5324
+ type PlanState = "ok" | "missing" | "untracked" | "stale" | "orphaned" | "in-flight" | "recoverable" | "blocked" | "failed";
5325
+ interface PlanItem {
5326
+ spec: ResolvedSpec;
5327
+ key: string;
5328
+ state: PlanState;
5329
+ reason: string;
5330
+ /** Derived-art state. It never changes provider cost or generation actionability. */
5331
+ quality?: QualityProfileInspection;
5332
+ }
5333
+ interface Plan {
5334
+ items: PlanItem[];
5335
+ /** Items that would incur provider cost if the plan were executed. */
5336
+ actionable: PlanItem[];
5337
+ /** Provider-scoped totals. Unlike units and accounts are never combined. */
5338
+ groups: PlanGroup[];
5339
+ /** Compatibility projection for a single provider group; null for mixed plans. */
5340
+ cost: number | null;
5341
+ /** Compatibility projection for a single provider group; null for mixed plans. */
5342
+ costUnit: CostUnit | null;
5343
+ candidates: number;
5344
+ }
5345
+ interface PlanGroup {
5346
+ provider: string;
5347
+ costUnit: CostUnit;
5348
+ cost: number;
5349
+ candidates: number;
5350
+ actionable: PlanItem[];
5351
+ }
5352
+ type ResumeCommand = "poll" | "pick" | "fetch";
5353
+ interface ResumeAction {
5354
+ command: ResumeCommand;
5355
+ keys: string[];
5356
+ }
5357
+ /** The zero-cost command that advances one settled lock state. */
5358
+ declare function resumeCommandForStatus(status: LockEntry["status"]): ResumeCommand | null;
5359
+ /** Group current selected specs by the command that can resume them safely. */
5360
+ declare function resumeActions(specs: ResolvedSpec[], lock: Lock): ResumeAction[];
5361
+ /**
5362
+ * Diffs the manifest against the lockfile and the files on disk. Nothing here
5363
+ * touches the network, so it is safe to run constantly — it is the cheap
5364
+ * "what would this cost me?" question that should precede every real run.
5365
+ */
5366
+ declare function buildPlan(specs: ResolvedSpec[], lock: Lock, opts?: {
5367
+ force?: boolean;
5368
+ }): Promise<Plan>;
5369
+ declare function summarize(plan: Plan): Record<PlanState, number>;
5370
+
5371
+ /**
5372
+ * Opening a project used to be four calls in a fixed order, and the fourth
5373
+ * was the one people forgot: `loadManifest`, `resolveSpecs`, `loadLock`, then
5374
+ * `normalizeLockOutputPaths` so a lockfile written on another machine
5375
+ * resolves against this checkout. The CLI, the gallery, and every example in
5376
+ * LIBRARY.md repeated the sequence. `openProject` is that sequence, once,
5377
+ * with the env files beside the manifest read first the way the CLI reads
5378
+ * them, because the API key belongs with the project rather than the tool.
5379
+ */
5380
+ interface OpenProjectOptions {
5381
+ /** Lockfile to read. Defaults to `pixelkiln.lock.json` beside the manifest. */
5382
+ lockPath?: string;
5383
+ /** Keep only these style ids. Empty or omitted keeps every style. */
5384
+ styles?: string[];
5385
+ /** Keep only these asset ids. Empty or omitted keeps every asset. */
5386
+ assets?: string[];
5387
+ /**
5388
+ * Read `.env.local` and `.env` from the manifest's directory, and from the
5389
+ * working directory when that differs, into `process.env` before anything
5390
+ * else. Never overrides a variable already set. On by default because a
5391
+ * provider constructed later needs the key; pass false when the caller
5392
+ * manages credentials itself.
5393
+ */
5394
+ env?: boolean;
5395
+ }
5396
+ interface Project {
5397
+ /** Absolute path of the manifest. */
5398
+ manifestPath: string;
5399
+ /** Directory the manifest lives in. Every relative path resolves against it. */
5400
+ root: string;
5401
+ /** Absolute path of the lockfile, whether or not it exists yet. */
5402
+ lockPath: string;
5403
+ loaded: LoadedManifest;
5404
+ /** Resolved specs after the style and asset filters. */
5405
+ specs: ResolvedSpec[];
5406
+ /** The lockfile with output paths canonicalised for this checkout. Mutated by pipeline calls; persist with `saveLock`. */
5407
+ lock: Lock;
5408
+ /** Diff manifest, lockfile, and disk. Offline; spends nothing. */
5409
+ plan(opts?: {
5410
+ force?: boolean;
5411
+ }): Promise<Plan>;
5412
+ /** Write `lock` as it stands, atomically. */
5413
+ saveLock(): Promise<void>;
5414
+ /** Read everything again from disk with the same options. */
5415
+ reload(): Promise<Project>;
5416
+ /** Provider ids the selected specs route to, sorted. */
5417
+ providers(): string[];
5418
+ /**
5419
+ * One adapter per id and mode for the life of this object. `online` needs
5420
+ * credentials and can spend; `downloads` only fetches objects the lockfile
5421
+ * already records and needs no key.
5422
+ */
5423
+ provider(id: string, mode?: ProviderMode): Provider;
5424
+ }
5425
+ declare function openProject(manifestPath?: string, opts?: OpenProjectOptions): Promise<Project>;
5426
+
5235
5427
  /**
5236
5428
  * The lockfile is the record that maps a spec to the provider work that
5237
5429
  * satisfies it and the file on disk that came from it. It is written after
@@ -6122,6 +6314,10 @@ declare const RecipeSchema: z.ZodEffects<z.ZodObject<{
6122
6314
  };
6123
6315
  styleId: string;
6124
6316
  version: string;
6317
+ integrity: {
6318
+ algorithm: "sha256";
6319
+ digest: string;
6320
+ };
6125
6321
  id: string;
6126
6322
  format: "pixelkiln-recipe";
6127
6323
  files: {
@@ -6177,10 +6373,6 @@ declare const RecipeSchema: z.ZodEffects<z.ZodObject<{
6177
6373
  base?: string | undefined;
6178
6374
  } | undefined;
6179
6375
  };
6180
- integrity: {
6181
- algorithm: "sha256";
6182
- digest: string;
6183
- };
6184
6376
  $schema?: string | undefined;
6185
6377
  workflow?: {
6186
6378
  path: string;
@@ -6243,6 +6435,10 @@ declare const RecipeSchema: z.ZodEffects<z.ZodObject<{
6243
6435
  };
6244
6436
  styleId: string;
6245
6437
  version: string;
6438
+ integrity: {
6439
+ algorithm: "sha256";
6440
+ digest: string;
6441
+ };
6246
6442
  id: string;
6247
6443
  format: "pixelkiln-recipe";
6248
6444
  schemaVersion: 1;
@@ -6287,10 +6483,6 @@ declare const RecipeSchema: z.ZodEffects<z.ZodObject<{
6287
6483
  tags?: string[] | undefined;
6288
6484
  providerOptions?: Record<string, Record<string, unknown>> | undefined;
6289
6485
  };
6290
- integrity: {
6291
- algorithm: "sha256";
6292
- digest: string;
6293
- };
6294
6486
  $schema?: string | undefined;
6295
6487
  workflow?: {
6296
6488
  path: string;
@@ -6364,6 +6556,10 @@ declare const RecipeSchema: z.ZodEffects<z.ZodObject<{
6364
6556
  };
6365
6557
  styleId: string;
6366
6558
  version: string;
6559
+ integrity: {
6560
+ algorithm: "sha256";
6561
+ digest: string;
6562
+ };
6367
6563
  id: string;
6368
6564
  format: "pixelkiln-recipe";
6369
6565
  files: {
@@ -6419,10 +6615,6 @@ declare const RecipeSchema: z.ZodEffects<z.ZodObject<{
6419
6615
  base?: string | undefined;
6420
6616
  } | undefined;
6421
6617
  };
6422
- integrity: {
6423
- algorithm: "sha256";
6424
- digest: string;
6425
- };
6426
6618
  $schema?: string | undefined;
6427
6619
  workflow?: {
6428
6620
  path: string;
@@ -6485,6 +6677,10 @@ declare const RecipeSchema: z.ZodEffects<z.ZodObject<{
6485
6677
  };
6486
6678
  styleId: string;
6487
6679
  version: string;
6680
+ integrity: {
6681
+ algorithm: "sha256";
6682
+ digest: string;
6683
+ };
6488
6684
  id: string;
6489
6685
  format: "pixelkiln-recipe";
6490
6686
  schemaVersion: 1;
@@ -6529,10 +6725,6 @@ declare const RecipeSchema: z.ZodEffects<z.ZodObject<{
6529
6725
  tags?: string[] | undefined;
6530
6726
  providerOptions?: Record<string, Record<string, unknown>> | undefined;
6531
6727
  };
6532
- integrity: {
6533
- algorithm: "sha256";
6534
- digest: string;
6535
- };
6536
6728
  $schema?: string | undefined;
6537
6729
  workflow?: {
6538
6730
  path: string;
@@ -6648,85 +6840,6 @@ declare function verifyRecipe(target: string, options?: {
6648
6840
  }): Promise<RecipeVerification>;
6649
6841
  declare function installRecipe(target: string, options?: InstallRecipeOptions): Promise<InstallRecipeResult>;
6650
6842
 
6651
- type QualityProfileState = "blocked" | "needs-refinement" | "needs-approval" | "approved";
6652
- interface QualityProfileInspection {
6653
- key: string;
6654
- state: QualityProfileState;
6655
- reason: string;
6656
- source: string | null;
6657
- sources?: string[];
6658
- output: string;
6659
- outputs?: string[];
6660
- record: string;
6661
- }
6662
- interface RefineQualityProfilesOptions {
6663
- fixerPython?: string;
6664
- force?: boolean;
6665
- /** @internal Alternate fixer command used by compatibility tests. */
6666
- fixerCommand?: string;
6667
- /** @internal Prefix arguments for the alternate fixer command. */
6668
- fixerArgsPrefix?: string[];
6669
- }
6670
- interface RefineQualityProfilesResult {
6671
- processed: number;
6672
- skipped: number;
6673
- failed: number;
6674
- items: QualityProfileInspection[];
6675
- }
6676
- /** Inspect one configured quality output without changing files or contacting a provider. */
6677
- declare function inspectQualityProfile(spec: ResolvedSpec, lock: Lock): Promise<QualityProfileInspection | null>;
6678
- /** Refine every configured, selected asset while preserving current approvals. */
6679
- declare function refineQualityProfiles(specs: ResolvedSpec[], lock: Lock, options?: RefineQualityProfilesOptions): Promise<RefineQualityProfilesResult>;
6680
- /** Return approved derived files for a packaging command, or fail closed. */
6681
- declare function requireApprovedQualitySources(specs: ResolvedSpec[], lock: Lock, assetIds?: ReadonlySet<string>, outputRoles?: Readonly<Record<string, string>>): Promise<Record<string, string> | undefined>;
6682
-
6683
- type PlanState = "ok" | "missing" | "untracked" | "stale" | "orphaned" | "in-flight" | "recoverable" | "blocked" | "failed";
6684
- interface PlanItem {
6685
- spec: ResolvedSpec;
6686
- key: string;
6687
- state: PlanState;
6688
- reason: string;
6689
- /** Derived-art state. It never changes provider cost or generation actionability. */
6690
- quality?: QualityProfileInspection;
6691
- }
6692
- interface Plan {
6693
- items: PlanItem[];
6694
- /** Items that would incur provider cost if the plan were executed. */
6695
- actionable: PlanItem[];
6696
- /** Provider-scoped totals. Unlike units and accounts are never combined. */
6697
- groups: PlanGroup[];
6698
- /** Compatibility projection for a single provider group; null for mixed plans. */
6699
- cost: number | null;
6700
- /** Compatibility projection for a single provider group; null for mixed plans. */
6701
- costUnit: CostUnit | null;
6702
- candidates: number;
6703
- }
6704
- interface PlanGroup {
6705
- provider: string;
6706
- costUnit: CostUnit;
6707
- cost: number;
6708
- candidates: number;
6709
- actionable: PlanItem[];
6710
- }
6711
- type ResumeCommand = "poll" | "pick" | "fetch";
6712
- interface ResumeAction {
6713
- command: ResumeCommand;
6714
- keys: string[];
6715
- }
6716
- /** The zero-cost command that advances one settled lock state. */
6717
- declare function resumeCommandForStatus(status: LockEntry["status"]): ResumeCommand | null;
6718
- /** Group current selected specs by the command that can resume them safely. */
6719
- declare function resumeActions(specs: ResolvedSpec[], lock: Lock): ResumeAction[];
6720
- /**
6721
- * Diffs the manifest against the lockfile and the files on disk. Nothing here
6722
- * touches the network, so it is safe to run constantly — it is the cheap
6723
- * "what would this cost me?" question that should precede every real run.
6724
- */
6725
- declare function buildPlan(specs: ResolvedSpec[], lock: Lock, opts?: {
6726
- force?: boolean;
6727
- }): Promise<Plan>;
6728
- declare function summarize(plan: Plan): Record<PlanState, number>;
6729
-
6730
6843
  interface DecodedPng {
6731
6844
  width: number;
6732
6845
  height: number;
@@ -9664,4 +9777,4 @@ interface WorkspaceStatusReport {
9664
9777
  */
9665
9778
  declare function workspaceStatus(ws: Workspace, dir: string): Promise<WorkspaceStatusReport>;
9666
9779
 
9667
- export { type AdoptResult, type ApproveQualityOptions, type ApprovedQualityReview, type ArtifactBundleManifest, type ArtifactBundleOptions, type ArtifactBundleResult, type ArtifactFile, type ArtifactProvenance, type ArtifactSource, type ArtifactVerification, type Asset, type AssetAudit, AssetSchema, type AuditEvaluation, type AuditThresholds, type AuditViolation, type Balance, type BalanceChange, type BalanceInfo, type BuildGalleryOptions, type BuildWorkspaceGalleryOptions, type CacheHealthOptions, type CacheHealthReport, type CandidateSelection, type ComfyUIBinding, type ComfyUIBindings, type ComfyUIFramesOptions, type ComfyUIImageInput, type ComfyUIOptions, ComfyUIProvider, type ContentCacheHealth, type ContentCacheIssue, type CostEstimate, type CostUnit, DEFAULT_HISTORY_LIMIT, DEFAULT_QUALITY_TOLERANCES, DEFAULT_RATE_LIMIT, type DoctorCheck, type DoctorLevel, type DoctorOptions, type DoctorReport, EDITOR_PIN, EDITOR_RELEASE_BASE, EditorInstallError, type EditorInstallOptions, type EditorInstallProgress, type EditorInstallResult, type EditorInstallStatus, type EditorPin, FAKE_PNG, type FakeOptions, FakeProvider, type FetchResult, type GalleryBuild, type GalleryEditHandlerOptions, type GalleryEditMeta, type GalleryEditorHandlers, type GalleryEditorOptions, type GalleryEditorStatus, type GalleryGenerateHandlers, type GalleryGeneration, type GalleryItem, type GalleryMedia, type GalleryOutput, type GalleryProject, type GalleryProjectContext, type GalleryQuality, type GalleryServer, type GalleryServerOptions, type GallerySnapshot, type GalleryState, type GalleryStyle, type GenerateHandlerOptions, type GenerateJob, type GeneratePhase, GenerateRequestError, GenerateRequestSchema, type GenerateStatus, type Generator, GeneratorSchema, type GenericTileset, type GridConfidence, GridConfidenceSchema, HAND_EDIT_DIR, HISTORY_ENV, type HandEditCompanion, HandEditCompanionSchema, type HandEditMember, type HandEditSave, type HandEditSaveInput, type HandEditStart, type HandEditStatus, type HistoryPick, type ImageQualityMetrics, ImageQualityMetricsSchema, InheritedStyleSchema, type InstallRecipeOptions, type InstallRecipeResult, type JobState, type LoadedManifest, type LoadedRecipe, type Lock, type LockEntry, LockEntrySchema, type LockHistoryEntry, LockHistoryEntrySchema, type LockOutput, LockSchema, MAX_DOWNLOAD_BYTES, MAX_HAND_EDIT_BYTES, MAX_RETRIES, type ManagedArtifactBundleOptions, type Manifest, ManifestDriftError, type ManifestEdit, ManifestEditError, type ManifestEditResult, ManifestEditSchema, ManifestInputSchema, ManifestSchema, type MapObject, MediaType, type MountPlacement, type MountedSheet, type NormalizedTileRules, type Orphan, type OrphanGroups, type OutputSelection, type OutputSource, PIXEL_ART_FIXER_REVISION, PIXEL_ART_FIXER_URL, type PackedFrame, type PackedSheet, type PackedSource, type PendingQualityReview, type PickResult, type PixelArtFixerDetection, PixelLabClient, PixelLabError, type PixelLabObject, PixelLabProvider, type Plan, type PlanItem, type PlanState, type PollContext, type PollOptions, type PollResult, type PrepareReviewOptions, type Provider, type ProviderFactory, type ProviderInputContext, type ProviderInputScalar, type ProviderInputValue, type ProviderMetadata, type ProviderMode, type ProviderOptionContext, type ProviderSubmission, type QualityBaseline, QualityBaselineSchema, type QualityCheck, type QualityProfile, type QualityProfileInspection, QualityProfileSchema, type QualityProfileState, type QualityRegressionCaseResult, type QualityRegressionReport, type QualitySnapshotResult, QualityToleranceSchema, type QualityTolerances, type RateLimit, type Recipe, type RecipeFileVerification, type RecipeModelVerification, RecipeSchema, type RecipeVerification, type RefineAudit, type RefineFrameSetOptions, type RefineFrameSetResult, type RefineOptions, type RefineQualityProfilesOptions, type RefineQualityProfilesResult, type RefineRecordOptions, type RefineResult, type RemoteAsset, type RemoteHashCacheHealth, type RenderGalleryOptions, type RenderSheetOptions, type ResolvedOutput, type ResolvedProviderInputs, type ResolvedProviderOptions, type ResolvedQualityInput, type ResolvedQualityProfile, type ResolvedRevision, type ResolvedSpec, type ResolvedStyleImage, type ResumeAction, type ResumeCommand, type RetroDiffusionOptions, RetroDiffusionProvider, type RevertOptions, type RevertResult, type ReviewReadyInfo, type ReviewSession, type Revision, type RevisionMode, RevisionModeSchema, type RevisionReadiness, RevisionSchema, type SalvageAction, type SalvageResult, type ScannedAsset, type ScenarioOptions, ScenarioProvider, type SessionBudget, type SheetGroup, type SiblingManifest, type SpriteInput, type Style, type StyleAudit, type StyleInput, StyleInputSchema, StyleSchema, type SubmissionCheckpoint, type SubmitContext, type SubmitOptions, type SubmitResult, type TilesPro, type TilesetExport, type TilesetExportOptions, type TilesetFormat, UnsupportedCapabilityError, type Workspace, type WorkspaceClaims, type WorkspaceDiagnostic, type WorkspaceProject, WorkspaceProjectSchema, type WorkspaceProjectStatus, WorkspaceSchema, type WorkspaceStatusReport, adopt, applyManifestEdit, applyTags, approveQualityRecord, auditStyle, availableProviders, backoffMs, buildGallerySnapshot, buildManifest, buildPlan, buildWorkspaceGallerySnapshot, bundledRecipeRoot, cacheFileName, candidateCount, checkQualityBaseline, checkQualityRecord, clientFromEnv, colorDistance, countNumberedDescriptions, createArtifactBundleManifest, createGalleryEditHandler, createGalleryEditorHandlers, createGenerateHandlers, createProvider, currentEntryOutputPath, currentOutputPath, detachHandEdit, detectMediaType, doctor, editorBaseUrl, editorDir, editorRoute, editorStatus, editorToolsRoot, evaluateAudit, expectedOutputPath, exportTileset, fallbackOutputRole, fetchAssets, findOrphans, formatCost, galleryMediaId, galleryMediaRoute, generationCost, groupOrphansByStyle, handEditBase, handEditBases, handEditCompanionPath, handEditMembers, handEditPath, handEditProjectPath, hex, historyAfterReplacing, historyLimit, idFromPrompt, imageMetadata, inspectCaches, inspectQualityProfile, inspectRevisionReadiness, installEditor, installRecipe, isFrameSetEntry, isMemberSetEntry, isSensitiveSourceUrl, listBundledRecipes, loadClaims, loadLock, loadManifest, loadSiblingManifests, loadWorkspace, lockKey, matchOrphanStyle, measureBalanceChange, measureDecodedImageQuality, measureImageQuality, mediaExtension, mediaTypeFromExtension, memberPath, mergePalettes, mountSprites, mountStyle, normalizeLockOutputPaths, normalizeRefinementPalette, normalizeTileRules, openInEditor, outliers, outputId, packSprites, packStyle, paletteDistance, parseLock, parseWorkspace, pickHistory, pngSize, poll, portableOutputPath, prepareReview, primaryOutput, providerCredentialEnvs, providerFactory, pushTags, qualityFrameOutputPath, qualityRecordPath, quantizeToPalette, readArtifactBundleManifest, readHandEditCompanion, readQualityBaseline, recipeDigest, referencedHashes, refineAsset, refineFrameSet, refineQualityProfiles, registerProvider, remove, renderGallery, renderSalvageSheet, renderSheet, requireApprovedQualitySources, requireBalance, requireDelete, requireList, requireRevisionReady, requireSelectCandidate, resolveEntryOutputs, resolveOutputPath, resolvePackInputs, resolveProject, resolveQualityInputs, resolveRecipe, resolveSpecEntryOutputs, resolveSpecOutputs, resolveSpecs, resolveStyleImages, resolveStyleOutputs, resumeActions, resumeCommandForStatus, retireGeneration, retryAfterMs, revertGeneration, runPicker, runSalvage, saveHandEdit, saveLock, saveWorkspace, scanAssets, selectEntryOutput, serveGallery, sha256, sha256File, shouldPersistSourceUrl, shouldRetry, slugify, snapshotQualityBaseline, sourceIsStem, sourceOutputPath, specHash, spendByUnit, startHandEdit, styleImagesBase64, submit, summarize, tagAdopted, tileFeatureOutputCount, tileVariationCount, tilesCost, toPortablePath, totalSpend, upsert, validateCostEstimate, validateMedia, validateWorkspace, verifyArtifactBundle, verifyRecipe, withArtifactManifest, workspaceClaims, workspaceStatus, writeArtifactBundle, writeManagedArtifactBundle };
9780
+ export { type AdoptResult, type ApproveQualityOptions, type ApprovedQualityReview, type ArtifactBundleManifest, type ArtifactBundleOptions, type ArtifactBundleResult, type ArtifactFile, type ArtifactProvenance, type ArtifactSource, type ArtifactVerification, type Asset, type AssetAudit, AssetSchema, type AuditEvaluation, type AuditThresholds, type AuditViolation, type Balance, type BalanceChange, type BalanceInfo, type BuildGalleryOptions, type BuildWorkspaceGalleryOptions, type CacheHealthOptions, type CacheHealthReport, type CandidateSelection, type ComfyUIBinding, type ComfyUIBindings, type ComfyUIFramesOptions, type ComfyUIImageInput, type ComfyUIOptions, ComfyUIProvider, type ContentCacheHealth, type ContentCacheIssue, type CostEstimate, type CostUnit, DEFAULT_HISTORY_LIMIT, DEFAULT_QUALITY_TOLERANCES, DEFAULT_RATE_LIMIT, DEFAULT_TIMEOUT_MS, type DoctorCheck, type DoctorLevel, type DoctorOptions, type DoctorReport, EDITOR_PIN, EDITOR_RELEASE_BASE, EditorInstallError, type EditorInstallOptions, type EditorInstallProgress, type EditorInstallResult, type EditorInstallStatus, type EditorPin, FAKE_PNG, type FakeOptions, FakeProvider, type FetchResult, type GalleryBuild, type GalleryEditHandlerOptions, type GalleryEditMeta, type GalleryEditorHandlers, type GalleryEditorOptions, type GalleryEditorStatus, type GalleryGenerateHandlers, type GalleryGeneration, type GalleryItem, type GalleryMedia, type GalleryOutput, type GalleryProject, type GalleryProjectContext, type GalleryQuality, type GalleryServer, type GalleryServerOptions, type GallerySnapshot, type GalleryState, type GalleryStyle, type GenerateHandlerOptions, type GenerateJob, type GeneratePhase, GenerateRequestError, GenerateRequestSchema, type GenerateStatus, type Generator, GeneratorSchema, type GenericTileset, type GridConfidence, GridConfidenceSchema, HAND_EDIT_DIR, HISTORY_ENV, type HandEditCompanion, HandEditCompanionSchema, type HandEditMember, type HandEditSave, type HandEditSaveInput, type HandEditStart, type HandEditStatus, type HistoryPick, type ImageQualityMetrics, ImageQualityMetricsSchema, InheritedStyleSchema, type InstallRecipeOptions, type InstallRecipeResult, type JobState, type LoadedManifest, type LoadedRecipe, type Lock, type LockEntry, LockEntrySchema, type LockHistoryEntry, LockHistoryEntrySchema, type LockOutput, LockSchema, MAX_DOWNLOAD_BYTES, MAX_HAND_EDIT_BYTES, MAX_RETRIES, type ManagedArtifactBundleOptions, type Manifest, ManifestDriftError, type ManifestEdit, ManifestEditError, type ManifestEditResult, ManifestEditSchema, ManifestInputSchema, ManifestSchema, type MapObject, MediaType, type MountPlacement, type MountedSheet, type NormalizedTileRules, type OpenProjectOptions, type Orphan, type OrphanGroups, type OutputSelection, type OutputSource, PIXEL_ART_FIXER_REVISION, PIXEL_ART_FIXER_URL, type PackedFrame, type PackedSheet, type PackedSource, type PendingQualityReview, type PickResult, type PixelArtFixerDetection, PixelLabClient, PixelLabError, type PixelLabObject, PixelLabProvider, type Plan, type PlanItem, type PlanState, type PollContext, type PollOptions, type PollResult, type PrepareReviewOptions, type Project, type Provider, type ProviderFactory, type ProviderInputContext, type ProviderInputScalar, type ProviderInputValue, type ProviderMetadata, type ProviderMode, type ProviderOptionContext, type ProviderSubmission, type QualityBaseline, QualityBaselineSchema, type QualityCheck, type QualityProfile, type QualityProfileInspection, QualityProfileSchema, type QualityProfileState, type QualityRegressionCaseResult, type QualityRegressionReport, type QualitySnapshotResult, QualityToleranceSchema, type QualityTolerances, type RateLimit, type Recipe, type RecipeFileVerification, type RecipeModelVerification, RecipeSchema, type RecipeVerification, type RefineAudit, type RefineFrameSetOptions, type RefineFrameSetResult, type RefineOptions, type RefineQualityProfilesOptions, type RefineQualityProfilesResult, type RefineRecordOptions, type RefineResult, type RemoteAsset, type RemoteHashCacheHealth, type RenderGalleryOptions, type RenderSheetOptions, type ResolvedOutput, type ResolvedProviderInputs, type ResolvedProviderOptions, type ResolvedQualityInput, type ResolvedQualityProfile, type ResolvedRevision, type ResolvedSpec, type ResolvedStyleImage, type ResumeAction, type ResumeCommand, type RetroDiffusionOptions, RetroDiffusionProvider, type RetryInit, type RetryOptions, type RetryingFetch, type RevertOptions, type RevertResult, type ReviewReadyInfo, type ReviewSession, type Revision, type RevisionMode, RevisionModeSchema, type RevisionReadiness, RevisionSchema, type SalvageAction, type SalvageResult, type ScannedAsset, type ScenarioOptions, ScenarioProvider, type SessionBudget, type SheetGroup, type SiblingManifest, type SpriteInput, type Style, type StyleAudit, type StyleInput, StyleInputSchema, StyleSchema, type SubmissionCheckpoint, type SubmitContext, type SubmitOptions, type SubmitResult, type TilesPro, type TilesetExport, type TilesetExportOptions, type TilesetFormat, UnsupportedCapabilityError, type Workspace, type WorkspaceClaims, type WorkspaceDiagnostic, type WorkspaceProject, WorkspaceProjectSchema, type WorkspaceProjectStatus, WorkspaceSchema, type WorkspaceStatusReport, adopt, applyManifestEdit, applyTags, approveQualityRecord, auditStyle, availableProviders, backoffMs, buildGallerySnapshot, buildManifest, buildPlan, buildWorkspaceGallerySnapshot, bundledRecipeRoot, cacheFileName, candidateCount, checkQualityBaseline, checkQualityRecord, clientFromEnv, colorDistance, countNumberedDescriptions, createArtifactBundleManifest, createGalleryEditHandler, createGalleryEditorHandlers, createGenerateHandlers, createProvider, currentEntryOutputPath, currentOutputPath, defaultOpenCommand, detachHandEdit, detectMediaType, doctor, editorBaseUrl, editorDir, editorRoute, editorStatus, editorToolsRoot, evaluateAudit, expectedOutputPath, exportTileset, fallbackOutputRole, fetchAssets, fetchWithRetry, findOrphans, formatCost, galleryMediaId, galleryMediaRoute, generationCost, groupOrphansByStyle, handEditBase, handEditBases, handEditCompanionPath, handEditMembers, handEditPath, handEditProjectPath, hex, historyAfterReplacing, historyLimit, idFromPrompt, imageMetadata, inspectCaches, inspectQualityProfile, inspectRevisionReadiness, installEditor, installRecipe, isFrameSetEntry, isMemberSetEntry, isSensitiveSourceUrl, listBundledRecipes, loadClaims, loadLock, loadManifest, loadSiblingManifests, loadWorkspace, lockKey, matchOrphanStyle, measureBalanceChange, measureDecodedImageQuality, measureImageQuality, mediaExtension, mediaTypeFromExtension, memberPath, mergePalettes, mountSprites, mountStyle, normalizeLockOutputPaths, normalizeRefinementPalette, normalizeTileRules, openExternal, openInEditor, openProject, outliers, outputId, packSprites, packStyle, paletteDistance, parseLock, parseWorkspace, pickHistory, pngSize, poll, portableOutputPath, prepareReview, primaryOutput, providerCredentialEnvs, providerFactory, pushTags, qualityFrameOutputPath, qualityRecordPath, quantizeToPalette, readArtifactBundleManifest, readHandEditCompanion, readQualityBaseline, recipeDigest, referencedHashes, refineAsset, refineFrameSet, refineQualityProfiles, registerProvider, remove, renderGallery, renderSalvageSheet, renderSheet, requireApprovedQualitySources, requireBalance, requireDelete, requireList, requireRevisionReady, requireSelectCandidate, resolveEntryOutputs, resolveOutputPath, resolvePackInputs, resolveProject, resolveQualityInputs, resolveRecipe, resolveSpecEntryOutputs, resolveSpecOutputs, resolveSpecs, resolveStyleImages, resolveStyleOutputs, resumeActions, resumeCommandForStatus, retireGeneration, retryAfterMs, revertGeneration, runPicker, runSalvage, saveHandEdit, saveLock, saveWorkspace, scanAssets, selectEntryOutput, serveGallery, sha256, sha256File, shouldPersistSourceUrl, shouldRetry, slugify, snapshotQualityBaseline, sourceIsStem, sourceOutputPath, specHash, spendByUnit, startHandEdit, styleImagesBase64, submit, summarize, tagAdopted, tileFeatureOutputCount, tileVariationCount, tilesCost, toPortablePath, totalSpend, upsert, validateCostEstimate, validateMedia, validateWorkspace, verifyArtifactBundle, verifyRecipe, withArtifactManifest, workspaceClaims, workspaceStatus, writeArtifactBundle, writeManagedArtifactBundle };