image-tiler-mcp-server 1.2.0 → 1.4.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 CHANGED
@@ -20,6 +20,8 @@ LLM vision systems have a **maximum input resolution**. When you send an image l
20
20
 
21
21
  Each tile is processed at **full resolution** — no downscaling — preserving text, UI elements, and fine detail across the entire image.
22
22
 
23
+ **Auto-downscaling:** Images over 10,000px on their longest side are automatically downscaled before tiling (configurable via `maxDimension`). This prevents extreme tile counts on very long screenshots — e.g., a 3600×22810 page drops from 84 tiles / ~134K tokens to 20 tiles / ~32K tokens with no visible quality loss. Set `maxDimension=0` to disable.
24
+
23
25
  See [sample of generated tiles here.](https://github.com/keiver/image-tiler-mcp-server/tree/main/assets/tiles/)
24
26
 
25
27
  ### Supported Models
@@ -46,6 +48,7 @@ Splits a large image into tiles and saves them to disk.
46
48
  | `filePath` | string | yes | — | Absolute or relative path to the image file |
47
49
  | `model` | string | no | `"claude"` | Target vision model: `"claude"`, `"openai"`, `"gemini"`, `"gemini3"` |
48
50
  | `tileSize` | number | no | Model default | Tile size in pixels. Clamped to model min/max with a warning if out of bounds. |
51
+ | `maxDimension` | number | no | `10000` | Max dimension in px (0-65536). Pre-downscales the image so its longest side fits within this value before tiling. Defaults to 10000px. Set to 0 to disable auto-downscaling. No-op if already within bounds. |
49
52
  | `outputDir` | string | no | `tiles/{name}` subfolder next to source | Directory to save tiles |
50
53
 
51
54
  Returns JSON metadata with grid dimensions, tile count, model used, estimated token cost, and per-tile file paths.
@@ -179,6 +182,29 @@ Claude will:
179
182
  2. Tiles sized at 768px for OpenAI's vision pipeline
180
183
  ```
181
184
 
185
+ ### Auto-Downscaling
186
+
187
+ Images over 10,000px are automatically downscaled before tiling. You can customize the limit:
188
+
189
+ ```
190
+ > Tile this 7680x4032 screenshot but downscale to 2048px first to save tokens
191
+
192
+ Claude will:
193
+ 1. Call tiler_tile_image(filePath="./image.png", maxDimension=2048)
194
+ 2. Image is downscaled to 2048x1076 before tiling
195
+ 3. Fewer tiles = lower token cost (e.g., 4 tiles instead of 32)
196
+ ```
197
+
198
+ To disable auto-downscaling entirely:
199
+
200
+ ```
201
+ > Tile this image at full resolution, no downscaling
202
+
203
+ Claude will:
204
+ 1. Call tiler_tile_image(filePath="./image.png", maxDimension=0)
205
+ 2. Image is tiled at its original dimensions
206
+ ```
207
+
182
208
  ### Typical Workflow
183
209
 
184
210
  1. Capture full-page screenshot with your browser extension
@@ -250,10 +276,19 @@ assets/tiles/landscape/
250
276
  { "index": 1, "row": 0, "col": 1, "position": "1092,0", "dimensions": "1092×1092", "filePath": "/path/to/assets/tiles/landscape/tile_000_001.png" },
251
277
  "... 30 more tiles"
252
278
  ],
253
- "previewPath": "/path/to/assets/tiles/landscape/preview.html"
279
+ "previewPath": "/path/to/assets/tiles/landscape/preview.html",
280
+ "resize": {
281
+ "originalWidth": 7680,
282
+ "originalHeight": 4032,
283
+ "resizedWidth": 2048,
284
+ "resizedHeight": 1076,
285
+ "scaleFactor": 0.267
286
+ }
254
287
  }
255
288
  ```
256
289
 
290
+ > The `resize` field is only present when `maxDimension` triggered an actual downscale. If the image was already within bounds, it's omitted.
291
+
257
292
  ### Portrait example
258
293
 
259
294
  `assets/portrait.png` (3600x22810) tiled with Claude defaults produces a 4x21 grid of 84 tiles (~133,560 tokens).
@@ -18,4 +18,5 @@ export declare const MAX_TOTAL_TILES = 10000;
18
18
  export declare const MAX_TILES_PER_BATCH = 5;
19
19
  export declare const SUPPORTED_FORMATS: readonly ["png", "jpeg", "jpg", "webp", "tiff", "gif"];
20
20
  export declare const PNG_COMPRESSION_LEVEL = 6;
21
+ export declare const DEFAULT_MAX_DIMENSION = 10000;
21
22
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,oDAAqD,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CA6BhE,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAsB,CAAC;AAGnD,eAAO,MAAM,iBAAiB,QAAuC,CAAC;AACtE,eAAO,MAAM,aAAa,QAAmC,CAAC;AAC9D,eAAO,MAAM,aAAa,QAAmC,CAAC;AAC9D,eAAO,MAAM,eAAe,QAAqC,CAAC;AAElE,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,iBAAiB,wDAAyD,CAAC;AACxF,eAAO,MAAM,qBAAqB,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,oDAAqD,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CA6BhE,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAsB,CAAC;AAGnD,eAAO,MAAM,iBAAiB,QAAuC,CAAC;AACtE,eAAO,MAAM,aAAa,QAAmC,CAAC;AAC9D,eAAO,MAAM,aAAa,QAAmC,CAAC;AAC9D,eAAO,MAAM,eAAe,QAAqC,CAAC;AAElE,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,iBAAiB,wDAAyD,CAAC;AACxF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,qBAAqB,QAAQ,CAAC"}
package/dist/constants.js CHANGED
@@ -40,4 +40,5 @@ export const MAX_TOTAL_TILES = 10000;
40
40
  export const MAX_TILES_PER_BATCH = 5;
41
41
  export const SUPPORTED_FORMATS = ["png", "jpeg", "jpg", "webp", "tiff", "gif"];
42
42
  export const PNG_COMPRESSION_LEVEL = 6;
43
+ export const DEFAULT_MAX_DIMENSION = 10000;
43
44
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAWhF,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,MAAM,EAAE;QACN,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,QAAQ;KAChB;IACD,MAAM,EAAE;QACN,eAAe,EAAE,GAAG;QACpB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,GAAG;QAClB,KAAK,EAAE,QAAQ;KAChB;IACD,MAAM,EAAE;QACN,eAAe,EAAE,GAAG;QACpB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,GAAG;QAChB,aAAa,EAAE,GAAG;QAClB,KAAK,EAAE,QAAQ;KAChB;IACD,OAAO,EAAE;QACP,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,UAAU;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAgB,QAAQ,CAAC;AAEnD,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AACxF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAWhF,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,MAAM,EAAE;QACN,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,QAAQ;KAChB;IACD,MAAM,EAAE;QACN,eAAe,EAAE,GAAG;QACpB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,GAAG;QAClB,KAAK,EAAE,QAAQ;KAChB;IACD,MAAM,EAAE;QACN,eAAe,EAAE,GAAG;QACpB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,GAAG;QAChB,aAAa,EAAE,GAAG;QAClB,KAAK,EAAE,QAAQ;KAChB;IACD,OAAO,EAAE;QACP,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,UAAU;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAgB,QAAQ,CAAC;AAEnD,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AACxF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC"}
@@ -3,6 +3,7 @@ export declare const TileImageInputSchema: {
3
3
  filePath: z.ZodString;
4
4
  model: z.ZodDefault<z.ZodEnum<["claude", "openai", "gemini", "gemini3"]>>;
5
5
  tileSize: z.ZodOptional<z.ZodNumber>;
6
+ maxDimension: z.ZodDefault<z.ZodNumber>;
6
7
  outputDir: z.ZodOptional<z.ZodString>;
7
8
  };
8
9
  export declare const GetTilesInputSchema: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,oBAAoB;;;;;CA6BhC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;CAqB/B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,oBAAoB;;;;;;CAsChC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;CAqB/B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { MAX_IMAGE_DIMENSION, MAX_TILES_PER_BATCH, VISION_MODELS, DEFAULT_MODEL, MODEL_CONFIGS, } from "../constants.js";
2
+ import { MAX_IMAGE_DIMENSION, MAX_TILES_PER_BATCH, VISION_MODELS, DEFAULT_MODEL, MODEL_CONFIGS, DEFAULT_MAX_DIMENSION, } from "../constants.js";
3
3
  const modelDescriptions = VISION_MODELS.map((m) => `"${m}" (${MODEL_CONFIGS[m].defaultTileSize}px tiles, ~${MODEL_CONFIGS[m].tokensPerTile} tokens/tile)`).join(", ");
4
4
  const defaultDescriptions = VISION_MODELS.map((m) => `${MODEL_CONFIGS[m].label}: ${MODEL_CONFIGS[m].defaultTileSize}`).join(", ");
5
5
  export const TileImageInputSchema = {
@@ -18,6 +18,13 @@ export const TileImageInputSchema = {
18
18
  .max(MAX_IMAGE_DIMENSION, `Tile size must not exceed ${MAX_IMAGE_DIMENSION}px`)
19
19
  .optional()
20
20
  .describe(`Tile size in pixels. If omitted, uses the model's optimal default (${defaultDescriptions}). Values outside the model's supported range are automatically clamped with a warning.`),
21
+ maxDimension: z
22
+ .number()
23
+ .int()
24
+ .min(0, "maxDimension must be >= 0 (0 disables auto-downscaling)")
25
+ .max(MAX_IMAGE_DIMENSION, `maxDimension must not exceed ${MAX_IMAGE_DIMENSION}px`)
26
+ .default(DEFAULT_MAX_DIMENSION)
27
+ .describe(`Max dimension in px (256-${MAX_IMAGE_DIMENSION}). When set, the image is resized so its longest side fits within this value before tiling. Reduces token consumption for large images. Defaults to ${DEFAULT_MAX_DIMENSION}px. Set to 0 to disable auto-downscaling.`),
21
28
  outputDir: z
22
29
  .string()
23
30
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,MAAM,iBAAiB,GAAG,aAAa,CAAC,GAAG,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,cAAc,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,eAAe,CAC9G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CACxE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;SACnC,QAAQ,CAAC,qDAAqD,CAAC;IAClE,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,aAAa,CAAC;SACnB,OAAO,CAAC,aAAa,CAAC;SACtB,QAAQ,CACP,wBAAwB,iBAAiB,eAAe,aAAa,GAAG,CACzE;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;SAC9C,GAAG,CACF,mBAAmB,EACnB,6BAA6B,mBAAmB,IAAI,CACrD;SACA,QAAQ,EAAE;SACV,QAAQ,CACP,sEAAsE,mBAAmB,yFAAyF,CACnL;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,mFAAmF,CACpF;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;SAC9C,QAAQ,CACP,yEAAyE,CAC1E;IACH,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACpD,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;SAChC,QAAQ,EAAE;SACV,QAAQ,CACP,4DAA4D,mBAAmB,GAAG,CAAC,SAAS,mBAAmB,qDAAqD,CACrK;CACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,aAAa,EACb,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,iBAAiB,GAAG,aAAa,CAAC,GAAG,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,cAAc,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,eAAe,CAC9G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CACxE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;SACnC,QAAQ,CAAC,qDAAqD,CAAC;IAClE,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,aAAa,CAAC;SACnB,OAAO,CAAC,aAAa,CAAC;SACtB,QAAQ,CACP,wBAAwB,iBAAiB,eAAe,aAAa,GAAG,CACzE;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;SAC9C,GAAG,CACF,mBAAmB,EACnB,6BAA6B,mBAAmB,IAAI,CACrD;SACA,QAAQ,EAAE;SACV,QAAQ,CACP,sEAAsE,mBAAmB,yFAAyF,CACnL;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,yDAAyD,CAAC;SACjE,GAAG,CAAC,mBAAmB,EAAE,gCAAgC,mBAAmB,IAAI,CAAC;SACjF,OAAO,CAAC,qBAAqB,CAAC;SAC9B,QAAQ,CACP,4BAA4B,mBAAmB,uJAAuJ,qBAAqB,2CAA2C,CACvQ;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,mFAAmF,CACpF;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;SAC9C,QAAQ,CACP,yEAAyE,CAC1E;IACH,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACpD,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;SAChC,QAAQ,EAAE;SACV,QAAQ,CACP,4DAA4D,mBAAmB,GAAG,CAAC,SAAS,mBAAmB,qDAAqD,CACrK;CACJ,CAAC"}
@@ -1,7 +1,8 @@
1
- import type { ImageMetadata, TileGridInfo, TileImageResult } from "../types.js";
1
+ import type { ImageMetadata, ResizeInfo, TileGridInfo, TileImageResult } from "../types.js";
2
2
  export declare function getImageMetadata(filePath: string): Promise<ImageMetadata>;
3
3
  export declare function calculateGrid(width: number, height: number, tileSize: number, tokensPerTile?: number): TileGridInfo;
4
- export declare function tileImage(filePath: string, tileSize: number, outputDir: string, tokensPerTile?: number): Promise<TileImageResult>;
4
+ export declare function resizeImage(filePath: string, maxDimension: number, outputPath: string): Promise<ResizeInfo | null>;
5
+ export declare function tileImage(filePath: string, tileSize: number, outputDir: string, tokensPerTile?: number, maxDimension?: number): Promise<TileImageResult>;
5
6
  export declare function readTileAsBase64(tilePath: string): Promise<string>;
6
7
  export declare function listTilesInDirectory(tilesDir: string): Promise<string[]>;
7
8
  //# sourceMappingURL=image-processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-processor.d.ts","sourceRoot":"","sources":["../../src/services/image-processor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AAK1F,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,aAAa,GAAE,MAAwB,GACtC,YAAY,CAYd;AAED,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,MAAwB,GACtC,OAAO,CAAC,eAAe,CAAC,CA4E1B;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGxE;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBnB"}
1
+ {"version":3,"file":"image-processor.d.ts","sourceRoot":"","sources":["../../src/services/image-processor.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AAKtG,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,aAAa,GAAE,MAAwB,GACtC,YAAY,CAYd;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA6B5B;AAED,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,MAAwB,EACvC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,eAAe,CAAC,CA8G1B;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGxE;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBnB"}
@@ -1,6 +1,7 @@
1
1
  import sharp from "sharp";
2
2
  import * as fs from "node:fs/promises";
3
3
  import * as path from "node:path";
4
+ import { randomUUID } from "node:crypto";
4
5
  import { MAX_IMAGE_DIMENSION, MAX_TOTAL_TILES, PNG_COMPRESSION_LEVEL, TOKENS_PER_TILE, } from "../constants.js";
5
6
  sharp.cache({ items: 10, memory: 200 });
6
7
  sharp.concurrency(2);
@@ -34,7 +35,31 @@ export function calculateGrid(width, height, tileSize, tokensPerTile = TOKENS_PE
34
35
  estimatedTokens: totalTiles * tokensPerTile,
35
36
  };
36
37
  }
37
- export async function tileImage(filePath, tileSize, outputDir, tokensPerTile = TOKENS_PER_TILE) {
38
+ export async function resizeImage(filePath, maxDimension, outputPath) {
39
+ const metadata = await sharp(filePath).metadata();
40
+ if (!metadata.width || !metadata.height) {
41
+ throw new Error(`Unable to read image dimensions from ${filePath}. File may be corrupted or not a supported image format.`);
42
+ }
43
+ const longestSide = Math.max(metadata.width, metadata.height);
44
+ if (longestSide <= maxDimension) {
45
+ return null; // no resize needed
46
+ }
47
+ const scaleFactor = maxDimension / longestSide;
48
+ const resizedWidth = Math.round(metadata.width * scaleFactor);
49
+ const resizedHeight = Math.round(metadata.height * scaleFactor);
50
+ await sharp(filePath)
51
+ .resize(resizedWidth, resizedHeight, { fit: "inside", withoutEnlargement: true })
52
+ .png({ compressionLevel: PNG_COMPRESSION_LEVEL })
53
+ .toFile(outputPath);
54
+ return {
55
+ originalWidth: metadata.width,
56
+ originalHeight: metadata.height,
57
+ resizedWidth,
58
+ resizedHeight,
59
+ scaleFactor: Math.round(scaleFactor * 1000) / 1000,
60
+ };
61
+ }
62
+ export async function tileImage(filePath, tileSize, outputDir, tokensPerTile = TOKENS_PER_TILE, maxDimension) {
38
63
  const resolvedPath = path.resolve(filePath);
39
64
  try {
40
65
  await fs.access(resolvedPath);
@@ -42,56 +67,88 @@ export async function tileImage(filePath, tileSize, outputDir, tokensPerTile = T
42
67
  catch {
43
68
  throw new Error(`File not found: ${resolvedPath}. Verify the file path is correct and the file exists.`);
44
69
  }
45
- const imageMetadata = await getImageMetadata(resolvedPath);
46
- const grid = calculateGrid(imageMetadata.width, imageMetadata.height, tileSize, tokensPerTile);
47
- if (grid.totalTiles > MAX_TOTAL_TILES) {
48
- throw new Error(`Tiling would produce ${grid.totalTiles} tiles (${grid.cols}×${grid.rows}), exceeding the maximum of ${MAX_TOTAL_TILES}. ` +
49
- `Use a larger tile size or a smaller image.`);
50
- }
51
70
  const resolvedOutputDir = path.resolve(outputDir);
52
71
  await fs.mkdir(resolvedOutputDir, { recursive: true });
53
- const tiles = [];
54
- let index = 0;
72
+ let sourcePath = resolvedPath;
73
+ let resizeInfo = null;
74
+ let resizedTempPath = null;
75
+ if (maxDimension !== undefined) {
76
+ const tempPath = path.join(resolvedOutputDir, `__resized_${randomUUID()}.png`);
77
+ resizeInfo = await resizeImage(resolvedPath, maxDimension, tempPath);
78
+ if (resizeInfo) {
79
+ sourcePath = tempPath;
80
+ resizedTempPath = tempPath;
81
+ }
82
+ }
55
83
  try {
56
- for (let row = 0; row < grid.rows; row++) {
57
- for (let col = 0; col < grid.cols; col++) {
58
- const x = col * tileSize;
59
- const y = row * tileSize;
60
- const tileWidth = Math.min(tileSize, imageMetadata.width - x);
61
- const tileHeight = Math.min(tileSize, imageMetadata.height - y);
62
- const filename = `tile_${String(row).padStart(3, "0")}_${String(col).padStart(3, "0")}.png`;
63
- const tilePath = path.join(resolvedOutputDir, filename);
64
- await sharp(resolvedPath)
65
- .extract({ left: x, top: y, width: tileWidth, height: tileHeight })
66
- .png({ compressionLevel: PNG_COMPRESSION_LEVEL })
67
- .toFile(tilePath);
68
- tiles.push({
69
- index,
70
- row,
71
- col,
72
- x,
73
- y,
74
- width: tileWidth,
75
- height: tileHeight,
76
- filename,
77
- filePath: tilePath,
78
- });
79
- index++;
84
+ const imageMetadata = await getImageMetadata(sourcePath);
85
+ const grid = calculateGrid(imageMetadata.width, imageMetadata.height, tileSize, tokensPerTile);
86
+ if (grid.totalTiles > MAX_TOTAL_TILES) {
87
+ throw new Error(`Tiling would produce ${grid.totalTiles} tiles (${grid.cols}×${grid.rows}), exceeding the maximum of ${MAX_TOTAL_TILES}. ` +
88
+ `Use a larger tile size or a smaller image.`);
89
+ }
90
+ const tiles = [];
91
+ let index = 0;
92
+ try {
93
+ for (let row = 0; row < grid.rows; row++) {
94
+ for (let col = 0; col < grid.cols; col++) {
95
+ const x = col * tileSize;
96
+ const y = row * tileSize;
97
+ const tileWidth = Math.min(tileSize, imageMetadata.width - x);
98
+ const tileHeight = Math.min(tileSize, imageMetadata.height - y);
99
+ const filename = `tile_${String(row).padStart(3, "0")}_${String(col).padStart(3, "0")}.png`;
100
+ const tilePath = path.join(resolvedOutputDir, filename);
101
+ await sharp(sourcePath)
102
+ .extract({ left: x, top: y, width: tileWidth, height: tileHeight })
103
+ .png({ compressionLevel: PNG_COMPRESSION_LEVEL })
104
+ .toFile(tilePath);
105
+ tiles.push({
106
+ index,
107
+ row,
108
+ col,
109
+ x,
110
+ y,
111
+ width: tileWidth,
112
+ height: tileHeight,
113
+ filename,
114
+ filePath: tilePath,
115
+ });
116
+ index++;
117
+ }
80
118
  }
81
119
  }
120
+ catch (error) {
121
+ for (const tile of tiles) {
122
+ await fs.unlink(tile.filePath).catch(() => { });
123
+ }
124
+ throw error;
125
+ }
126
+ const result = {
127
+ sourceImage: imageMetadata,
128
+ grid,
129
+ outputDir: resolvedOutputDir,
130
+ tiles,
131
+ };
132
+ if (resizeInfo) {
133
+ result.resize = resizeInfo;
134
+ }
135
+ return result;
82
136
  }
83
- catch (error) {
84
- for (const tile of tiles) {
85
- await fs.unlink(tile.filePath).catch(() => { });
137
+ finally {
138
+ if (resizedTempPath) {
139
+ try {
140
+ await fs.unlink(resizedTempPath);
141
+ }
142
+ catch (err) {
143
+ // ENOENT = already gone, safe to ignore.
144
+ // Anything else = orphaned temp file, surface it.
145
+ if (err.code !== "ENOENT") {
146
+ const msg = err instanceof Error ? err.message : String(err);
147
+ console.warn(`[image-tiler] Failed to clean up temp file ${resizedTempPath}: ${msg}`);
148
+ }
149
+ }
86
150
  }
87
- throw error;
88
151
  }
89
- return {
90
- sourceImage: imageMetadata,
91
- grid,
92
- outputDir: resolvedOutputDir,
93
- tiles,
94
- };
95
152
  }
96
153
  export async function readTileAsBase64(tilePath) {
97
154
  const buffer = await fs.readFile(tilePath);
@@ -1 +1 @@
1
- {"version":3,"file":"image-processor.js","sourceRoot":"","sources":["../../src/services/image-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image-processor.js","sourceRoot":"","sources":["../../src/services/image-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACxC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB;IAEhB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAElD,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,wCAAwC,QAAQ,0DAA0D,CAC3G,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,GAAG,mBAAmB,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;QAClF,MAAM,IAAI,KAAK,CACb,oBAAoB,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,2BAA2B,mBAAmB,MAAM;YACzG,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS;QACpC,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,gBAAwB,eAAe;IAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IAE/B,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,QAAQ;QACR,eAAe,EAAE,UAAU,GAAG,aAAa;KAC5C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,YAAoB,EACpB,UAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,wCAAwC,QAAQ,0DAA0D,CAC3G,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,CAAC,mBAAmB;IAClC,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IAEhE,MAAM,KAAK,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;SAChF,GAAG,CAAC,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;SAChD,MAAM,CAAC,UAAU,CAAC,CAAC;IAEtB,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,KAAK;QAC7B,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,YAAY;QACZ,aAAa;QACb,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI;KACnD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,QAAgB,EAChB,SAAiB,EACjB,gBAAwB,eAAe,EACvC,YAAqB;IAErB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,mBAAmB,YAAY,wDAAwD,CACxF,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,IAAI,UAAU,GAAG,YAAY,CAAC;IAC9B,IAAI,UAAU,GAAsB,IAAI,CAAC;IACzC,IAAI,eAAe,GAAkB,IAAI,CAAC;IAE1C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,UAAU,EAAE,MAAM,CAAC,CAAC;QAC/E,UAAU,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QACrE,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,GAAG,QAAQ,CAAC;YACtB,eAAe,GAAG,QAAQ,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,aAAa,CACxB,aAAa,CAAC,KAAK,EACnB,aAAa,CAAC,MAAM,EACpB,QAAQ,EACR,aAAa,CACd,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,GAAG,eAAe,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,CAAC,UAAU,WAAW,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,+BAA+B,eAAe,IAAI;gBAC1H,4CAA4C,CAC7C,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,IAAI,CAAC;YACH,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;gBACzC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;oBACzC,MAAM,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC;oBACzB,MAAM,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC;oBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAEhE,MAAM,QAAQ,GAAG,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;oBAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;oBAExD,MAAM,KAAK,CAAC,UAAU,CAAC;yBACpB,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;yBAClE,GAAG,CAAC,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;yBAChD,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAEpB,KAAK,CAAC,IAAI,CAAC;wBACT,KAAK;wBACL,GAAG;wBACH,GAAG;wBACH,CAAC;wBACD,CAAC;wBACD,KAAK,EAAE,SAAS;wBAChB,MAAM,EAAE,UAAU;wBAClB,QAAQ;wBACR,QAAQ,EAAE,QAAQ;qBACnB,CAAC,CAAC;oBAEH,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAoB;YAC9B,WAAW,EAAE,aAAa;YAC1B,IAAI;YACJ,SAAS,EAAE,iBAAiB;YAC5B,KAAK;SACN,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,yCAAyC;gBACzC,kDAAkD;gBAClD,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,8CAA8C,eAAe,KAAK,GAAG,EAAE,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB;IAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,8BAA8B,WAAW,iDAAiD,CAC3F,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,OAAO;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC1D,IAAI,EAAE,CAAC;IAEV,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,0BAA0B,WAAW,iDAAiD,CACvF,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tile-image.d.ts","sourceRoot":"","sources":["../../src/tools/tile-image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4CzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4I7D"}
1
+ {"version":3,"file":"tile-image.d.ts","sourceRoot":"","sources":["../../src/tools/tile-image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgDzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0J7D"}
@@ -24,6 +24,7 @@ Args:
24
24
  - filePath (string, required): Absolute or relative path to the image file
25
25
  - model (string, optional): Target vision model — ${modelList} (default: "${DEFAULT_MODEL}")
26
26
  - tileSize (number, optional): Override tile size in pixels. If omitted, uses the model's optimal default. Clamped to the model's max with a warning if exceeded.
27
+ - maxDimension (number, optional): Max dimension in px (256-65536). When set, the image is resized so its longest side fits within this value before tiling. Reduces token consumption for large images. No-op if the image is already within bounds. Defaults to 10000px. Set to 0 to disable auto-downscaling.
27
28
  - outputDir (string, optional): Custom output directory for tiles
28
29
 
29
30
  Returns:
@@ -36,6 +37,9 @@ Examples:
36
37
  - Tile for Claude (default): filePath="/path/to/screenshot.png"
37
38
  ${exampleLines}
38
39
  - Custom tile size: filePath="/path/to/image.png", tileSize=800
40
+ - Auto-downscale (default 10000px): images over 10000px on the longest side are automatically downscaled
41
+ - Custom downscale limit: filePath="/path/to/large-screenshot.png", maxDimension=2048
42
+ - Disable downscaling: filePath="/path/to/image.png", maxDimension=0
39
43
  - Custom output: filePath="/path/to/image.png", outputDir="/tmp/my-tiles"`;
40
44
  })();
41
45
  export function registerTileImageTool(server) {
@@ -49,7 +53,7 @@ export function registerTileImageTool(server) {
49
53
  idempotentHint: true,
50
54
  openWorldHint: false,
51
55
  },
52
- }, async ({ filePath, model, tileSize, outputDir }) => {
56
+ }, async ({ filePath, model, tileSize, maxDimension, outputDir }) => {
53
57
  try {
54
58
  const ext = path.extname(filePath).toLowerCase().replace(".", "");
55
59
  if (ext && !SUPPORTED_FORMATS.includes(ext)) {
@@ -77,7 +81,7 @@ export function registerTileImageTool(server) {
77
81
  }
78
82
  const basename = path.basename(filePath, path.extname(filePath));
79
83
  const resolvedOutputDir = outputDir || path.join(path.dirname(path.resolve(filePath)), "tiles", basename);
80
- const result = await tileImage(filePath, effectiveTileSize, resolvedOutputDir, config.tokensPerTile);
84
+ const result = await tileImage(filePath, effectiveTileSize, resolvedOutputDir, config.tokensPerTile, maxDimension === 0 ? undefined : maxDimension);
81
85
  let previewPath;
82
86
  try {
83
87
  previewPath = await generatePreview(result, filePath, model);
@@ -86,12 +90,12 @@ export function registerTileImageTool(server) {
86
90
  const msg = previewError instanceof Error ? previewError.message : String(previewError);
87
91
  warnings.push(`Preview generation failed: ${msg}`);
88
92
  }
89
- const summaryLines = [
90
- `Tiled ${result.sourceImage.width}×${result.sourceImage.height} ${result.sourceImage.format} image for ${config.label}`,
91
- `→ ${result.grid.cols}×${result.grid.rows} grid = ${result.grid.totalTiles} tiles of ${result.grid.tileSize}px`,
92
- `→ Estimated tokens: ~${result.grid.estimatedTokens.toLocaleString()} (all tiles, ${config.tokensPerTile}/tile)`,
93
- `→ Saved to: ${result.outputDir}`,
94
- ];
93
+ const summaryLines = [];
94
+ if (result.resize) {
95
+ const r = result.resize;
96
+ summaryLines.push(`Downscaled from ${r.originalWidth}×${r.originalHeight} → ${r.resizedWidth}×${r.resizedHeight} (${r.scaleFactor}x) before tiling`);
97
+ }
98
+ summaryLines.push(`Tiled ${result.sourceImage.width}×${result.sourceImage.height} ${result.sourceImage.format} image for ${config.label}`, `→ ${result.grid.cols}×${result.grid.rows} grid = ${result.grid.totalTiles} tiles of ${result.grid.tileSize}px`, `→ Estimated tokens: ~${result.grid.estimatedTokens.toLocaleString()} (all tiles, ${config.tokensPerTile}/tile)`, `→ Saved to: ${result.outputDir}`);
95
99
  if (previewPath) {
96
100
  summaryLines.push(`→ Preview: preview.html (open in browser to visualize the grid)`);
97
101
  }
@@ -115,6 +119,9 @@ export function registerTileImageTool(server) {
115
119
  filePath: t.filePath,
116
120
  })),
117
121
  };
122
+ if (result.resize) {
123
+ structuredOutput.resize = result.resize;
124
+ }
118
125
  if (previewPath) {
119
126
  structuredOutput.previewPath = previewPath;
120
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tile-image.js","sourceRoot":"","sources":["../../src/tools/tile-image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile-image.js","sourceRoot":"","sources":["../../src/tools/tile-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjG,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE;IACnC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACzC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC,eAAe,cAAc,CAAC,CAAC,aAAa,cAAc,CAAC;IACjG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,GAAG,CACvE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,2CAA2C,CAAC,GAAG,CAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO;;WAEE,aAAa,CAAC,MAAM;EAC7B,UAAU;;;;qBAIS,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;sDAIK,SAAS,eAAe,aAAa;;;;;;;;;;;;;EAazF,YAAY;;;;;4EAK8D,CAAC;AAC7E,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE;QAC/D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClE,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAuC,CAAC,EAAE,CAAC;gBAChF,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,qCAAqC,GAAG,yBAAyB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;yBACtG;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAa,EAAE,CAAC;YAE9B,IAAI,iBAAiB,GAAG,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC;YAE3D,sEAAsE;YACtE,IAAI,iBAAiB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC3C,QAAQ,CAAC,IAAI,CACX,aAAa,iBAAiB,cAAc,MAAM,CAAC,KAAK,iBAAiB,MAAM,CAAC,WAAW,mBAAmB,MAAM,CAAC,WAAW,IAAI,CACrI,CAAC;gBACF,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;YACzC,CAAC;YACD,IAAI,iBAAiB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC3C,QAAQ,CAAC,IAAI,CACX,aAAa,iBAAiB,0BAA0B,MAAM,CAAC,WAAW,mBAAmB,MAAM,CAAC,WAAW,IAAI,CACpH,CAAC;gBACF,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;YACzC,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjE,MAAM,iBAAiB,GACrB,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAElF,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,CAAC,aAAa,EACpB,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAC9C,CAAC;YAEF,IAAI,WAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,WAAW,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACxF,QAAQ,CAAC,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,YAAY,GAAa,EAAE,CAAC;YAElC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACxB,YAAY,CAAC,IAAI,CACf,mBAAmB,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,cAAc,MAAM,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,WAAW,kBAAkB,CAClI,CAAC;YACJ,CAAC;YAED,YAAY,CAAC,IAAI,CACf,SAAS,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,cAAc,MAAM,CAAC,KAAK,EAAE,EACvH,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,MAAM,CAAC,IAAI,CAAC,UAAU,aAAa,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAC/G,wBAAwB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,gBAAgB,MAAM,CAAC,aAAa,QAAQ,EAChH,eAAe,MAAM,CAAC,SAAS,EAAE,CAClC,CAAC;YAEF,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,CAAC,IAAI,CACf,iEAAiE,CAClE,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtB,YAAY,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,YAAY,CAAC,IAAI,CACf,EAAE,EACF,sCAAsC,MAAM,CAAC,SAAS,iCAAiC,EACvF,wBAAwB,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,yCAAyC,CAC5F,CAAC;YAEF,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,gBAAgB,GAA4B;gBAChD,KAAK;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9B,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACzB,UAAU,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE;oBACpC,QAAQ,EAAE,CAAC,CAAC,QAAQ;iBACrB,CAAC,CAAC;aACJ,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1C,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,gBAAgB,CAAC,WAAW,GAAG,WAAW,CAAC;YAC7C,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACvC,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE;oBACxC;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;qBAChD;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,uBAAuB,OAAO,EAAE;qBACvC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -23,10 +23,18 @@ export interface TileInfo {
23
23
  filename: string;
24
24
  filePath: string;
25
25
  }
26
+ export interface ResizeInfo {
27
+ originalWidth: number;
28
+ originalHeight: number;
29
+ resizedWidth: number;
30
+ resizedHeight: number;
31
+ scaleFactor: number;
32
+ }
26
33
  export interface TileImageResult {
27
34
  sourceImage: ImageMetadata;
28
35
  grid: TileGridInfo;
29
36
  outputDir: string;
30
37
  tiles: TileInfo[];
38
+ resize?: ResizeInfo;
31
39
  }
32
40
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "image-tiler-mcp-server",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "description": "MCP server that splits large images into optimally-sized tiles for LLM vision (Claude, OpenAI, Gemini, Gemini 3)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",