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/CONTRIBUTING.md +5 -0
- package/README.md +12 -12
- package/dist/cli.d.ts +0 -103
- package/dist/cli.js +13366 -15643
- package/dist/cli.js.map +1 -1
- package/dist/client/gallery.css +322 -0
- package/dist/client/gallery.js +2118 -0
- package/dist/index.cjs +5174 -7488
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +224 -111
- package/dist/index.d.ts +224 -111
- package/dist/index.js +5161 -7483
- package/dist/index.js.map +1 -1
- package/docs/ARCHITECTURE.md +6 -0
- package/docs/CLI.md +1 -1
- package/docs/GETTING_STARTED.md +2 -2
- package/docs/LIBRARY.md +60 -28
- package/package.json +2 -2
package/dist/index.d.ts
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
|
|
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
|
|
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
|
-
|
|
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 };
|