bleam 0.0.6 → 0.0.8

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 (86) hide show
  1. package/dist/ai.cjs +3984 -25
  2. package/dist/ai.d.cts +503 -20
  3. package/dist/ai.d.ts +503 -20
  4. package/dist/ai.js +3946 -26
  5. package/dist/animated.cjs +1 -1
  6. package/dist/animated.js +1 -1
  7. package/dist/app.cjs +92 -0
  8. package/dist/app.js +92 -0
  9. package/dist/cli.cjs +653 -86
  10. package/dist/cli.d.cts +89 -1
  11. package/dist/cli.d.ts +89 -1
  12. package/dist/cli.js +654 -88
  13. package/dist/{config-ClDGHNb3.d.ts → config-Cms0rvqg.d.ts} +1 -0
  14. package/dist/{config-D3gPaVMb.d.cts → config-CufOVJV3.d.cts} +1 -0
  15. package/dist/config.d.cts +1 -1
  16. package/dist/config.d.ts +1 -1
  17. package/dist/crypto.d.cts +0 -2
  18. package/dist/crypto.d.ts +1 -1
  19. package/dist/dev-protocol.d.cts +14 -1
  20. package/dist/dev-protocol.d.ts +14 -1
  21. package/dist/files-Bo7h9fik.cjs +468 -0
  22. package/dist/files-Ds1wT8C2.js +445 -0
  23. package/dist/files-DwA7pzr3.d.cts +99 -0
  24. package/dist/files-VrkQlKIT.d.ts +99 -0
  25. package/dist/files.cjs +7 -0
  26. package/dist/files.d.cts +2 -0
  27. package/dist/files.d.ts +2 -0
  28. package/dist/files.js +4 -0
  29. package/dist/index.d.cts +1 -1
  30. package/dist/index.d.ts +1 -1
  31. package/dist/native-sqlite-xcGdamRD.js +64 -0
  32. package/dist/native-sqlite-yQLD5s9i.cjs +66 -0
  33. package/dist/platform.cjs +27 -0
  34. package/dist/platform.d.cts +39 -0
  35. package/dist/platform.d.ts +39 -0
  36. package/dist/platform.js +21 -0
  37. package/dist/runtime.d.cts +1 -6
  38. package/dist/runtime.d.ts +1 -6
  39. package/dist/{schema-ipsECAso.d.ts → schema-DOOjfXvs.d.ts} +1 -1
  40. package/dist/{schema-BOuUHcqo.d.cts → schema-ENSMX_1t.d.cts} +1 -1
  41. package/dist/schema.cjs +1 -1
  42. package/dist/schema.d.cts +1 -1
  43. package/dist/schema.d.ts +1 -1
  44. package/dist/schema.js +1 -1
  45. package/dist/state-Bx0VlTlO.cjs +852 -0
  46. package/dist/state-CAwe-Vw1.js +767 -0
  47. package/dist/state.cjs +17 -763
  48. package/dist/state.d.cts +107 -77
  49. package/dist/state.d.ts +107 -77
  50. package/dist/state.js +4 -745
  51. package/dist/ui-1WepaMS4.d.cts +92 -0
  52. package/dist/ui-Ce-pnUUA.d.ts +92 -0
  53. package/dist/ui.cjs +286 -35
  54. package/dist/ui.d.cts +2 -30
  55. package/dist/ui.d.ts +2 -30
  56. package/dist/ui.js +283 -36
  57. package/dist/window.cjs +596 -0
  58. package/dist/window.d.cts +63 -0
  59. package/dist/window.d.ts +63 -0
  60. package/dist/window.js +589 -0
  61. package/package.json +16 -14
  62. package/templates/basic/app/index.tsx +8 -5
  63. package/templates/foundation-models/app/index.tsx +32 -0
  64. package/templates/foundation-models/app.config.ts +5 -0
  65. package/templates/image-generation/app/index.tsx +39 -0
  66. package/templates/image-generation/app.config.ts +5 -0
  67. package/templates/state/app/index.tsx +30 -0
  68. package/templates/state/app.config.ts +5 -0
  69. package/dist/chrome.cjs +0 -265
  70. package/dist/chrome.d.cts +0 -19
  71. package/dist/chrome.d.ts +0 -19
  72. package/dist/chrome.js +0 -262
  73. package/dist/fs.cjs +0 -13
  74. package/dist/fs.d.cts +0 -8
  75. package/dist/fs.d.ts +0 -8
  76. package/dist/fs.js +0 -12
  77. package/dist/native-macos-D6p2SmUj.js +0 -20
  78. package/dist/native-macos-DLwo_ii9.cjs +0 -31
  79. package/dist/native-runtime-CbPzrs8j.d.cts +0 -33
  80. package/dist/native-runtime-DxHSrsTX.d.ts +0 -33
  81. package/dist/native.cjs +0 -135
  82. package/dist/native.d.cts +0 -34
  83. package/dist/native.d.ts +0 -34
  84. package/dist/native.js +0 -135
  85. /package/dist/{schema-DVmoD9JL.js → schema-Bo5Jvqus.js} +0 -0
  86. /package/dist/{schema-bxeeCyLn.cjs → schema-rQ13mrpD.cjs} +0 -0
package/dist/ai.d.ts CHANGED
@@ -1,6 +1,450 @@
1
- import { h as StandardSchema, p as SchemaResult, s as InferOutput } from "./schema-ipsECAso.js";
1
+ import { s as FileRef } from "./files-VrkQlKIT.js";
2
+ import { h as StandardSchema, p as SchemaResult, s as InferOutput } from "./schema-DOOjfXvs.js";
2
3
 
3
- //#region src/ai.d.ts
4
+ //#region src/ai/errors.d.ts
5
+ type AIErrorCode = 'unsupported_runtime' | 'unsupported_os' | 'model_unavailable' | 'generation_failed' | 'generation_canceled' | 'concurrent_request' | 'guardrail_violation' | 'unsupported_language_or_locale' | 'rate_limited' | 'tool_failed' | 'image_generation_failed' | 'invalid_message' | 'invalid_schema' | 'invalid_model' | 'validation_failed' | 'context_window_exceeded';
6
+ type ImageGenerationStage = 'download' | 'tokenize' | 'encode' | 'denoise' | 'decode' | 'write';
7
+ type ImageGenerationErrorDetails = {
8
+ stage: ImageGenerationStage;
9
+ };
10
+ declare class AIError extends Error {
11
+ readonly code: AIErrorCode;
12
+ readonly cause?: unknown | undefined;
13
+ constructor(code: AIErrorCode, message: string, cause?: unknown | undefined);
14
+ }
15
+ declare class ImageGenerationError extends AIError {
16
+ readonly stage: ImageGenerationStage;
17
+ constructor(stage: ImageGenerationStage, message: string, cause?: unknown);
18
+ }
19
+ //#endregion
20
+ //#region src/ai/image-models.d.ts
21
+ type FluxImageModelId = 'flux2-klein-4b-8bit-abliterated';
22
+ type ImageModelCapability = 'text-to-image' | 'image-to-image' | 'inpainting' | 'outpainting' | 'references' | 'lora';
23
+ type ImageModelMetadata = {
24
+ displayName: string;
25
+ family: 'flux2-klein';
26
+ precision: '8-bit';
27
+ estimatedMemoryGB: number;
28
+ quality: 'high';
29
+ speed: 'fast';
30
+ capabilities: ImageModelCapability[];
31
+ };
32
+ type FluxImageModelManifest = {
33
+ formatVersion: 1;
34
+ model: FluxImageModelId;
35
+ directory: string;
36
+ metadata: ImageModelMetadata;
37
+ components: {
38
+ textEncoder: FluxModelComponentManifest;
39
+ transformer: FluxModelComponentManifest;
40
+ vae: FluxModelComponentManifest;
41
+ };
42
+ };
43
+ type FluxModelComponentManifest = {
44
+ repo: string;
45
+ revision: string;
46
+ path: string;
47
+ files: string[];
48
+ };
49
+ type FluxTokenizedPrompt = {
50
+ inputIds: number[];
51
+ attentionMask: number[];
52
+ };
53
+ type FluxImageModelPaths = {
54
+ modelRoot: string;
55
+ textEncoderPath: string;
56
+ transformerPath: string;
57
+ vaePath: string;
58
+ };
59
+ type PrepareImageModelProgress = {
60
+ model: FluxImageModelId;
61
+ file: string;
62
+ index: number;
63
+ total: number;
64
+ bytesWritten: number;
65
+ totalBytes?: number;
66
+ fraction?: number;
67
+ modelBytesWritten: number;
68
+ totalModelBytes: number;
69
+ modelFraction: number;
70
+ };
71
+ type PrepareImageLoRAProgress = {
72
+ lora: string;
73
+ file: string;
74
+ bytesWritten: number;
75
+ totalBytes?: number;
76
+ fraction?: number;
77
+ };
78
+ type PrepareImageModelOptions = {
79
+ model?: FluxImageModelId;
80
+ accessToken?: string;
81
+ concurrency?: number;
82
+ onProgress?: (progress: PrepareImageModelProgress) => void;
83
+ };
84
+ type ImageLoRASource = {
85
+ type: 'local';
86
+ path: string;
87
+ } | {
88
+ type: 'url';
89
+ url: string;
90
+ filename?: string;
91
+ bytes?: number;
92
+ } | {
93
+ type: 'huggingface';
94
+ repo: string;
95
+ path?: string;
96
+ revision?: string;
97
+ bytes?: number;
98
+ };
99
+ type ImageLoRAPrecision = 'float16' | 'bfloat16' | 'float32';
100
+ type ImageLoRAMetadata = {
101
+ baseModel?: FluxImageModelId;
102
+ precision?: ImageLoRAPrecision;
103
+ recommendedScale?: number;
104
+ sigmaSchedule?: number[];
105
+ };
106
+ type ImageLoRADefinition = {
107
+ id: string;
108
+ description?: string;
109
+ source: ImageLoRASource;
110
+ metadata?: ImageLoRAMetadata;
111
+ scale?: number;
112
+ };
113
+ type PrepareImageLoRAOptions = {
114
+ accessToken?: string;
115
+ signal?: AbortSignal;
116
+ onProgress?: (progress: PrepareImageLoRAProgress) => void;
117
+ };
118
+ type PreparedImageLoRA = {
119
+ id: string;
120
+ description?: string;
121
+ path: string;
122
+ uri: string;
123
+ scale: number;
124
+ source: ImageLoRASource;
125
+ metadata?: ImageLoRAMetadata;
126
+ };
127
+ type ImageLoRAState = PreparedImageLoRA & {
128
+ installed: boolean;
129
+ verified: boolean;
130
+ size?: number;
131
+ };
132
+ type PreparedImageModel = FluxImageModelPaths & {
133
+ model: FluxImageModelId;
134
+ tokenizer: FluxTokenizer;
135
+ };
136
+ type FluxTokenizer = (input: {
137
+ prompt: string;
138
+ maxLength: number;
139
+ }) => Promise<FluxTokenizedPrompt> | FluxTokenizedPrompt;
140
+ type ImageMaskMode = 'paint' | 'preserve';
141
+ type ImageResizeMode = 'stretch' | 'fit' | 'crop';
142
+ type ImageAspectRatio = '1:1' | '16:9' | '9:16' | '4:3' | '3:2' | '2:3' | '21:9';
143
+ type ImageSize = {
144
+ width: number;
145
+ height: number;
146
+ };
147
+ type ImageOutpaintSourceRect = {
148
+ x: number;
149
+ y: number;
150
+ width: number;
151
+ height: number;
152
+ };
153
+ type ImageOutpaintOptions = {
154
+ width: number;
155
+ height: number;
156
+ sourceRect: ImageOutpaintSourceRect;
157
+ autoCrop?: boolean;
158
+ };
159
+ type GenerateImageOptions = {
160
+ prompt: string;
161
+ image?: string;
162
+ mask?: string;
163
+ maskMode?: ImageMaskMode;
164
+ outpaint?: ImageOutpaintOptions;
165
+ references?: string[];
166
+ referenceInfluences?: number[];
167
+ aspectRatio?: ImageAspectRatio;
168
+ resizeMode?: ImageResizeMode;
169
+ maxInputLongSide?: number | false;
170
+ loras?: ImageLoRADefinition[];
171
+ mode?: string;
172
+ width?: number;
173
+ height?: number;
174
+ steps?: number;
175
+ guidance?: number;
176
+ strength?: number;
177
+ seed?: number;
178
+ model?: FluxImageModelId;
179
+ modelRoot?: string;
180
+ tokenizer?: FluxTokenizer;
181
+ accessToken?: string;
182
+ concurrency?: number;
183
+ signal?: AbortSignal;
184
+ onModelProgress?: (progress: PrepareImageModelProgress) => void;
185
+ onProgress?: (progress: ImagegenProgress) => void;
186
+ };
187
+ type ImagegenProgress = {
188
+ currentStep: number;
189
+ totalSteps: number;
190
+ fraction: number;
191
+ };
192
+ type GenerateImageResult = {
193
+ uri: string;
194
+ width: number;
195
+ height: number;
196
+ model: FluxImageModelId;
197
+ metadata: GenerateImageMetadata;
198
+ };
199
+ type GenerateImagesOptions = GenerateImageOptions & {
200
+ count: number;
201
+ };
202
+ type ImageGenerationJobStatus = 'queued' | 'running' | 'completed' | 'failed' | 'canceled';
203
+ type ImageGenerationJobSnapshot = {
204
+ id: string;
205
+ status: ImageGenerationJobStatus;
206
+ createdAt: string;
207
+ startedAt?: string;
208
+ completedAt?: string;
209
+ progress?: ImagegenProgress;
210
+ result?: GenerateImageResult;
211
+ error?: unknown;
212
+ };
213
+ type ImageGenerationJob = {
214
+ id: string;
215
+ promise: Promise<GenerateImageResult>;
216
+ cancel(): boolean;
217
+ getSnapshot(): ImageGenerationJobSnapshot;
218
+ subscribe(listener: (snapshot: ImageGenerationJobSnapshot) => void): () => void;
219
+ };
220
+ type GenerateImageMetadata = {
221
+ model: FluxImageModelId;
222
+ width: number;
223
+ height: number;
224
+ steps: number;
225
+ guidance: number;
226
+ strength?: number;
227
+ seed: number;
228
+ elapsedMs?: number;
229
+ appliedLoRAs?: Array<{
230
+ id?: string;
231
+ path: string;
232
+ scale: number;
233
+ }>;
234
+ sigmaSchedule?: number[];
235
+ };
236
+ type ImageModelState = {
237
+ model: FluxImageModelId;
238
+ modelRoot: string;
239
+ paths: FluxImageModelPaths;
240
+ installed: boolean;
241
+ verified: boolean;
242
+ bytesPresent: number;
243
+ totalBytes: number;
244
+ missingFiles: string[];
245
+ invalidFiles: string[];
246
+ };
247
+ type ImageMemoryTelemetry = {
248
+ activeMB: number;
249
+ cacheMB: number;
250
+ };
251
+ type UpscaleImageOptions = {
252
+ image: string;
253
+ scale?: number;
254
+ signal?: AbortSignal;
255
+ };
256
+ type UpscaleImageResult = {
257
+ uri: string;
258
+ width: number;
259
+ height: number;
260
+ scale: number;
261
+ };
262
+ declare const flux2Klein4B8BitAbliterated: FluxImageModelManifest;
263
+ declare const imageModelManifests: readonly [FluxImageModelManifest];
264
+ declare function imageModelManifest(model: FluxImageModelId): FluxImageModelManifest | undefined;
265
+ declare function fluxImageModelPaths(modelRoot: string, manifest?: FluxImageModelManifest): FluxImageModelPaths;
266
+ //#endregion
267
+ //#region src/ai/image.d.ts
268
+ declare const defaultImageLongSide = 1152;
269
+ declare function normalizeImageSize(size: ImageSize, maxLongSide?: number | false): ImageSize;
270
+ declare function imageSizeForPreset(aspectRatio: ImageAspectRatio, maxLongSide?: number): ImageSize;
271
+ declare function prepareImageModel(options?: PrepareImageModelOptions): Promise<PreparedImageModel>;
272
+ declare function verifyImageModel(options?: {
273
+ model?: FluxImageModelId;
274
+ modelRoot?: string;
275
+ }): Promise<ImageModelState>;
276
+ declare function listImageModels(options?: {
277
+ modelRoot?: string;
278
+ }): Promise<ImageModelState[]>;
279
+ declare function deleteImageModel(options?: {
280
+ model?: FluxImageModelId;
281
+ modelRoot?: string;
282
+ }): Promise<void>;
283
+ declare function imageMemoryTelemetry(): Promise<ImageMemoryTelemetry>;
284
+ declare function unloadImageModel(): Promise<boolean>;
285
+ declare function upscaleImage(options: UpscaleImageOptions): Promise<UpscaleImageResult>;
286
+ declare function prepareImageLoRA(lora: ImageLoRADefinition, options?: PrepareImageLoRAOptions): Promise<PreparedImageLoRA>;
287
+ declare function verifyImageLoRA(lora: ImageLoRADefinition): Promise<ImageLoRAState>;
288
+ declare function listImageLoRAs(loras: ImageLoRADefinition[]): Promise<ImageLoRAState[]>;
289
+ declare function deleteImageLoRA(lora: string | ImageLoRADefinition): Promise<void>;
290
+ declare function generateImage(options: GenerateImageOptions): Promise<GenerateImageResult>;
291
+ declare function generateImages(options: GenerateImagesOptions): Promise<GenerateImageResult[]>;
292
+ declare function scheduleImageGeneration(options: GenerateImageOptions): ImageGenerationJob;
293
+ declare function getImageGenerationJob(id: string): ImageGenerationJob | undefined;
294
+ declare function listImageGenerationJobs(): {
295
+ id: string;
296
+ status: ImageGenerationJobStatus;
297
+ createdAt: string;
298
+ startedAt?: string;
299
+ completedAt?: string;
300
+ progress?: ImagegenProgress;
301
+ result?: GenerateImageResult;
302
+ error?: unknown;
303
+ }[];
304
+ //#endregion
305
+ //#region src/ai/image-composer.d.ts
306
+ type ImageComposerMode = 'text' | 'subject' | 'edit' | 'outpaint';
307
+ type ImageComposerSize = {
308
+ width: number;
309
+ height: number;
310
+ };
311
+ type ImageComposerImage = FileRef & {
312
+ size: ImageComposerSize;
313
+ };
314
+ type ImageComposerRect = {
315
+ x: number;
316
+ y: number;
317
+ width: number;
318
+ height: number;
319
+ };
320
+ type ImageGenerationRequestInput = {
321
+ mode: 'text';
322
+ prompt: string;
323
+ refs?: ImageComposerImage[];
324
+ } | {
325
+ mode: 'subject';
326
+ prompt: string;
327
+ subject: ImageComposerImage | null;
328
+ refs?: ImageComposerImage[];
329
+ } | {
330
+ mode: 'edit';
331
+ prompt: string;
332
+ source: ImageComposerImage | null;
333
+ refs?: ImageComposerImage[];
334
+ } | {
335
+ mode: 'outpaint';
336
+ prompt: string;
337
+ source: ImageComposerImage | null;
338
+ rect: ImageComposerRect | null;
339
+ };
340
+ type ImageComposerOptions = {
341
+ initialMode?: ImageComposerMode;
342
+ maxRefs?: number;
343
+ inputRoot?: string;
344
+ };
345
+ type TextComposerState = {
346
+ refs: ImageComposerImage[];
347
+ isPicking: boolean;
348
+ error: Error | null;
349
+ };
350
+ type SubjectComposerState = TextComposerState & {
351
+ subject: ImageComposerImage | null;
352
+ };
353
+ type EditComposerState = TextComposerState & {
354
+ source: ImageComposerImage | null;
355
+ };
356
+ type OutpaintComposerState = {
357
+ source: ImageComposerImage | null;
358
+ rect: ImageComposerRect | null;
359
+ isPicking: boolean;
360
+ error: Error | null;
361
+ };
362
+ type TextImageComposer = TextComposerState & {
363
+ mode: 'text';
364
+ pickRefs(): Promise<void>;
365
+ removeRef(index: number): void;
366
+ request(prompt: string): ImageGenerationRequestInput;
367
+ clear(): void;
368
+ };
369
+ type SubjectImageComposer = SubjectComposerState & {
370
+ mode: 'subject';
371
+ pickSubject(): Promise<void>;
372
+ removeSubject(): void;
373
+ pickRefs(): Promise<void>;
374
+ removeRef(index: number): void;
375
+ request(prompt: string): ImageGenerationRequestInput;
376
+ clear(): void;
377
+ };
378
+ type EditImageComposer = EditComposerState & {
379
+ mode: 'edit';
380
+ pickSource(): Promise<void>;
381
+ removeSource(): void;
382
+ pickRefs(): Promise<void>;
383
+ removeRef(index: number): void;
384
+ request(prompt: string): ImageGenerationRequestInput;
385
+ clear(): void;
386
+ };
387
+ type OutpaintImageComposer = OutpaintComposerState & {
388
+ mode: 'outpaint';
389
+ pickSource(): Promise<void>;
390
+ removeSource(): void;
391
+ setRect(rect: ImageComposerRect | null): void;
392
+ request(prompt: string): ImageGenerationRequestInput;
393
+ clear(): void;
394
+ };
395
+ type ImageComposer = TextImageComposer | SubjectImageComposer | EditImageComposer | OutpaintImageComposer;
396
+ type ImageComposerController = {
397
+ mode: ImageComposerMode;
398
+ setMode(mode: ImageComposerMode): void;
399
+ active: ImageComposer;
400
+ text: TextImageComposer;
401
+ subject: SubjectImageComposer;
402
+ edit: EditImageComposer;
403
+ outpaint: OutpaintImageComposer;
404
+ isPicking: boolean;
405
+ error: Error | null;
406
+ request(prompt: string): ImageGenerationRequestInput;
407
+ clear(): void;
408
+ };
409
+ declare function roundImageDimension(value: number): number;
410
+ declare function imageSizeForAspectRatio(size: ImageComposerSize, maxSide?: number): ImageComposerSize;
411
+ declare function roundedImageSize(size: ImageComposerSize): ImageComposerSize;
412
+ declare function clampOutpaintRect(rect: ImageComposerRect): ImageComposerRect;
413
+ declare function rectForSourceScale(sourceSize: ImageComposerSize, scale: number, center?: {
414
+ x: number;
415
+ y: number;
416
+ }): ImageComposerRect;
417
+ declare function initialOutpaintRect(sourceSize: ImageComposerSize): ImageComposerRect;
418
+ declare function buildImageGenerationRequest(input: ImageGenerationRequestInput, options?: Pick<GenerateImageOptions, 'signal' | 'onModelProgress' | 'onProgress' | 'model' | 'modelRoot' | 'tokenizer' | 'accessToken' | 'concurrency' | 'loras'>): GenerateImageOptions;
419
+ declare function useImageComposer(options?: ImageComposerOptions): ImageComposerController;
420
+ declare function useImageComposer(mode: 'text', options?: ImageComposerOptions): TextImageComposer;
421
+ declare function useImageComposer(mode: 'subject', options?: ImageComposerOptions): SubjectImageComposer;
422
+ declare function useImageComposer(mode: 'edit', options?: ImageComposerOptions): EditImageComposer;
423
+ declare function useImageComposer(mode: 'outpaint', options?: ImageComposerOptions): OutpaintImageComposer;
424
+ declare function useImageGeneration(): {
425
+ run: (input: ImageGenerationRequestInput, options?: Pick<GenerateImageOptions, "loras">) => Promise<GenerateImageResult | null>;
426
+ cancel: () => void;
427
+ clear: () => void;
428
+ imageUri: string | null;
429
+ result: GenerateImageResult | null;
430
+ progress: number;
431
+ status: string;
432
+ isGenerating: boolean;
433
+ error: Error | null;
434
+ };
435
+ declare function useImageModel(): {
436
+ installed: boolean;
437
+ verified: boolean;
438
+ missingFiles: string[];
439
+ bytesPresent: number;
440
+ totalBytes: number;
441
+ check: () => Promise<ImageModelState | null>;
442
+ checking: boolean;
443
+ state: ImageModelState | null;
444
+ error: Error | null;
445
+ };
446
+ //#endregion
447
+ //#region src/ai/shape.d.ts
4
448
  type PrimitiveToken = 'string' | 'number' | 'boolean';
5
449
  type ShapeArray = readonly [ShapeDefinition];
6
450
  type ShapeObject = {
@@ -19,34 +463,73 @@ type BridgeSchema = {
19
463
  properties: Record<string, BridgeSchema>;
20
464
  required: string[];
21
465
  };
22
- type GenerateOptions<Output$1 extends StructuredSchema | undefined = undefined> = {
23
- system?: string;
24
- prompt?: string;
25
- input?: string | StructuredInput;
26
- output?: Output$1;
27
- temperature?: number;
28
- maxTokens?: number;
29
- };
30
466
  type StructuredInput = {
31
- shape: StructuredSchema;
32
467
  value: unknown;
468
+ shape: BleamAIShape<unknown, unknown> | StandardSchema;
33
469
  };
34
470
  type StructuredSchema = BleamAIShape<unknown, unknown> | StandardSchema;
35
- type AIErrorCode = 'unsupported_runtime' | 'unsupported_os' | 'model_unavailable' | 'generation_failed' | 'invalid_message' | 'invalid_schema' | 'validation_failed' | 'context_window_exceeded';
36
- declare class AIError extends Error {
37
- readonly code: AIErrorCode;
38
- readonly cause?: unknown | undefined;
39
- constructor(code: AIErrorCode, message: string, cause?: unknown | undefined);
40
- }
471
+ type BridgeStructuredSchema = StandardSchema & {
472
+ toJSONSchema(): BridgeSchema;
473
+ };
41
474
  interface BleamAIShape<Input, Output$1> extends StandardSchema<Input, Output$1> {
42
475
  parse(value: unknown): Output$1;
43
476
  safeParse(value: unknown): SchemaResult<Output$1>;
44
477
  toJSONSchema(): BridgeSchema;
45
478
  }
46
479
  type InferShapeOutput<Value extends BleamAIShape<unknown, unknown>> = Value extends BleamAIShape<unknown, infer Output> ? Output : never;
47
- type GenerateResult<Output$1 extends StructuredSchema | undefined> = Output$1 extends BleamAIShape<unknown, infer ShapeOutput> ? ShapeOutput : Output$1 extends StandardSchema ? InferOutput<Output$1> : string;
48
480
  declare function shape<Definition extends ShapeObject>(definition: Definition): BleamAIShape<InferShape<Definition>, InferShape<Definition>>;
481
+ type GenerateResult<Output$1 extends StructuredSchema | undefined> = Output$1 extends BleamAIShape<unknown, infer ShapeOutput> ? ShapeOutput : Output$1 extends StandardSchema ? InferOutput<Output$1> : string;
482
+ //#endregion
483
+ //#region src/ai/native.d.ts
484
+ type ModelAvailabilityResult = {
485
+ available: boolean;
486
+ reason?: 'device_not_eligible' | 'apple_intelligence_not_enabled' | 'model_not_ready' | 'unknown';
487
+ };
488
+ //#endregion
489
+ //#region src/ai/text.d.ts
490
+ type AITool<Input extends BridgeStructuredSchema = BridgeStructuredSchema> = {
491
+ name: string;
492
+ description: string;
493
+ input: Input;
494
+ execute(input: InferToolInput<Input>): unknown | Promise<unknown>;
495
+ };
496
+ type InferToolInput<Input extends BridgeStructuredSchema> = Input extends {
497
+ readonly '~standard': {
498
+ readonly types?: {
499
+ readonly output: infer Output;
500
+ };
501
+ };
502
+ } ? Output : unknown;
503
+ type GenerateOptions<Output$1 extends BridgeStructuredSchema | undefined = undefined> = {
504
+ system?: string;
505
+ prompt?: string;
506
+ input?: string | StructuredInput;
507
+ output?: Output$1;
508
+ temperature?: number;
509
+ maxTokens?: number;
510
+ tools?: readonly AITool[];
511
+ signal?: AbortSignal;
512
+ };
513
+ type StreamOptions = Omit<GenerateOptions<undefined>, 'output'>;
514
+ type ModelAvailability = ModelAvailabilityResult;
49
515
  declare function isAvailable(): Promise<boolean>;
50
- declare function generate<Output$1 extends StructuredSchema | undefined = undefined>(options: GenerateOptions<Output$1>): Promise<GenerateResult<Output$1>>;
516
+ declare function availability(): Promise<ModelAvailability>;
517
+ declare function generate<Output$1 extends BridgeStructuredSchema | undefined = undefined>(options: GenerateOptions<Output$1>): Promise<GenerateResult<Output$1>>;
518
+ declare function stream(options: StreamOptions): AsyncGenerator<string>;
519
+ //#endregion
520
+ //#region src/ai/text-hook.d.ts
521
+ type TextGenerationState = {
522
+ text: string;
523
+ isGenerating: boolean;
524
+ error: Error | null;
525
+ };
526
+ declare function useTextGeneration(): {
527
+ run: (options: StreamOptions) => Promise<string | null>;
528
+ cancel: () => void;
529
+ clear: () => void;
530
+ text: string;
531
+ isGenerating: boolean;
532
+ error: Error | null;
533
+ };
51
534
  //#endregion
52
- export { AIError, AIErrorCode, BleamAIShape, InferShapeOutput, generate, isAvailable, shape };
535
+ export { AIError, AIErrorCode, AITool, BleamAIShape, EditImageComposer, FluxImageModelId, FluxImageModelManifest, FluxImageModelPaths, FluxModelComponentManifest, FluxTokenizedPrompt, FluxTokenizer, GenerateImageMetadata, GenerateImageOptions, GenerateImageResult, GenerateImagesOptions, GenerateOptions, ImageAspectRatio, ImageComposer, ImageComposerController, ImageComposerImage, ImageComposerMode, ImageComposerRect, ImageComposerSize, ImageGenerationError, ImageGenerationErrorDetails, ImageGenerationJob, ImageGenerationJobSnapshot, ImageGenerationJobStatus, ImageGenerationRequestInput, ImageGenerationStage, ImageLoRADefinition, ImageLoRAMetadata, ImageLoRAPrecision, ImageLoRASource, ImageLoRAState, ImageMaskMode, ImageMemoryTelemetry, ImageModelCapability, ImageModelMetadata, ImageModelState, ImageOutpaintOptions, ImageOutpaintSourceRect, ImageResizeMode, ImageSize, ImagegenProgress, InferShapeOutput, ModelAvailability, OutpaintImageComposer, PrepareImageLoRAOptions, PrepareImageLoRAProgress, PrepareImageModelOptions, PrepareImageModelProgress, PreparedImageLoRA, PreparedImageModel, StreamOptions, SubjectImageComposer, TextGenerationState, TextImageComposer, UpscaleImageOptions, UpscaleImageResult, availability, buildImageGenerationRequest, clampOutpaintRect, defaultImageLongSide, deleteImageLoRA, deleteImageModel, flux2Klein4B8BitAbliterated, fluxImageModelPaths, generate, generateImage, generateImages, getImageGenerationJob, imageMemoryTelemetry, imageModelManifest, imageModelManifests, imageSizeForAspectRatio, imageSizeForPreset, initialOutpaintRect, isAvailable, listImageGenerationJobs, listImageLoRAs, listImageModels, normalizeImageSize, prepareImageLoRA, prepareImageModel, rectForSourceScale, roundImageDimension, roundedImageSize, scheduleImageGeneration, shape, stream, unloadImageModel, upscaleImage, useImageComposer, useImageGeneration, useImageModel, useTextGeneration, verifyImageLoRA, verifyImageModel };