cyrus-claude-runner 0.2.8 → 0.2.10

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.
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Available GPT Image models
3
+ */
4
+ export type ImageModel = "gpt-image-1.5" | "gpt-image-1" | "gpt-image-1-mini";
1
5
  /**
2
6
  * Options for creating image generation tools
3
7
  */
@@ -13,10 +17,10 @@ export interface ImageToolsOptions {
13
17
  }
14
18
  /**
15
19
  * Create an SDK MCP server with GPT Image generation tools
16
- * Uses the Responses API with background mode for async generation
20
+ * Uses the direct Images API for synchronous generation with model selection
17
21
  *
18
- * @see https://platform.openai.com/docs/guides/image-generation?image-generation-model=gpt-image-1 - GPT Image documentation
19
- * @see https://platform.openai.com/docs/guides/background - Background mode documentation
22
+ * @see https://platform.openai.com/docs/guides/image-generation - GPT Image documentation
23
+ * @see https://platform.openai.com/docs/api-reference/images - Images API reference
20
24
  */
21
25
  export declare function createImageToolsServer(options: ImageToolsOptions): import("@anthropic-ai/claude-agent-sdk").McpSdkServerConfigWithInstance;
22
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/image-tools/index.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAiBD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,2EAkUhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/image-tools/index.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,2EAgNhE"}
@@ -4,10 +4,10 @@ import OpenAI from "openai";
4
4
  import { z } from "zod";
5
5
  /**
6
6
  * Create an SDK MCP server with GPT Image generation tools
7
- * Uses the Responses API with background mode for async generation
7
+ * Uses the direct Images API for synchronous generation with model selection
8
8
  *
9
- * @see https://platform.openai.com/docs/guides/image-generation?image-generation-model=gpt-image-1 - GPT Image documentation
10
- * @see https://platform.openai.com/docs/guides/background - Background mode documentation
9
+ * @see https://platform.openai.com/docs/guides/image-generation - GPT Image documentation
10
+ * @see https://platform.openai.com/docs/api-reference/images - Images API reference
11
11
  */
12
12
  export function createImageToolsServer(options) {
13
13
  const { apiKey, outputDirectory = process.cwd() } = options;
@@ -16,27 +16,31 @@ export function createImageToolsServer(options) {
16
16
  apiKey,
17
17
  timeout: 600 * 1000, // 10 minutes
18
18
  });
19
- // Track format for each job since API doesn't return it
20
- const jobFormats = new Map();
21
- const generateImageTool = tool("gpt_image_generate", "Generate an image using GPT Image (gpt-image-1). This starts an async image generation job and returns a job ID. Use gpt_image_get to wait for completion and download the image.", {
19
+ const generateImageTool = tool("gpt_image_generate", "Generate an image using OpenAI's GPT Image models. Supports gpt-image-1.5 (best quality), gpt-image-1, and gpt-image-1-mini. Returns the generated image file path directly.", {
22
20
  prompt: z
23
21
  .string()
24
- .describe("Text description of the image you want to generate. Be as detailed as possible for best results."),
22
+ .max(32000)
23
+ .describe("Text description of the image you want to generate. Be as detailed as possible for best results. Maximum 32,000 characters."),
24
+ model: z
25
+ .enum(["gpt-image-1.5", "gpt-image-1", "gpt-image-1-mini"])
26
+ .optional()
27
+ .default("gpt-image-1.5")
28
+ .describe("Model to use: gpt-image-1.5 (best quality, recommended), gpt-image-1 (good quality), or gpt-image-1-mini (faster, lower cost)"),
25
29
  size: z
26
30
  .enum(["1024x1024", "1536x1024", "1024x1536", "auto"])
27
31
  .optional()
28
32
  .default("auto")
29
- .describe("Image size: 1024x1024 (square), 1536x1024 (landscape), 1024x1536 (portrait), or auto (model decides)"),
33
+ .describe("Image size: 1024x1024 (square, faster), 1536x1024 (landscape), 1024x1536 (portrait), or auto (model decides)"),
30
34
  quality: z
31
- .enum(["low", "medium", "high", "auto"])
35
+ .enum(["low", "medium", "high"])
32
36
  .optional()
33
- .default("auto")
34
- .describe("Image quality: low (fastest), medium, high (best quality), or auto (model decides). Higher quality uses more tokens and takes longer."),
37
+ .default("high")
38
+ .describe("Image quality: low (fastest), medium (good for iteration), high (best quality, default). Production work should use high."),
35
39
  background: z
36
40
  .enum(["transparent", "opaque", "auto"])
37
41
  .optional()
38
42
  .default("auto")
39
- .describe("Background type: transparent (PNG/WebP only), opaque, or auto (model decides)"),
43
+ .describe("Background type: transparent (PNG/WebP only, works best with medium/high quality), opaque, or auto (model decides)"),
40
44
  output_format: z
41
45
  .enum(["png", "jpeg", "webp"])
42
46
  .optional()
@@ -48,9 +52,13 @@ export function createImageToolsServer(options) {
48
52
  .max(100)
49
53
  .optional()
50
54
  .describe("Compression level for jpeg/webp (0-100%). Higher = less compression, larger file. Only applicable for jpeg and webp formats."),
51
- }, async ({ prompt, size, quality, background, output_format, output_compression, }) => {
55
+ filename: z
56
+ .string()
57
+ .optional()
58
+ .describe("Custom filename for the image (without extension). If not provided, a timestamped name will be generated."),
59
+ }, async ({ prompt, model, size, quality, background, output_format, output_compression, filename, }) => {
52
60
  try {
53
- console.log(`[ImageTools] Starting image generation: ${prompt.substring(0, 50)}... (${size}, ${quality}, ${output_format})`);
61
+ console.log(`[ImageTools] Starting image generation with ${model}: ${prompt.substring(0, 50)}... (${size}, ${quality}, ${output_format})`);
54
62
  // Validate background transparency is only for PNG/WebP
55
63
  if (background === "transparent" && output_format === "jpeg") {
56
64
  return {
@@ -65,162 +73,63 @@ export function createImageToolsServer(options) {
65
73
  ],
66
74
  };
67
75
  }
68
- // Build tool configuration
69
- const toolConfig = {
70
- type: "image_generation",
76
+ // Build request parameters
77
+ // Note: GPT Image models always return base64-encoded images,
78
+ // so response_format is not needed (and not supported for gpt-image-1.5)
79
+ const params = {
80
+ model: model,
81
+ prompt,
82
+ n: 1,
71
83
  };
72
84
  // Add optional parameters (only if not auto)
73
- if (size !== "auto")
74
- toolConfig.size = size;
75
- if (quality !== "auto")
76
- toolConfig.quality = quality;
77
- if (background !== "auto")
78
- toolConfig.background = background;
79
- if (output_format)
80
- toolConfig.output_format = output_format;
81
- if (output_compression !== undefined)
82
- toolConfig.output_compression = output_compression;
83
- // Use Responses API with background mode for async processing
84
- const response = await client.responses.create({
85
- model: "gpt-5", // Wrapper model that can call image_generation tool
86
- background: true, // Enable async mode
87
- store: true, // Store result for retrieval
88
- tools: [toolConfig],
89
- input: [
90
- {
91
- role: "user",
92
- content: prompt,
93
- },
94
- ],
95
- });
96
- console.log(`[ImageTools] Image generation job started: ${response.id}`);
97
- // Store the format for this job so we know the extension when downloading
98
- jobFormats.set(response.id, output_format || "png");
99
- return {
100
- content: [
101
- {
102
- type: "text",
103
- text: JSON.stringify({
104
- success: true,
105
- jobId: response.id,
106
- status: response.status,
107
- message: "Image generation job started. Use gpt_image_get to wait for completion and download the image.",
108
- }),
109
- },
110
- ],
111
- };
112
- }
113
- catch (error) {
114
- console.error("[ImageTools] Error starting image generation:", error);
115
- return {
116
- content: [
117
- {
118
- type: "text",
119
- text: JSON.stringify({
120
- success: false,
121
- error: error instanceof Error ? error.message : String(error),
122
- }),
123
- },
124
- ],
125
- };
126
- }
127
- });
128
- const getImageTool = tool("gpt_image_get", "Check if GPT Image generation is complete and download the image if ready. If not ready, returns status. Call this tool again later if the image is not ready yet.", {
129
- jobId: z.string().describe("The job ID from gpt_image_generate"),
130
- filename: z
131
- .string()
132
- .optional()
133
- .describe("Custom filename for the image (default: generated-{jobId}.png)"),
134
- }, async ({ jobId, filename }) => {
135
- try {
136
- console.log(`[ImageTools] Checking image generation job: ${jobId}`);
137
- // Check job status once
138
- const response = await client.responses.retrieve(jobId);
139
- console.log(`[ImageTools] Job ${jobId} status: ${response.status}`);
140
- // If not completed, return status
141
- if (response.status !== "completed") {
142
- if (response.status === "failed") {
143
- return {
144
- content: [
145
- {
146
- type: "text",
147
- text: JSON.stringify({
148
- success: false,
149
- error: "Image generation failed",
150
- jobId,
151
- status: response.status,
152
- }),
153
- },
154
- ],
155
- };
156
- }
157
- // Still in progress
158
- return {
159
- content: [
160
- {
161
- type: "text",
162
- text: JSON.stringify({
163
- success: false,
164
- ready: false,
165
- jobId,
166
- status: response.status,
167
- message: `Image is not ready yet. Current status: ${response.status}. Try calling gpt_image_get again in a few moments.`,
168
- }),
169
- },
170
- ],
171
- };
85
+ if (size !== "auto") {
86
+ params.size = size;
172
87
  }
173
- // Image is ready - download it
174
- console.log(`[ImageTools] Image generation completed for job: ${jobId}`);
175
- // Extract image data from output
176
- const imageGenerationCall = response.output?.find((item) => item.type === "image_generation_call");
177
- if (!imageGenerationCall) {
178
- return {
179
- content: [
180
- {
181
- type: "text",
182
- text: JSON.stringify({
183
- success: false,
184
- error: "No image generation data found in response",
185
- }),
186
- },
187
- ],
188
- };
88
+ if (quality) {
89
+ params.quality = quality;
90
+ }
91
+ if (background !== "auto") {
92
+ params.background = background;
93
+ }
94
+ if (output_format) {
95
+ params.output_format = output_format;
96
+ }
97
+ if (output_compression !== undefined) {
98
+ params.output_compression = output_compression;
189
99
  }
190
- const base64Data = imageGenerationCall.result;
191
- const extendedCall = imageGenerationCall;
192
- const revisedPrompt = extendedCall.revised_prompt;
193
- if (!base64Data) {
100
+ // Generate image using direct Images API
101
+ const response = await client.images.generate(params);
102
+ const imageData = response.data?.[0];
103
+ if (!imageData || !("b64_json" in imageData) || !imageData.b64_json) {
194
104
  return {
195
105
  content: [
196
106
  {
197
107
  type: "text",
198
108
  text: JSON.stringify({
199
109
  success: false,
200
- error: "No image data found in response",
110
+ error: "No image data returned from API",
201
111
  }),
202
112
  },
203
113
  ],
204
114
  };
205
115
  }
206
116
  // Convert base64 to buffer
207
- const buffer = Buffer.from(base64Data, "base64");
117
+ const buffer = Buffer.from(imageData.b64_json, "base64");
208
118
  // Ensure output directory exists
209
119
  await fs.ensureDir(outputDirectory);
210
- // Get the format we requested when creating the job (defaults to png)
211
- const format = jobFormats.get(jobId) || "png";
212
- const ext = format.toLowerCase();
120
+ // Determine file extension
121
+ const ext = (output_format || "png").toLowerCase();
213
122
  // Determine final filename
214
123
  const timestamp = Date.now();
215
- const finalFilename = filename || `generated-${jobId.substring(0, 8)}-${timestamp}.${ext}`;
124
+ const finalFilename = filename
125
+ ? `${filename}.${ext}`
126
+ : `generated-${timestamp}.${ext}`;
216
127
  const filePath = `${outputDirectory}/${finalFilename}`;
217
128
  // Write to disk
218
129
  await fs.writeFile(filePath, buffer);
219
- // Clean up stored format
220
- jobFormats.delete(jobId);
221
130
  console.log(`[ImageTools] Image saved to: ${filePath}`);
222
- if (revisedPrompt) {
223
- console.log(`[ImageTools] Revised prompt: ${revisedPrompt}`);
131
+ if (imageData.revised_prompt) {
132
+ console.log(`[ImageTools] Revised prompt: ${imageData.revised_prompt}`);
224
133
  }
225
134
  return {
226
135
  content: [
@@ -231,17 +140,16 @@ export function createImageToolsServer(options) {
231
140
  filePath,
232
141
  filename: finalFilename,
233
142
  size: buffer.length,
234
- jobId,
235
- model: "gpt-image-1",
236
- revisedPrompt: revisedPrompt || undefined,
237
- message: `Image downloaded and saved to ${filePath}`,
143
+ model,
144
+ revisedPrompt: imageData.revised_prompt || undefined,
145
+ message: `Image generated and saved to ${filePath}`,
238
146
  }),
239
147
  },
240
148
  ],
241
149
  };
242
150
  }
243
151
  catch (error) {
244
- console.error(`[ImageTools] Error downloading image for job ${jobId}:`, error);
152
+ console.error("[ImageTools] Error generating image:", error);
245
153
  return {
246
154
  content: [
247
155
  {
@@ -258,7 +166,7 @@ export function createImageToolsServer(options) {
258
166
  return createSdkMcpServer({
259
167
  name: "image-tools",
260
168
  version: "1.0.0",
261
- tools: [generateImageTool, getImageTool],
169
+ tools: [generateImageTool],
262
170
  });
263
171
  }
264
172
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/image-tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/image-tools/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cyrus-claude-runner",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
4
4
  "description": "Claude CLI execution wrapper for Cyrus",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,7 +16,7 @@
16
16
  "fs-extra": "^11.3.2",
17
17
  "openai": "^6.9.1",
18
18
  "zod": "^3.24.1",
19
- "cyrus-core": "0.2.8"
19
+ "cyrus-core": "0.2.10"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/fs-extra": "^11.0.4",