@lumenkey/cli 0.3.0 → 0.4.0-rc.1

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.
Files changed (184) hide show
  1. package/README.md +51 -2
  2. package/dist/cli/copied.js +86 -85
  3. package/dist/cli/index.js +56 -44
  4. package/dist/cli/render.js +5 -1
  5. package/dist/core/asset-stream.d.ts +16 -0
  6. package/dist/core/asset-stream.js +64 -0
  7. package/dist/core/atomic-config-file.js +8 -7
  8. package/dist/core/chinese-messages.d.ts +4 -0
  9. package/dist/core/chinese-messages.js +907 -0
  10. package/dist/core/chinese-script.d.ts +7 -0
  11. package/dist/core/chinese-script.js +28 -0
  12. package/dist/core/client.js +2 -1
  13. package/dist/core/config-dir.js +2 -1
  14. package/dist/core/config.js +7 -6
  15. package/dist/core/download-root.d.ts +5 -0
  16. package/dist/core/download-root.js +64 -0
  17. package/dist/core/download.js +15 -12
  18. package/dist/core/generation-input.js +3 -2
  19. package/dist/core/generation.d.ts +8 -1
  20. package/dist/core/generation.js +13 -10
  21. package/dist/core/job-display.js +7 -6
  22. package/dist/core/locale.d.ts +2 -0
  23. package/dist/core/locale.js +172 -142
  24. package/dist/core/outcome.d.ts +6 -0
  25. package/dist/core/outcome.js +17 -4
  26. package/dist/core/output-path.d.ts +3 -1
  27. package/dist/core/output-path.js +5 -2
  28. package/dist/core/params.js +26 -25
  29. package/dist/core/profiles.js +5 -4
  30. package/dist/core/set-values.d.ts +0 -1
  31. package/dist/core/set-values.js +7 -7
  32. package/dist/core/submission-journal.js +43 -17
  33. package/dist/core/version.js +2 -3
  34. package/dist/mcp/server.js +30 -29
  35. package/dist/studio/asset-integrity-hash.d.ts +28 -0
  36. package/dist/studio/asset-integrity-hash.js +93 -0
  37. package/dist/studio/asset-integrity-queue.d.ts +24 -0
  38. package/dist/studio/asset-integrity-queue.js +94 -0
  39. package/dist/studio/asset-store.d.ts +52 -0
  40. package/dist/studio/asset-store.js +352 -0
  41. package/dist/studio/canvas/LICENSES.txt +1590 -0
  42. package/dist/studio/canvas/dependencies.json +862 -0
  43. package/dist/studio/canvas/director-source-manifest.json +47 -0
  44. package/dist/studio/canvas/editor.css +239 -0
  45. package/dist/studio/canvas/editor.js +4613 -0
  46. package/dist/studio/canvas/integration-source-manifest.json +384 -0
  47. package/dist/studio/canvas/source-manifest.json +240 -0
  48. package/dist/studio/canvas-store.d.ts +1254 -0
  49. package/dist/studio/canvas-store.js +205 -0
  50. package/dist/studio/capture-placement.d.ts +11 -0
  51. package/dist/studio/capture-placement.js +85 -0
  52. package/dist/studio/cloud-contract.d.ts +128 -0
  53. package/dist/studio/cloud-contract.js +229 -0
  54. package/dist/studio/cloud-service.d.ts +178 -0
  55. package/dist/studio/cloud-service.js +202 -0
  56. package/dist/studio/director-captures.d.ts +59 -0
  57. package/dist/studio/director-captures.js +141 -0
  58. package/dist/studio/director-contract.d.ts +1489 -0
  59. package/dist/studio/director-contract.js +288 -0
  60. package/dist/studio/director-png.d.ts +6 -0
  61. package/dist/studio/director-png.js +41 -0
  62. package/dist/studio/director-relations.d.ts +40 -0
  63. package/dist/studio/director-relations.js +103 -0
  64. package/dist/studio/document-authority.d.ts +7 -0
  65. package/dist/studio/document-authority.js +50 -0
  66. package/dist/studio/draft-store.d.ts +95 -0
  67. package/dist/studio/draft-store.js +100 -0
  68. package/dist/studio/errors.d.ts +85 -0
  69. package/dist/studio/errors.js +94 -0
  70. package/dist/studio/launch.d.ts +5 -0
  71. package/dist/studio/launch.js +31 -0
  72. package/dist/studio/media.d.ts +9 -0
  73. package/dist/studio/media.js +50 -0
  74. package/dist/studio/output-save-contract.d.ts +1321 -0
  75. package/dist/studio/output-save-contract.js +26 -0
  76. package/dist/studio/output-save-journal.d.ts +971 -0
  77. package/dist/studio/output-save-journal.js +287 -0
  78. package/dist/studio/output-save-recovery.d.ts +18 -0
  79. package/dist/studio/output-save-recovery.js +161 -0
  80. package/dist/studio/output-save-service.d.ts +436 -0
  81. package/dist/studio/output-save-service.js +251 -0
  82. package/dist/studio/output-save-worker.d.ts +40 -0
  83. package/dist/studio/output-save-worker.js +360 -0
  84. package/dist/studio/paths.d.ts +6 -0
  85. package/dist/studio/paths.js +68 -0
  86. package/dist/studio/run-journal.d.ts +993 -0
  87. package/dist/studio/run-journal.js +125 -0
  88. package/dist/studio/server.d.ts +17 -0
  89. package/dist/studio/server.js +440 -0
  90. package/dist/studio/session.d.ts +6 -0
  91. package/dist/studio/session.js +26 -0
  92. package/dist/studio/shell.d.ts +3 -0
  93. package/dist/studio/shell.js +23 -0
  94. package/dist/studio/style.d.ts +2 -0
  95. package/dist/studio/style.js +29 -0
  96. package/dist/studio/types.d.ts +26 -0
  97. package/dist/studio/types.js +2 -0
  98. package/dist/studio/web/app.d.ts +2 -0
  99. package/dist/studio/web/app.js +662 -0
  100. package/dist/studio/web/asset-controller.d.ts +37 -0
  101. package/dist/studio/web/asset-controller.js +191 -0
  102. package/dist/studio/web/asset-model.d.ts +29 -0
  103. package/dist/studio/web/asset-model.js +51 -0
  104. package/dist/studio/web/controller.d.ts +113 -0
  105. package/dist/studio/web/controller.js +401 -0
  106. package/dist/studio/web/messages.d.ts +2 -0
  107. package/dist/studio/web/messages.js +74 -0
  108. package/dist/studio/web/model.d.ts +75 -0
  109. package/dist/studio/web/model.js +182 -0
  110. package/dist/studio/web/save-controller.d.ts +85 -0
  111. package/dist/studio/web/save-controller.js +495 -0
  112. package/dist/studio/web/save-model.d.ts +63 -0
  113. package/dist/studio/web/save-model.js +64 -0
  114. package/dist/studio/web/save-queue.d.ts +7 -0
  115. package/dist/studio/web/save-queue.js +62 -0
  116. package/dist/studio/web/save-view.d.ts +9 -0
  117. package/dist/studio/web/save-view.js +19 -0
  118. package/dist/studio/writer-lock.d.ts +5 -0
  119. package/dist/studio/writer-lock.js +88 -0
  120. package/package.json +11 -5
  121. package/dist/cli/copied.d.ts.map +0 -1
  122. package/dist/cli/copied.js.map +0 -1
  123. package/dist/cli/index.d.ts.map +0 -1
  124. package/dist/cli/index.js.map +0 -1
  125. package/dist/cli/render.d.ts.map +0 -1
  126. package/dist/cli/render.js.map +0 -1
  127. package/dist/core/atomic-config-file.d.ts.map +0 -1
  128. package/dist/core/atomic-config-file.js.map +0 -1
  129. package/dist/core/chat.d.ts.map +0 -1
  130. package/dist/core/chat.js.map +0 -1
  131. package/dist/core/client.d.ts.map +0 -1
  132. package/dist/core/client.js.map +0 -1
  133. package/dist/core/config-dir.d.ts.map +0 -1
  134. package/dist/core/config-dir.js.map +0 -1
  135. package/dist/core/config-error.d.ts.map +0 -1
  136. package/dist/core/config-error.js.map +0 -1
  137. package/dist/core/config.d.ts.map +0 -1
  138. package/dist/core/config.js.map +0 -1
  139. package/dist/core/credit-cap.d.ts.map +0 -1
  140. package/dist/core/credit-cap.js.map +0 -1
  141. package/dist/core/download.d.ts.map +0 -1
  142. package/dist/core/download.js.map +0 -1
  143. package/dist/core/error-result.d.ts.map +0 -1
  144. package/dist/core/error-result.js.map +0 -1
  145. package/dist/core/explain.d.ts.map +0 -1
  146. package/dist/core/explain.js.map +0 -1
  147. package/dist/core/generation-input.d.ts.map +0 -1
  148. package/dist/core/generation-input.js.map +0 -1
  149. package/dist/core/generation-result.d.ts.map +0 -1
  150. package/dist/core/generation-result.js.map +0 -1
  151. package/dist/core/generation.d.ts.map +0 -1
  152. package/dist/core/generation.js.map +0 -1
  153. package/dist/core/job-display.d.ts.map +0 -1
  154. package/dist/core/job-display.js.map +0 -1
  155. package/dist/core/locale.d.ts.map +0 -1
  156. package/dist/core/locale.js.map +0 -1
  157. package/dist/core/origin.d.ts.map +0 -1
  158. package/dist/core/origin.js.map +0 -1
  159. package/dist/core/outcome.d.ts.map +0 -1
  160. package/dist/core/outcome.js.map +0 -1
  161. package/dist/core/output-path.d.ts.map +0 -1
  162. package/dist/core/output-path.js.map +0 -1
  163. package/dist/core/params.d.ts.map +0 -1
  164. package/dist/core/params.js.map +0 -1
  165. package/dist/core/poller.d.ts.map +0 -1
  166. package/dist/core/poller.js.map +0 -1
  167. package/dist/core/profiles.d.ts.map +0 -1
  168. package/dist/core/profiles.js.map +0 -1
  169. package/dist/core/set-values.d.ts.map +0 -1
  170. package/dist/core/set-values.js.map +0 -1
  171. package/dist/core/submission-journal.d.ts.map +0 -1
  172. package/dist/core/submission-journal.js.map +0 -1
  173. package/dist/core/types.d.ts.map +0 -1
  174. package/dist/core/types.js.map +0 -1
  175. package/dist/core/version.d.ts.map +0 -1
  176. package/dist/core/version.js.map +0 -1
  177. package/dist/core/wait.d.ts.map +0 -1
  178. package/dist/core/wait.js.map +0 -1
  179. package/dist/index.d.ts.map +0 -1
  180. package/dist/index.js.map +0 -1
  181. package/dist/mcp/render.d.ts.map +0 -1
  182. package/dist/mcp/render.js.map +0 -1
  183. package/dist/mcp/server.d.ts.map +0 -1
  184. package/dist/mcp/server.js.map +0 -1
@@ -0,0 +1,1254 @@
1
+ import { z } from 'zod';
2
+ import type { StudioRoot, StudioAsset } from './types.js';
3
+ declare const snapshotSchema: z.ZodEffects<z.ZodObject<{
4
+ version: z.ZodLiteral<"lumenkey-canvas-v1">;
5
+ schemaVersion: z.ZodLiteral<1>;
6
+ nodes: z.ZodArray<z.ZodObject<{
7
+ id: z.ZodString;
8
+ type: z.ZodEnum<["text", "image", "video", "asset"]>;
9
+ title: z.ZodString;
10
+ subtitle: z.ZodOptional<z.ZodString>;
11
+ position: z.ZodObject<{
12
+ x: z.ZodNumber;
13
+ y: z.ZodNumber;
14
+ }, "strict", z.ZodTypeAny, {
15
+ y: number;
16
+ x: number;
17
+ }, {
18
+ y: number;
19
+ x: number;
20
+ }>;
21
+ width: z.ZodNumber;
22
+ height: z.ZodNumber;
23
+ status: z.ZodEnum<["idle", "editing", "queued", "running", "success", "error", "disabled", "locked"]>;
24
+ metadata: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
25
+ config: z.ZodOptional<z.ZodObject<{
26
+ provider: z.ZodString;
27
+ model: z.ZodString;
28
+ input: z.ZodString;
29
+ output: z.ZodString;
30
+ status: z.ZodEnum<["idle", "editing", "queued", "running", "success", "error", "disabled", "locked"]>;
31
+ options: z.ZodArray<z.ZodString, "many">;
32
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
33
+ uploads: z.ZodOptional<z.ZodArray<z.ZodObject<{
34
+ assetId: z.ZodString;
35
+ name: z.ZodString;
36
+ mimeType: z.ZodString;
37
+ size: z.ZodNumber;
38
+ role: z.ZodEnum<["reference", "mask", "firstFrame", "lastFrame", "audio", "document", "source"]>;
39
+ }, "strict", z.ZodTypeAny, {
40
+ name: string;
41
+ size: number;
42
+ mimeType: string;
43
+ assetId: string;
44
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
45
+ }, {
46
+ name: string;
47
+ size: number;
48
+ mimeType: string;
49
+ assetId: string;
50
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
51
+ }>, "many">>;
52
+ }, "strict", z.ZodTypeAny, {
53
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
54
+ input: string;
55
+ model: string;
56
+ options: string[];
57
+ output: string;
58
+ provider: string;
59
+ params?: Record<string, unknown> | undefined;
60
+ uploads?: {
61
+ name: string;
62
+ size: number;
63
+ mimeType: string;
64
+ assetId: string;
65
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
66
+ }[] | undefined;
67
+ }, {
68
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
69
+ input: string;
70
+ model: string;
71
+ options: string[];
72
+ output: string;
73
+ provider: string;
74
+ params?: Record<string, unknown> | undefined;
75
+ uploads?: {
76
+ name: string;
77
+ size: number;
78
+ mimeType: string;
79
+ assetId: string;
80
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
81
+ }[] | undefined;
82
+ }>>;
83
+ allowedModels: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
84
+ }, "strict", z.ZodTypeAny, {
85
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
86
+ id: string;
87
+ type: "image" | "video" | "text" | "asset";
88
+ title: string;
89
+ position: {
90
+ y: number;
91
+ x: number;
92
+ };
93
+ width: number;
94
+ height: number;
95
+ metadata: Record<string, unknown>;
96
+ config?: {
97
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
98
+ input: string;
99
+ model: string;
100
+ options: string[];
101
+ output: string;
102
+ provider: string;
103
+ params?: Record<string, unknown> | undefined;
104
+ uploads?: {
105
+ name: string;
106
+ size: number;
107
+ mimeType: string;
108
+ assetId: string;
109
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
110
+ }[] | undefined;
111
+ } | undefined;
112
+ subtitle?: string | undefined;
113
+ allowedModels?: string[] | undefined;
114
+ }, {
115
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
116
+ id: string;
117
+ type: "image" | "video" | "text" | "asset";
118
+ title: string;
119
+ position: {
120
+ y: number;
121
+ x: number;
122
+ };
123
+ width: number;
124
+ height: number;
125
+ metadata: Record<string, unknown>;
126
+ config?: {
127
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
128
+ input: string;
129
+ model: string;
130
+ options: string[];
131
+ output: string;
132
+ provider: string;
133
+ params?: Record<string, unknown> | undefined;
134
+ uploads?: {
135
+ name: string;
136
+ size: number;
137
+ mimeType: string;
138
+ assetId: string;
139
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
140
+ }[] | undefined;
141
+ } | undefined;
142
+ subtitle?: string | undefined;
143
+ allowedModels?: string[] | undefined;
144
+ }>, "many">;
145
+ connections: z.ZodArray<z.ZodObject<{
146
+ id: z.ZodString;
147
+ fromNodeId: z.ZodString;
148
+ toNodeId: z.ZodString;
149
+ fromHandle: z.ZodOptional<z.ZodString>;
150
+ toHandle: z.ZodOptional<z.ZodString>;
151
+ status: z.ZodOptional<z.ZodEnum<["idle", "queued", "running", "success", "error", "skipped"]>>;
152
+ }, "strict", z.ZodTypeAny, {
153
+ id: string;
154
+ fromNodeId: string;
155
+ toNodeId: string;
156
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
157
+ fromHandle?: string | undefined;
158
+ toHandle?: string | undefined;
159
+ }, {
160
+ id: string;
161
+ fromNodeId: string;
162
+ toNodeId: string;
163
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
164
+ fromHandle?: string | undefined;
165
+ toHandle?: string | undefined;
166
+ }>, "many">;
167
+ viewport: z.ZodObject<{
168
+ x: z.ZodNumber;
169
+ y: z.ZodNumber;
170
+ k: z.ZodNumber;
171
+ }, "strict", z.ZodTypeAny, {
172
+ y: number;
173
+ k: number;
174
+ x: number;
175
+ }, {
176
+ y: number;
177
+ k: number;
178
+ x: number;
179
+ }>;
180
+ appearance: z.ZodOptional<z.ZodObject<{
181
+ grid: z.ZodOptional<z.ZodEnum<["dot", "line", "blank"]>>;
182
+ edge: z.ZodOptional<z.ZodEnum<["curve", "straight", "ortho"]>>;
183
+ hiddenEdges: z.ZodOptional<z.ZodBoolean>;
184
+ styles: z.ZodOptional<z.ZodArray<z.ZodObject<{
185
+ id: z.ZodString;
186
+ name: z.ZodEffects<z.ZodString, string, string>;
187
+ prompt: z.ZodEffects<z.ZodString, string, string>;
188
+ }, "strict", z.ZodTypeAny, {
189
+ name: string;
190
+ id: string;
191
+ prompt: string;
192
+ }, {
193
+ name: string;
194
+ id: string;
195
+ prompt: string;
196
+ }>, "many">>;
197
+ characters: z.ZodOptional<z.ZodArray<z.ZodObject<{
198
+ id: z.ZodString;
199
+ name: z.ZodEffects<z.ZodString, string, string>;
200
+ hair: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
201
+ face: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
202
+ clothing: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
203
+ marks: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
204
+ change: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
205
+ sourceAssetId: z.ZodOptional<z.ZodString>;
206
+ skillId: z.ZodOptional<z.ZodEnum<["character-view", "character-sheet"]>>;
207
+ }, "strict", z.ZodTypeAny, {
208
+ name: string;
209
+ id: string;
210
+ hair?: string | undefined;
211
+ face?: string | undefined;
212
+ clothing?: string | undefined;
213
+ marks?: string | undefined;
214
+ change?: string | undefined;
215
+ sourceAssetId?: string | undefined;
216
+ skillId?: "character-view" | "character-sheet" | undefined;
217
+ }, {
218
+ name: string;
219
+ id: string;
220
+ hair?: string | undefined;
221
+ face?: string | undefined;
222
+ clothing?: string | undefined;
223
+ marks?: string | undefined;
224
+ change?: string | undefined;
225
+ sourceAssetId?: string | undefined;
226
+ skillId?: "character-view" | "character-sheet" | undefined;
227
+ }>, "many">>;
228
+ }, "strict", z.ZodTypeAny, {
229
+ grid?: "line" | "dot" | "blank" | undefined;
230
+ edge?: "curve" | "straight" | "ortho" | undefined;
231
+ hiddenEdges?: boolean | undefined;
232
+ styles?: {
233
+ name: string;
234
+ id: string;
235
+ prompt: string;
236
+ }[] | undefined;
237
+ characters?: {
238
+ name: string;
239
+ id: string;
240
+ hair?: string | undefined;
241
+ face?: string | undefined;
242
+ clothing?: string | undefined;
243
+ marks?: string | undefined;
244
+ change?: string | undefined;
245
+ sourceAssetId?: string | undefined;
246
+ skillId?: "character-view" | "character-sheet" | undefined;
247
+ }[] | undefined;
248
+ }, {
249
+ grid?: "line" | "dot" | "blank" | undefined;
250
+ edge?: "curve" | "straight" | "ortho" | undefined;
251
+ hiddenEdges?: boolean | undefined;
252
+ styles?: {
253
+ name: string;
254
+ id: string;
255
+ prompt: string;
256
+ }[] | undefined;
257
+ characters?: {
258
+ name: string;
259
+ id: string;
260
+ hair?: string | undefined;
261
+ face?: string | undefined;
262
+ clothing?: string | undefined;
263
+ marks?: string | undefined;
264
+ change?: string | undefined;
265
+ sourceAssetId?: string | undefined;
266
+ skillId?: "character-view" | "character-sheet" | undefined;
267
+ }[] | undefined;
268
+ }>>;
269
+ }, "strict", z.ZodTypeAny, {
270
+ version: "lumenkey-canvas-v1";
271
+ schemaVersion: 1;
272
+ connections: {
273
+ id: string;
274
+ fromNodeId: string;
275
+ toNodeId: string;
276
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
277
+ fromHandle?: string | undefined;
278
+ toHandle?: string | undefined;
279
+ }[];
280
+ nodes: {
281
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
282
+ id: string;
283
+ type: "image" | "video" | "text" | "asset";
284
+ title: string;
285
+ position: {
286
+ y: number;
287
+ x: number;
288
+ };
289
+ width: number;
290
+ height: number;
291
+ metadata: Record<string, unknown>;
292
+ config?: {
293
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
294
+ input: string;
295
+ model: string;
296
+ options: string[];
297
+ output: string;
298
+ provider: string;
299
+ params?: Record<string, unknown> | undefined;
300
+ uploads?: {
301
+ name: string;
302
+ size: number;
303
+ mimeType: string;
304
+ assetId: string;
305
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
306
+ }[] | undefined;
307
+ } | undefined;
308
+ subtitle?: string | undefined;
309
+ allowedModels?: string[] | undefined;
310
+ }[];
311
+ viewport: {
312
+ y: number;
313
+ k: number;
314
+ x: number;
315
+ };
316
+ appearance?: {
317
+ grid?: "line" | "dot" | "blank" | undefined;
318
+ edge?: "curve" | "straight" | "ortho" | undefined;
319
+ hiddenEdges?: boolean | undefined;
320
+ styles?: {
321
+ name: string;
322
+ id: string;
323
+ prompt: string;
324
+ }[] | undefined;
325
+ characters?: {
326
+ name: string;
327
+ id: string;
328
+ hair?: string | undefined;
329
+ face?: string | undefined;
330
+ clothing?: string | undefined;
331
+ marks?: string | undefined;
332
+ change?: string | undefined;
333
+ sourceAssetId?: string | undefined;
334
+ skillId?: "character-view" | "character-sheet" | undefined;
335
+ }[] | undefined;
336
+ } | undefined;
337
+ }, {
338
+ version: "lumenkey-canvas-v1";
339
+ schemaVersion: 1;
340
+ connections: {
341
+ id: string;
342
+ fromNodeId: string;
343
+ toNodeId: string;
344
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
345
+ fromHandle?: string | undefined;
346
+ toHandle?: string | undefined;
347
+ }[];
348
+ nodes: {
349
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
350
+ id: string;
351
+ type: "image" | "video" | "text" | "asset";
352
+ title: string;
353
+ position: {
354
+ y: number;
355
+ x: number;
356
+ };
357
+ width: number;
358
+ height: number;
359
+ metadata: Record<string, unknown>;
360
+ config?: {
361
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
362
+ input: string;
363
+ model: string;
364
+ options: string[];
365
+ output: string;
366
+ provider: string;
367
+ params?: Record<string, unknown> | undefined;
368
+ uploads?: {
369
+ name: string;
370
+ size: number;
371
+ mimeType: string;
372
+ assetId: string;
373
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
374
+ }[] | undefined;
375
+ } | undefined;
376
+ subtitle?: string | undefined;
377
+ allowedModels?: string[] | undefined;
378
+ }[];
379
+ viewport: {
380
+ y: number;
381
+ k: number;
382
+ x: number;
383
+ };
384
+ appearance?: {
385
+ grid?: "line" | "dot" | "blank" | undefined;
386
+ edge?: "curve" | "straight" | "ortho" | undefined;
387
+ hiddenEdges?: boolean | undefined;
388
+ styles?: {
389
+ name: string;
390
+ id: string;
391
+ prompt: string;
392
+ }[] | undefined;
393
+ characters?: {
394
+ name: string;
395
+ id: string;
396
+ hair?: string | undefined;
397
+ face?: string | undefined;
398
+ clothing?: string | undefined;
399
+ marks?: string | undefined;
400
+ change?: string | undefined;
401
+ sourceAssetId?: string | undefined;
402
+ skillId?: "character-view" | "character-sheet" | undefined;
403
+ }[] | undefined;
404
+ } | undefined;
405
+ }>, {
406
+ version: "lumenkey-canvas-v1";
407
+ schemaVersion: 1;
408
+ connections: {
409
+ id: string;
410
+ fromNodeId: string;
411
+ toNodeId: string;
412
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
413
+ fromHandle?: string | undefined;
414
+ toHandle?: string | undefined;
415
+ }[];
416
+ nodes: {
417
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
418
+ id: string;
419
+ type: "image" | "video" | "text" | "asset";
420
+ title: string;
421
+ position: {
422
+ y: number;
423
+ x: number;
424
+ };
425
+ width: number;
426
+ height: number;
427
+ metadata: Record<string, unknown>;
428
+ config?: {
429
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
430
+ input: string;
431
+ model: string;
432
+ options: string[];
433
+ output: string;
434
+ provider: string;
435
+ params?: Record<string, unknown> | undefined;
436
+ uploads?: {
437
+ name: string;
438
+ size: number;
439
+ mimeType: string;
440
+ assetId: string;
441
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
442
+ }[] | undefined;
443
+ } | undefined;
444
+ subtitle?: string | undefined;
445
+ allowedModels?: string[] | undefined;
446
+ }[];
447
+ viewport: {
448
+ y: number;
449
+ k: number;
450
+ x: number;
451
+ };
452
+ appearance?: {
453
+ grid?: "line" | "dot" | "blank" | undefined;
454
+ edge?: "curve" | "straight" | "ortho" | undefined;
455
+ hiddenEdges?: boolean | undefined;
456
+ styles?: {
457
+ name: string;
458
+ id: string;
459
+ prompt: string;
460
+ }[] | undefined;
461
+ characters?: {
462
+ name: string;
463
+ id: string;
464
+ hair?: string | undefined;
465
+ face?: string | undefined;
466
+ clothing?: string | undefined;
467
+ marks?: string | undefined;
468
+ change?: string | undefined;
469
+ sourceAssetId?: string | undefined;
470
+ skillId?: "character-view" | "character-sheet" | undefined;
471
+ }[] | undefined;
472
+ } | undefined;
473
+ }, {
474
+ version: "lumenkey-canvas-v1";
475
+ schemaVersion: 1;
476
+ connections: {
477
+ id: string;
478
+ fromNodeId: string;
479
+ toNodeId: string;
480
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
481
+ fromHandle?: string | undefined;
482
+ toHandle?: string | undefined;
483
+ }[];
484
+ nodes: {
485
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
486
+ id: string;
487
+ type: "image" | "video" | "text" | "asset";
488
+ title: string;
489
+ position: {
490
+ y: number;
491
+ x: number;
492
+ };
493
+ width: number;
494
+ height: number;
495
+ metadata: Record<string, unknown>;
496
+ config?: {
497
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
498
+ input: string;
499
+ model: string;
500
+ options: string[];
501
+ output: string;
502
+ provider: string;
503
+ params?: Record<string, unknown> | undefined;
504
+ uploads?: {
505
+ name: string;
506
+ size: number;
507
+ mimeType: string;
508
+ assetId: string;
509
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
510
+ }[] | undefined;
511
+ } | undefined;
512
+ subtitle?: string | undefined;
513
+ allowedModels?: string[] | undefined;
514
+ }[];
515
+ viewport: {
516
+ y: number;
517
+ k: number;
518
+ x: number;
519
+ };
520
+ appearance?: {
521
+ grid?: "line" | "dot" | "blank" | undefined;
522
+ edge?: "curve" | "straight" | "ortho" | undefined;
523
+ hiddenEdges?: boolean | undefined;
524
+ styles?: {
525
+ name: string;
526
+ id: string;
527
+ prompt: string;
528
+ }[] | undefined;
529
+ characters?: {
530
+ name: string;
531
+ id: string;
532
+ hair?: string | undefined;
533
+ face?: string | undefined;
534
+ clothing?: string | undefined;
535
+ marks?: string | undefined;
536
+ change?: string | undefined;
537
+ sourceAssetId?: string | undefined;
538
+ skillId?: "character-view" | "character-sheet" | undefined;
539
+ }[] | undefined;
540
+ } | undefined;
541
+ }>;
542
+ declare const document: z.ZodObject<{
543
+ id: z.ZodString;
544
+ name: z.ZodEffects<z.ZodString, string, string>;
545
+ revision: z.ZodNumber;
546
+ createdAt: z.ZodString;
547
+ updatedAt: z.ZodString;
548
+ snapshot: z.ZodEffects<z.ZodObject<{
549
+ version: z.ZodLiteral<"lumenkey-canvas-v1">;
550
+ schemaVersion: z.ZodLiteral<1>;
551
+ nodes: z.ZodArray<z.ZodObject<{
552
+ id: z.ZodString;
553
+ type: z.ZodEnum<["text", "image", "video", "asset"]>;
554
+ title: z.ZodString;
555
+ subtitle: z.ZodOptional<z.ZodString>;
556
+ position: z.ZodObject<{
557
+ x: z.ZodNumber;
558
+ y: z.ZodNumber;
559
+ }, "strict", z.ZodTypeAny, {
560
+ y: number;
561
+ x: number;
562
+ }, {
563
+ y: number;
564
+ x: number;
565
+ }>;
566
+ width: z.ZodNumber;
567
+ height: z.ZodNumber;
568
+ status: z.ZodEnum<["idle", "editing", "queued", "running", "success", "error", "disabled", "locked"]>;
569
+ metadata: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
570
+ config: z.ZodOptional<z.ZodObject<{
571
+ provider: z.ZodString;
572
+ model: z.ZodString;
573
+ input: z.ZodString;
574
+ output: z.ZodString;
575
+ status: z.ZodEnum<["idle", "editing", "queued", "running", "success", "error", "disabled", "locked"]>;
576
+ options: z.ZodArray<z.ZodString, "many">;
577
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
578
+ uploads: z.ZodOptional<z.ZodArray<z.ZodObject<{
579
+ assetId: z.ZodString;
580
+ name: z.ZodString;
581
+ mimeType: z.ZodString;
582
+ size: z.ZodNumber;
583
+ role: z.ZodEnum<["reference", "mask", "firstFrame", "lastFrame", "audio", "document", "source"]>;
584
+ }, "strict", z.ZodTypeAny, {
585
+ name: string;
586
+ size: number;
587
+ mimeType: string;
588
+ assetId: string;
589
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
590
+ }, {
591
+ name: string;
592
+ size: number;
593
+ mimeType: string;
594
+ assetId: string;
595
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
596
+ }>, "many">>;
597
+ }, "strict", z.ZodTypeAny, {
598
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
599
+ input: string;
600
+ model: string;
601
+ options: string[];
602
+ output: string;
603
+ provider: string;
604
+ params?: Record<string, unknown> | undefined;
605
+ uploads?: {
606
+ name: string;
607
+ size: number;
608
+ mimeType: string;
609
+ assetId: string;
610
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
611
+ }[] | undefined;
612
+ }, {
613
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
614
+ input: string;
615
+ model: string;
616
+ options: string[];
617
+ output: string;
618
+ provider: string;
619
+ params?: Record<string, unknown> | undefined;
620
+ uploads?: {
621
+ name: string;
622
+ size: number;
623
+ mimeType: string;
624
+ assetId: string;
625
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
626
+ }[] | undefined;
627
+ }>>;
628
+ allowedModels: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
629
+ }, "strict", z.ZodTypeAny, {
630
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
631
+ id: string;
632
+ type: "image" | "video" | "text" | "asset";
633
+ title: string;
634
+ position: {
635
+ y: number;
636
+ x: number;
637
+ };
638
+ width: number;
639
+ height: number;
640
+ metadata: Record<string, unknown>;
641
+ config?: {
642
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
643
+ input: string;
644
+ model: string;
645
+ options: string[];
646
+ output: string;
647
+ provider: string;
648
+ params?: Record<string, unknown> | undefined;
649
+ uploads?: {
650
+ name: string;
651
+ size: number;
652
+ mimeType: string;
653
+ assetId: string;
654
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
655
+ }[] | undefined;
656
+ } | undefined;
657
+ subtitle?: string | undefined;
658
+ allowedModels?: string[] | undefined;
659
+ }, {
660
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
661
+ id: string;
662
+ type: "image" | "video" | "text" | "asset";
663
+ title: string;
664
+ position: {
665
+ y: number;
666
+ x: number;
667
+ };
668
+ width: number;
669
+ height: number;
670
+ metadata: Record<string, unknown>;
671
+ config?: {
672
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
673
+ input: string;
674
+ model: string;
675
+ options: string[];
676
+ output: string;
677
+ provider: string;
678
+ params?: Record<string, unknown> | undefined;
679
+ uploads?: {
680
+ name: string;
681
+ size: number;
682
+ mimeType: string;
683
+ assetId: string;
684
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
685
+ }[] | undefined;
686
+ } | undefined;
687
+ subtitle?: string | undefined;
688
+ allowedModels?: string[] | undefined;
689
+ }>, "many">;
690
+ connections: z.ZodArray<z.ZodObject<{
691
+ id: z.ZodString;
692
+ fromNodeId: z.ZodString;
693
+ toNodeId: z.ZodString;
694
+ fromHandle: z.ZodOptional<z.ZodString>;
695
+ toHandle: z.ZodOptional<z.ZodString>;
696
+ status: z.ZodOptional<z.ZodEnum<["idle", "queued", "running", "success", "error", "skipped"]>>;
697
+ }, "strict", z.ZodTypeAny, {
698
+ id: string;
699
+ fromNodeId: string;
700
+ toNodeId: string;
701
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
702
+ fromHandle?: string | undefined;
703
+ toHandle?: string | undefined;
704
+ }, {
705
+ id: string;
706
+ fromNodeId: string;
707
+ toNodeId: string;
708
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
709
+ fromHandle?: string | undefined;
710
+ toHandle?: string | undefined;
711
+ }>, "many">;
712
+ viewport: z.ZodObject<{
713
+ x: z.ZodNumber;
714
+ y: z.ZodNumber;
715
+ k: z.ZodNumber;
716
+ }, "strict", z.ZodTypeAny, {
717
+ y: number;
718
+ k: number;
719
+ x: number;
720
+ }, {
721
+ y: number;
722
+ k: number;
723
+ x: number;
724
+ }>;
725
+ appearance: z.ZodOptional<z.ZodObject<{
726
+ grid: z.ZodOptional<z.ZodEnum<["dot", "line", "blank"]>>;
727
+ edge: z.ZodOptional<z.ZodEnum<["curve", "straight", "ortho"]>>;
728
+ hiddenEdges: z.ZodOptional<z.ZodBoolean>;
729
+ styles: z.ZodOptional<z.ZodArray<z.ZodObject<{
730
+ id: z.ZodString;
731
+ name: z.ZodEffects<z.ZodString, string, string>;
732
+ prompt: z.ZodEffects<z.ZodString, string, string>;
733
+ }, "strict", z.ZodTypeAny, {
734
+ name: string;
735
+ id: string;
736
+ prompt: string;
737
+ }, {
738
+ name: string;
739
+ id: string;
740
+ prompt: string;
741
+ }>, "many">>;
742
+ characters: z.ZodOptional<z.ZodArray<z.ZodObject<{
743
+ id: z.ZodString;
744
+ name: z.ZodEffects<z.ZodString, string, string>;
745
+ hair: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
746
+ face: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
747
+ clothing: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
748
+ marks: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
749
+ change: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
750
+ sourceAssetId: z.ZodOptional<z.ZodString>;
751
+ skillId: z.ZodOptional<z.ZodEnum<["character-view", "character-sheet"]>>;
752
+ }, "strict", z.ZodTypeAny, {
753
+ name: string;
754
+ id: string;
755
+ hair?: string | undefined;
756
+ face?: string | undefined;
757
+ clothing?: string | undefined;
758
+ marks?: string | undefined;
759
+ change?: string | undefined;
760
+ sourceAssetId?: string | undefined;
761
+ skillId?: "character-view" | "character-sheet" | undefined;
762
+ }, {
763
+ name: string;
764
+ id: string;
765
+ hair?: string | undefined;
766
+ face?: string | undefined;
767
+ clothing?: string | undefined;
768
+ marks?: string | undefined;
769
+ change?: string | undefined;
770
+ sourceAssetId?: string | undefined;
771
+ skillId?: "character-view" | "character-sheet" | undefined;
772
+ }>, "many">>;
773
+ }, "strict", z.ZodTypeAny, {
774
+ grid?: "line" | "dot" | "blank" | undefined;
775
+ edge?: "curve" | "straight" | "ortho" | undefined;
776
+ hiddenEdges?: boolean | undefined;
777
+ styles?: {
778
+ name: string;
779
+ id: string;
780
+ prompt: string;
781
+ }[] | undefined;
782
+ characters?: {
783
+ name: string;
784
+ id: string;
785
+ hair?: string | undefined;
786
+ face?: string | undefined;
787
+ clothing?: string | undefined;
788
+ marks?: string | undefined;
789
+ change?: string | undefined;
790
+ sourceAssetId?: string | undefined;
791
+ skillId?: "character-view" | "character-sheet" | undefined;
792
+ }[] | undefined;
793
+ }, {
794
+ grid?: "line" | "dot" | "blank" | undefined;
795
+ edge?: "curve" | "straight" | "ortho" | undefined;
796
+ hiddenEdges?: boolean | undefined;
797
+ styles?: {
798
+ name: string;
799
+ id: string;
800
+ prompt: string;
801
+ }[] | undefined;
802
+ characters?: {
803
+ name: string;
804
+ id: string;
805
+ hair?: string | undefined;
806
+ face?: string | undefined;
807
+ clothing?: string | undefined;
808
+ marks?: string | undefined;
809
+ change?: string | undefined;
810
+ sourceAssetId?: string | undefined;
811
+ skillId?: "character-view" | "character-sheet" | undefined;
812
+ }[] | undefined;
813
+ }>>;
814
+ }, "strict", z.ZodTypeAny, {
815
+ version: "lumenkey-canvas-v1";
816
+ schemaVersion: 1;
817
+ connections: {
818
+ id: string;
819
+ fromNodeId: string;
820
+ toNodeId: string;
821
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
822
+ fromHandle?: string | undefined;
823
+ toHandle?: string | undefined;
824
+ }[];
825
+ nodes: {
826
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
827
+ id: string;
828
+ type: "image" | "video" | "text" | "asset";
829
+ title: string;
830
+ position: {
831
+ y: number;
832
+ x: number;
833
+ };
834
+ width: number;
835
+ height: number;
836
+ metadata: Record<string, unknown>;
837
+ config?: {
838
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
839
+ input: string;
840
+ model: string;
841
+ options: string[];
842
+ output: string;
843
+ provider: string;
844
+ params?: Record<string, unknown> | undefined;
845
+ uploads?: {
846
+ name: string;
847
+ size: number;
848
+ mimeType: string;
849
+ assetId: string;
850
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
851
+ }[] | undefined;
852
+ } | undefined;
853
+ subtitle?: string | undefined;
854
+ allowedModels?: string[] | undefined;
855
+ }[];
856
+ viewport: {
857
+ y: number;
858
+ k: number;
859
+ x: number;
860
+ };
861
+ appearance?: {
862
+ grid?: "line" | "dot" | "blank" | undefined;
863
+ edge?: "curve" | "straight" | "ortho" | undefined;
864
+ hiddenEdges?: boolean | undefined;
865
+ styles?: {
866
+ name: string;
867
+ id: string;
868
+ prompt: string;
869
+ }[] | undefined;
870
+ characters?: {
871
+ name: string;
872
+ id: string;
873
+ hair?: string | undefined;
874
+ face?: string | undefined;
875
+ clothing?: string | undefined;
876
+ marks?: string | undefined;
877
+ change?: string | undefined;
878
+ sourceAssetId?: string | undefined;
879
+ skillId?: "character-view" | "character-sheet" | undefined;
880
+ }[] | undefined;
881
+ } | undefined;
882
+ }, {
883
+ version: "lumenkey-canvas-v1";
884
+ schemaVersion: 1;
885
+ connections: {
886
+ id: string;
887
+ fromNodeId: string;
888
+ toNodeId: string;
889
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
890
+ fromHandle?: string | undefined;
891
+ toHandle?: string | undefined;
892
+ }[];
893
+ nodes: {
894
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
895
+ id: string;
896
+ type: "image" | "video" | "text" | "asset";
897
+ title: string;
898
+ position: {
899
+ y: number;
900
+ x: number;
901
+ };
902
+ width: number;
903
+ height: number;
904
+ metadata: Record<string, unknown>;
905
+ config?: {
906
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
907
+ input: string;
908
+ model: string;
909
+ options: string[];
910
+ output: string;
911
+ provider: string;
912
+ params?: Record<string, unknown> | undefined;
913
+ uploads?: {
914
+ name: string;
915
+ size: number;
916
+ mimeType: string;
917
+ assetId: string;
918
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
919
+ }[] | undefined;
920
+ } | undefined;
921
+ subtitle?: string | undefined;
922
+ allowedModels?: string[] | undefined;
923
+ }[];
924
+ viewport: {
925
+ y: number;
926
+ k: number;
927
+ x: number;
928
+ };
929
+ appearance?: {
930
+ grid?: "line" | "dot" | "blank" | undefined;
931
+ edge?: "curve" | "straight" | "ortho" | undefined;
932
+ hiddenEdges?: boolean | undefined;
933
+ styles?: {
934
+ name: string;
935
+ id: string;
936
+ prompt: string;
937
+ }[] | undefined;
938
+ characters?: {
939
+ name: string;
940
+ id: string;
941
+ hair?: string | undefined;
942
+ face?: string | undefined;
943
+ clothing?: string | undefined;
944
+ marks?: string | undefined;
945
+ change?: string | undefined;
946
+ sourceAssetId?: string | undefined;
947
+ skillId?: "character-view" | "character-sheet" | undefined;
948
+ }[] | undefined;
949
+ } | undefined;
950
+ }>, {
951
+ version: "lumenkey-canvas-v1";
952
+ schemaVersion: 1;
953
+ connections: {
954
+ id: string;
955
+ fromNodeId: string;
956
+ toNodeId: string;
957
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
958
+ fromHandle?: string | undefined;
959
+ toHandle?: string | undefined;
960
+ }[];
961
+ nodes: {
962
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
963
+ id: string;
964
+ type: "image" | "video" | "text" | "asset";
965
+ title: string;
966
+ position: {
967
+ y: number;
968
+ x: number;
969
+ };
970
+ width: number;
971
+ height: number;
972
+ metadata: Record<string, unknown>;
973
+ config?: {
974
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
975
+ input: string;
976
+ model: string;
977
+ options: string[];
978
+ output: string;
979
+ provider: string;
980
+ params?: Record<string, unknown> | undefined;
981
+ uploads?: {
982
+ name: string;
983
+ size: number;
984
+ mimeType: string;
985
+ assetId: string;
986
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
987
+ }[] | undefined;
988
+ } | undefined;
989
+ subtitle?: string | undefined;
990
+ allowedModels?: string[] | undefined;
991
+ }[];
992
+ viewport: {
993
+ y: number;
994
+ k: number;
995
+ x: number;
996
+ };
997
+ appearance?: {
998
+ grid?: "line" | "dot" | "blank" | undefined;
999
+ edge?: "curve" | "straight" | "ortho" | undefined;
1000
+ hiddenEdges?: boolean | undefined;
1001
+ styles?: {
1002
+ name: string;
1003
+ id: string;
1004
+ prompt: string;
1005
+ }[] | undefined;
1006
+ characters?: {
1007
+ name: string;
1008
+ id: string;
1009
+ hair?: string | undefined;
1010
+ face?: string | undefined;
1011
+ clothing?: string | undefined;
1012
+ marks?: string | undefined;
1013
+ change?: string | undefined;
1014
+ sourceAssetId?: string | undefined;
1015
+ skillId?: "character-view" | "character-sheet" | undefined;
1016
+ }[] | undefined;
1017
+ } | undefined;
1018
+ }, {
1019
+ version: "lumenkey-canvas-v1";
1020
+ schemaVersion: 1;
1021
+ connections: {
1022
+ id: string;
1023
+ fromNodeId: string;
1024
+ toNodeId: string;
1025
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
1026
+ fromHandle?: string | undefined;
1027
+ toHandle?: string | undefined;
1028
+ }[];
1029
+ nodes: {
1030
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
1031
+ id: string;
1032
+ type: "image" | "video" | "text" | "asset";
1033
+ title: string;
1034
+ position: {
1035
+ y: number;
1036
+ x: number;
1037
+ };
1038
+ width: number;
1039
+ height: number;
1040
+ metadata: Record<string, unknown>;
1041
+ config?: {
1042
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
1043
+ input: string;
1044
+ model: string;
1045
+ options: string[];
1046
+ output: string;
1047
+ provider: string;
1048
+ params?: Record<string, unknown> | undefined;
1049
+ uploads?: {
1050
+ name: string;
1051
+ size: number;
1052
+ mimeType: string;
1053
+ assetId: string;
1054
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
1055
+ }[] | undefined;
1056
+ } | undefined;
1057
+ subtitle?: string | undefined;
1058
+ allowedModels?: string[] | undefined;
1059
+ }[];
1060
+ viewport: {
1061
+ y: number;
1062
+ k: number;
1063
+ x: number;
1064
+ };
1065
+ appearance?: {
1066
+ grid?: "line" | "dot" | "blank" | undefined;
1067
+ edge?: "curve" | "straight" | "ortho" | undefined;
1068
+ hiddenEdges?: boolean | undefined;
1069
+ styles?: {
1070
+ name: string;
1071
+ id: string;
1072
+ prompt: string;
1073
+ }[] | undefined;
1074
+ characters?: {
1075
+ name: string;
1076
+ id: string;
1077
+ hair?: string | undefined;
1078
+ face?: string | undefined;
1079
+ clothing?: string | undefined;
1080
+ marks?: string | undefined;
1081
+ change?: string | undefined;
1082
+ sourceAssetId?: string | undefined;
1083
+ skillId?: "character-view" | "character-sheet" | undefined;
1084
+ }[] | undefined;
1085
+ } | undefined;
1086
+ }>;
1087
+ }, "strict", z.ZodTypeAny, {
1088
+ name: string;
1089
+ createdAt: string;
1090
+ id: string;
1091
+ updatedAt: string;
1092
+ revision: number;
1093
+ snapshot: {
1094
+ version: "lumenkey-canvas-v1";
1095
+ schemaVersion: 1;
1096
+ connections: {
1097
+ id: string;
1098
+ fromNodeId: string;
1099
+ toNodeId: string;
1100
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
1101
+ fromHandle?: string | undefined;
1102
+ toHandle?: string | undefined;
1103
+ }[];
1104
+ nodes: {
1105
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
1106
+ id: string;
1107
+ type: "image" | "video" | "text" | "asset";
1108
+ title: string;
1109
+ position: {
1110
+ y: number;
1111
+ x: number;
1112
+ };
1113
+ width: number;
1114
+ height: number;
1115
+ metadata: Record<string, unknown>;
1116
+ config?: {
1117
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
1118
+ input: string;
1119
+ model: string;
1120
+ options: string[];
1121
+ output: string;
1122
+ provider: string;
1123
+ params?: Record<string, unknown> | undefined;
1124
+ uploads?: {
1125
+ name: string;
1126
+ size: number;
1127
+ mimeType: string;
1128
+ assetId: string;
1129
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
1130
+ }[] | undefined;
1131
+ } | undefined;
1132
+ subtitle?: string | undefined;
1133
+ allowedModels?: string[] | undefined;
1134
+ }[];
1135
+ viewport: {
1136
+ y: number;
1137
+ k: number;
1138
+ x: number;
1139
+ };
1140
+ appearance?: {
1141
+ grid?: "line" | "dot" | "blank" | undefined;
1142
+ edge?: "curve" | "straight" | "ortho" | undefined;
1143
+ hiddenEdges?: boolean | undefined;
1144
+ styles?: {
1145
+ name: string;
1146
+ id: string;
1147
+ prompt: string;
1148
+ }[] | undefined;
1149
+ characters?: {
1150
+ name: string;
1151
+ id: string;
1152
+ hair?: string | undefined;
1153
+ face?: string | undefined;
1154
+ clothing?: string | undefined;
1155
+ marks?: string | undefined;
1156
+ change?: string | undefined;
1157
+ sourceAssetId?: string | undefined;
1158
+ skillId?: "character-view" | "character-sheet" | undefined;
1159
+ }[] | undefined;
1160
+ } | undefined;
1161
+ };
1162
+ }, {
1163
+ name: string;
1164
+ createdAt: string;
1165
+ id: string;
1166
+ updatedAt: string;
1167
+ revision: number;
1168
+ snapshot: {
1169
+ version: "lumenkey-canvas-v1";
1170
+ schemaVersion: 1;
1171
+ connections: {
1172
+ id: string;
1173
+ fromNodeId: string;
1174
+ toNodeId: string;
1175
+ status?: "queued" | "error" | "success" | "idle" | "running" | "skipped" | undefined;
1176
+ fromHandle?: string | undefined;
1177
+ toHandle?: string | undefined;
1178
+ }[];
1179
+ nodes: {
1180
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
1181
+ id: string;
1182
+ type: "image" | "video" | "text" | "asset";
1183
+ title: string;
1184
+ position: {
1185
+ y: number;
1186
+ x: number;
1187
+ };
1188
+ width: number;
1189
+ height: number;
1190
+ metadata: Record<string, unknown>;
1191
+ config?: {
1192
+ status: "queued" | "error" | "locked" | "success" | "idle" | "editing" | "running" | "disabled";
1193
+ input: string;
1194
+ model: string;
1195
+ options: string[];
1196
+ output: string;
1197
+ provider: string;
1198
+ params?: Record<string, unknown> | undefined;
1199
+ uploads?: {
1200
+ name: string;
1201
+ size: number;
1202
+ mimeType: string;
1203
+ assetId: string;
1204
+ role: "audio" | "reference" | "mask" | "firstFrame" | "lastFrame" | "document" | "source";
1205
+ }[] | undefined;
1206
+ } | undefined;
1207
+ subtitle?: string | undefined;
1208
+ allowedModels?: string[] | undefined;
1209
+ }[];
1210
+ viewport: {
1211
+ y: number;
1212
+ k: number;
1213
+ x: number;
1214
+ };
1215
+ appearance?: {
1216
+ grid?: "line" | "dot" | "blank" | undefined;
1217
+ edge?: "curve" | "straight" | "ortho" | undefined;
1218
+ hiddenEdges?: boolean | undefined;
1219
+ styles?: {
1220
+ name: string;
1221
+ id: string;
1222
+ prompt: string;
1223
+ }[] | undefined;
1224
+ characters?: {
1225
+ name: string;
1226
+ id: string;
1227
+ hair?: string | undefined;
1228
+ face?: string | undefined;
1229
+ clothing?: string | undefined;
1230
+ marks?: string | undefined;
1231
+ change?: string | undefined;
1232
+ sourceAssetId?: string | undefined;
1233
+ skillId?: "character-view" | "character-sheet" | undefined;
1234
+ }[] | undefined;
1235
+ } | undefined;
1236
+ };
1237
+ }>;
1238
+ export type StudioCanvas = z.infer<typeof document>;
1239
+ export type StudioCanvasSnapshot = z.infer<typeof snapshotSchema>;
1240
+ export interface StudioCanvasStore {
1241
+ list(): Promise<{
1242
+ items: Omit<StudioCanvas, 'snapshot'>[];
1243
+ }>;
1244
+ create(value: unknown): Promise<StudioCanvas>;
1245
+ read(id: string): Promise<StudioCanvas>;
1246
+ save(id: string, value: unknown): Promise<StudioCanvas>;
1247
+ }
1248
+ export interface StudioCanvasAuthority extends StudioCanvasStore {
1249
+ previewSave(id: string, value: unknown, pendingAssets: StudioAsset[]): Promise<StudioCanvas>;
1250
+ }
1251
+ export declare function createCanvasAuthority(root: StudioRoot, assertAssets: (ids: string[], pendingAssets: StudioAsset[]) => Promise<void>, validateDirectors: (next: StudioCanvas, previous: StudioCanvas, all: StudioCanvas[], pendingAssets: StudioAsset[]) => Promise<void>): StudioCanvasAuthority;
1252
+ export declare function serializeCanvasAuthority(authority: StudioCanvasAuthority, serial: <T>(action: () => Promise<T>) => Promise<T>): StudioCanvasStore;
1253
+ export {};
1254
+ //# sourceMappingURL=canvas-store.d.ts.map