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.
- package/README.md +41 -17
- package/dist/api/geminiClient.d.ts +2 -12
- package/dist/api/geminiClient.d.ts.map +1 -1
- package/dist/api/geminiClient.js +28 -56
- package/dist/api/geminiClient.js.map +1 -1
- package/dist/api/geminiTextClient.d.ts +42 -0
- package/dist/api/geminiTextClient.d.ts.map +1 -0
- package/dist/api/geminiTextClient.js +198 -0
- package/dist/api/geminiTextClient.js.map +1 -0
- package/dist/business/__tests__/mocks/mcpSamplingClient.mock.d.ts +84 -0
- package/dist/business/__tests__/mocks/mcpSamplingClient.mock.d.ts.map +1 -0
- package/dist/business/__tests__/mocks/mcpSamplingClient.mock.js +100 -0
- package/dist/business/__tests__/mocks/mcpSamplingClient.mock.js.map +1 -0
- package/dist/business/bestPracticesEngine.d.ts +149 -0
- package/dist/business/bestPracticesEngine.d.ts.map +1 -0
- package/dist/business/bestPracticesEngine.js +781 -0
- package/dist/business/bestPracticesEngine.js.map +1 -0
- package/dist/business/complexityAssessment.d.ts +132 -0
- package/dist/business/complexityAssessment.d.ts.map +1 -0
- package/dist/business/complexityAssessment.js +488 -0
- package/dist/business/complexityAssessment.js.map +1 -0
- package/dist/business/fallbackStrategies.d.ts +177 -0
- package/dist/business/fallbackStrategies.d.ts.map +1 -0
- package/dist/business/fallbackStrategies.js +368 -0
- package/dist/business/fallbackStrategies.js.map +1 -0
- package/dist/business/imageGenerator.d.ts.map +1 -1
- package/dist/business/imageGenerator.js +26 -5
- package/dist/business/imageGenerator.js.map +1 -1
- package/dist/business/multiImage/aspectRatioController.d.ts +77 -0
- package/dist/business/multiImage/aspectRatioController.d.ts.map +1 -0
- package/dist/business/multiImage/aspectRatioController.js +580 -0
- package/dist/business/multiImage/aspectRatioController.js.map +1 -0
- package/dist/business/multiImage/multiImageCoordinator.d.ts +142 -0
- package/dist/business/multiImage/multiImageCoordinator.d.ts.map +1 -0
- package/dist/business/multiImage/multiImageCoordinator.js +801 -0
- package/dist/business/multiImage/multiImageCoordinator.js.map +1 -0
- package/dist/business/pomlTemplateEngine.d.ts +206 -0
- package/dist/business/pomlTemplateEngine.d.ts.map +1 -0
- package/dist/business/pomlTemplateEngine.js +737 -0
- package/dist/business/pomlTemplateEngine.js.map +1 -0
- package/dist/business/promptOrchestrator.d.ts +173 -0
- package/dist/business/promptOrchestrator.d.ts.map +1 -0
- package/dist/business/promptOrchestrator.js +490 -0
- package/dist/business/promptOrchestrator.js.map +1 -0
- package/dist/business/responseBuilder.d.ts +2 -2
- package/dist/business/responseBuilder.d.ts.map +1 -1
- package/dist/business/responseBuilder.js +6 -1
- package/dist/business/responseBuilder.js.map +1 -1
- package/dist/business/structuredPromptGenerator.d.ts +54 -0
- package/dist/business/structuredPromptGenerator.d.ts.map +1 -0
- package/dist/business/structuredPromptGenerator.js +208 -0
- package/dist/business/structuredPromptGenerator.js.map +1 -0
- package/dist/business/templateNormalizer.d.ts +81 -0
- package/dist/business/templateNormalizer.d.ts.map +1 -0
- package/dist/business/templateNormalizer.js +659 -0
- package/dist/business/templateNormalizer.js.map +1 -0
- package/dist/documentation/apiContractValidation.d.ts +62 -0
- package/dist/documentation/apiContractValidation.d.ts.map +1 -0
- package/dist/documentation/apiContractValidation.js +305 -0
- package/dist/documentation/apiContractValidation.js.map +1 -0
- package/dist/infrastructure/concurrency/concurrencyManager.d.ts +101 -0
- package/dist/infrastructure/concurrency/concurrencyManager.d.ts.map +1 -0
- package/dist/infrastructure/concurrency/concurrencyManager.js +345 -0
- package/dist/infrastructure/concurrency/concurrencyManager.js.map +1 -0
- package/dist/infrastructure/config/secureConfigManager.d.ts +319 -0
- package/dist/infrastructure/config/secureConfigManager.d.ts.map +1 -0
- package/dist/infrastructure/config/secureConfigManager.js +600 -0
- package/dist/infrastructure/config/secureConfigManager.js.map +1 -0
- package/dist/infrastructure/errorHandling/orchestrationErrorHandler.d.ts +229 -0
- package/dist/infrastructure/errorHandling/orchestrationErrorHandler.d.ts.map +1 -0
- package/dist/infrastructure/errorHandling/orchestrationErrorHandler.js +61 -0
- package/dist/infrastructure/errorHandling/orchestrationErrorHandler.js.map +1 -0
- package/dist/infrastructure/errorHandling/orchestrationErrorHandlerImpl.d.ts +133 -0
- package/dist/infrastructure/errorHandling/orchestrationErrorHandlerImpl.d.ts.map +1 -0
- package/dist/infrastructure/errorHandling/orchestrationErrorHandlerImpl.js +569 -0
- package/dist/infrastructure/errorHandling/orchestrationErrorHandlerImpl.js.map +1 -0
- package/dist/infrastructure/mcp/MCPSamplingClient.d.ts +19 -0
- package/dist/infrastructure/mcp/MCPSamplingClient.d.ts.map +1 -0
- package/dist/infrastructure/mcp/MCPSamplingClient.js +31 -0
- package/dist/infrastructure/mcp/MCPSamplingClient.js.map +1 -0
- package/dist/infrastructure/mcp/RealMCPSamplingClient.d.ts +59 -0
- package/dist/infrastructure/mcp/RealMCPSamplingClient.d.ts.map +1 -0
- package/dist/infrastructure/mcp/RealMCPSamplingClient.js +271 -0
- package/dist/infrastructure/mcp/RealMCPSamplingClient.js.map +1 -0
- package/dist/infrastructure/metadata/generationMetadata.d.ts +72 -0
- package/dist/infrastructure/metadata/generationMetadata.d.ts.map +1 -0
- package/dist/infrastructure/metadata/generationMetadata.js +228 -0
- package/dist/infrastructure/metadata/generationMetadata.js.map +1 -0
- package/dist/infrastructure/monitoring/OrchestrationMetrics.d.ts +106 -0
- package/dist/infrastructure/monitoring/OrchestrationMetrics.d.ts.map +1 -0
- package/dist/infrastructure/monitoring/OrchestrationMetrics.js +456 -0
- package/dist/infrastructure/monitoring/OrchestrationMetrics.js.map +1 -0
- package/dist/infrastructure/monitoring/alertingSystem.d.ts +135 -0
- package/dist/infrastructure/monitoring/alertingSystem.d.ts.map +1 -0
- package/dist/infrastructure/monitoring/alertingSystem.js +549 -0
- package/dist/infrastructure/monitoring/alertingSystem.js.map +1 -0
- package/dist/infrastructure/optimization/performanceOptimizer.d.ts +89 -0
- package/dist/infrastructure/optimization/performanceOptimizer.d.ts.map +1 -0
- package/dist/infrastructure/optimization/performanceOptimizer.js +375 -0
- package/dist/infrastructure/optimization/performanceOptimizer.js.map +1 -0
- package/dist/infrastructure/security/AdvancedContentFilter.d.ts +99 -0
- package/dist/infrastructure/security/AdvancedContentFilter.d.ts.map +1 -0
- package/dist/infrastructure/security/AdvancedContentFilter.js +363 -0
- package/dist/infrastructure/security/AdvancedContentFilter.js.map +1 -0
- package/dist/infrastructure/security/MCPSecurityValidator.d.ts +62 -0
- package/dist/infrastructure/security/MCPSecurityValidator.d.ts.map +1 -0
- package/dist/infrastructure/security/MCPSecurityValidator.js +129 -0
- package/dist/infrastructure/security/MCPSecurityValidator.js.map +1 -0
- package/dist/infrastructure/security/OrchestrationSecurityMiddleware.d.ts +304 -0
- package/dist/infrastructure/security/OrchestrationSecurityMiddleware.d.ts.map +1 -0
- package/dist/infrastructure/security/OrchestrationSecurityMiddleware.js +61 -0
- package/dist/infrastructure/security/OrchestrationSecurityMiddleware.js.map +1 -0
- package/dist/infrastructure/security/OrchestrationSecurityMiddlewareImpl.d.ts +62 -0
- package/dist/infrastructure/security/OrchestrationSecurityMiddlewareImpl.d.ts.map +1 -0
- package/dist/infrastructure/security/OrchestrationSecurityMiddlewareImpl.js +591 -0
- package/dist/infrastructure/security/OrchestrationSecurityMiddlewareImpl.js.map +1 -0
- package/dist/infrastructure/security/SecureMCPClient.d.ts +154 -0
- package/dist/infrastructure/security/SecureMCPClient.d.ts.map +1 -0
- package/dist/infrastructure/security/SecureMCPClient.js +292 -0
- package/dist/infrastructure/security/SecureMCPClient.js.map +1 -0
- package/dist/infrastructure/security/SecurityIncidentManager.d.ts +142 -0
- package/dist/infrastructure/security/SecurityIncidentManager.d.ts.map +1 -0
- package/dist/infrastructure/security/SecurityIncidentManager.js +260 -0
- package/dist/infrastructure/security/SecurityIncidentManager.js.map +1 -0
- package/dist/infrastructure/security/apiKeyManager.d.ts +297 -0
- package/dist/infrastructure/security/apiKeyManager.d.ts.map +1 -0
- package/dist/infrastructure/security/apiKeyManager.js +254 -0
- package/dist/infrastructure/security/apiKeyManager.js.map +1 -0
- package/dist/infrastructure/security/dataSanitizer.d.ts +157 -0
- package/dist/infrastructure/security/dataSanitizer.d.ts.map +1 -0
- package/dist/infrastructure/security/dataSanitizer.js +525 -0
- package/dist/infrastructure/security/dataSanitizer.js.map +1 -0
- package/dist/infrastructure/validation/inputValidator.d.ts +54 -0
- package/dist/infrastructure/validation/inputValidator.d.ts.map +1 -0
- package/dist/infrastructure/validation/inputValidator.js +362 -0
- package/dist/infrastructure/validation/inputValidator.js.map +1 -0
- package/dist/integration/parameterOptimizer.d.ts +69 -0
- package/dist/integration/parameterOptimizer.d.ts.map +1 -0
- package/dist/integration/parameterOptimizer.js +317 -0
- package/dist/integration/parameterOptimizer.js.map +1 -0
- package/dist/integration/twoStageProcessor.d.ts +66 -0
- package/dist/integration/twoStageProcessor.d.ts.map +1 -0
- package/dist/integration/twoStageProcessor.js +348 -0
- package/dist/integration/twoStageProcessor.js.map +1 -0
- package/dist/server/handlers/structuredPromptHandler.d.ts +65 -0
- package/dist/server/handlers/structuredPromptHandler.d.ts.map +1 -0
- package/dist/server/handlers/structuredPromptHandler.js +314 -0
- package/dist/server/handlers/structuredPromptHandler.js.map +1 -0
- package/dist/server/mcpServer.d.ts +16 -35
- package/dist/server/mcpServer.d.ts.map +1 -1
- package/dist/server/mcpServer.js +111 -150
- package/dist/server/mcpServer.js.map +1 -1
- package/dist/server/mcpServerWithOrchestration.d.ts +98 -0
- package/dist/server/mcpServerWithOrchestration.d.ts.map +1 -0
- package/dist/server/mcpServerWithOrchestration.js +284 -0
- package/dist/server/mcpServerWithOrchestration.js.map +1 -0
- package/dist/types/mcpOrchestrationTypes.d.ts +135 -0
- package/dist/types/mcpOrchestrationTypes.d.ts.map +1 -0
- package/dist/types/mcpOrchestrationTypes.js +28 -0
- package/dist/types/mcpOrchestrationTypes.js.map +1 -0
- package/dist/types/multiImageTypes.d.ts +328 -0
- package/dist/types/multiImageTypes.d.ts.map +1 -0
- package/dist/types/multiImageTypes.js +27 -0
- package/dist/types/multiImageTypes.js.map +1 -0
- package/dist/types/performanceTypes.d.ts +300 -0
- package/dist/types/performanceTypes.d.ts.map +1 -0
- package/dist/types/performanceTypes.js +50 -0
- package/dist/types/performanceTypes.js.map +1 -0
- package/dist/types/twoStageTypes.d.ts +123 -0
- package/dist/types/twoStageTypes.d.ts.map +1 -0
- package/dist/types/twoStageTypes.js +7 -0
- package/dist/types/twoStageTypes.js.map +1 -0
- package/dist/utils/config.d.ts +1 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +1 -0
- package/dist/utils/config.js.map +1 -1
- package/package.json +11 -4
- 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"}
|