mcp-image 0.10.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +86 -7
  2. package/dist/api/errorClassification.d.ts +12 -0
  3. package/dist/api/errorClassification.d.ts.map +1 -0
  4. package/dist/api/errorClassification.js +20 -0
  5. package/dist/api/errorClassification.js.map +1 -0
  6. package/dist/api/geminiClient.d.ts +5 -30
  7. package/dist/api/geminiClient.d.ts.map +1 -1
  8. package/dist/api/geminiClient.js +21 -21
  9. package/dist/api/geminiClient.js.map +1 -1
  10. package/dist/api/geminiTextClient.d.ts +3 -28
  11. package/dist/api/geminiTextClient.d.ts.map +1 -1
  12. package/dist/api/geminiTextClient.js +18 -18
  13. package/dist/api/geminiTextClient.js.map +1 -1
  14. package/dist/api/imageClient.d.ts +43 -0
  15. package/dist/api/imageClient.d.ts.map +1 -0
  16. package/dist/api/imageClient.js +2 -0
  17. package/dist/api/imageClient.js.map +1 -0
  18. package/dist/api/openaiImageClient.d.ts +12 -0
  19. package/dist/api/openaiImageClient.d.ts.map +1 -0
  20. package/dist/api/openaiImageClient.js +195 -0
  21. package/dist/api/openaiImageClient.js.map +1 -0
  22. package/dist/api/openaiTextClient.d.ts +12 -0
  23. package/dist/api/openaiTextClient.d.ts.map +1 -0
  24. package/dist/api/openaiTextClient.js +131 -0
  25. package/dist/api/openaiTextClient.js.map +1 -0
  26. package/dist/api/textClient.d.ts +23 -0
  27. package/dist/api/textClient.d.ts.map +1 -0
  28. package/dist/api/textClient.js +2 -0
  29. package/dist/api/textClient.js.map +1 -0
  30. package/dist/business/responseBuilder.d.ts +1 -1
  31. package/dist/business/responseBuilder.d.ts.map +1 -1
  32. package/dist/business/responseBuilder.js +34 -2
  33. package/dist/business/responseBuilder.js.map +1 -1
  34. package/dist/business/structuredPromptGenerator.d.ts +4 -4
  35. package/dist/business/structuredPromptGenerator.d.ts.map +1 -1
  36. package/dist/business/structuredPromptGenerator.js +5 -5
  37. package/dist/business/structuredPromptGenerator.js.map +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/server/errorHandler.d.ts.map +1 -1
  41. package/dist/server/errorHandler.js +20 -12
  42. package/dist/server/errorHandler.js.map +1 -1
  43. package/dist/server/mcpServer.d.ts +3 -3
  44. package/dist/server/mcpServer.d.ts.map +1 -1
  45. package/dist/server/mcpServer.js +31 -20
  46. package/dist/server/mcpServer.js.map +1 -1
  47. package/dist/types/mcp.d.ts +11 -0
  48. package/dist/types/mcp.d.ts.map +1 -1
  49. package/dist/types/mcp.js +4 -0
  50. package/dist/types/mcp.js.map +1 -1
  51. package/dist/utils/config.d.ts +3 -1
  52. package/dist/utils/config.d.ts.map +1 -1
  53. package/dist/utils/config.js +31 -8
  54. package/dist/utils/config.js.map +1 -1
  55. package/dist/utils/errors.d.ts +15 -12
  56. package/dist/utils/errors.d.ts.map +1 -1
  57. package/dist/utils/errors.js +55 -10
  58. package/dist/utils/errors.js.map +1 -1
  59. package/dist/utils/logger.d.ts +7 -5
  60. package/dist/utils/logger.d.ts.map +1 -1
  61. package/dist/utils/logger.js +42 -39
  62. package/dist/utils/logger.js.map +1 -1
  63. package/package.json +14 -11
@@ -0,0 +1,195 @@
1
+ /**
2
+ * OpenAI API client for GPT Image generation and editing.
3
+ */
4
+ import OpenAI, { toFile } from 'openai';
5
+ import { Err, Ok } from '../types/result.js';
6
+ import { ImageAPIError, NetworkError } from '../utils/errors.js';
7
+ import { DEFAULT_MIME_TYPE, normalizeMimeType } from '../utils/mimeUtils.js';
8
+ import { extractStatusCode, isNetworkError } from './errorClassification.js';
9
+ function mapQuality(quality) {
10
+ switch (quality) {
11
+ case 'quality':
12
+ return 'high';
13
+ case 'balanced':
14
+ return 'medium';
15
+ case 'fast':
16
+ return 'low';
17
+ }
18
+ }
19
+ function getOrientation(params) {
20
+ if (!params.aspectRatio) {
21
+ return 'square';
22
+ }
23
+ const [widthRaw, heightRaw] = params.aspectRatio.split(':');
24
+ const width = Number(widthRaw);
25
+ const height = Number(heightRaw);
26
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width === height) {
27
+ return 'square';
28
+ }
29
+ return width > height ? 'landscape' : 'portrait';
30
+ }
31
+ function mapSize(params) {
32
+ const orientation = getOrientation(params);
33
+ if (params.imageSize === '2K') {
34
+ switch (orientation) {
35
+ case 'landscape':
36
+ return '2048x1152';
37
+ case 'portrait':
38
+ return '1152x2048';
39
+ case 'square':
40
+ return '2048x2048';
41
+ }
42
+ }
43
+ if (params.imageSize === '4K') {
44
+ switch (orientation) {
45
+ case 'landscape':
46
+ return '3840x2160';
47
+ case 'portrait':
48
+ return '2160x3840';
49
+ case 'square':
50
+ return '2880x2880';
51
+ }
52
+ }
53
+ switch (orientation) {
54
+ case 'landscape':
55
+ return '1536x1024';
56
+ case 'portrait':
57
+ return '1024x1536';
58
+ case 'square':
59
+ return '1024x1024';
60
+ }
61
+ }
62
+ function mimeTypeToExtension(mimeType) {
63
+ switch (normalizeMimeType(mimeType)) {
64
+ case 'image/jpeg':
65
+ return 'jpg';
66
+ case 'image/webp':
67
+ return 'webp';
68
+ default:
69
+ return 'png';
70
+ }
71
+ }
72
+ const OPENAI_IMAGE_MODEL = 'gpt-image-2';
73
+ function hasInputImage(params) {
74
+ return typeof params.inputImage === 'string' && params.inputImage.length > 0;
75
+ }
76
+ function validateOpenAIOptions(params) {
77
+ if (params.useGoogleSearch) {
78
+ return Err(new ImageAPIError('useGoogleSearch is not supported by the OpenAI image provider', 'Disable useGoogleSearch or use IMAGE_PROVIDER=gemini for Google Search grounding'));
79
+ }
80
+ return Ok(true);
81
+ }
82
+ class OpenAIImageClientImpl {
83
+ constructor(client, defaultQuality = 'fast') {
84
+ this.client = client;
85
+ this.defaultQuality = defaultQuality;
86
+ this.outputFormat = 'png';
87
+ this.modelName = OPENAI_IMAGE_MODEL;
88
+ }
89
+ async generateImage(params) {
90
+ try {
91
+ const optionsResult = validateOpenAIOptions(params);
92
+ if (!optionsResult.success) {
93
+ return optionsResult;
94
+ }
95
+ const quality = mapQuality(params.quality ?? this.defaultQuality);
96
+ const size = mapSize(params);
97
+ const response = hasInputImage(params)
98
+ ? await this.editImage(params, quality, size)
99
+ : await this.createImage(params, quality, size);
100
+ const firstImage = response.data?.[0];
101
+ if (!firstImage?.b64_json) {
102
+ return Err(new ImageAPIError('No image data returned from OpenAI image API', {
103
+ provider: 'openai',
104
+ model: this.modelName,
105
+ stage: 'image_extraction',
106
+ suggestion: 'Retry the request or verify that the selected model returns base64 image data',
107
+ }));
108
+ }
109
+ return Ok({
110
+ imageData: Buffer.from(firstImage.b64_json, 'base64'),
111
+ metadata: {
112
+ model: this.modelName,
113
+ provider: 'openai',
114
+ prompt: params.prompt,
115
+ mimeType: `image/${this.outputFormat}`,
116
+ timestamp: new Date(),
117
+ inputImageProvided: !!params.inputImage,
118
+ ...(firstImage.revised_prompt && { revisedPrompt: firstImage.revised_prompt }),
119
+ },
120
+ });
121
+ }
122
+ catch (error) {
123
+ return this.handleError(error, params.prompt);
124
+ }
125
+ }
126
+ async createImage(params, quality, size) {
127
+ const request = {
128
+ model: this.modelName,
129
+ prompt: params.prompt,
130
+ n: 1,
131
+ output_format: this.outputFormat,
132
+ quality,
133
+ size,
134
+ };
135
+ return await this.client.images.generate(request);
136
+ }
137
+ async editImage(params, quality, size) {
138
+ const mimeType = normalizeMimeType(params.inputImageMimeType ?? DEFAULT_MIME_TYPE);
139
+ const inputFile = await toFile(Buffer.from(params.inputImage, 'base64'), `input.${mimeTypeToExtension(mimeType)}`, { type: mimeType });
140
+ const request = {
141
+ model: this.modelName,
142
+ prompt: params.prompt,
143
+ image: inputFile,
144
+ n: 1,
145
+ output_format: this.outputFormat,
146
+ quality,
147
+ size,
148
+ };
149
+ return await this.client.images.edit(request);
150
+ }
151
+ handleError(error, prompt) {
152
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
153
+ if (isNetworkError(error)) {
154
+ return Err(new NetworkError('Network error during OpenAI image generation', 'Check your internet connection and try again', error instanceof Error ? error : undefined));
155
+ }
156
+ return Err(new ImageAPIError('Failed to generate image with OpenAI', {
157
+ provider: 'openai',
158
+ prompt,
159
+ upstreamMessage: errorMessage,
160
+ suggestion: this.getAPIErrorSuggestion(errorMessage),
161
+ }, extractStatusCode(error)));
162
+ }
163
+ getAPIErrorSuggestion(errorMessage) {
164
+ const lowerMessage = errorMessage.toLowerCase();
165
+ if (lowerMessage.includes('quota') || lowerMessage.includes('rate limit')) {
166
+ return 'You have exceeded your OpenAI API quota or rate limit. Wait before retrying or upgrade your plan';
167
+ }
168
+ if (lowerMessage.includes('unauthorized') || lowerMessage.includes('api key')) {
169
+ return 'Check that your OPENAI_API_KEY is valid and has image generation permissions';
170
+ }
171
+ if (lowerMessage.includes('model') || lowerMessage.includes('not found')) {
172
+ return 'Verify your OpenAI organization has been verified to use gpt-image-2 (https://platform.openai.com/settings/organization/general)';
173
+ }
174
+ if (lowerMessage.includes('forbidden') || lowerMessage.includes('permission')) {
175
+ return 'Your OpenAI API key does not have permission for this operation or model';
176
+ }
177
+ return 'Check OpenAI API configuration and try again';
178
+ }
179
+ }
180
+ /**
181
+ * Creates a new OpenAI image client.
182
+ */
183
+ export function createOpenAIImageClient(config) {
184
+ try {
185
+ const client = new OpenAI({
186
+ apiKey: config.openaiApiKey,
187
+ });
188
+ return Ok(new OpenAIImageClientImpl(client, config.imageQuality));
189
+ }
190
+ catch (error) {
191
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
192
+ return Err(new ImageAPIError(`Failed to initialize OpenAI image client: ${errorMessage}`, 'Verify your OPENAI_API_KEY is valid and the openai package is properly installed'));
193
+ }
194
+ }
195
+ //# sourceMappingURL=openaiImageClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openaiImageClient.js","sourceRoot":"","sources":["../../src/api/openaiImageClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * OpenAI text client for structured prompt enhancement.
3
+ */
4
+ import type { Result } from '../types/result.js';
5
+ import type { Config } from '../utils/config.js';
6
+ import { ImageAPIError } from '../utils/errors.js';
7
+ import type { TextClient } from './textClient.js';
8
+ /**
9
+ * Creates a new OpenAI text client for prompt enhancement.
10
+ */
11
+ export declare function createOpenAITextClient(config: Config): Result<TextClient, ImageAPIError>;
12
+ //# sourceMappingURL=openaiTextClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openaiTextClient.d.ts","sourceRoot":"","sources":["../../src/api/openaiTextClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAgB,MAAM,oBAAoB,CAAA;AAGhE,OAAO,KAAK,EAAoB,UAAU,EAAE,MAAM,iBAAiB,CAAA;AA+KnE;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAYxF"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * OpenAI text client for structured prompt enhancement.
3
+ */
4
+ import OpenAI from 'openai';
5
+ import { Err, Ok } from '../types/result.js';
6
+ import { ImageAPIError, NetworkError } from '../utils/errors.js';
7
+ import { DEFAULT_MIME_TYPE, normalizeMimeType } from '../utils/mimeUtils.js';
8
+ import { extractStatusCode, isNetworkError } from './errorClassification.js';
9
+ const OPENAI_TEXT_MODEL = 'gpt-4o-mini';
10
+ class OpenAITextClientImpl {
11
+ constructor(config) {
12
+ this.modelName = OPENAI_TEXT_MODEL;
13
+ this.client = new OpenAI({
14
+ apiKey: config.openaiApiKey,
15
+ });
16
+ }
17
+ async generateText(prompt, config = {}) {
18
+ const validationResult = this.validatePromptInput(prompt);
19
+ if (!validationResult.success) {
20
+ return validationResult;
21
+ }
22
+ const timeout = config.timeout ?? 30000;
23
+ try {
24
+ const response = (await this.client.responses.create({
25
+ model: this.modelName,
26
+ input: this.buildInput(prompt, config),
27
+ ...(config.systemInstruction && { instructions: config.systemInstruction }),
28
+ max_output_tokens: config.maxTokens ?? 8192,
29
+ temperature: config.temperature ?? 0.7,
30
+ top_p: config.topP ?? 0.95,
31
+ }, { signal: AbortSignal.timeout(timeout) }));
32
+ const responseText = this.extractResponseText(response);
33
+ if (!responseText || responseText.trim().length === 0) {
34
+ throw new Error('Empty response from OpenAI text API');
35
+ }
36
+ return Ok(responseText.trim());
37
+ }
38
+ catch (error) {
39
+ return this.handleError(error, 'text generation');
40
+ }
41
+ }
42
+ async validateConnection() {
43
+ try {
44
+ if (!this.client.responses) {
45
+ return Err(new ImageAPIError('Failed to access OpenAI Responses API', 'Check your OPENAI_API_KEY configuration'));
46
+ }
47
+ return Ok(true);
48
+ }
49
+ catch (error) {
50
+ return this.handleError(error, 'connection validation');
51
+ }
52
+ }
53
+ buildInput(prompt, config) {
54
+ if (!config.inputImage) {
55
+ return prompt;
56
+ }
57
+ const mimeType = normalizeMimeType(config.inputImageMimeType ?? DEFAULT_MIME_TYPE);
58
+ return [
59
+ {
60
+ role: 'user',
61
+ content: [
62
+ {
63
+ type: 'input_text',
64
+ text: prompt,
65
+ },
66
+ {
67
+ type: 'input_image',
68
+ image_url: `data:${mimeType};base64,${config.inputImage}`,
69
+ detail: 'auto',
70
+ },
71
+ ],
72
+ },
73
+ ];
74
+ }
75
+ extractResponseText(response) {
76
+ if (typeof response.output_text === 'string') {
77
+ return response.output_text;
78
+ }
79
+ const textParts = response.output?.flatMap((item) => item.content
80
+ ?.filter((content) => content.type === 'output_text' && typeof content.text === 'string')
81
+ .map((content) => content.text ?? '')) ?? [];
82
+ return textParts.join('');
83
+ }
84
+ handleError(error, context) {
85
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
86
+ if (isNetworkError(error)) {
87
+ return Err(new NetworkError(`Network error during OpenAI ${context}`, 'Check your internet connection and try again'));
88
+ }
89
+ return Err(new ImageAPIError(`Failed during OpenAI ${context}`, {
90
+ provider: 'openai',
91
+ stage: context,
92
+ upstreamMessage: errorMessage,
93
+ suggestion: this.getAPIErrorSuggestion(errorMessage),
94
+ }, extractStatusCode(error)));
95
+ }
96
+ getAPIErrorSuggestion(errorMessage) {
97
+ const lowerMessage = errorMessage.toLowerCase();
98
+ if (lowerMessage.includes('quota') || lowerMessage.includes('rate limit')) {
99
+ return 'You have exceeded your OpenAI API quota or rate limit. Wait before retrying or upgrade your plan';
100
+ }
101
+ if (lowerMessage.includes('unauthorized') || lowerMessage.includes('api key')) {
102
+ return 'Check that your OPENAI_API_KEY is valid';
103
+ }
104
+ if (lowerMessage.includes('model') || lowerMessage.includes('not found')) {
105
+ return 'Ensure gpt-4o-mini is available to your OpenAI account';
106
+ }
107
+ return 'Check OpenAI API configuration and try again';
108
+ }
109
+ validatePromptInput(prompt) {
110
+ if (!prompt || prompt.trim().length === 0) {
111
+ return Err(new ImageAPIError('Empty prompt provided', 'Please provide a non-empty prompt'));
112
+ }
113
+ if (prompt.length > 100000) {
114
+ return Err(new ImageAPIError('Prompt too long', 'Please provide a shorter prompt'));
115
+ }
116
+ return Ok(true);
117
+ }
118
+ }
119
+ /**
120
+ * Creates a new OpenAI text client for prompt enhancement.
121
+ */
122
+ export function createOpenAITextClient(config) {
123
+ try {
124
+ return Ok(new OpenAITextClientImpl(config));
125
+ }
126
+ catch (error) {
127
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
128
+ return Err(new ImageAPIError(`Failed to initialize OpenAI Text client: ${errorMessage}`, 'Verify your OPENAI_API_KEY is valid and the openai package is properly installed'));
129
+ }
130
+ }
131
+ //# sourceMappingURL=openaiTextClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openaiTextClient.js","sourceRoot":"","sources":["../../src/api/openaiTextClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { Result } from '../types/result.js';
2
+ import type { GeminiAPIError, ImageAPIError, NetworkError } from '../utils/errors.js';
3
+ /**
4
+ * Options for text generation used by the prompt enhancer.
5
+ */
6
+ export interface GenerationConfig {
7
+ temperature?: number;
8
+ maxTokens?: number;
9
+ timeout?: number;
10
+ systemInstruction?: string;
11
+ inputImage?: string;
12
+ inputImageMimeType?: string;
13
+ topP?: number;
14
+ topK?: number;
15
+ }
16
+ /**
17
+ * Provider-neutral text client for prompt enhancement.
18
+ */
19
+ export interface TextClient {
20
+ generateText(prompt: string, config?: GenerationConfig): Promise<Result<string, GeminiAPIError | ImageAPIError | NetworkError>>;
21
+ validateConnection(): Promise<Result<boolean, GeminiAPIError | ImageAPIError | NetworkError>>;
22
+ }
23
+ //# sourceMappingURL=textClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textClient.d.ts","sourceRoot":"","sources":["../../src/api/textClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAErF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,CACV,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC,CAAA;IAEzE,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC,CAAA;CAC9F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=textClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textClient.js","sourceRoot":"","sources":["../../src/api/textClient.ts"],"names":[],"mappings":""}
@@ -2,7 +2,7 @@
2
2
  * Response Builder for MCP structured content responses
3
3
  * Converts generation results and errors into MCP-compatible response format
4
4
  */
5
- import type { GeneratedImageResult } from '../api/geminiClient.js';
5
+ import type { GeneratedImageResult } from '../api/imageClient.js';
6
6
  import type { McpToolResponse } from '../types/mcp.js';
7
7
  import { type BaseError } from '../utils/errors.js';
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"responseBuilder.d.ts","sourceRoot":"","sources":["../../src/business/responseBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,iBAAiB,CAAA;AACzE,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,oBAAoB,CAAA;AAM3B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/F,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,GAAG,eAAe,CAAA;CAC9D;AA2DD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAgEvD"}
1
+ {"version":3,"file":"responseBuilder.d.ts","sourceRoot":"","sources":["../../src/business/responseBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,iBAAiB,CAAA;AACzE,OAAO,EACL,KAAK,SAAS,EAQf,MAAM,oBAAoB,CAAA;AAuC3B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/F,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,GAAG,eAAe,CAAA;CAC9D;AA+DD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAmEvD"}
@@ -3,10 +3,36 @@
3
3
  * Converts generation results and errors into MCP-compatible response format
4
4
  */
5
5
  import * as path from 'node:path';
6
- import { ConfigError, FileOperationError, GeminiAPIError, InputValidationError, NetworkError, SecurityError, } from '../utils/errors.js';
6
+ import { ConfigError, FileOperationError, GeminiAPIError, ImageAPIError, InputValidationError, NetworkError, SecurityError, } from '../utils/errors.js';
7
+ import { sanitizeText } from '../utils/logger.js';
7
8
  import { getMimeTypeFromExtension, SUPPORTED_MIME_TYPES } from '../utils/mimeUtils.js';
8
9
  const UNKNOWN_ERROR_CODE = 'UNKNOWN_ERROR';
9
10
  const DEFAULT_ERROR_SUGGESTION = 'Please try again or contact support if the problem persists';
11
+ /**
12
+ * Context keys safe to surface in MCP error responses. Anything not on this
13
+ * list (notably `prompt`, which the caller already supplied, and any future
14
+ * additions) stays out of the wire format.
15
+ */
16
+ const SAFE_CONTEXT_KEYS = ['provider', 'stage', 'statusCode'];
17
+ /**
18
+ * Project an error's context object into a sanitized subset suitable for
19
+ * inclusion in caller-visible error responses. The upstream API message is
20
+ * passed through the logger's redaction patterns before exposure.
21
+ */
22
+ function buildPublicDetails(context) {
23
+ if (!context)
24
+ return undefined;
25
+ const details = {};
26
+ for (const key of SAFE_CONTEXT_KEYS) {
27
+ if (context[key] !== undefined) {
28
+ details[key] = context[key];
29
+ }
30
+ }
31
+ if (typeof context['upstreamMessage'] === 'string') {
32
+ details['upstreamMessage'] = sanitizeText(context['upstreamMessage']);
33
+ }
34
+ return Object.keys(details).length > 0 ? details : undefined;
35
+ }
10
36
  /**
11
37
  * Determines MIME type from generation metadata with extension-based fallback.
12
38
  * Uses the API-reported MIME type as the primary source of truth.
@@ -35,14 +61,17 @@ function convertErrorToStructured(error) {
35
61
  if (error instanceof InputValidationError ||
36
62
  error instanceof FileOperationError ||
37
63
  error instanceof GeminiAPIError ||
64
+ error instanceof ImageAPIError ||
38
65
  error instanceof NetworkError ||
39
66
  error instanceof ConfigError ||
40
67
  error instanceof SecurityError) {
68
+ const details = buildPublicDetails(error.context);
41
69
  return {
42
70
  ...baseError,
43
71
  code: error.code,
44
- message: error.message,
72
+ message: sanitizeText(error.message),
45
73
  suggestion: error.suggestion,
74
+ ...(details && { details }),
46
75
  };
47
76
  }
48
77
  // Handle unknown errors
@@ -79,6 +108,9 @@ export function createResponseBuilder() {
79
108
  },
80
109
  metadata: {
81
110
  model: generationResult.metadata.model,
111
+ ...(generationResult.metadata.provider && {
112
+ provider: generationResult.metadata.provider,
113
+ }),
82
114
  processingTime: 0, // Not tracked in simplified version
83
115
  contextMethod: 'structured_prompt',
84
116
  timestamp: generationResult.metadata.timestamp.toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"responseBuilder.js","sourceRoot":"","sources":["../../src/business/responseBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responseBuilder.js","sourceRoot":"","sources":["../../src/business/responseBuilder.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Uses Gemini Flash to generate optimized prompts for image generation
4
4
  * Applies 7 best practices and 3 feature perspectives through intelligent selection
5
5
  */
6
- import type { GeminiTextClient } from '../api/geminiTextClient.js';
6
+ import type { TextClient } from '../api/textClient.js';
7
7
  import type { Result } from '../types/result.js';
8
8
  /**
9
9
  * Feature flags for image generation
@@ -34,8 +34,8 @@ export interface StructuredPromptGenerator {
34
34
  * Implementation of StructuredPromptGenerator using Gemini Flash
35
35
  */
36
36
  export declare class StructuredPromptGeneratorImpl implements StructuredPromptGenerator {
37
- private readonly geminiTextClient;
38
- constructor(geminiTextClient: GeminiTextClient);
37
+ private readonly textClient;
38
+ constructor(textClient: TextClient);
39
39
  generateStructuredPrompt(userPrompt: string, features?: FeatureFlags, inputImageData?: string, purpose?: string, inputImageMimeType?: string): Promise<Result<StructuredPromptResult, Error>>;
40
40
  /**
41
41
  * Build complete prompt with all optimization context
@@ -53,5 +53,5 @@ export declare class StructuredPromptGeneratorImpl implements StructuredPromptGe
53
53
  /**
54
54
  * Factory function to create StructuredPromptGenerator
55
55
  */
56
- export declare function createStructuredPromptGenerator(geminiTextClient: GeminiTextClient): StructuredPromptGenerator;
56
+ export declare function createStructuredPromptGenerator(textClient: TextClient): StructuredPromptGenerator;
57
57
  //# sourceMappingURL=structuredPromptGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"structuredPromptGenerator.d.ts","sourceRoot":"","sources":["../../src/business/structuredPromptGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AA+ChD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,wBAAwB,CACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,YAAY,EACvB,cAAc,CAAC,EAAE,MAAM,EAAE,4CAA4C;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,sCAAsC;IACxD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,qBAAa,6BAA8B,YAAW,yBAAyB;IACjE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAEzD,wBAAwB,CAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,YAAiB,EAC3B,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IAiDjD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyC3B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA4BnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAkF/B;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,gBAAgB,EAAE,gBAAgB,GACjC,yBAAyB,CAE3B"}
1
+ {"version":3,"file":"structuredPromptGenerator.d.ts","sourceRoot":"","sources":["../../src/business/structuredPromptGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AA+ChD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,wBAAwB,CACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,YAAY,EACvB,cAAc,CAAC,EAAE,MAAM,EAAE,4CAA4C;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,sCAAsC;IACxD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,qBAAa,6BAA8B,YAAW,yBAAyB;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE7C,wBAAwB,CAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,YAAiB,EAC3B,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IAiDjD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyC3B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA4BnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAkF/B;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,UAAU,GAAG,yBAAyB,CAEjG"}
@@ -50,8 +50,8 @@ IMPORTANT: An input image has been provided. Your task is to:
50
50
  * Implementation of StructuredPromptGenerator using Gemini Flash
51
51
  */
52
52
  export class StructuredPromptGeneratorImpl {
53
- constructor(geminiTextClient) {
54
- this.geminiTextClient = geminiTextClient;
53
+ constructor(textClient) {
54
+ this.textClient = textClient;
55
55
  }
56
56
  async generateStructuredPrompt(userPrompt, features = {}, inputImageData, purpose, inputImageMimeType) {
57
57
  try {
@@ -73,7 +73,7 @@ export class StructuredPromptGeneratorImpl {
73
73
  ...(inputImageData && { inputImage: inputImageData }),
74
74
  ...(inputImageMimeType && { inputImageMimeType }),
75
75
  };
76
- const result = await this.geminiTextClient.generateText(completePrompt, config);
76
+ const result = await this.textClient.generateText(completePrompt, config);
77
77
  if (!result.success) {
78
78
  return Err(result.error);
79
79
  }
@@ -213,7 +213,7 @@ Now transform the user's request with similar attention to detail and creative e
213
213
  /**
214
214
  * Factory function to create StructuredPromptGenerator
215
215
  */
216
- export function createStructuredPromptGenerator(geminiTextClient) {
217
- return new StructuredPromptGeneratorImpl(geminiTextClient);
216
+ export function createStructuredPromptGenerator(textClient) {
217
+ return new StructuredPromptGeneratorImpl(textClient);
218
218
  }
219
219
  //# sourceMappingURL=structuredPromptGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"structuredPromptGenerator.js","sourceRoot":"","sources":["../../src/business/structuredPromptGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structuredPromptGenerator.js","sourceRoot":"","sources":["../../src/business/structuredPromptGenerator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * - skills install → bin/install-skills.js
7
7
  * - (default) → MCP server startup
8
8
  */
9
- export type { GeneratedImageResult } from './api/geminiClient.js';
9
+ export type { GeneratedImageResult } from './api/imageClient.js';
10
10
  export { createMCPServer, MCPServerImpl } from './server/mcpServer.js';
11
11
  export type { GenerateImageParams, MCPServerConfig } from './types/mcp.js';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAwBH,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAwBH,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/server/errorHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAA;AAM3B;;;;GAIG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAqBlD;AAED;;;;;GAKG;AACH,iBAAe,kBAAkB,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAa3B;AA2DD;;;GAGG;AACH,eAAO,MAAM,YAAY;;;CAGf,CAAA"}
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/server/errorHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAA;AA4B3B;;;;GAIG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAqBlD;AAED;;;;;GAKG;AACH,iBAAe,kBAAkB,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAa3B;AA6CD;;;GAGG;AACH,eAAO,MAAM,YAAY;;;CAGf,CAAA"}