mcp-image 0.1.0 → 0.2.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.
Files changed (178) hide show
  1. package/README.md +41 -17
  2. package/dist/api/geminiClient.d.ts +2 -12
  3. package/dist/api/geminiClient.d.ts.map +1 -1
  4. package/dist/api/geminiClient.js +28 -56
  5. package/dist/api/geminiClient.js.map +1 -1
  6. package/dist/api/geminiTextClient.d.ts +42 -0
  7. package/dist/api/geminiTextClient.d.ts.map +1 -0
  8. package/dist/api/geminiTextClient.js +198 -0
  9. package/dist/api/geminiTextClient.js.map +1 -0
  10. package/dist/business/__tests__/mocks/mcpSamplingClient.mock.d.ts +84 -0
  11. package/dist/business/__tests__/mocks/mcpSamplingClient.mock.d.ts.map +1 -0
  12. package/dist/business/__tests__/mocks/mcpSamplingClient.mock.js +100 -0
  13. package/dist/business/__tests__/mocks/mcpSamplingClient.mock.js.map +1 -0
  14. package/dist/business/bestPracticesEngine.d.ts +149 -0
  15. package/dist/business/bestPracticesEngine.d.ts.map +1 -0
  16. package/dist/business/bestPracticesEngine.js +781 -0
  17. package/dist/business/bestPracticesEngine.js.map +1 -0
  18. package/dist/business/complexityAssessment.d.ts +132 -0
  19. package/dist/business/complexityAssessment.d.ts.map +1 -0
  20. package/dist/business/complexityAssessment.js +488 -0
  21. package/dist/business/complexityAssessment.js.map +1 -0
  22. package/dist/business/fallbackStrategies.d.ts +177 -0
  23. package/dist/business/fallbackStrategies.d.ts.map +1 -0
  24. package/dist/business/fallbackStrategies.js +368 -0
  25. package/dist/business/fallbackStrategies.js.map +1 -0
  26. package/dist/business/imageGenerator.d.ts.map +1 -1
  27. package/dist/business/imageGenerator.js +26 -5
  28. package/dist/business/imageGenerator.js.map +1 -1
  29. package/dist/business/multiImage/aspectRatioController.d.ts +77 -0
  30. package/dist/business/multiImage/aspectRatioController.d.ts.map +1 -0
  31. package/dist/business/multiImage/aspectRatioController.js +580 -0
  32. package/dist/business/multiImage/aspectRatioController.js.map +1 -0
  33. package/dist/business/multiImage/multiImageCoordinator.d.ts +142 -0
  34. package/dist/business/multiImage/multiImageCoordinator.d.ts.map +1 -0
  35. package/dist/business/multiImage/multiImageCoordinator.js +801 -0
  36. package/dist/business/multiImage/multiImageCoordinator.js.map +1 -0
  37. package/dist/business/pomlTemplateEngine.d.ts +206 -0
  38. package/dist/business/pomlTemplateEngine.d.ts.map +1 -0
  39. package/dist/business/pomlTemplateEngine.js +737 -0
  40. package/dist/business/pomlTemplateEngine.js.map +1 -0
  41. package/dist/business/promptOrchestrator.d.ts +173 -0
  42. package/dist/business/promptOrchestrator.d.ts.map +1 -0
  43. package/dist/business/promptOrchestrator.js +490 -0
  44. package/dist/business/promptOrchestrator.js.map +1 -0
  45. package/dist/business/responseBuilder.d.ts +2 -2
  46. package/dist/business/responseBuilder.d.ts.map +1 -1
  47. package/dist/business/responseBuilder.js +6 -1
  48. package/dist/business/responseBuilder.js.map +1 -1
  49. package/dist/business/structuredPromptGenerator.d.ts +54 -0
  50. package/dist/business/structuredPromptGenerator.d.ts.map +1 -0
  51. package/dist/business/structuredPromptGenerator.js +208 -0
  52. package/dist/business/structuredPromptGenerator.js.map +1 -0
  53. package/dist/business/templateNormalizer.d.ts +81 -0
  54. package/dist/business/templateNormalizer.d.ts.map +1 -0
  55. package/dist/business/templateNormalizer.js +659 -0
  56. package/dist/business/templateNormalizer.js.map +1 -0
  57. package/dist/documentation/apiContractValidation.d.ts +62 -0
  58. package/dist/documentation/apiContractValidation.d.ts.map +1 -0
  59. package/dist/documentation/apiContractValidation.js +305 -0
  60. package/dist/documentation/apiContractValidation.js.map +1 -0
  61. package/dist/infrastructure/concurrency/concurrencyManager.d.ts +101 -0
  62. package/dist/infrastructure/concurrency/concurrencyManager.d.ts.map +1 -0
  63. package/dist/infrastructure/concurrency/concurrencyManager.js +345 -0
  64. package/dist/infrastructure/concurrency/concurrencyManager.js.map +1 -0
  65. package/dist/infrastructure/config/secureConfigManager.d.ts +319 -0
  66. package/dist/infrastructure/config/secureConfigManager.d.ts.map +1 -0
  67. package/dist/infrastructure/config/secureConfigManager.js +600 -0
  68. package/dist/infrastructure/config/secureConfigManager.js.map +1 -0
  69. package/dist/infrastructure/errorHandling/orchestrationErrorHandler.d.ts +229 -0
  70. package/dist/infrastructure/errorHandling/orchestrationErrorHandler.d.ts.map +1 -0
  71. package/dist/infrastructure/errorHandling/orchestrationErrorHandler.js +61 -0
  72. package/dist/infrastructure/errorHandling/orchestrationErrorHandler.js.map +1 -0
  73. package/dist/infrastructure/errorHandling/orchestrationErrorHandlerImpl.d.ts +133 -0
  74. package/dist/infrastructure/errorHandling/orchestrationErrorHandlerImpl.d.ts.map +1 -0
  75. package/dist/infrastructure/errorHandling/orchestrationErrorHandlerImpl.js +569 -0
  76. package/dist/infrastructure/errorHandling/orchestrationErrorHandlerImpl.js.map +1 -0
  77. package/dist/infrastructure/mcp/MCPSamplingClient.d.ts +19 -0
  78. package/dist/infrastructure/mcp/MCPSamplingClient.d.ts.map +1 -0
  79. package/dist/infrastructure/mcp/MCPSamplingClient.js +31 -0
  80. package/dist/infrastructure/mcp/MCPSamplingClient.js.map +1 -0
  81. package/dist/infrastructure/mcp/RealMCPSamplingClient.d.ts +59 -0
  82. package/dist/infrastructure/mcp/RealMCPSamplingClient.d.ts.map +1 -0
  83. package/dist/infrastructure/mcp/RealMCPSamplingClient.js +271 -0
  84. package/dist/infrastructure/mcp/RealMCPSamplingClient.js.map +1 -0
  85. package/dist/infrastructure/metadata/generationMetadata.d.ts +72 -0
  86. package/dist/infrastructure/metadata/generationMetadata.d.ts.map +1 -0
  87. package/dist/infrastructure/metadata/generationMetadata.js +228 -0
  88. package/dist/infrastructure/metadata/generationMetadata.js.map +1 -0
  89. package/dist/infrastructure/monitoring/OrchestrationMetrics.d.ts +106 -0
  90. package/dist/infrastructure/monitoring/OrchestrationMetrics.d.ts.map +1 -0
  91. package/dist/infrastructure/monitoring/OrchestrationMetrics.js +456 -0
  92. package/dist/infrastructure/monitoring/OrchestrationMetrics.js.map +1 -0
  93. package/dist/infrastructure/monitoring/alertingSystem.d.ts +135 -0
  94. package/dist/infrastructure/monitoring/alertingSystem.d.ts.map +1 -0
  95. package/dist/infrastructure/monitoring/alertingSystem.js +549 -0
  96. package/dist/infrastructure/monitoring/alertingSystem.js.map +1 -0
  97. package/dist/infrastructure/optimization/performanceOptimizer.d.ts +89 -0
  98. package/dist/infrastructure/optimization/performanceOptimizer.d.ts.map +1 -0
  99. package/dist/infrastructure/optimization/performanceOptimizer.js +375 -0
  100. package/dist/infrastructure/optimization/performanceOptimizer.js.map +1 -0
  101. package/dist/infrastructure/security/AdvancedContentFilter.d.ts +99 -0
  102. package/dist/infrastructure/security/AdvancedContentFilter.d.ts.map +1 -0
  103. package/dist/infrastructure/security/AdvancedContentFilter.js +363 -0
  104. package/dist/infrastructure/security/AdvancedContentFilter.js.map +1 -0
  105. package/dist/infrastructure/security/MCPSecurityValidator.d.ts +62 -0
  106. package/dist/infrastructure/security/MCPSecurityValidator.d.ts.map +1 -0
  107. package/dist/infrastructure/security/MCPSecurityValidator.js +129 -0
  108. package/dist/infrastructure/security/MCPSecurityValidator.js.map +1 -0
  109. package/dist/infrastructure/security/OrchestrationSecurityMiddleware.d.ts +304 -0
  110. package/dist/infrastructure/security/OrchestrationSecurityMiddleware.d.ts.map +1 -0
  111. package/dist/infrastructure/security/OrchestrationSecurityMiddleware.js +61 -0
  112. package/dist/infrastructure/security/OrchestrationSecurityMiddleware.js.map +1 -0
  113. package/dist/infrastructure/security/OrchestrationSecurityMiddlewareImpl.d.ts +62 -0
  114. package/dist/infrastructure/security/OrchestrationSecurityMiddlewareImpl.d.ts.map +1 -0
  115. package/dist/infrastructure/security/OrchestrationSecurityMiddlewareImpl.js +591 -0
  116. package/dist/infrastructure/security/OrchestrationSecurityMiddlewareImpl.js.map +1 -0
  117. package/dist/infrastructure/security/SecureMCPClient.d.ts +154 -0
  118. package/dist/infrastructure/security/SecureMCPClient.d.ts.map +1 -0
  119. package/dist/infrastructure/security/SecureMCPClient.js +292 -0
  120. package/dist/infrastructure/security/SecureMCPClient.js.map +1 -0
  121. package/dist/infrastructure/security/SecurityIncidentManager.d.ts +142 -0
  122. package/dist/infrastructure/security/SecurityIncidentManager.d.ts.map +1 -0
  123. package/dist/infrastructure/security/SecurityIncidentManager.js +260 -0
  124. package/dist/infrastructure/security/SecurityIncidentManager.js.map +1 -0
  125. package/dist/infrastructure/security/apiKeyManager.d.ts +297 -0
  126. package/dist/infrastructure/security/apiKeyManager.d.ts.map +1 -0
  127. package/dist/infrastructure/security/apiKeyManager.js +254 -0
  128. package/dist/infrastructure/security/apiKeyManager.js.map +1 -0
  129. package/dist/infrastructure/security/dataSanitizer.d.ts +157 -0
  130. package/dist/infrastructure/security/dataSanitizer.d.ts.map +1 -0
  131. package/dist/infrastructure/security/dataSanitizer.js +525 -0
  132. package/dist/infrastructure/security/dataSanitizer.js.map +1 -0
  133. package/dist/infrastructure/validation/inputValidator.d.ts +54 -0
  134. package/dist/infrastructure/validation/inputValidator.d.ts.map +1 -0
  135. package/dist/infrastructure/validation/inputValidator.js +362 -0
  136. package/dist/infrastructure/validation/inputValidator.js.map +1 -0
  137. package/dist/integration/parameterOptimizer.d.ts +69 -0
  138. package/dist/integration/parameterOptimizer.d.ts.map +1 -0
  139. package/dist/integration/parameterOptimizer.js +317 -0
  140. package/dist/integration/parameterOptimizer.js.map +1 -0
  141. package/dist/integration/twoStageProcessor.d.ts +66 -0
  142. package/dist/integration/twoStageProcessor.d.ts.map +1 -0
  143. package/dist/integration/twoStageProcessor.js +348 -0
  144. package/dist/integration/twoStageProcessor.js.map +1 -0
  145. package/dist/server/handlers/structuredPromptHandler.d.ts +65 -0
  146. package/dist/server/handlers/structuredPromptHandler.d.ts.map +1 -0
  147. package/dist/server/handlers/structuredPromptHandler.js +314 -0
  148. package/dist/server/handlers/structuredPromptHandler.js.map +1 -0
  149. package/dist/server/mcpServer.d.ts +16 -35
  150. package/dist/server/mcpServer.d.ts.map +1 -1
  151. package/dist/server/mcpServer.js +111 -150
  152. package/dist/server/mcpServer.js.map +1 -1
  153. package/dist/server/mcpServerWithOrchestration.d.ts +98 -0
  154. package/dist/server/mcpServerWithOrchestration.d.ts.map +1 -0
  155. package/dist/server/mcpServerWithOrchestration.js +284 -0
  156. package/dist/server/mcpServerWithOrchestration.js.map +1 -0
  157. package/dist/types/mcpOrchestrationTypes.d.ts +135 -0
  158. package/dist/types/mcpOrchestrationTypes.d.ts.map +1 -0
  159. package/dist/types/mcpOrchestrationTypes.js +28 -0
  160. package/dist/types/mcpOrchestrationTypes.js.map +1 -0
  161. package/dist/types/multiImageTypes.d.ts +328 -0
  162. package/dist/types/multiImageTypes.d.ts.map +1 -0
  163. package/dist/types/multiImageTypes.js +27 -0
  164. package/dist/types/multiImageTypes.js.map +1 -0
  165. package/dist/types/performanceTypes.d.ts +300 -0
  166. package/dist/types/performanceTypes.d.ts.map +1 -0
  167. package/dist/types/performanceTypes.js +50 -0
  168. package/dist/types/performanceTypes.js.map +1 -0
  169. package/dist/types/twoStageTypes.d.ts +123 -0
  170. package/dist/types/twoStageTypes.d.ts.map +1 -0
  171. package/dist/types/twoStageTypes.js +7 -0
  172. package/dist/types/twoStageTypes.js.map +1 -0
  173. package/dist/utils/config.d.ts +1 -0
  174. package/dist/utils/config.d.ts.map +1 -1
  175. package/dist/utils/config.js +1 -0
  176. package/dist/utils/config.js.map +1 -1
  177. package/package.json +11 -4
  178. package/vitest.config.mjs +0 -47
@@ -0,0 +1,348 @@
1
+ "use strict";
2
+ /**
3
+ * TwoStageProcessor - Main integration point for 2-stage processing
4
+ * Coordinates structured prompt generation with image generation
5
+ * Implements complete workflow with performance tracking and fallback strategies
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TwoStageProcessorFactory = exports.TwoStageProcessorImpl = void 0;
9
+ const generationMetadata_1 = require("../infrastructure/metadata/generationMetadata");
10
+ const result_1 = require("../types/result");
11
+ const errors_1 = require("../utils/errors");
12
+ const parameterOptimizer_1 = require("./parameterOptimizer");
13
+ /**
14
+ * Default configuration for TwoStageProcessor
15
+ */
16
+ const DEFAULT_OPTIONS = {
17
+ maxProcessingTime: 20000, // 20 seconds
18
+ enableParameterOptimization: true,
19
+ enableMetadataCollection: true,
20
+ fallbackStrategy: 'primary',
21
+ performanceTarget: 20000,
22
+ };
23
+ /**
24
+ * Implementation of TwoStageProcessor with complete workflow coordination
25
+ */
26
+ class TwoStageProcessorImpl {
27
+ constructor(orchestrator, imageClient, options = DEFAULT_OPTIONS) {
28
+ this.orchestrator = orchestrator;
29
+ this.imageClient = imageClient;
30
+ this.options = options;
31
+ this.metadataManager = new generationMetadata_1.GenerationMetadataManager();
32
+ this.parameterOptimizer = new parameterOptimizer_1.ParameterOptimizerImpl();
33
+ }
34
+ /**
35
+ * Generate image using complete 2-stage workflow
36
+ */
37
+ async generateImageWithStructuredPrompt(request) {
38
+ const sessionId = this.metadataManager.createSession(request.originalPrompt);
39
+ // Set up timeout for the entire operation
40
+ const timeoutPromise = new Promise((_, reject) => {
41
+ setTimeout(() => {
42
+ reject(new errors_1.GeminiAPIError('2-stage processing timeout', `Exceeded ${this.options.maxProcessingTime}ms limit`));
43
+ }, this.options.maxProcessingTime);
44
+ });
45
+ try {
46
+ // Validate configuration before processing
47
+ const configValidation = await this.validateConfiguration();
48
+ if (!configValidation.success) {
49
+ return (0, result_1.Err)(new errors_1.GeminiAPIError('Configuration validation failed', 'Check processor setup'));
50
+ }
51
+ // Race the processing against timeout
52
+ const processingResult = await Promise.race([
53
+ this.executeProcessingWorkflow(request, sessionId),
54
+ timeoutPromise,
55
+ ]);
56
+ return processingResult;
57
+ }
58
+ catch (error) {
59
+ const apiError = error instanceof errors_1.GeminiAPIError
60
+ ? error
61
+ : new errors_1.GeminiAPIError(`2-stage processing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
62
+ return await this.handleFallbackScenario(sessionId, request, apiError);
63
+ }
64
+ }
65
+ /**
66
+ * Execute the main processing workflow
67
+ */
68
+ async executeProcessingWorkflow(request, sessionId) {
69
+ const startTime = Date.now();
70
+ // Stage 1: Generate structured prompt
71
+ const stage1Result = await this.executePromptGenerationStage(sessionId, request);
72
+ if (!stage1Result.success) {
73
+ // Try fallback with original prompt - don't throw here, return the error result
74
+ throw stage1Result.error;
75
+ }
76
+ const orchestrationResult = stage1Result.data;
77
+ const structuredPrompt = orchestrationResult.structuredPrompt;
78
+ // Stage 2: Optimize parameters based on structured prompt
79
+ let optimizedParams;
80
+ if (this.options.enableParameterOptimization) {
81
+ const paramResult = await this.optimizeImageParameters(structuredPrompt, request.imageParameters || {});
82
+ if (!paramResult.success) {
83
+ // Continue with original parameters if optimization fails
84
+ optimizedParams = request.imageParameters || {};
85
+ this.metadataManager.recordOptimization(sessionId, 'parameter optimization failed - using original');
86
+ }
87
+ else {
88
+ optimizedParams = paramResult.data;
89
+ // Record all optimization reasons
90
+ if (optimizedParams.optimizationReasons) {
91
+ for (const reason of optimizedParams.optimizationReasons) {
92
+ this.metadataManager.recordOptimization(sessionId, reason);
93
+ }
94
+ }
95
+ }
96
+ }
97
+ else {
98
+ optimizedParams = request.imageParameters || {};
99
+ }
100
+ // Stage 3: Generate image with structured prompt
101
+ const stage2Result = await this.executeImageGenerationStage(sessionId, structuredPrompt, optimizedParams);
102
+ if (!stage2Result.success) {
103
+ throw stage2Result.error;
104
+ }
105
+ // Compile final result
106
+ const processingMetadata = this.metadataManager.completeSession(sessionId);
107
+ if (!processingMetadata) {
108
+ throw new errors_1.GeminiAPIError('Failed to retrieve processing metadata');
109
+ }
110
+ const endTime = Date.now();
111
+ const totalTime = endTime - startTime;
112
+ // Performance monitoring
113
+ if (totalTime > this.options.performanceTarget) {
114
+ console.warn(`2-stage processing exceeded target: ${totalTime}ms > ${this.options.performanceTarget}ms`);
115
+ this.metadataManager.recordOptimization(sessionId, `performance target exceeded: ${totalTime}ms`);
116
+ }
117
+ const result = {
118
+ originalPrompt: request.originalPrompt,
119
+ structuredPrompt,
120
+ generatedImage: stage2Result.data,
121
+ processingMetadata: {
122
+ ...processingMetadata,
123
+ totalProcessingTime: totalTime,
124
+ },
125
+ optimizedParameters: optimizedParams,
126
+ orchestrationResult,
127
+ success: true,
128
+ };
129
+ return (0, result_1.Ok)(result);
130
+ }
131
+ /**
132
+ * Optimize image parameters based on structured prompt
133
+ */
134
+ async optimizeImageParameters(structuredPrompt, baseParams) {
135
+ try {
136
+ return await this.parameterOptimizer.optimizeForStructuredPrompt(structuredPrompt, baseParams);
137
+ }
138
+ catch (error) {
139
+ return (0, result_1.Err)(new errors_1.GeminiAPIError(`Parameter optimization failed: ${error instanceof Error ? error.message : 'Unknown error'}`, 'Using original parameters as fallback'));
140
+ }
141
+ }
142
+ /**
143
+ * Get processing metadata for a session
144
+ */
145
+ getProcessingMetadata(sessionId) {
146
+ return this.metadataManager.getSession(sessionId);
147
+ }
148
+ /**
149
+ * Validate processor configuration
150
+ */
151
+ async validateConfiguration() {
152
+ try {
153
+ // Validate orchestrator
154
+ const orchestratorValidation = await this.orchestrator.validateConfiguration();
155
+ if (!orchestratorValidation.success) {
156
+ return (0, result_1.Err)(new errors_1.GeminiAPIError('Orchestrator configuration invalid', 'Check orchestrator setup'));
157
+ }
158
+ // Validate required components exist
159
+ if (!this.orchestrator || !this.imageClient) {
160
+ return (0, result_1.Err)(new errors_1.GeminiAPIError('Required components not available', 'Initialize all dependencies'));
161
+ }
162
+ // Validate options
163
+ if (this.options.maxProcessingTime <= 0 || this.options.performanceTarget <= 0) {
164
+ return (0, result_1.Err)(new errors_1.GeminiAPIError('Invalid timing configuration', 'Set positive timeout values'));
165
+ }
166
+ return (0, result_1.Ok)(true);
167
+ }
168
+ catch (error) {
169
+ return (0, result_1.Err)(new errors_1.GeminiAPIError(`Configuration validation failed: ${error instanceof Error ? error.message : 'Unknown error'}`));
170
+ }
171
+ }
172
+ /**
173
+ * Execute Stage 1: Structured Prompt Generation
174
+ */
175
+ async executePromptGenerationStage(sessionId, request) {
176
+ const stageName = 'Structured Prompt Generation';
177
+ this.metadataManager.recordStage(sessionId, {
178
+ stageName,
179
+ status: 'processing',
180
+ inputData: { originalPrompt: request.originalPrompt, options: request.orchestrationOptions },
181
+ });
182
+ try {
183
+ const orchestrationOptions = {
184
+ enablePOML: request.orchestrationOptions?.enablePOML ?? true,
185
+ bestPracticesMode: request.orchestrationOptions?.bestPracticesMode ?? 'complete',
186
+ maxProcessingTime: request.orchestrationOptions?.maxProcessingTime ?? 15000, // 15 seconds for prompt generation
187
+ ...request.orchestrationOptions,
188
+ };
189
+ const result = await this.orchestrator.generateStructuredPrompt(request.originalPrompt, orchestrationOptions);
190
+ if (result.success) {
191
+ this.metadataManager.completeStage(sessionId, stageName, result.data);
192
+ return (0, result_1.Ok)(result.data);
193
+ }
194
+ this.metadataManager.failStage(sessionId, stageName, result.error);
195
+ return (0, result_1.Err)(result.error);
196
+ }
197
+ catch (error) {
198
+ const apiError = error instanceof errors_1.GeminiAPIError
199
+ ? error
200
+ : new errors_1.GeminiAPIError(`Prompt generation stage failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
201
+ this.metadataManager.failStage(sessionId, stageName, apiError);
202
+ return (0, result_1.Err)(apiError);
203
+ }
204
+ }
205
+ /**
206
+ * Execute Stage 2: Image Generation
207
+ */
208
+ async executeImageGenerationStage(sessionId, structuredPrompt, optimizedParams) {
209
+ const stageName = 'Image Generation';
210
+ this.metadataManager.recordStage(sessionId, {
211
+ stageName,
212
+ status: 'processing',
213
+ inputData: { structuredPrompt, optimizedParams },
214
+ });
215
+ try {
216
+ const imageParams = {
217
+ prompt: structuredPrompt,
218
+ ...(optimizedParams.inputImage && {
219
+ inputImage: optimizedParams.inputImage.toString('base64'),
220
+ }),
221
+ ...(optimizedParams.blendImages && { blendImages: optimizedParams.blendImages }),
222
+ ...(optimizedParams.maintainCharacterConsistency && {
223
+ maintainCharacterConsistency: optimizedParams.maintainCharacterConsistency,
224
+ }),
225
+ ...(optimizedParams.useWorldKnowledge && {
226
+ useWorldKnowledge: optimizedParams.useWorldKnowledge,
227
+ }),
228
+ };
229
+ const result = await this.imageClient.generateImage(imageParams);
230
+ if (result.success) {
231
+ this.metadataManager.completeStage(sessionId, stageName, result.data);
232
+ return (0, result_1.Ok)(result.data);
233
+ }
234
+ this.metadataManager.failStage(sessionId, stageName, result.error);
235
+ return (0, result_1.Err)(result.error);
236
+ }
237
+ catch (error) {
238
+ const apiError = error instanceof errors_1.NetworkError
239
+ ? error
240
+ : error instanceof errors_1.GeminiAPIError
241
+ ? error
242
+ : new errors_1.GeminiAPIError(`Image generation stage failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
243
+ this.metadataManager.failStage(sessionId, stageName, apiError);
244
+ return (0, result_1.Err)(apiError);
245
+ }
246
+ }
247
+ /**
248
+ * Handle fallback scenario when primary processing fails
249
+ */
250
+ async handleFallbackScenario(sessionId, request, error) {
251
+ this.metadataManager.recordFallback(sessionId);
252
+ const fallbackStageName = 'Fallback Image Generation';
253
+ this.metadataManager.recordStage(sessionId, {
254
+ stageName: fallbackStageName,
255
+ status: 'processing',
256
+ inputData: { originalPrompt: request.originalPrompt, fallbackReason: error.message },
257
+ });
258
+ try {
259
+ // Generate image with original prompt
260
+ const imageParams = {
261
+ prompt: request.originalPrompt,
262
+ ...(request.imageParameters?.inputImage && {
263
+ inputImage: request.imageParameters.inputImage.toString('base64'),
264
+ }),
265
+ ...(request.imageParameters?.blendImages && {
266
+ blendImages: request.imageParameters.blendImages,
267
+ }),
268
+ ...(request.imageParameters?.maintainCharacterConsistency && {
269
+ maintainCharacterConsistency: request.imageParameters.maintainCharacterConsistency,
270
+ }),
271
+ ...(request.imageParameters?.useWorldKnowledge && {
272
+ useWorldKnowledge: request.imageParameters.useWorldKnowledge,
273
+ }),
274
+ };
275
+ const fallbackResult = await this.imageClient.generateImage(imageParams);
276
+ if (!fallbackResult.success) {
277
+ this.metadataManager.failStage(sessionId, fallbackStageName, fallbackResult.error);
278
+ return (0, result_1.Err)(fallbackResult.error);
279
+ }
280
+ this.metadataManager.completeStage(sessionId, fallbackStageName, fallbackResult.data);
281
+ // Create mock orchestration result for fallback
282
+ const fallbackOrchestrationResult = {
283
+ originalPrompt: request.originalPrompt,
284
+ structuredPrompt: request.originalPrompt, // No enhancement in fallback
285
+ processingStages: [],
286
+ appliedStrategies: [
287
+ {
288
+ strategy: 'Fallback',
289
+ applied: true,
290
+ reason: 'Primary processing failed',
291
+ processingTime: 0,
292
+ },
293
+ ],
294
+ metrics: {
295
+ totalProcessingTime: 0,
296
+ stageCount: 0,
297
+ successRate: 0,
298
+ failureCount: 1,
299
+ fallbacksUsed: 1,
300
+ timestamp: new Date(),
301
+ },
302
+ };
303
+ const processingMetadata = this.metadataManager.completeSession(sessionId);
304
+ if (!processingMetadata) {
305
+ return (0, result_1.Err)(new errors_1.GeminiAPIError('Failed to retrieve fallback processing metadata'));
306
+ }
307
+ const fallbackResult_final = {
308
+ originalPrompt: request.originalPrompt,
309
+ structuredPrompt: request.originalPrompt,
310
+ generatedImage: fallbackResult.data,
311
+ processingMetadata,
312
+ optimizedParameters: request.imageParameters || {},
313
+ orchestrationResult: fallbackOrchestrationResult,
314
+ success: true, // Fallback succeeded
315
+ };
316
+ return (0, result_1.Ok)(fallbackResult_final);
317
+ }
318
+ catch (fallbackError) {
319
+ const apiError = fallbackError instanceof errors_1.GeminiAPIError || fallbackError instanceof errors_1.NetworkError
320
+ ? fallbackError
321
+ : new errors_1.GeminiAPIError(`Fallback processing failed: ${fallbackError instanceof Error ? fallbackError.message : 'Unknown error'}`);
322
+ this.metadataManager.failStage(sessionId, fallbackStageName, apiError);
323
+ return (0, result_1.Err)(apiError);
324
+ }
325
+ }
326
+ }
327
+ exports.TwoStageProcessorImpl = TwoStageProcessorImpl;
328
+ /**
329
+ * Factory for creating TwoStageProcessor instances with dependency injection
330
+ */
331
+ class TwoStageProcessorFactory {
332
+ constructor(orchestrator, imageClient) {
333
+ this.orchestrator = orchestrator;
334
+ this.imageClient = imageClient;
335
+ }
336
+ /**
337
+ * Create a new TwoStageProcessor instance
338
+ */
339
+ create(options) {
340
+ const finalOptions = {
341
+ ...DEFAULT_OPTIONS,
342
+ ...options,
343
+ };
344
+ return new TwoStageProcessorImpl(this.orchestrator, this.imageClient, finalOptions);
345
+ }
346
+ }
347
+ exports.TwoStageProcessorFactory = TwoStageProcessorFactory;
348
+ //# sourceMappingURL=twoStageProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoStageProcessor.js","sourceRoot":"","sources":["../../src/integration/twoStageProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Structured Prompt Handler for MCP server
3
+ * Handles orchestration integration with progress notifications and fallback mechanisms
4
+ */
5
+ import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
+ import type { OrchestrationOptions, OrchestrationResult, StructuredPromptOrchestrator } from '../../business/promptOrchestrator';
7
+ import type { MCPOrchestrationConfig, OrchestrationStatus } from '../../types/mcpOrchestrationTypes';
8
+ import type { Result } from '../../types/result';
9
+ import { GeminiAPIError } from '../../utils/errors';
10
+ import { Logger } from '../../utils/logger';
11
+ /**
12
+ * Dependencies for StructuredPromptHandler
13
+ */
14
+ export interface StructuredPromptHandlerDependencies {
15
+ orchestrator: StructuredPromptOrchestrator;
16
+ logger?: Logger;
17
+ }
18
+ /**
19
+ * Structured Prompt Handler implementation
20
+ * Manages orchestration requests with progress notifications and error handling
21
+ */
22
+ export declare class StructuredPromptHandler {
23
+ private orchestrator;
24
+ private config;
25
+ private status;
26
+ private logger;
27
+ constructor(orchestrator: StructuredPromptOrchestrator, initialConfig?: Partial<MCPOrchestrationConfig>, dependencies?: Pick<StructuredPromptHandlerDependencies, 'logger'>);
28
+ /**
29
+ * Process structured prompt request with orchestration
30
+ */
31
+ processStructuredPrompt(prompt: string, options?: OrchestrationOptions, server?: Server, progressToken?: string | number): Promise<Result<OrchestrationResult, GeminiAPIError>>;
32
+ /**
33
+ * Handle orchestration failure with configured fallback behavior
34
+ */
35
+ private handleOrchestrationFailure;
36
+ /**
37
+ * Send progress notification to MCP client
38
+ */
39
+ private sendProgressNotification;
40
+ /**
41
+ * Merge options with current mode configuration
42
+ */
43
+ private mergeWithModeOptions;
44
+ /**
45
+ * Update configuration
46
+ */
47
+ updateConfig(newConfig: Partial<MCPOrchestrationConfig>): void;
48
+ /**
49
+ * Get current orchestration status
50
+ */
51
+ getOrchestrationStatus(): OrchestrationStatus;
52
+ /**
53
+ * Reset statistics
54
+ */
55
+ resetStatistics(): void;
56
+ /**
57
+ * Initialize orchestration status
58
+ */
59
+ private initializeStatus;
60
+ /**
61
+ * Update average processing time with new measurement
62
+ */
63
+ private updateAverageProcessingTime;
64
+ }
65
+ //# sourceMappingURL=structuredPromptHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredPromptHandler.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/structuredPromptHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AACvE,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EACV,sBAAsB,EAGtB,mBAAmB,EACpB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAClD,YAAY,EAAE,4BAA4B,CAAA;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,qBAAa,uBAAuB;IAMhC,OAAO,CAAC,YAAY;IALtB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAQ;gBAGZ,YAAY,EAAE,4BAA4B,EAClD,aAAa,GAAE,OAAO,CAAC,sBAAsB,CAAM,EACnD,YAAY,GAAE,IAAI,CAAC,mCAAmC,EAAE,QAAQ,CAAM;IAOxE;;OAEG;IACG,uBAAuB,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,EAClC,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAC9B,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAgIvD;;OAEG;YACW,0BAA0B;IAuFxC;;OAEG;YACW,wBAAwB;IAuBtC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAK9D;;OAEG;IACH,sBAAsB,IAAI,mBAAmB;IAI7C;;OAEG;IACH,eAAe,IAAI,IAAI;IAYvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAYpC"}