@michelabboud/visual-forge-mcp 0.5.5 → 0.6.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.
@@ -38,8 +38,14 @@ export interface GeneratedImageMetadata {
38
38
  height: number;
39
39
  };
40
40
  fileSize: number;
41
- format: 'png' | 'jpg' | 'webp';
41
+ format: 'png' | 'jpg' | 'jpeg' | 'webp';
42
42
  promptUsed: string;
43
+ optimization?: {
44
+ optimized: boolean;
45
+ originalPath: string;
46
+ originalSize: number;
47
+ reduction: number;
48
+ };
43
49
  }
44
50
  export type ProviderType = 'openai' | 'gemini' | 'stability' | 'replicate' | 'leonardo' | 'huggingface' | 'xai';
45
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../../src/types/generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,GACX,UAAU,GACV,aAAa,GACb,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
1
+ {"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../../src/types/generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,GACX,UAAU,GACV,aAAa,GACb,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Image Optimizer - Web optimization for generated images
3
+ * Gracefully falls back to original images if Sharp is unavailable
4
+ *
5
+ * Configuration via environment variables:
6
+ * - IMAGE_OPTIMIZATION_ENABLED: Enable/disable optimization (default: true)
7
+ * - IMAGE_OPTIMIZATION_QUALITY: Quality 1-100 (default: 85)
8
+ * - IMAGE_OPTIMIZATION_FORMAT: webp|jpeg|png (default: webp)
9
+ * - IMAGE_OPTIMIZATION_MAX_WIDTH: Max width in pixels (default: 1920)
10
+ * - IMAGE_OPTIMIZATION_MAX_HEIGHT: Max height in pixels (default: 1920)
11
+ */
12
+ export interface OptimizationOptions {
13
+ /**
14
+ * Enable/disable optimization (default: true)
15
+ * If false, returns original path without optimization
16
+ */
17
+ enabled?: boolean;
18
+ /**
19
+ * Target quality (1-100, default: 85)
20
+ */
21
+ quality?: number;
22
+ /**
23
+ * Maximum width in pixels (default: 1920)
24
+ */
25
+ maxWidth?: number;
26
+ /**
27
+ * Maximum height in pixels (default: 1920)
28
+ */
29
+ maxHeight?: number;
30
+ /**
31
+ * Output format (default: 'webp')
32
+ */
33
+ format?: 'webp' | 'jpeg' | 'png';
34
+ /**
35
+ * Whether to keep the original file (default: true)
36
+ */
37
+ keepOriginal?: boolean;
38
+ }
39
+ export interface OptimizationResult {
40
+ /**
41
+ * Path to the optimized image (or original if optimization failed)
42
+ */
43
+ optimizedPath: string;
44
+ /**
45
+ * Path to the original image
46
+ */
47
+ originalPath: string;
48
+ /**
49
+ * Whether optimization was performed
50
+ */
51
+ optimized: boolean;
52
+ /**
53
+ * Original file size in bytes
54
+ */
55
+ originalSize: number;
56
+ /**
57
+ * Optimized file size in bytes (same as originalSize if not optimized)
58
+ */
59
+ optimizedSize: number;
60
+ /**
61
+ * Reduction percentage (0 if not optimized)
62
+ */
63
+ reductionPercent: number;
64
+ /**
65
+ * Format of the optimized image
66
+ */
67
+ format: 'png' | 'jpg' | 'jpeg' | 'webp' | string;
68
+ }
69
+ /**
70
+ * Optimize an image for web use
71
+ * @param inputPath - Path to the input image
72
+ * @param options - Optimization options
73
+ * @returns Optimization result with paths and stats
74
+ */
75
+ export declare function optimizeImage(inputPath: string, options?: OptimizationOptions): Promise<OptimizationResult>;
76
+ /**
77
+ * Check if image optimization is available
78
+ */
79
+ export declare function isOptimizationAvailable(): Promise<boolean>;
80
+ /**
81
+ * Get optimization statistics
82
+ */
83
+ export declare function getOptimizationStats(results: OptimizationResult[]): {
84
+ totalOriginalSize: number;
85
+ totalOptimizedSize: number;
86
+ totalReduction: number;
87
+ averageReduction: number;
88
+ optimizedCount: number;
89
+ totalCount: number;
90
+ };
91
+ //# sourceMappingURL=image-optimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-optimizer.d.ts","sourceRoot":"","sources":["../../src/utils/image-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAsDH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IAEjC;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA+K7B;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG;IACnE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CAmBA"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Image Optimizer - Web optimization for generated images
3
+ * Gracefully falls back to original images if Sharp is unavailable
4
+ *
5
+ * Configuration via environment variables:
6
+ * - IMAGE_OPTIMIZATION_ENABLED: Enable/disable optimization (default: true)
7
+ * - IMAGE_OPTIMIZATION_QUALITY: Quality 1-100 (default: 85)
8
+ * - IMAGE_OPTIMIZATION_FORMAT: webp|jpeg|png (default: webp)
9
+ * - IMAGE_OPTIMIZATION_MAX_WIDTH: Max width in pixels (default: 1920)
10
+ * - IMAGE_OPTIMIZATION_MAX_HEIGHT: Max height in pixels (default: 1920)
11
+ */
12
+ import * as fs from 'fs/promises';
13
+ import * as path from 'path';
14
+ import { logger } from './logger.js';
15
+ /**
16
+ * Get optimization configuration from environment variables
17
+ */
18
+ function getOptimizationConfig() {
19
+ const enabled = process.env.IMAGE_OPTIMIZATION_ENABLED !== 'false'; // Default: true
20
+ const quality = parseInt(process.env.IMAGE_OPTIMIZATION_QUALITY || '85', 10);
21
+ const format = (process.env.IMAGE_OPTIMIZATION_FORMAT || 'webp');
22
+ const maxWidth = parseInt(process.env.IMAGE_OPTIMIZATION_MAX_WIDTH || '1920', 10);
23
+ const maxHeight = parseInt(process.env.IMAGE_OPTIMIZATION_MAX_HEIGHT || '1920', 10);
24
+ const keepOriginal = process.env.IMAGE_OPTIMIZATION_KEEP_ORIGINAL !== 'false'; // Default: true
25
+ return {
26
+ enabled,
27
+ quality: Math.max(1, Math.min(100, quality)), // Clamp to 1-100
28
+ format,
29
+ maxWidth: Math.max(100, maxWidth), // Minimum 100px
30
+ maxHeight: Math.max(100, maxHeight),
31
+ keepOriginal,
32
+ };
33
+ }
34
+ // Dynamic import of Sharp to handle missing dependency gracefully
35
+ let sharp = null;
36
+ let sharpAvailable = false;
37
+ /**
38
+ * Initialize Sharp library
39
+ * Returns true if Sharp is available, false otherwise
40
+ */
41
+ async function initializeSharp() {
42
+ if (sharp !== null) {
43
+ return sharpAvailable;
44
+ }
45
+ try {
46
+ sharp = (await import('sharp')).default;
47
+ sharpAvailable = true;
48
+ logger.info('Sharp library loaded successfully - web optimization enabled');
49
+ return true;
50
+ }
51
+ catch (error) {
52
+ sharpAvailable = false;
53
+ logger.warn('Sharp library not available - using original images without optimization', {
54
+ error: error instanceof Error ? error.message : 'Unknown error',
55
+ });
56
+ return false;
57
+ }
58
+ }
59
+ /**
60
+ * Optimize an image for web use
61
+ * @param inputPath - Path to the input image
62
+ * @param options - Optimization options
63
+ * @returns Optimization result with paths and stats
64
+ */
65
+ export async function optimizeImage(inputPath, options = {}) {
66
+ // Get default config from environment
67
+ const envConfig = getOptimizationConfig();
68
+ // Merge user options with environment defaults
69
+ const { enabled = envConfig.enabled, quality = envConfig.quality, maxWidth = envConfig.maxWidth, maxHeight = envConfig.maxHeight, format = envConfig.format, keepOriginal = envConfig.keepOriginal, } = options;
70
+ // Get original file stats
71
+ const originalStats = await fs.stat(inputPath);
72
+ const originalSize = originalStats.size;
73
+ // Check if optimization is disabled
74
+ if (!enabled) {
75
+ logger.info('Image optimization disabled, using original', {
76
+ path: inputPath,
77
+ size: originalSize,
78
+ reason: 'IMAGE_OPTIMIZATION_ENABLED=false',
79
+ });
80
+ return {
81
+ optimizedPath: inputPath,
82
+ originalPath: inputPath,
83
+ optimized: false,
84
+ originalSize,
85
+ optimizedSize: originalSize,
86
+ reductionPercent: 0,
87
+ format: path.extname(inputPath).slice(1) || 'unknown',
88
+ };
89
+ }
90
+ // Ensure Sharp is initialized
91
+ const isSharpAvailable = await initializeSharp();
92
+ // If Sharp is not available, return original path
93
+ if (!isSharpAvailable || !sharp) {
94
+ logger.info('Using original image without optimization', {
95
+ path: inputPath,
96
+ size: originalSize,
97
+ reason: 'Sharp not available',
98
+ });
99
+ return {
100
+ optimizedPath: inputPath,
101
+ originalPath: inputPath,
102
+ optimized: false,
103
+ originalSize,
104
+ optimizedSize: originalSize,
105
+ reductionPercent: 0,
106
+ format: path.extname(inputPath).slice(1) || 'unknown',
107
+ };
108
+ }
109
+ try {
110
+ const dir = path.dirname(inputPath);
111
+ const basename = path.basename(inputPath, path.extname(inputPath));
112
+ const ext = `.${format}`;
113
+ // Create paths
114
+ const originalDir = path.join(dir, 'original');
115
+ const originalPath = keepOriginal ? path.join(originalDir, path.basename(inputPath)) : inputPath;
116
+ const optimizedPath = path.join(dir, `${basename}${ext}`);
117
+ // If keeping original, create original directory and move file
118
+ if (keepOriginal) {
119
+ await fs.mkdir(originalDir, { recursive: true });
120
+ await fs.copyFile(inputPath, originalPath);
121
+ logger.debug('Original image saved', { path: originalPath });
122
+ }
123
+ // Optimize image with Sharp
124
+ logger.debug('Optimizing image with Sharp', {
125
+ input: inputPath,
126
+ output: optimizedPath,
127
+ quality,
128
+ maxWidth,
129
+ maxHeight,
130
+ format,
131
+ });
132
+ const sharpInstance = sharp(inputPath);
133
+ // Get image metadata
134
+ const metadata = await sharpInstance.metadata();
135
+ logger.debug('Image metadata', {
136
+ width: metadata.width,
137
+ height: metadata.height,
138
+ format: metadata.format,
139
+ });
140
+ // Resize if needed
141
+ let needsResize = false;
142
+ if (metadata.width && metadata.width > maxWidth) {
143
+ needsResize = true;
144
+ }
145
+ if (metadata.height && metadata.height > maxHeight) {
146
+ needsResize = true;
147
+ }
148
+ let pipeline = sharpInstance;
149
+ if (needsResize) {
150
+ pipeline = pipeline.resize(maxWidth, maxHeight, {
151
+ fit: 'inside',
152
+ withoutEnlargement: true,
153
+ });
154
+ logger.debug('Resizing image', { maxWidth, maxHeight });
155
+ }
156
+ // Apply format-specific optimization
157
+ switch (format) {
158
+ case 'webp':
159
+ pipeline = pipeline.webp({ quality, effort: 6 });
160
+ break;
161
+ case 'jpeg':
162
+ pipeline = pipeline.jpeg({ quality, mozjpeg: true });
163
+ break;
164
+ case 'png':
165
+ pipeline = pipeline.png({ compressionLevel: 9, adaptiveFiltering: true });
166
+ break;
167
+ }
168
+ // Save optimized image
169
+ await pipeline.toFile(optimizedPath);
170
+ // Remove original from main directory if keeping it
171
+ if (keepOriginal && inputPath !== originalPath) {
172
+ await fs.unlink(inputPath);
173
+ }
174
+ // Get optimized file stats
175
+ const optimizedStats = await fs.stat(optimizedPath);
176
+ const optimizedSize = optimizedStats.size;
177
+ const reductionPercent = ((originalSize - optimizedSize) / originalSize) * 100;
178
+ logger.info('Image optimized successfully', {
179
+ originalPath: keepOriginal ? originalPath : inputPath,
180
+ optimizedPath,
181
+ originalSize,
182
+ optimizedSize,
183
+ reduction: `${reductionPercent.toFixed(1)}%`,
184
+ format,
185
+ });
186
+ return {
187
+ optimizedPath,
188
+ originalPath: keepOriginal ? originalPath : inputPath,
189
+ optimized: true,
190
+ originalSize,
191
+ optimizedSize,
192
+ reductionPercent,
193
+ format,
194
+ };
195
+ }
196
+ catch (error) {
197
+ logger.error('Image optimization failed, using original', {
198
+ path: inputPath,
199
+ error: error instanceof Error ? error.message : 'Unknown error',
200
+ });
201
+ // On error, return original path
202
+ return {
203
+ optimizedPath: inputPath,
204
+ originalPath: inputPath,
205
+ optimized: false,
206
+ originalSize,
207
+ optimizedSize: originalSize,
208
+ reductionPercent: 0,
209
+ format: path.extname(inputPath).slice(1) || 'unknown',
210
+ };
211
+ }
212
+ }
213
+ /**
214
+ * Check if image optimization is available
215
+ */
216
+ export async function isOptimizationAvailable() {
217
+ return await initializeSharp();
218
+ }
219
+ /**
220
+ * Get optimization statistics
221
+ */
222
+ export function getOptimizationStats(results) {
223
+ const totalOriginalSize = results.reduce((sum, r) => sum + r.originalSize, 0);
224
+ const totalOptimizedSize = results.reduce((sum, r) => sum + r.optimizedSize, 0);
225
+ const totalReduction = totalOriginalSize - totalOptimizedSize;
226
+ const optimizedCount = results.filter(r => r.optimized).length;
227
+ const averageReduction = optimizedCount > 0
228
+ ? results
229
+ .filter(r => r.optimized)
230
+ .reduce((sum, r) => sum + r.reductionPercent, 0) / optimizedCount
231
+ : 0;
232
+ return {
233
+ totalOriginalSize,
234
+ totalOptimizedSize,
235
+ totalReduction,
236
+ averageReduction,
237
+ optimizedCount,
238
+ totalCount: results.length,
239
+ };
240
+ }
241
+ //# sourceMappingURL=image-optimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-optimizer.js","sourceRoot":"","sources":["../../src/utils/image-optimizer.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,5 @@ export * from './http-client.js';
8
8
  export * from './config-manager.js';
9
9
  export * from './validation.js';
10
10
  export * from './pricing-checker.js';
11
+ export * from './image-optimizer.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
@@ -8,4 +8,5 @@ export * from './http-client.js';
8
8
  export * from './config-manager.js';
9
9
  export * from './validation.js';
10
10
  export * from './pricing-checker.js';
11
+ export * from './image-optimizer.js';
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-orchestrator.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,SAAS,EAET,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,YAAY,CAAgB;gBAExB,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc;IAK9D;;OAEG;IACG,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDnD;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,MAAM,IAAI,IAAI;IAOd;;OAEG;IACH,IAAI,IAAI,IAAI;IAMZ;;OAEG;IACH,WAAW,IAAI,kBAAkB;IA+DjC;;OAEG;YACW,kBAAkB;IA0BhC;;OAEG;YACW,YAAY;IAsC1B;;OAEG;YACW,WAAW;IAiDzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAuCnB;;OAEG;YACW,UAAU;CAwCzB"}
1
+ {"version":3,"file":"workflow-orchestrator.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,SAAS,EAET,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,YAAY,CAAgB;gBAExB,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc;IAK9D;;OAEG;IACG,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDnD;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,MAAM,IAAI,IAAI;IAOd;;OAEG;IACH,IAAI,IAAI,IAAI;IAMZ;;OAEG;IACH,WAAW,IAAI,kBAAkB;IA+DjC;;OAEG;YACW,kBAAkB;IA0BhC;;OAEG;YACW,YAAY;IAsC1B;;OAEG;YACW,WAAW;IAiDzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAuCnB;;OAEG;YACW,UAAU;CA4EzB"}
@@ -3,7 +3,7 @@
3
3
  * Manages image generation workflows
4
4
  */
5
5
  import { providerFactory } from '../providers/index.js';
6
- import { logger } from '../utils/index.js';
6
+ import { logger, optimizeImage } from '../utils/index.js';
7
7
  import { v4 as uuidv4 } from 'uuid';
8
8
  export class WorkflowOrchestrator {
9
9
  stateManager;
@@ -305,6 +305,39 @@ export class WorkflowOrchestrator {
305
305
  const provider = providerFactory.getProvider(job.provider);
306
306
  // Generate image
307
307
  const result = await provider.generate(job.imageSpec);
308
+ // Optimize image for web use (works with all providers)
309
+ logger.debug('Optimizing generated image', {
310
+ imageId: job.imageSpec.id,
311
+ originalPath: result.filepath,
312
+ });
313
+ try {
314
+ const optimizationResult = await optimizeImage(result.filepath);
315
+ // Update result with optimized path and metadata
316
+ result.filepath = optimizationResult.optimizedPath;
317
+ result.metadata.fileSize = optimizationResult.optimizedSize;
318
+ result.metadata.format = optimizationResult.format;
319
+ result.metadata.optimization = {
320
+ optimized: optimizationResult.optimized,
321
+ originalPath: optimizationResult.originalPath,
322
+ originalSize: optimizationResult.originalSize,
323
+ reduction: optimizationResult.reductionPercent,
324
+ };
325
+ if (optimizationResult.optimized) {
326
+ logger.info('Image optimized successfully', {
327
+ imageId: job.imageSpec.id,
328
+ originalSize: `${(optimizationResult.originalSize / 1024).toFixed(1)} KB`,
329
+ optimizedSize: `${(optimizationResult.optimizedSize / 1024).toFixed(1)} KB`,
330
+ reduction: `${optimizationResult.reductionPercent.toFixed(1)}%`,
331
+ });
332
+ }
333
+ }
334
+ catch (optimizationError) {
335
+ logger.warn('Image optimization failed, using original', {
336
+ imageId: job.imageSpec.id,
337
+ error: optimizationError.message,
338
+ });
339
+ // Continue with original - no need to fail the job
340
+ }
308
341
  // Update job with result
309
342
  this.stateManager.updateJobStatus(job.id, 'completed', undefined, result);
310
343
  // Track completed image
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-orchestrator.js","sourceRoot":"","sources":["../../src/workflow/workflow-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-orchestrator.js","sourceRoot":"","sources":["../../src/workflow/workflow-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-tools.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,qBAAa,aAAa;IACxB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,aAAa,CAAuB;IAE5C;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,UAAU,CAAC;IA0EvB;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IA6DhE;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,CAAC;IAiFvB;;;;;;;OAOG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;KACzC,GAAG,OAAO,CAAC,UAAU,CAAC;IA2XvB;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,UAAU,CAAC;IA4CvB;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6EvB;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB1E;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBvB;;OAEG;IACG,6BAA6B,IAAI,OAAO,CAAC,UAAU,CAAC;IA2D1D;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAgC7E;;OAEG;IACH,OAAO,CAAC,YAAY;IA6BpB;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB5E;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,UAAU,CAAC;IAsBnD;;OAEG;IACG,6BAA6B,IAAI,OAAO,CAAC,UAAU,CAAC;IAsB1D;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;CAgC9C"}
1
+ {"version":3,"file":"workflow-tools.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,qBAAa,aAAa;IACxB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,aAAa,CAAuB;IAE5C;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,UAAU,CAAC;IA0EvB;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IA6DhE;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,CAAC;IAyFvB;;;;;;;OAOG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;KACzC,GAAG,OAAO,CAAC,UAAU,CAAC;IAmWvB;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,UAAU,CAAC;IA4CvB;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6EvB;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB1E;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBvB;;OAEG;IACG,6BAA6B,IAAI,OAAO,CAAC,UAAU,CAAC;IA2D1D;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAgC7E;;OAEG;IACH,OAAO,CAAC,YAAY;IA6BpB;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB5E;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,UAAU,CAAC;IAsBnD;;OAEG;IACG,6BAA6B,IAAI,OAAO,CAAC,UAAU,CAAC;IAsB1D;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;CAgC9C"}
@@ -165,6 +165,12 @@ export class WorkflowTools {
165
165
  allSpecs.push(...specs);
166
166
  }
167
167
  logger.info(`Parsed ${allSpecs.length} image specifications`);
168
+ // ✅ CRITICAL: Add specs to StateManager so they can be retrieved for generation
169
+ const stateManager = new StateManager();
170
+ await stateManager.initialize();
171
+ stateManager.addImages(allSpecs);
172
+ await stateManager.save();
173
+ logger.info(`Added ${allSpecs.length} image specs to StateManager`);
168
174
  // Update session with image tracking
169
175
  for (const spec of allSpecs) {
170
176
  await this.sessionManager.addImage(params.sessionId, {
@@ -415,28 +421,8 @@ export class WorkflowTools {
415
421
  // Replace allGeneratedImages with verifiedImages for rest of workflow
416
422
  allGeneratedImages.length = 0;
417
423
  allGeneratedImages.push(...verifiedImages);
418
- // Create backup before modifying markdown files
419
- // NOTE: Only backup markdown files, NOT generated images (they're new files)
420
- if (this.backupManager.isEnabled() && allGeneratedImages.length > 0) {
421
- logger.info('Creating backups before replacing placeholders in markdown files');
422
- const backupResult = await this.backupManager.createBackup(session.files, [] // Don't backup generated images - they're new files, not modifications
423
- );
424
- if (backupResult.success && backupResult.backupSet) {
425
- // Store backup in state
426
- stateManager.setCurrentBackup(backupResult.backupSet);
427
- await stateManager.save();
428
- logger.info(`Backup created: ${backupResult.filesBackedUp} files backed up`, {
429
- backupId: backupResult.backupSet.id,
430
- markdownFiles: backupResult.backupSet.markdownFiles.length,
431
- imageFiles: backupResult.backupSet.imageFiles.length,
432
- });
433
- }
434
- else {
435
- logger.warn('Backup creation failed, but continuing with workflow', {
436
- error: backupResult.error,
437
- });
438
- }
439
- }
424
+ // NOTE: No backup needed here - backup was already created when placeholders were added
425
+ // The original markdown files are already protected by the backup created in PlaceholderManager.addPlaceholders()
440
426
  // Auto-replace placeholders with generated images
441
427
  for (const generatedImg of allGeneratedImages) {
442
428
  const sessionImg = session.images.find((img) => img.imageId === generatedImg.imageId);