@pixerate/editor 0.22.0 → 0.24.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/README.md +175 -2
- package/THIRD_PARTY_NOTICES.md +139 -0
- package/dist/agent/index.cjs +87 -111
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts +70 -211
- package/dist/agent/index.d.ts +70 -211
- package/dist/agent/index.js +78 -102
- package/dist/agent/index.js.map +1 -1
- package/dist/arrangeShortcuts-B8O3f8-P.d.cts +184 -0
- package/dist/arrangeShortcuts-sLlD2rSX.d.ts +184 -0
- package/dist/canvas/index.cjs +2075 -86
- package/dist/canvas/index.cjs.map +1 -1
- package/dist/canvas/index.d.cts +608 -186
- package/dist/canvas/index.d.ts +608 -186
- package/dist/canvas/index.js +2060 -71
- package/dist/canvas/index.js.map +1 -1
- package/dist/chunk-26BVFKHU.cjs +453 -0
- package/dist/chunk-26BVFKHU.cjs.map +1 -0
- package/dist/chunk-2H7ZHPEJ.js +762 -0
- package/dist/chunk-2H7ZHPEJ.js.map +1 -0
- package/dist/{chunk-DENSCKFC.js → chunk-3CN2WD3X.js} +1730 -189
- package/dist/chunk-3CN2WD3X.js.map +1 -0
- package/dist/{chunk-JJDLPEWL.js → chunk-3LV6RRPH.js} +2 -2
- package/dist/{chunk-MJZBNWG7.js → chunk-5S3Z4PPF.js} +78 -557
- package/dist/chunk-5S3Z4PPF.js.map +1 -0
- package/dist/chunk-664LQYFJ.js +115 -0
- package/dist/chunk-664LQYFJ.js.map +1 -0
- package/dist/chunk-7DWMJCAT.js +453 -0
- package/dist/chunk-7DWMJCAT.js.map +1 -0
- package/dist/chunk-ARRTP33I.js +101 -0
- package/dist/chunk-ARRTP33I.js.map +1 -0
- package/dist/chunk-CPOKFNBG.cjs +101 -0
- package/dist/chunk-CPOKFNBG.cjs.map +1 -0
- package/dist/{chunk-AA4ZEVCC.cjs → chunk-D27YFC46.cjs} +101 -580
- package/dist/chunk-D27YFC46.cjs.map +1 -0
- package/dist/chunk-D6FH2YAX.cjs +131 -0
- package/dist/chunk-D6FH2YAX.cjs.map +1 -0
- package/dist/{chunk-4SUNJZWB.cjs → chunk-FD4LPFAE.cjs} +48 -200
- package/dist/chunk-FD4LPFAE.cjs.map +1 -0
- package/dist/chunk-FODNLX5N.js +749 -0
- package/dist/chunk-FODNLX5N.js.map +1 -0
- package/dist/{chunk-OYXSKQFR.js → chunk-FPENXAEJ.js} +35 -187
- package/dist/chunk-FPENXAEJ.js.map +1 -0
- package/dist/chunk-G2I4QJOT.cjs +762 -0
- package/dist/chunk-G2I4QJOT.cjs.map +1 -0
- package/dist/chunk-HLIMTC6N.js +1 -0
- package/dist/chunk-HLIMTC6N.js.map +1 -0
- package/dist/{chunk-QGHGJ56O.js → chunk-ITBSKI26.js} +1483 -19
- package/dist/chunk-ITBSKI26.js.map +1 -0
- package/dist/{chunk-6M3BCTBD.cjs → chunk-MA2F5KHF.cjs} +470 -242
- package/dist/chunk-MA2F5KHF.cjs.map +1 -0
- package/dist/{chunk-SAZRENEZ.cjs → chunk-MCSJFWAO.cjs} +1733 -192
- package/dist/chunk-MCSJFWAO.cjs.map +1 -0
- package/dist/chunk-MKA3AHLV.cjs +256 -0
- package/dist/chunk-MKA3AHLV.cjs.map +1 -0
- package/dist/chunk-OLZJXL4R.cjs +749 -0
- package/dist/chunk-OLZJXL4R.cjs.map +1 -0
- package/dist/chunk-OXSV64JX.js +689 -0
- package/dist/chunk-OXSV64JX.js.map +1 -0
- package/dist/chunk-P3RQ5UJE.cjs +689 -0
- package/dist/chunk-P3RQ5UJE.cjs.map +1 -0
- package/dist/chunk-P6ODPZ4W.js +256 -0
- package/dist/chunk-P6ODPZ4W.js.map +1 -0
- package/dist/chunk-PGNZKFQS.js +685 -0
- package/dist/chunk-PGNZKFQS.js.map +1 -0
- package/dist/chunk-PL4JB3BF.cjs +1 -0
- package/dist/chunk-PL4JB3BF.cjs.map +1 -0
- package/dist/{chunk-GVSMRPHB.cjs → chunk-SBCZ6RN5.cjs} +1568 -104
- package/dist/chunk-SBCZ6RN5.cjs.map +1 -0
- package/dist/{chunk-CL37JGFW.cjs → chunk-SML64VJG.cjs} +4 -4
- package/dist/{chunk-CL37JGFW.cjs.map → chunk-SML64VJG.cjs.map} +1 -1
- package/dist/chunk-TNNJXF46.cjs +115 -0
- package/dist/chunk-TNNJXF46.cjs.map +1 -0
- package/dist/chunk-U5HZSFCS.js +131 -0
- package/dist/chunk-U5HZSFCS.js.map +1 -0
- package/dist/{chunk-RU52I7QO.js → chunk-U5KWZU4X.js} +388 -160
- package/dist/chunk-U5KWZU4X.js.map +1 -0
- package/dist/chunk-XNORY7M6.cjs +685 -0
- package/dist/chunk-XNORY7M6.cjs.map +1 -0
- package/dist/commands/index.cjs +860 -0
- package/dist/commands/index.cjs.map +1 -0
- package/dist/commands/index.d.cts +244 -0
- package/dist/commands/index.d.ts +244 -0
- package/dist/commands/index.js +860 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/comment-store-BEMgVlAA.d.cts +135 -0
- package/dist/comment-store-BEMgVlAA.d.ts +135 -0
- package/dist/compare/index.cjs +15 -0
- package/dist/compare/index.cjs.map +1 -0
- package/dist/compare/index.d.cts +58 -0
- package/dist/compare/index.d.ts +58 -0
- package/dist/compare/index.js +15 -0
- package/dist/compare/index.js.map +1 -0
- package/dist/{controller-B7GIybc4.d.cts → controller-BhLLAoi8.d.cts} +119 -5
- package/dist/{controller-B7GIybc4.d.ts → controller-BhLLAoi8.d.ts} +119 -5
- package/dist/documents-BQjzJNe2.d.ts +76 -0
- package/dist/documents-KRTPhvst.d.cts +76 -0
- package/dist/extensions/index.cjs +53 -5
- package/dist/extensions/index.cjs.map +1 -1
- package/dist/extensions/index.d.cts +7 -3
- package/dist/extensions/index.d.ts +7 -3
- package/dist/extensions/index.js +52 -4
- package/dist/generation/index.cjs +1373 -0
- package/dist/generation/index.cjs.map +1 -0
- package/dist/generation/index.d.cts +554 -0
- package/dist/generation/index.d.ts +554 -0
- package/dist/generation/index.js +1373 -0
- package/dist/generation/index.js.map +1 -0
- package/dist/grammar/index.cjs +48 -3
- package/dist/grammar/index.cjs.map +1 -1
- package/dist/grammar/index.d.cts +322 -100
- package/dist/grammar/index.d.ts +322 -100
- package/dist/grammar/index.js +54 -9
- package/dist/history/index.cjs +12 -2
- package/dist/history/index.cjs.map +1 -1
- package/dist/history/index.d.cts +211 -7
- package/dist/history/index.d.ts +211 -7
- package/dist/history/index.js +13 -3
- package/dist/image-editor/index.cjs +2244 -38
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +742 -4
- package/dist/image-editor/index.d.ts +742 -4
- package/dist/image-editor/index.js +2222 -16
- package/dist/image-editor/index.js.map +1 -1
- package/dist/{index-CCr_z9kF.d.cts → index-BhJBSm2d.d.cts} +370 -4
- package/dist/{index-Ck6ajwXh.d.ts → index-fJrlkJCd.d.ts} +370 -4
- package/dist/index.cjs +193 -98
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +17 -48
- package/dist/index.d.ts +17 -48
- package/dist/index.js +198 -103
- package/dist/index.js.map +1 -1
- package/dist/migrate-iTlm3a8h.d.cts +112 -0
- package/dist/migrate-iTlm3a8h.d.ts +112 -0
- package/dist/persistence/index.cjs +676 -0
- package/dist/persistence/index.cjs.map +1 -0
- package/dist/persistence/index.d.cts +347 -0
- package/dist/persistence/index.d.ts +347 -0
- package/dist/persistence/index.js +676 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/registry-BDe-vlv3.d.ts +171 -0
- package/dist/registry-D32LpIc4.d.cts +354 -0
- package/dist/registry-DnzpgY27.d.cts +171 -0
- package/dist/registry-evKTP4ls.d.ts +354 -0
- package/dist/schema-DYDGdYL9.d.cts +41 -0
- package/dist/schema-DYDGdYL9.d.ts +41 -0
- package/dist/serializers/index.cjs +4 -3
- package/dist/serializers/index.cjs.map +1 -1
- package/dist/serializers/index.d.cts +2 -1
- package/dist/serializers/index.d.ts +2 -1
- package/dist/serializers/index.js +3 -2
- package/dist/sourcemap-C8AH3MBQ.d.cts +91 -0
- package/dist/sourcemap-DA1Evhrv.d.ts +91 -0
- package/dist/spreadsheet/index.cjs +53 -3
- package/dist/spreadsheet/index.cjs.map +1 -1
- package/dist/spreadsheet/index.d.cts +247 -18
- package/dist/spreadsheet/index.d.ts +247 -18
- package/dist/spreadsheet/index.js +58 -8
- package/dist/{tokens-CyLZmIei.d.cts → tokens-D7yXvUU6.d.cts} +15 -2
- package/dist/{tokens-CyLZmIei.d.ts → tokens-D7yXvUU6.d.ts} +15 -2
- package/dist/{track-changes-BSF58RK0.d.cts → track-changes-BK5sVf4_.d.cts} +18 -136
- package/dist/{track-changes-BSF58RK0.d.ts → track-changes-CDjCrwKe.d.ts} +18 -136
- package/dist/{types-CJ4U-HHI.d.ts → types-DX4Mh4SL.d.cts} +1 -1
- package/dist/{types-CJ4U-HHI.d.cts → types-DX4Mh4SL.d.ts} +1 -1
- package/dist/types-GT5a5YAX.d.cts +86 -0
- package/dist/types-GT5a5YAX.d.ts +86 -0
- package/package.json +23 -2
- package/dist/chunk-2TWGLC5K.cjs +0 -262
- package/dist/chunk-2TWGLC5K.cjs.map +0 -1
- package/dist/chunk-4SUNJZWB.cjs.map +0 -1
- package/dist/chunk-6M3BCTBD.cjs.map +0 -1
- package/dist/chunk-AA4ZEVCC.cjs.map +0 -1
- package/dist/chunk-AXV2ZW34.cjs +0 -118
- package/dist/chunk-AXV2ZW34.cjs.map +0 -1
- package/dist/chunk-B2ZRLN4S.js +0 -118
- package/dist/chunk-B2ZRLN4S.js.map +0 -1
- package/dist/chunk-DENSCKFC.js.map +0 -1
- package/dist/chunk-GVSMRPHB.cjs.map +0 -1
- package/dist/chunk-KAADNAPF.js +0 -262
- package/dist/chunk-KAADNAPF.js.map +0 -1
- package/dist/chunk-MJZBNWG7.js.map +0 -1
- package/dist/chunk-OYXSKQFR.js.map +0 -1
- package/dist/chunk-QGHGJ56O.js.map +0 -1
- package/dist/chunk-RU52I7QO.js.map +0 -1
- package/dist/chunk-SAZRENEZ.cjs.map +0 -1
- package/dist/types-BZgcDsC5.d.cts +0 -42
- package/dist/types-BZgcDsC5.d.ts +0 -42
- /package/dist/{chunk-JJDLPEWL.js.map → chunk-3LV6RRPH.js.map} +0 -0
|
@@ -0,0 +1,554 @@
|
|
|
1
|
+
import { J as JsonSchema } from '../schema-DYDGdYL9.cjs';
|
|
2
|
+
export { S as SchemaValidationError, v as validateJsonSchema } from '../schema-DYDGdYL9.cjs';
|
|
3
|
+
import { A as AgentToolProvider } from '../registry-DnzpgY27.cjs';
|
|
4
|
+
export { a as AgentTool, d as McpToolDefinition, e as McpToolResult } from '../registry-DnzpgY27.cjs';
|
|
5
|
+
import { S as SourceMapSegment } from '../sourcemap-C8AH3MBQ.cjs';
|
|
6
|
+
import { T as Template, P as PromptValues } from '../tokens-D7yXvUU6.cjs';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Declarative descriptions of generative models (what a model accepts) and of
|
|
10
|
+
* the requests sent to them. Everything here is plain data so capabilities can
|
|
11
|
+
* come from a server, be merged with local presentation overlays, and be
|
|
12
|
+
* turned into JSON Schema for agents.
|
|
13
|
+
*/
|
|
14
|
+
type GenerationMediaKind = 'image' | 'video' | 'audio' | 'text';
|
|
15
|
+
/** What a reference input is used for. */
|
|
16
|
+
type ReferenceRole = 'start_frame' | 'end_frame' | 'style_ref' | 'character_ref' | 'background_ref' | 'mask' | 'image_ref' | 'video_ref' | 'audio_ref';
|
|
17
|
+
/** Every reference role, in a stable display order. */
|
|
18
|
+
declare const REFERENCE_ROLES: readonly ReferenceRole[];
|
|
19
|
+
/** Human-readable default labels for reference roles. */
|
|
20
|
+
declare const REFERENCE_ROLE_LABELS: Readonly<Record<ReferenceRole, string>>;
|
|
21
|
+
/** A choice from a fixed list. `options` order matters (low → high where it applies). */
|
|
22
|
+
interface EnumCapability<T extends string | number = string> {
|
|
23
|
+
options: readonly T[];
|
|
24
|
+
default?: T;
|
|
25
|
+
/** Display labels by option value. */
|
|
26
|
+
labels?: Readonly<Record<string, string>>;
|
|
27
|
+
}
|
|
28
|
+
interface TextFieldCapability {
|
|
29
|
+
maxLength?: number;
|
|
30
|
+
}
|
|
31
|
+
interface PromptCapability extends TextFieldCapability {
|
|
32
|
+
/**
|
|
33
|
+
* Count the resolved prompt (templates expanded, variables substituted)
|
|
34
|
+
* against `maxLength` rather than the raw template text. Default `true`.
|
|
35
|
+
* Pass the resolved text to the planner as `resolvedPrompt`.
|
|
36
|
+
*/
|
|
37
|
+
countResolved?: boolean;
|
|
38
|
+
/** The prompt must be non-empty. */
|
|
39
|
+
required?: boolean;
|
|
40
|
+
}
|
|
41
|
+
interface CountCapability {
|
|
42
|
+
/** Largest number of outputs per request. */
|
|
43
|
+
max: number;
|
|
44
|
+
/** Predefined choices; when given, requests snap to one of them. */
|
|
45
|
+
options?: readonly number[];
|
|
46
|
+
default?: number;
|
|
47
|
+
}
|
|
48
|
+
interface DurationCapability {
|
|
49
|
+
/** Seconds. */
|
|
50
|
+
min?: number;
|
|
51
|
+
max?: number;
|
|
52
|
+
/** Predefined choices; when given, requests snap to one of them. */
|
|
53
|
+
options?: readonly number[];
|
|
54
|
+
default?: number;
|
|
55
|
+
step?: number;
|
|
56
|
+
}
|
|
57
|
+
interface SeedCapability {
|
|
58
|
+
min?: number;
|
|
59
|
+
max?: number;
|
|
60
|
+
}
|
|
61
|
+
interface ReferenceRoleCapability {
|
|
62
|
+
/** Most references of this role. */
|
|
63
|
+
max: number;
|
|
64
|
+
/** Fewest references of this role (e.g. an image-to-video model needs a `start_frame`). */
|
|
65
|
+
min?: number;
|
|
66
|
+
label?: string;
|
|
67
|
+
description?: string;
|
|
68
|
+
}
|
|
69
|
+
interface ReferenceCapability {
|
|
70
|
+
/** Supported roles and their per-role limits. Roles not listed are unsupported. */
|
|
71
|
+
roles: Partial<Readonly<Record<ReferenceRole, ReferenceRoleCapability>>>;
|
|
72
|
+
/** Most references across all roles. */
|
|
73
|
+
maxTotal?: number;
|
|
74
|
+
}
|
|
75
|
+
interface NumberParamSpec {
|
|
76
|
+
type: 'number' | 'integer';
|
|
77
|
+
min?: number;
|
|
78
|
+
max?: number;
|
|
79
|
+
step?: number;
|
|
80
|
+
default?: number;
|
|
81
|
+
label?: string;
|
|
82
|
+
description?: string;
|
|
83
|
+
}
|
|
84
|
+
interface EnumParamSpec {
|
|
85
|
+
type: 'enum';
|
|
86
|
+
options: readonly (string | number)[];
|
|
87
|
+
default?: string | number;
|
|
88
|
+
label?: string;
|
|
89
|
+
description?: string;
|
|
90
|
+
}
|
|
91
|
+
interface BooleanParamSpec {
|
|
92
|
+
type: 'boolean';
|
|
93
|
+
default?: boolean;
|
|
94
|
+
label?: string;
|
|
95
|
+
description?: string;
|
|
96
|
+
}
|
|
97
|
+
/** A model-specific parameter (`guidance`, `motion_strength`, `style`, …). */
|
|
98
|
+
type ExtraParamSpec = NumberParamSpec | EnumParamSpec | BooleanParamSpec;
|
|
99
|
+
/** Rough timing used for progress estimates (`expectedDurationFor`). */
|
|
100
|
+
interface TimingCapability {
|
|
101
|
+
/** Fixed cost of one request in ms. */
|
|
102
|
+
baseMs: number;
|
|
103
|
+
/** Extra ms per output beyond the first. */
|
|
104
|
+
perItemMs?: number;
|
|
105
|
+
/** Extra ms per second of requested duration (video/audio). */
|
|
106
|
+
perSecondMs?: number;
|
|
107
|
+
/** Extra ms per megapixel of the requested resolution. */
|
|
108
|
+
perMegapixelMs?: number;
|
|
109
|
+
}
|
|
110
|
+
/** Presentation-only fields; overlays may set these (see `mergeCapabilities`). */
|
|
111
|
+
interface CapabilityPresentation {
|
|
112
|
+
name?: string;
|
|
113
|
+
description?: string;
|
|
114
|
+
badges?: readonly string[];
|
|
115
|
+
icon?: string;
|
|
116
|
+
group?: string;
|
|
117
|
+
}
|
|
118
|
+
/** Everything a generative model accepts. Absent sections mean "unsupported". */
|
|
119
|
+
interface ModelCapabilities extends CapabilityPresentation {
|
|
120
|
+
id: string;
|
|
121
|
+
media: GenerationMediaKind;
|
|
122
|
+
prompt?: PromptCapability;
|
|
123
|
+
/** Negative prompt support (`true` or limits). */
|
|
124
|
+
negativePrompt?: boolean | TextFieldCapability;
|
|
125
|
+
/** System prompt support (`true` or limits). */
|
|
126
|
+
systemPrompt?: boolean | TextFieldCapability;
|
|
127
|
+
/** E.g. `['1:1', '16:9', '9:16']`. */
|
|
128
|
+
aspectRatios?: EnumCapability<string>;
|
|
129
|
+
/** E.g. `['512x512', '1024x1024']`, `['720p', '1080p']` or `['1k', '2k', '4k']`, low → high. */
|
|
130
|
+
resolutions?: EnumCapability<string>;
|
|
131
|
+
/** Ordered low → high, e.g. `['draft', 'standard', 'high']`. */
|
|
132
|
+
quality?: EnumCapability<string>;
|
|
133
|
+
count?: CountCapability;
|
|
134
|
+
duration?: DurationCapability;
|
|
135
|
+
seed?: boolean | SeedCapability;
|
|
136
|
+
references?: ReferenceCapability;
|
|
137
|
+
/** Accepts a source to edit (`mode: 'edit'`). */
|
|
138
|
+
editing?: boolean;
|
|
139
|
+
/** Accepts a source plus a `mask` reference (`mode: 'inpaint'`). */
|
|
140
|
+
inpainting?: boolean;
|
|
141
|
+
params?: Readonly<Record<string, ExtraParamSpec>>;
|
|
142
|
+
timing?: TimingCapability;
|
|
143
|
+
}
|
|
144
|
+
interface GenerationReference {
|
|
145
|
+
/** Asset id (opaque to this library). */
|
|
146
|
+
id: string;
|
|
147
|
+
role: ReferenceRole;
|
|
148
|
+
url?: string;
|
|
149
|
+
}
|
|
150
|
+
type GenerationMode = 'generate' | 'edit' | 'inpaint';
|
|
151
|
+
type GenerationParamValue = string | number | boolean;
|
|
152
|
+
/** A request for one model. Every field is optional; the planner fills and fixes. */
|
|
153
|
+
interface GenerationRequest {
|
|
154
|
+
model?: string;
|
|
155
|
+
prompt?: string;
|
|
156
|
+
negativePrompt?: string;
|
|
157
|
+
systemPrompt?: string;
|
|
158
|
+
aspectRatio?: string;
|
|
159
|
+
resolution?: string;
|
|
160
|
+
quality?: string;
|
|
161
|
+
count?: number;
|
|
162
|
+
/** Seconds. */
|
|
163
|
+
duration?: number;
|
|
164
|
+
seed?: number;
|
|
165
|
+
mode?: GenerationMode;
|
|
166
|
+
references?: GenerationReference[];
|
|
167
|
+
params?: Record<string, GenerationParamValue>;
|
|
168
|
+
}
|
|
169
|
+
/** Fields of {@link GenerationRequest} the planner knows about, in planning order. */
|
|
170
|
+
declare const GENERATION_REQUEST_FIELDS: readonly ["model", "prompt", "negativePrompt", "systemPrompt", "aspectRatio", "resolution", "quality", "count", "duration", "seed", "mode", "references", "params"];
|
|
171
|
+
/** Text field limits normalized from `boolean | TextFieldCapability`. */
|
|
172
|
+
declare function textFieldCapability(value: boolean | TextFieldCapability | undefined): TextFieldCapability | null;
|
|
173
|
+
/** Seed limits normalized from `boolean | SeedCapability`. */
|
|
174
|
+
declare function seedCapability(value: boolean | SeedCapability | undefined): SeedCapability | null;
|
|
175
|
+
/** Supported reference roles of a model in {@link REFERENCE_ROLES} order. */
|
|
176
|
+
declare function supportedReferenceRoles(caps: ModelCapabilities): ReferenceRole[];
|
|
177
|
+
/** Supported generation modes of a model. */
|
|
178
|
+
declare function supportedModes(caps: ModelCapabilities): GenerationMode[];
|
|
179
|
+
/** A partial model entry used to decorate (or add) models locally. */
|
|
180
|
+
type CapabilityOverlay = Partial<ModelCapabilities> & {
|
|
181
|
+
id: string;
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Merges server-reported capabilities with a local overlay. For models the
|
|
185
|
+
* server knows, every capability value comes from `remote`; the overlay only
|
|
186
|
+
* contributes presentation fields (`name`, `description`, `badges`, `icon`,
|
|
187
|
+
* `group`), filling in or replacing the remote ones. Overlay entries for
|
|
188
|
+
* models the server does not report are appended when they are complete
|
|
189
|
+
* (have a `media` kind). Remote order is kept; overlay-only models follow in
|
|
190
|
+
* overlay order.
|
|
191
|
+
*/
|
|
192
|
+
declare function mergeCapabilities(remote: readonly ModelCapabilities[], overlay?: readonly CapabilityOverlay[]): ModelCapabilities[];
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* How the planner treats values the model does not support:
|
|
196
|
+
*
|
|
197
|
+
* - `error`: nothing is changed; every mismatch is an error.
|
|
198
|
+
* - `nearest`: snap to the closest supported value (ties go to the higher
|
|
199
|
+
* value), clamp ranges, truncate lists, drop unsupported fields and
|
|
200
|
+
* unsupported references.
|
|
201
|
+
* - `downgrade`: like `nearest`, but ties go to the lower value.
|
|
202
|
+
* - `upgrade`: like `nearest`, but never drops references the model cannot
|
|
203
|
+
* use (that would lose intent), so those are errors.
|
|
204
|
+
*
|
|
205
|
+
* "Lower" means a narrower aspect ratio, fewer pixels, an earlier quality
|
|
206
|
+
* option, a smaller number.
|
|
207
|
+
*/
|
|
208
|
+
type PlanStrategy = 'error' | 'upgrade' | 'downgrade' | 'nearest';
|
|
209
|
+
type PlanAdjustmentKind = 'snapped' | 'clamped' | 'truncated' | 'dropped' | 'defaulted';
|
|
210
|
+
interface PlanAdjustment {
|
|
211
|
+
/** Request path, e.g. `aspectRatio`, `params.guidance`, `references.style_ref`. */
|
|
212
|
+
field: string;
|
|
213
|
+
from: unknown;
|
|
214
|
+
to: unknown;
|
|
215
|
+
reason: string;
|
|
216
|
+
kind: PlanAdjustmentKind;
|
|
217
|
+
}
|
|
218
|
+
interface PlanError {
|
|
219
|
+
field: string;
|
|
220
|
+
value: unknown;
|
|
221
|
+
message: string;
|
|
222
|
+
}
|
|
223
|
+
interface GenerationPlan {
|
|
224
|
+
/** `true` when there are no errors and `request` can be sent. */
|
|
225
|
+
ok: boolean;
|
|
226
|
+
/** The adjusted request (always a copy; the input is never mutated). */
|
|
227
|
+
request: GenerationRequest;
|
|
228
|
+
adjustments: PlanAdjustment[];
|
|
229
|
+
errors: PlanError[];
|
|
230
|
+
/** Model the plan was made for. */
|
|
231
|
+
model: string;
|
|
232
|
+
strategy: PlanStrategy;
|
|
233
|
+
}
|
|
234
|
+
interface PlanOptions {
|
|
235
|
+
/** Default `nearest`. */
|
|
236
|
+
strategy?: PlanStrategy;
|
|
237
|
+
/**
|
|
238
|
+
* The prompt with templates and variables resolved. Measured against
|
|
239
|
+
* `prompt.maxLength` when the model counts resolved text (the default).
|
|
240
|
+
*/
|
|
241
|
+
resolvedPrompt?: string;
|
|
242
|
+
/** Fill missing fields that have a capability `default` (reported as `defaulted`). */
|
|
243
|
+
fillDefaults?: boolean;
|
|
244
|
+
/** Override whether references with unsupported roles may be dropped (default: `nearest` and `downgrade` only). */
|
|
245
|
+
dropUnsupportedReferences?: boolean;
|
|
246
|
+
}
|
|
247
|
+
/** Numeric rank of an aspect ratio such as `16:9` (log of width / height). */
|
|
248
|
+
declare function aspectRatioRank(value: string): number | undefined;
|
|
249
|
+
/**
|
|
250
|
+
* Numeric rank of a resolution: `1024x768` (pixels), `720p` (16:9 pixels at
|
|
251
|
+
* that height) or `2k` (square of that many kibi-pixels). Log scale.
|
|
252
|
+
*/
|
|
253
|
+
declare function resolutionRank(value: string): number | undefined;
|
|
254
|
+
/** Megapixels of a resolution string, when it can be parsed. */
|
|
255
|
+
declare function resolutionMegapixels(value: string): number | undefined;
|
|
256
|
+
/** Common quality names, low → high. Used to compare values missing from a model's options. */
|
|
257
|
+
declare const QUALITY_LADDER: Readonly<Record<string, number>>;
|
|
258
|
+
declare function qualityRank(value: string): number | undefined;
|
|
259
|
+
/**
|
|
260
|
+
* Picks the option closest to `value` by `rank`. Ties go to the lower or
|
|
261
|
+
* higher rank. Returns `undefined` when `value` or no option can be ranked.
|
|
262
|
+
*/
|
|
263
|
+
declare function snapToOption<T>(value: unknown, options: readonly T[], rank: (value: any) => number | undefined, tie: 'lower' | 'higher'): T | undefined;
|
|
264
|
+
/**
|
|
265
|
+
* Plans `request` against a model's capabilities before sending it: snaps
|
|
266
|
+
* enum values (aspect ratio, resolution, quality, count/duration choices) to
|
|
267
|
+
* the nearest supported option, clamps ranges, truncates text and reference
|
|
268
|
+
* lists over their limits, drops unsupported fields, and reports every change
|
|
269
|
+
* in `adjustments` and every unfixable problem in `errors`.
|
|
270
|
+
*
|
|
271
|
+
* Pure and deterministic: the input is not mutated and the same input always
|
|
272
|
+
* gives the same plan.
|
|
273
|
+
*/
|
|
274
|
+
declare function planGenerationRequest(request: GenerationRequest, caps: ModelCapabilities, options?: PlanOptions): GenerationPlan;
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* JSON Schema for a request to one model: enums for choices, `minimum` /
|
|
278
|
+
* `maximum` for ranges, `maxItems` for reference lists and `description`s that
|
|
279
|
+
* spell out limits the schema cannot express (per-role reference counts,
|
|
280
|
+
* resolved-prompt length). Unsupported fields are absent and
|
|
281
|
+
* `additionalProperties` is `false`, so `validateJsonSchema` rejects them.
|
|
282
|
+
*/
|
|
283
|
+
declare function capabilitiesToJsonSchema(caps: ModelCapabilities): JsonSchema & {
|
|
284
|
+
type: 'object';
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
interface GenerateContext {
|
|
288
|
+
model: ModelCapabilities;
|
|
289
|
+
plan: GenerationPlan;
|
|
290
|
+
idempotencyKey: string;
|
|
291
|
+
signal?: AbortSignal;
|
|
292
|
+
}
|
|
293
|
+
interface EstimateContext {
|
|
294
|
+
model: ModelCapabilities;
|
|
295
|
+
plan: GenerationPlan;
|
|
296
|
+
signal?: AbortSignal;
|
|
297
|
+
}
|
|
298
|
+
interface GenerationToolProviderOptions {
|
|
299
|
+
/** Provider id (default `generation`). */
|
|
300
|
+
id?: string;
|
|
301
|
+
namespace?: string;
|
|
302
|
+
/** Models, or a function returning the current models (re-read on every list/call). */
|
|
303
|
+
models: readonly ModelCapabilities[] | (() => readonly ModelCapabilities[]);
|
|
304
|
+
/** Sends a planned request. Its resolved value is the tool result (e.g. `{ jobId }`). */
|
|
305
|
+
generate: (request: GenerationRequest, context: GenerateContext) => unknown | Promise<unknown>;
|
|
306
|
+
/** Optional cost/time estimate; adds the `estimate_generation` tool. */
|
|
307
|
+
estimate?: (request: GenerationRequest, context: EstimateContext) => unknown | Promise<unknown>;
|
|
308
|
+
/** Strategy used when the caller does not pass one (default `nearest`). */
|
|
309
|
+
defaultStrategy?: PlanStrategy;
|
|
310
|
+
/** Completed idempotency keys remembered (default 500, oldest evicted first). */
|
|
311
|
+
maxIdempotencyKeys?: number;
|
|
312
|
+
/** Lets the host signal that the model list changed. */
|
|
313
|
+
subscribe?: AgentToolProvider['subscribe'];
|
|
314
|
+
}
|
|
315
|
+
interface GenerationToolProvider extends AgentToolProvider {
|
|
316
|
+
/** Forgets remembered idempotency keys (all, or one). */
|
|
317
|
+
clearIdempotencyKeys(key?: string): void;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Exposes generation models to a `ToolRegistry`:
|
|
321
|
+
*
|
|
322
|
+
* - `list_models` (read-only): ids, presentation fields and per-model request schemas.
|
|
323
|
+
* - `plan_generation` (read-only): the adjusted request, adjustments and errors.
|
|
324
|
+
* - `estimate_generation` (read-only, only with `estimate`): your estimate for the planned request.
|
|
325
|
+
* - `generate` (destructive): plans, then calls `generate` with the adjusted
|
|
326
|
+
* request. Requires an `idempotencyKey`: a retry with the same key and
|
|
327
|
+
* arguments returns the first call's result (or joins it while in flight)
|
|
328
|
+
* instead of generating again; the same key with different arguments is
|
|
329
|
+
* rejected. Failed calls forget their key so they can be retried.
|
|
330
|
+
*/
|
|
331
|
+
declare function createGenerationToolProvider(options: GenerationToolProviderOptions): GenerationToolProvider;
|
|
332
|
+
|
|
333
|
+
declare const PROVENANCE_FORMAT = "pixerate.generation-provenance";
|
|
334
|
+
declare const PROVENANCE_VERSION = 1;
|
|
335
|
+
/** The exact template body a generation used. */
|
|
336
|
+
interface PinnedTemplate {
|
|
337
|
+
name: string;
|
|
338
|
+
templateId?: string;
|
|
339
|
+
/** Version id or version label the body came from (absent for unversioned templates). */
|
|
340
|
+
versionId?: string;
|
|
341
|
+
version?: string | number;
|
|
342
|
+
body: string;
|
|
343
|
+
}
|
|
344
|
+
/** Everything needed to explain and reproduce one generation. */
|
|
345
|
+
interface GenerationProvenance {
|
|
346
|
+
format: typeof PROVENANCE_FORMAT;
|
|
347
|
+
version: typeof PROVENANCE_VERSION;
|
|
348
|
+
/** Raw prompt as typed, with `{{templates}}` and `{variables}`. */
|
|
349
|
+
rawPrompt: string;
|
|
350
|
+
/** Every template the prompt reached (recursively), pinned to the body used. */
|
|
351
|
+
templates: PinnedTemplate[];
|
|
352
|
+
/** Version bindings in effect (`{ templateName: versionId }`) for every pinned versioned template. */
|
|
353
|
+
bindings: Record<string, string>;
|
|
354
|
+
/** Variable values, or `null` when variables were left unresolved. */
|
|
355
|
+
values: PromptValues | null;
|
|
356
|
+
resolvedPrompt: string;
|
|
357
|
+
sourceMap: SourceMapSegment[];
|
|
358
|
+
modelId: string;
|
|
359
|
+
/** The planned (adjusted) request that was sent. */
|
|
360
|
+
request: GenerationRequest;
|
|
361
|
+
adjustments: PlanAdjustment[];
|
|
362
|
+
references: {
|
|
363
|
+
id: string;
|
|
364
|
+
role: ReferenceRole;
|
|
365
|
+
}[];
|
|
366
|
+
/** ISO timestamps. */
|
|
367
|
+
createdAt: string;
|
|
368
|
+
startedAt?: string;
|
|
369
|
+
completedAt?: string;
|
|
370
|
+
/** Ids of the outputs this generation produced. */
|
|
371
|
+
outputIds?: string[];
|
|
372
|
+
meta?: Record<string, unknown>;
|
|
373
|
+
}
|
|
374
|
+
interface CreateProvenanceOptions {
|
|
375
|
+
rawPrompt: string;
|
|
376
|
+
templates?: Template[];
|
|
377
|
+
/** Template version bindings (`{ templateName: versionIdOrVersion }`). */
|
|
378
|
+
bindings?: Record<string, string>;
|
|
379
|
+
values?: PromptValues;
|
|
380
|
+
model: string | ModelCapabilities;
|
|
381
|
+
/** The plan the request came from (its request and adjustments are recorded) … */
|
|
382
|
+
plan?: GenerationPlan;
|
|
383
|
+
/** … or the request that was sent. */
|
|
384
|
+
request?: GenerationRequest;
|
|
385
|
+
adjustments?: PlanAdjustment[];
|
|
386
|
+
/** Creation time (default `Date.now()`). */
|
|
387
|
+
createdAt?: Date | number | string;
|
|
388
|
+
startedAt?: Date | number | string;
|
|
389
|
+
completedAt?: Date | number | string;
|
|
390
|
+
outputIds?: string[];
|
|
391
|
+
meta?: Record<string, unknown>;
|
|
392
|
+
maxDepth?: number;
|
|
393
|
+
}
|
|
394
|
+
declare class ProvenanceParseError extends Error {
|
|
395
|
+
constructor(message: string);
|
|
396
|
+
}
|
|
397
|
+
/** Templates that reproduce the pinned bodies exactly (one single-version template each). */
|
|
398
|
+
declare function pinnedTemplatesToTemplates(pinned: readonly PinnedTemplate[]): Template[];
|
|
399
|
+
/**
|
|
400
|
+
* Records what produced an output: the raw prompt, the exact template bodies
|
|
401
|
+
* and versions it reached, variable values, the resolved prompt and its
|
|
402
|
+
* source map, the model, the planned settings and adjustments, and the
|
|
403
|
+
* references by role.
|
|
404
|
+
*/
|
|
405
|
+
declare function createProvenance(options: CreateProvenanceOptions): GenerationProvenance;
|
|
406
|
+
/** Versioned JSON for storage next to an output. */
|
|
407
|
+
declare function serializeProvenance(provenance: GenerationProvenance): string;
|
|
408
|
+
/** Parses and checks serialized provenance. Throws {@link ProvenanceParseError}. */
|
|
409
|
+
declare function parseProvenance(input: string | unknown): GenerationProvenance;
|
|
410
|
+
/**
|
|
411
|
+
* A request that reproduces the recorded generation exactly: the planned
|
|
412
|
+
* settings, model, seed and references that were sent, with the prompt as
|
|
413
|
+
* resolved at the time (not re-resolved against today's templates).
|
|
414
|
+
*/
|
|
415
|
+
declare function recreateRequest(provenance: GenerationProvenance): GenerationRequest;
|
|
416
|
+
/**
|
|
417
|
+
* Re-resolves the raw prompt against the pinned template bodies and values,
|
|
418
|
+
* e.g. to check a record or to open it in an editor with its source map.
|
|
419
|
+
*/
|
|
420
|
+
declare function replayProvenancePrompt(provenance: GenerationProvenance): {
|
|
421
|
+
text: string;
|
|
422
|
+
map: SourceMapSegment[];
|
|
423
|
+
matches: boolean;
|
|
424
|
+
};
|
|
425
|
+
|
|
426
|
+
interface BatchResolverOptions<K, V> {
|
|
427
|
+
/** Loads many keys at once. Keys missing from the map resolve to `undefined`. */
|
|
428
|
+
fetch: (keys: K[]) => Promise<Map<K, V>>;
|
|
429
|
+
/** Largest batch passed to `fetch` (default 50). */
|
|
430
|
+
maxBatch?: number;
|
|
431
|
+
/** How long to collect keys before fetching, in ms (default 0: the same tick). */
|
|
432
|
+
delayMs?: number;
|
|
433
|
+
/** Called once per failed batch. The batch's keys are recorded as resolved-empty. */
|
|
434
|
+
onError?: (error: unknown, keys: K[]) => void;
|
|
435
|
+
}
|
|
436
|
+
interface BatchResolver<K, V> {
|
|
437
|
+
/** Resolves one key, batched with other loads in the same window. Never rejects. */
|
|
438
|
+
load(key: K): Promise<V | undefined>;
|
|
439
|
+
loadMany(keys: readonly K[]): Promise<(V | undefined)[]>;
|
|
440
|
+
/** The settled value for a key, if it has been resolved. */
|
|
441
|
+
peek(key: K): V | undefined;
|
|
442
|
+
/** Whether a key has settled (found, missing or failed). */
|
|
443
|
+
has(key: K): boolean;
|
|
444
|
+
/** Whether a key's last fetch failed. */
|
|
445
|
+
failed(key: K): boolean;
|
|
446
|
+
/** Seeds a value without fetching. */
|
|
447
|
+
prime(key: K, value: V): void;
|
|
448
|
+
/** Forgets one key (or all) so the next `load` fetches again. */
|
|
449
|
+
clear(key?: K): void;
|
|
450
|
+
/** Fetches anything still waiting now, without waiting for `delayMs`. */
|
|
451
|
+
flush(): void;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Coalesces lookups (e.g. asset ids → thumbnails, template ids → bodies) into
|
|
455
|
+
* batched `fetch` calls: keys requested within `delayMs` share a batch of at
|
|
456
|
+
* most `maxBatch`, duplicate keys are fetched once, and results are cached.
|
|
457
|
+
* A failed batch resolves its keys to `undefined` and records them as
|
|
458
|
+
* resolved-empty (`failed(key)` is `true`) so one bad response does not cause
|
|
459
|
+
* a retry storm; `clear(key)` allows a retry.
|
|
460
|
+
*/
|
|
461
|
+
declare function createBatchResolver<K, V>(options: BatchResolverOptions<K, V>): BatchResolver<K, V>;
|
|
462
|
+
|
|
463
|
+
interface JobProgressInput {
|
|
464
|
+
/** Start time (ms since epoch, `Date` or ISO string). */
|
|
465
|
+
startedAt: number | Date | string;
|
|
466
|
+
/** Current time (default `Date.now()`). */
|
|
467
|
+
now?: number | Date | string;
|
|
468
|
+
/** Expected total duration in ms. Without it progress eases towards 95%. */
|
|
469
|
+
expectedMs?: number;
|
|
470
|
+
/** The job finished. */
|
|
471
|
+
done?: boolean;
|
|
472
|
+
}
|
|
473
|
+
interface JobProgressEstimate {
|
|
474
|
+
/** 0–100. Never above 95 until `done`. */
|
|
475
|
+
percent: number;
|
|
476
|
+
/** E.g. `~2m left`, `~40s left`, `Almost done…`, `Starting…`, `Done`. */
|
|
477
|
+
label: string;
|
|
478
|
+
elapsedMs: number;
|
|
479
|
+
/** Estimated ms left (`undefined` without `expectedMs`). */
|
|
480
|
+
remainingMs?: number;
|
|
481
|
+
/** Running longer than expected. */
|
|
482
|
+
overdue: boolean;
|
|
483
|
+
}
|
|
484
|
+
/** Highest percentage shown before a job reports completion. */
|
|
485
|
+
declare const MAX_PENDING_PERCENT = 95;
|
|
486
|
+
/** `~45s left`, `~2m left`, `~1h 5m left`. Minutes and seconds round up. */
|
|
487
|
+
declare function formatRemaining(ms: number): string;
|
|
488
|
+
/**
|
|
489
|
+
* Progress for a job that reports no progress of its own: linear in elapsed
|
|
490
|
+
* time over `expectedMs`, held at 95% until `done` (so the bar never sits at
|
|
491
|
+
* 100% while still waiting), with a "~2m left" style label that turns into
|
|
492
|
+
* "Almost done…" near or past the expected end. Pure: pass `now` to test.
|
|
493
|
+
*/
|
|
494
|
+
declare function estimateJobProgress(input: JobProgressInput): JobProgressEstimate;
|
|
495
|
+
/**
|
|
496
|
+
* Expected duration of a request from the model's `timing`: `baseMs`, plus
|
|
497
|
+
* `perItemMs` per output beyond the first, `perSecondMs` per second of
|
|
498
|
+
* duration and `perMegapixelMs` per megapixel of resolution. `undefined` when
|
|
499
|
+
* the model has no timing.
|
|
500
|
+
*/
|
|
501
|
+
declare function expectedDurationFor(caps: ModelCapabilities, request?: GenerationRequest): number | undefined;
|
|
502
|
+
|
|
503
|
+
interface GenerationControlOption {
|
|
504
|
+
value: string | number;
|
|
505
|
+
label: string;
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* A UI control derived from capabilities. `key` is a request path:
|
|
509
|
+
* `aspectRatio`, `count`, `params.guidance`, …
|
|
510
|
+
*/
|
|
511
|
+
interface GenerationControl {
|
|
512
|
+
key: string;
|
|
513
|
+
label: string;
|
|
514
|
+
/** `select` for choices, `range` for bounded numbers, `number` for open numbers. */
|
|
515
|
+
kind: 'select' | 'range' | 'number' | 'textarea' | 'checkbox';
|
|
516
|
+
valueType: 'string' | 'number' | 'boolean';
|
|
517
|
+
options?: GenerationControlOption[];
|
|
518
|
+
min?: number;
|
|
519
|
+
max?: number;
|
|
520
|
+
step?: number;
|
|
521
|
+
maxLength?: number;
|
|
522
|
+
defaultValue?: string | number | boolean;
|
|
523
|
+
description?: string;
|
|
524
|
+
}
|
|
525
|
+
interface ReferenceSlot {
|
|
526
|
+
role: ReferenceRole;
|
|
527
|
+
label: string;
|
|
528
|
+
description?: string;
|
|
529
|
+
min: number;
|
|
530
|
+
max: number;
|
|
531
|
+
references: GenerationReference[];
|
|
532
|
+
/** More references of this role fit (per role and in total). */
|
|
533
|
+
canAdd: boolean;
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* The settings controls a model supports, in display order. Excludes the
|
|
537
|
+
* prompt (edited by the prompt editor) and references (see
|
|
538
|
+
* {@link getReferenceSlots}).
|
|
539
|
+
*/
|
|
540
|
+
declare function getGenerationControls(caps: ModelCapabilities): GenerationControl[];
|
|
541
|
+
/** Reads a request value by control key (`params.x` reads a param). */
|
|
542
|
+
declare function getRequestValue(request: GenerationRequest, key: string): unknown;
|
|
543
|
+
/** Returns a copy of `request` with `key` set (`undefined` or `''` removes it). */
|
|
544
|
+
declare function setRequestValue(request: GenerationRequest, key: string, value: unknown): GenerationRequest;
|
|
545
|
+
/** Parses a DOM control's string value into the control's value type. */
|
|
546
|
+
declare function parseControlValue(control: GenerationControl, raw: string | boolean): string | number | boolean | undefined;
|
|
547
|
+
/** Reference slots for every role the model accepts, filled from `request`. */
|
|
548
|
+
declare function getReferenceSlots(caps: ModelCapabilities, request?: GenerationRequest): ReferenceSlot[];
|
|
549
|
+
/** Returns a copy of `request` with a reference appended. */
|
|
550
|
+
declare function addReference(request: GenerationRequest, reference: GenerationReference): GenerationRequest;
|
|
551
|
+
/** Returns a copy of `request` without the reference `id` in `role`. */
|
|
552
|
+
declare function removeReference(request: GenerationRequest, role: ReferenceRole, id: string): GenerationRequest;
|
|
553
|
+
|
|
554
|
+
export { AgentToolProvider, type BatchResolver, type BatchResolverOptions, type BooleanParamSpec, type CapabilityOverlay, type CapabilityPresentation, type CountCapability, type CreateProvenanceOptions, type DurationCapability, type EnumCapability, type EnumParamSpec, type EstimateContext, type ExtraParamSpec, GENERATION_REQUEST_FIELDS, type GenerateContext, type GenerationControl, type GenerationControlOption, type GenerationMediaKind, type GenerationMode, type GenerationParamValue, type GenerationPlan, type GenerationProvenance, type GenerationReference, type GenerationRequest, type GenerationToolProvider, type GenerationToolProviderOptions, type JobProgressEstimate, type JobProgressInput, JsonSchema, MAX_PENDING_PERCENT, type ModelCapabilities, type NumberParamSpec, PROVENANCE_FORMAT, PROVENANCE_VERSION, type PinnedTemplate, type PlanAdjustment, type PlanAdjustmentKind, type PlanError, type PlanOptions, type PlanStrategy, type PromptCapability, ProvenanceParseError, QUALITY_LADDER, REFERENCE_ROLES, REFERENCE_ROLE_LABELS, type ReferenceCapability, type ReferenceRole, type ReferenceRoleCapability, type ReferenceSlot, type SeedCapability, type TextFieldCapability, type TimingCapability, addReference, aspectRatioRank, capabilitiesToJsonSchema, createBatchResolver, createGenerationToolProvider, createProvenance, estimateJobProgress, expectedDurationFor, formatRemaining, getGenerationControls, getReferenceSlots, getRequestValue, mergeCapabilities, parseControlValue, parseProvenance, pinnedTemplatesToTemplates, planGenerationRequest, qualityRank, recreateRequest, removeReference, replayProvenancePrompt, resolutionMegapixels, resolutionRank, seedCapability, serializeProvenance, setRequestValue, snapToOption, supportedModes, supportedReferenceRoles, textFieldCapability };
|