@houtini/gemini-mcp 2.2.3 → 2.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"media-server.d.ts","sourceRoot":"","sources":["../../src/services/media-server.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,EAAE,MAAM;IAKxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB5B,OAAO,IAAI,MAAM;IAIjB,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAsB1C,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,aAAa;CAoHtB"}
1
+ {"version":3,"file":"media-server.d.ts","sourceRoot":"","sources":["../../src/services/media-server.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,EAAE,MAAM;IAKxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB5B,OAAO,IAAI,MAAM;IAIjB,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAuB1C,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,aAAa;CAoHtB"}
@@ -72,7 +72,8 @@ export class MediaServer {
72
72
  const normalAllowed = normalize(this.allowedDir);
73
73
  const normalResolved = normalize(resolved);
74
74
  // Ensure the file is within the allowed directory
75
- if (!normalResolved.startsWith(normalAllowed)) {
75
+ // Use toLowerCase() to handle Windows drive letter casing (D:\ vs d:\)
76
+ if (!normalResolved.toLowerCase().startsWith(normalAllowed.toLowerCase())) {
76
77
  logger.warn('Media server: path outside allowed directory', {
77
78
  path: absPath,
78
79
  allowedDir: this.allowedDir,
@@ -129,7 +130,7 @@ export class MediaServer {
129
130
  const normalAllowed = normalize(this.allowedDir);
130
131
  const normalFile = normalize(filePath);
131
132
  // Path traversal protection
132
- if (!normalFile.startsWith(normalAllowed)) {
133
+ if (!normalFile.toLowerCase().startsWith(normalAllowed.toLowerCase())) {
133
134
  res.writeHead(403, { 'Content-Type': 'text/plain' });
134
135
  res.end('Forbidden');
135
136
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"media-server.js","sourceRoot":"","sources":["../../src/services/media-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media-server.js","sourceRoot":"","sources":["../../src/services/media-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0D,MAAM,MAAM,CAAC;AAC5F,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,MAAM,UAAU,GAA2B;IACzC,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,wBAAwB;CAChC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,GAAkB,IAAI,CAAC;IAC7B,IAAI,GAAG,CAAC,CAAC;IACT,KAAK,CAAS;IACd,UAAU,CAAS;IAE3B,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAEvE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC9B,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,0CAA0C;YAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;gBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;oBAClC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CAAC,CAAC;gBACH,EAAE,EAAE,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,UAAU;QACR,OAAO,oBAAoB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAAe;QACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE3C,kDAAkD;QAClD,uEAAuE;QACvE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;gBAC1D,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,cAAc;aAC5B,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;aAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEvB,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,GAAoB,EAAE,GAAmB;QAC7D,2CAA2C;QAC3C,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAClD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;QACpE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;QACvD,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,8CAA8C,CAAC,CAAC;QAE/F,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,iBAAiB;QACjB,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;QAClE,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;YACzB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,oDAAoD;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,YAAY,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEvC,4BAA4B;QAC5B,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;gBACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;YAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;YAE5B,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAExC,sDAAsD;YACtD,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;YACtC,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;wBACjB,eAAe,EAAE,WAAW,QAAQ,EAAE;wBACtC,cAAc,EAAE,YAAY;qBAC7B,CAAC,CAAC;oBACH,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAE7D,IAAI,KAAK,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;oBACxD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;wBACjB,eAAe,EAAE,WAAW,QAAQ,EAAE;wBACtC,cAAc,EAAE,YAAY;qBAC7B,CAAC,CAAC;oBACH,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;oBACjB,eAAe,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,QAAQ,EAAE;oBACpD,gBAAgB,EAAE,GAAG,GAAG,KAAK,GAAG,CAAC;oBACjC,cAAc,EAAE,WAAW;iBAC5B,CAAC,CAAC;gBAEH,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC1B,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBAED,gBAAgB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;oBACjB,gBAAgB,EAAE,QAAQ;oBAC1B,cAAc,EAAE,WAAW;iBAC5B,CAAC,CAAC;gBAEH,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC1B,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBAED,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-image-gen.d.ts","sourceRoot":"","sources":["../../src/tools/register-image-gen.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA8B9C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA0P/C"}
1
+ {"version":3,"file":"register-image-gen.d.ts","sourceRoot":"","sources":["../../src/tools/register-image-gen.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA+F9C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA+M/C"}
@@ -7,12 +7,36 @@ import { processGeneratedImage } from '../utils/image-utils.js';
7
7
  import { resolveImageInputs } from '../utils/resolve-images.js';
8
8
  import { savedFileMessage } from '../utils/tool-wrapper.js';
9
9
  import { imageInputSchema } from './schemas.js';
10
- function buildTextLines(savedPath, previewPath, description, groundingSources, thoughtSignature) {
10
+ /**
11
+ * Build the MCP content array for an image tool result.
12
+ *
13
+ * Pattern: resize-for-transport
14
+ * - Full-res original is saved to disk (and served via media server for the viewer).
15
+ * - A resized JPEG preview (≤800px) is returned as an inline `image` content block
16
+ * so the model can "see" the image and the client can display it.
17
+ * - The text block contains the file path + metadata so the user can find the original.
18
+ *
19
+ * This keeps the total tool result well under the 1MB MCP transport cap.
20
+ */
21
+ function buildContent(processed, description, prompt, groundingSources, thoughtSignature) {
22
+ const content = [];
23
+ // 1. Inline resized preview — lets the model and client see the image
24
+ if (processed) {
25
+ content.push({
26
+ type: 'image',
27
+ data: processed.previewBase64,
28
+ mimeType: processed.previewMimeType,
29
+ });
30
+ }
31
+ // 2. Text metadata
11
32
  const lines = [];
12
- if (savedPath)
13
- lines.push(savedFileMessage('Image saved', savedPath));
14
- if (previewPath)
15
- lines.push(savedFileMessage('HTML preview', previewPath));
33
+ if (processed?.savedPath)
34
+ lines.push(savedFileMessage('Image saved (full-res)', processed.savedPath));
35
+ if (processed?.previewPath)
36
+ lines.push(savedFileMessage('HTML preview', processed.previewPath));
37
+ if (processed) {
38
+ lines.push(`Preview: ${processed.previewWidth}x${processed.previewHeight}px JPEG (${Math.round(processed.previewBase64.length * 0.75 / 1024)}KB)`);
39
+ }
16
40
  if (description)
17
41
  lines.push(`\n${description}`);
18
42
  if (groundingSources && groundingSources.length > 0) {
@@ -21,12 +45,38 @@ function buildTextLines(savedPath, previewPath, description, groundingSources, t
21
45
  lines.push(`${idx + 1}. [${source.title}](${source.url})`);
22
46
  });
23
47
  }
24
- // Surface thoughtSignature so Claude can pass it to subsequent edit_image calls
25
- // for conversational editing with Gemini 3 Pro Image
26
48
  if (thoughtSignature) {
27
49
  lines.push(`\n**thoughtSignature** (for conversational editing — pass to edit_image): \`${thoughtSignature}\``);
28
50
  }
29
- return lines;
51
+ content.push({
52
+ type: 'text',
53
+ text: lines.join('\n') || 'Image generated successfully',
54
+ });
55
+ return content;
56
+ }
57
+ /**
58
+ * Build lightweight structuredContent for the App viewer.
59
+ * Contains ZERO base64 data — viewer loads the image via media server URL.
60
+ */
61
+ function buildStructuredContent(ctx, processed, description, prompt, groundingSources) {
62
+ const imageUrl = processed?.savedPath
63
+ ? ctx.mediaServer.getFileUrl(processed.savedPath)
64
+ : undefined;
65
+ if (processed?.savedPath && !imageUrl) {
66
+ logger.warn('Media server URL unavailable — image saved outside allowed directory', {
67
+ savedPath: processed.savedPath,
68
+ allowedDir: ctx.outputDir,
69
+ });
70
+ }
71
+ return {
72
+ imageUrl: imageUrl ?? undefined,
73
+ mimeType: 'image/jpeg',
74
+ savedPath: processed?.savedPath,
75
+ previewPath: processed?.previewPath,
76
+ description,
77
+ prompt,
78
+ groundingSources,
79
+ };
30
80
  }
31
81
  export function register(ctx) {
32
82
  registerAppTool(ctx.server, 'generate_image', {
@@ -82,7 +132,6 @@ export function register(ctx) {
82
132
  useSearch: use_search,
83
133
  globalMediaResolution: global_media_resolution
84
134
  });
85
- // Resolve any filePath references in input images server-side
86
135
  const resolvedImages = images ? await resolveImageInputs(images) : undefined;
87
136
  const result = await ctx.imageService.generateImage({
88
137
  prompt,
@@ -97,37 +146,23 @@ export function register(ctx) {
97
146
  const resolvedSavePath = outputPath
98
147
  ? resolve(outputPath)
99
148
  : resolve(ctx.outputDir, `gemini-${Date.now()}.png`);
100
- let savedPath;
101
- let previewPath;
102
- let previewImageData;
149
+ let processed;
103
150
  if (firstImage?.base64Data) {
104
- const processed = await processGeneratedImage(firstImage.base64Data, firstImage.mimeType || 'image/png', resolvedSavePath, prompt, result.description);
105
- savedPath = processed.savedPath;
106
- previewPath = processed.previewPath;
107
- previewImageData = processed.previewImageData;
151
+ processed = await processGeneratedImage(firstImage.base64Data, firstImage.mimeType || 'image/png', resolvedSavePath, prompt, result.description);
152
+ }
153
+ // thoughtSignature is intentionally excluded from the tool result.
154
+ // It can be 500KB+ and would blow the 1MB MCP transport cap.
155
+ // For conversational editing, the user should use edit_image and pass
156
+ // the thoughtSignature from the saved file metadata if needed.
157
+ const droppedSig = result.parts.find(p => !!p.thoughtSignature)?.thoughtSignature;
158
+ if (droppedSig) {
159
+ logger.info('Dropping thoughtSignature from tool result', {
160
+ signatureKB: Math.round(droppedSig.length / 1024)
161
+ });
108
162
  }
109
- // Extract thoughtSignature from response parts for conversational editing
110
- const thoughtSignature = result.parts.find(p => !!p.thoughtSignature)?.thoughtSignature;
111
- const textLines = buildTextLines(savedPath, previewPath, result.description, result.groundingSources, thoughtSignature);
112
- // Serve full-res image via media server (bypasses MCP 1MB limit)
113
- const imageUrl = savedPath ? ctx.mediaServer.getFileUrl(savedPath) : undefined;
114
163
  return {
115
- structuredContent: {
116
- imageUrl,
117
- base64Data: previewImageData || '',
118
- mimeType: 'image/jpeg',
119
- savedPath,
120
- previewPath,
121
- description: result.description,
122
- prompt,
123
- groundingSources: result.groundingSources
124
- },
125
- content: [
126
- {
127
- type: 'text',
128
- text: textLines.join('\n') || 'Image generated successfully'
129
- }
130
- ]
164
+ structuredContent: buildStructuredContent(ctx, processed, result.description, prompt, result.groundingSources),
165
+ content: buildContent(processed, result.description, prompt, result.groundingSources, undefined),
131
166
  };
132
167
  }
133
168
  catch (error) {
@@ -177,7 +212,6 @@ export function register(ctx) {
177
212
  useSearch: use_search,
178
213
  globalMediaResolution: global_media_resolution
179
214
  });
180
- // Resolve any filePath references in input images server-side
181
215
  const resolvedImages = await resolveImageInputs(images);
182
216
  const result = await ctx.imageService.generateImage({
183
217
  prompt,
@@ -190,37 +224,14 @@ export function register(ctx) {
190
224
  const resolvedSavePath = outputPath
191
225
  ? resolve(outputPath)
192
226
  : resolve(ctx.outputDir, `gemini-edit-${Date.now()}.png`);
193
- let savedPath;
194
- let previewPath;
195
- let previewImageData;
227
+ let processed;
196
228
  if (firstImage?.base64Data) {
197
- const processed = await processGeneratedImage(firstImage.base64Data, firstImage.mimeType || 'image/png', resolvedSavePath, `[EDIT] ${prompt}`, result.description);
198
- savedPath = processed.savedPath;
199
- previewPath = processed.previewPath;
200
- previewImageData = processed.previewImageData;
229
+ processed = await processGeneratedImage(firstImage.base64Data, firstImage.mimeType || 'image/png', resolvedSavePath, `[EDIT] ${prompt}`, result.description);
201
230
  }
202
- // Extract thoughtSignature from response parts for conversational editing
203
- const thoughtSignature = result.parts.find(p => !!p.thoughtSignature)?.thoughtSignature;
204
- const textLines = buildTextLines(savedPath, previewPath, result.description, result.groundingSources, thoughtSignature);
205
- // Serve full-res image via media server (bypasses MCP 1MB limit)
206
- const imageUrl = savedPath ? ctx.mediaServer.getFileUrl(savedPath) : undefined;
231
+ const editPrompt = `[EDIT] ${prompt}`;
207
232
  return {
208
- structuredContent: {
209
- imageUrl,
210
- base64Data: previewImageData || '',
211
- mimeType: 'image/jpeg',
212
- savedPath,
213
- previewPath,
214
- description: result.description,
215
- prompt: `[EDIT] ${prompt}`,
216
- groundingSources: result.groundingSources
217
- },
218
- content: [
219
- {
220
- type: 'text',
221
- text: textLines.join('\n') || 'Image edited successfully'
222
- }
223
- ]
233
+ structuredContent: buildStructuredContent(ctx, processed, result.description, editPrompt, result.groundingSources),
234
+ content: buildContent(processed, result.description, editPrompt, result.groundingSources, undefined),
224
235
  };
225
236
  }
226
237
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"register-image-gen.js","sourceRoot":"","sources":["../../src/tools/register-image-gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-image-gen.js","sourceRoot":"","sources":["../../src/tools/register-image-gen.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-viewers.d.ts","sourceRoot":"","sources":["../../src/tools/register-viewers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+CpE;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAgEf"}
1
+ {"version":3,"file":"register-viewers.d.ts","sourceRoot":"","sources":["../../src/tools/register-viewers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgDpE;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAgEf"}
@@ -8,6 +8,7 @@ const VIEWERS = [
8
8
  resourceId: 'gemini-image-viewer',
9
9
  uri: 'ui://gemini/image-viewer.html',
10
10
  segments: ['image-viewer', 'src', 'ui', 'image-viewer.html'],
11
+ needsMediaServer: true,
11
12
  },
12
13
  {
13
14
  name: 'Video Viewer',
@@ -1 +1 @@
1
- {"version":3,"file":"register-viewers.js","sourceRoot":"","sources":["../../src/tools/register-viewers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-viewers.js","sourceRoot":"","sources":["../../src/tools/register-viewers.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,22 @@
1
- export interface CompressResult {
1
+ export interface ResizeResult {
2
2
  base64: string;
3
3
  mimeType: 'image/jpeg';
4
+ width: number;
5
+ height: number;
4
6
  originalBytes: number;
5
7
  previewBytes: number;
6
- wasCompressed: boolean;
7
8
  }
8
- export declare function compressForViewer(base64Data: string, sourceMimeType: string): Promise<CompressResult>;
9
+ /**
10
+ * Resize an image so the final MCP packet stays under TARGET_PACKET_BYTES.
11
+ *
12
+ * @param base64Data Raw base64 of the source image
13
+ * @param _sourceMimeType Original mime type (unused — always outputs JPEG)
14
+ * @param nonImageOverhead Byte size of all non-image content in the tool result
15
+ * (text blocks, JSON keys, envelope framing).
16
+ * Caller measures this before invoking. Defaults to
17
+ * 10_000 (10KB) as a safe conservative estimate.
18
+ */
19
+ export declare function resizeForTransport(base64Data: string, _sourceMimeType: string, nonImageOverhead?: number): Promise<ResizeResult>;
20
+ export { resizeForTransport as compressForViewer };
21
+ export type { ResizeResult as CompressResult };
9
22
  //# sourceMappingURL=image-compress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-compress.d.ts","sourceRoot":"","sources":["../../src/utils/image-compress.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,CAAC,CAyCzB"}
1
+ {"version":3,"file":"image-compress.d.ts","sourceRoot":"","sources":["../../src/utils/image-compress.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,gBAAgB,GAAE,MAAe,GAChC,OAAO,CAAC,YAAY,CAAC,CA+CvB;AAED,OAAO,EAAE,kBAAkB,IAAI,iBAAiB,EAAE,CAAC;AACnD,YAAY,EAAE,YAAY,IAAI,cAAc,EAAE,CAAC"}
@@ -1,43 +1,60 @@
1
1
  import sharp from 'sharp';
2
- const MAX_VIEWER_DIMENSION = 1024;
3
- const VIEWER_QUALITY = 100;
4
- const MAX_VIEWER_BYTES = 400_000;
5
- export async function compressForViewer(base64Data, sourceMimeType) {
2
+ /**
3
+ * Target total MCP packet size in bytes (measured as the JSON string length).
4
+ * 940KB leaves ~60KB headroom under the 1MB Claude Desktop transport cap.
5
+ */
6
+ const TARGET_PACKET_BYTES = 600_000;
7
+ const MAX_PREVIEW_DIMENSION = 800;
8
+ /**
9
+ * Resize an image so the final MCP packet stays under TARGET_PACKET_BYTES.
10
+ *
11
+ * @param base64Data Raw base64 of the source image
12
+ * @param _sourceMimeType Original mime type (unused — always outputs JPEG)
13
+ * @param nonImageOverhead Byte size of all non-image content in the tool result
14
+ * (text blocks, JSON keys, envelope framing).
15
+ * Caller measures this before invoking. Defaults to
16
+ * 10_000 (10KB) as a safe conservative estimate.
17
+ */
18
+ export async function resizeForTransport(base64Data, _sourceMimeType, nonImageOverhead = 10_000) {
6
19
  const inputBuffer = Buffer.from(base64Data, 'base64');
7
20
  const originalBytes = inputBuffer.length;
8
- const outputBuffer = await sharp(inputBuffer)
9
- .resize(MAX_VIEWER_DIMENSION, MAX_VIEWER_DIMENSION, {
10
- fit: 'inside',
11
- withoutEnlargement: true,
12
- })
13
- .jpeg({ quality: VIEWER_QUALITY, mozjpeg: true })
14
- .toBuffer();
15
- if (outputBuffer.length > MAX_VIEWER_BYTES) {
16
- for (const quality of [95, 90, 85]) {
17
- const retryBuffer = await sharp(inputBuffer)
18
- .resize(MAX_VIEWER_DIMENSION, MAX_VIEWER_DIMENSION, {
19
- fit: 'inside',
20
- withoutEnlargement: true,
21
- })
22
- .jpeg({ quality, mozjpeg: true })
23
- .toBuffer();
24
- if (retryBuffer.length <= MAX_VIEWER_BYTES) {
25
- return {
26
- base64: retryBuffer.toString('base64'),
27
- mimeType: 'image/jpeg',
28
- originalBytes,
29
- previewBytes: retryBuffer.length,
30
- wasCompressed: true,
31
- };
32
- }
21
+ // base64 string budget available for the image payload
22
+ const base64Budget = TARGET_PACKET_BYTES - nonImageOverhead;
23
+ // base64 encodes 3 binary bytes as 4 chars, so binary ceiling is:
24
+ const binaryBudget = Math.floor(base64Budget * 0.75);
25
+ const dimensionSteps = [MAX_PREVIEW_DIMENSION, 600, 400, 300, 200];
26
+ const quality = 80;
27
+ for (const maxDim of dimensionSteps) {
28
+ const buf = await sharp(inputBuffer)
29
+ .resize(maxDim, maxDim, { fit: 'inside', withoutEnlargement: true })
30
+ .jpeg({ quality, mozjpeg: true })
31
+ .toBuffer();
32
+ if (buf.length <= binaryBudget) {
33
+ const meta = await sharp(buf).metadata();
34
+ return {
35
+ base64: buf.toString('base64'),
36
+ mimeType: 'image/jpeg',
37
+ width: meta.width ?? maxDim,
38
+ height: meta.height ?? maxDim,
39
+ originalBytes,
40
+ previewBytes: buf.length,
41
+ };
33
42
  }
34
43
  }
44
+ // Last resort: 200px at quality 60 — will always fit
45
+ const buf = await sharp(inputBuffer)
46
+ .resize(200, 200, { fit: 'inside', withoutEnlargement: true })
47
+ .jpeg({ quality: 60, mozjpeg: true })
48
+ .toBuffer();
49
+ const meta = await sharp(buf).metadata();
35
50
  return {
36
- base64: outputBuffer.toString('base64'),
51
+ base64: buf.toString('base64'),
37
52
  mimeType: 'image/jpeg',
53
+ width: meta.width ?? 200,
54
+ height: meta.height ?? 200,
38
55
  originalBytes,
39
- previewBytes: outputBuffer.length,
40
- wasCompressed: true,
56
+ previewBytes: buf.length,
41
57
  };
42
58
  }
59
+ export { resizeForTransport as compressForViewer };
43
60
  //# sourceMappingURL=image-compress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-compress.js","sourceRoot":"","sources":["../../src/utils/image-compress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAUjC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAkB,EAClB,cAAsB;IAEtB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;IAEzC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;SAC1C,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,EAAE;QAClD,GAAG,EAAE,QAAQ;QACb,kBAAkB,EAAE,IAAI;KACzB,CAAC;SACD,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SAChD,QAAQ,EAAE,CAAC;IAEd,IAAI,YAAY,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC3C,KAAK,MAAM,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;iBACzC,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,EAAE;gBAClD,GAAG,EAAE,QAAQ;gBACb,kBAAkB,EAAE,IAAI;aACzB,CAAC;iBACD,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iBAChC,QAAQ,EAAE,CAAC;YAEd,IAAI,WAAW,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;gBAC3C,OAAO;oBACL,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACtC,QAAQ,EAAE,YAAY;oBACtB,aAAa;oBACb,YAAY,EAAE,WAAW,CAAC,MAAM;oBAChC,aAAa,EAAE,IAAI;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvC,QAAQ,EAAE,YAAY;QACtB,aAAa;QACb,YAAY,EAAE,YAAY,CAAC,MAAM;QACjC,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"image-compress.js","sourceRoot":"","sources":["../../src/utils/image-compress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;GAGG;AACH,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAEpC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAWlC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,eAAuB,EACvB,mBAA2B,MAAM;IAEjC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;IAEzC,uDAAuD;IACvD,MAAM,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;IAE5D,kEAAkE;IAClE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAErD,MAAM,cAAc,GAAG,CAAC,qBAAqB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;aACjC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;aACnE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aAChC,QAAQ,EAAE,CAAC;QAEd,IAAI,GAAG,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YACzC,OAAO;gBACL,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC9B,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM;gBAC7B,aAAa;gBACb,YAAY,EAAE,GAAG,CAAC,MAAM;aACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;SACjC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;SAC7D,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SACpC,QAAQ,EAAE,CAAC;IAEd,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzC,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC9B,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,GAAG;QACxB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG;QAC1B,aAAa;QACb,YAAY,EAAE,GAAG,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,kBAAkB,IAAI,iBAAiB,EAAE,CAAC"}
@@ -3,7 +3,12 @@ export declare function createImagePreviewHtml(imagePath: string, prompt: string
3
3
  export interface ProcessedImage {
4
4
  savedPath: string;
5
5
  previewPath: string;
6
- previewImageData: string;
6
+ /** Base64-encoded resized JPEG preview for inline transport */
7
+ previewBase64: string;
8
+ previewMimeType: 'image/jpeg';
9
+ previewWidth: number;
10
+ previewHeight: number;
11
+ originalBytes: number;
7
12
  }
8
13
  export declare function processGeneratedImage(base64Data: string, mimeType: string, savePath: string, prompt: string, description?: string): Promise<ProcessedImage>;
9
14
  //# sourceMappingURL=image-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-utils.d.ts","sourceRoot":"","sources":["../../src/utils/image-utils.ts"],"names":[],"mappings":"AAKA,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7F;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAsOjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAkBzB"}
1
+ {"version":3,"file":"image-utils.d.ts","sourceRoot":"","sources":["../../src/utils/image-utils.ts"],"names":[],"mappings":"AAKA,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7F;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAsOjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,YAAY,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAkCzB"}
@@ -1,7 +1,7 @@
1
1
  import { writeFile, mkdir } from 'fs/promises';
2
2
  import { dirname, resolve } from 'path';
3
3
  import logger from './logger.js';
4
- import { compressForViewer } from './image-compress.js';
4
+ import { resizeForTransport } from './image-compress.js';
5
5
  export async function saveImageToFile(base64Data, outputPath) {
6
6
  const absolutePath = resolve(outputPath);
7
7
  await mkdir(dirname(absolutePath), { recursive: true });
@@ -175,7 +175,7 @@ export async function createImagePreviewHtml(imagePath, prompt, description) {
175
175
 
176
176
  <div class="content">
177
177
  <div class="image-container">
178
- <img src="${imageFilename}" alt="Generated image">
178
+ <img src="${imagePath.replace(/\\/g, '/')}" alt="Generated image">
179
179
  </div>
180
180
 
181
181
  <div class="metadata">
@@ -208,7 +208,7 @@ export async function createImagePreviewHtml(imagePath, prompt, description) {
208
208
  </div>
209
209
 
210
210
  <div class="actions">
211
- <a href="${imageFilename}" download class="btn">Download Image</a>
211
+ <a href="${imagePath.replace(/\\/g, '/')}" download class="btn">Download Image</a>
212
212
  </div>
213
213
  </div>
214
214
 
@@ -240,18 +240,29 @@ export async function createImagePreviewHtml(imagePath, prompt, description) {
240
240
  export async function processGeneratedImage(base64Data, mimeType, savePath, prompt, description) {
241
241
  const savedPath = await saveImageToFile(base64Data, savePath);
242
242
  const previewPath = await createImagePreviewHtml(savedPath, prompt, description);
243
- const compressed = await compressForViewer(base64Data, mimeType);
243
+ // Measure non-image overhead: text content that will accompany the image
244
+ // in the tool result (file paths + description + JSON-RPC envelope framing)
245
+ const nonImageOverhead = Buffer.byteLength(JSON.stringify({ savedPath, previewPath, description: description ?? '', prompt }), 'utf8') + 2_000; // 2KB extra for JSON-RPC envelope keys and framing
246
+ const resized = await resizeForTransport(base64Data, mimeType, nonImageOverhead);
247
+ const base64Chars = resized.base64.length;
244
248
  logger.info('Image saved successfully', {
245
249
  savedPath,
246
250
  previewPath,
247
- originalKB: Math.round(compressed.originalBytes / 1024),
248
- previewKB: Math.round(compressed.previewBytes / 1024),
249
- compressionRatio: (compressed.originalBytes / compressed.previewBytes).toFixed(1) + 'x',
251
+ originalKB: Math.round(resized.originalBytes / 1024),
252
+ previewKB: Math.round(resized.previewBytes / 1024),
253
+ previewDimensions: `${resized.width}x${resized.height}`,
254
+ ratio: (resized.originalBytes / resized.previewBytes).toFixed(1) + 'x',
255
+ base64Chars,
256
+ base64KB: Math.round(base64Chars / 1024),
250
257
  });
251
258
  return {
252
259
  savedPath,
253
260
  previewPath,
254
- previewImageData: compressed.base64,
261
+ previewBase64: resized.base64,
262
+ previewMimeType: resized.mimeType,
263
+ previewWidth: resized.width,
264
+ previewHeight: resized.height,
265
+ originalBytes: resized.originalBytes,
255
266
  };
256
267
  }
257
268
  //# sourceMappingURL=image-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-utils.js","sourceRoot":"","sources":["../../src/utils/image-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,UAAkB;IAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAiB,EACjB,MAAc,EACd,WAAoB;IAEpB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;IAEhE,MAAM,IAAI,GAAG;;;;;yBAKU,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA+JlB,aAAa;;;;;;;;;;cAUnB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;;;;UAItD,WAAW,CAAC,CAAC,CAAC;;;wCAGgB,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;;SAEtF,CAAC,CAAC,CAAC,EAAE;;;;wCAI0B,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE;;;;;wCAK3B,aAAa;;;;;mBAKlC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;QAyBxB,CAAC;IAEP,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,QAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,WAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEjE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;QACtC,SAAS;QACT,WAAW;QACX,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;QACvD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;QACrD,gBAAgB,EAAE,CAAC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;KACxF,CAAC,CAAC;IAEH,OAAO;QACL,SAAS;QACT,WAAW;QACX,gBAAgB,EAAE,UAAU,CAAC,MAAM;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"image-utils.js","sourceRoot":"","sources":["../../src/utils/image-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AA+DnC,QAAA,MAAM,MAAM,gBAWV,CAAC;AAEH,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AA+DnC,QAAA,MAAM,MAAM,gBAYV,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -49,8 +49,9 @@ if (transports.length === 0) {
49
49
  }
50
50
  const logger = winston.createLogger({
51
51
  level: config.logging.level,
52
- format: winston.format.combine(winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.colorize(), winston.format.printf(({ timestamp, level, message, stack }) => {
53
- return `${timestamp} [${level}]: ${message}${stack ? '\n' + stack : ''}`;
52
+ format: winston.format.combine(winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.colorize(), winston.format.printf(({ timestamp, level, message, stack, ...meta }) => {
53
+ const metaStr = Object.keys(meta).length ? ' ' + JSON.stringify(meta) : '';
54
+ return `${timestamp} [${level}]: ${message}${metaStr}${stack ? '\n' + stack : ''}`;
54
55
  })),
55
56
  transports
56
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}