@nexus-cortex/executors 4.70.0 → 4.71.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":"ExecutorRegistry.d.ts","sourceRoot":"","sources":["../src/ExecutorRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAgGjG;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAMlC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAqF5B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,SAAS;IAIpE;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAMpD;;;;OAIG;IACH,SAAS,IAAI,cAAc;IAI3B;;;;;;;;;OASG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,UAAU,CAAC;CAevB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAE/E"}
1
+ {"version":3,"file":"ExecutorRegistry.d.ts","sourceRoot":"","sources":["../src/ExecutorRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAiGjG;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAMlC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAsF5B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,SAAS;IAIpE;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAMpD;;;;OAIG;IACH,SAAS,IAAI,cAAc;IAI3B;;;;;;;;;OASG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,UAAU,CAAC;CAevB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAE/E"}
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import {
13
13
  // File operations
14
- ReadFileTool, WriteFileTool, WriteBinaryTool, EditTool, } from './implementations/file/index.js';
14
+ ReadFileTool, WriteFileTool, WriteBinaryTool, ReadImageTool, EditTool, } from './implementations/file/index.js';
15
15
  import {
16
16
  // Search operations
17
17
  GlobTool, GrepTool, } from './implementations/search/index.js';
@@ -70,6 +70,7 @@ export class ExecutorRegistry {
70
70
  this.register(new ReadFileTool(this.config));
71
71
  this.register(new WriteFileTool(this.config));
72
72
  this.register(new WriteBinaryTool(this.config));
73
+ this.register(new ReadImageTool(this.config));
73
74
  this.register(new EditTool(this.config));
74
75
  // Search operations
75
76
  this.register(new GlobTool(this.config));
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutorRegistry.js","sourceRoot":"","sources":["../src/ExecutorRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExecutorRegistry.js","sourceRoot":"","sources":["../src/ExecutorRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ReadImage Tool Executor — the READ half of the binary bridge (backlog
3
+ * item 7; WriteBinaryTool is the pre-existing write half).
4
+ *
5
+ * Loads a workspace image (PNG/JPEG/GIF/WebP, magic-byte-sniffed) and returns
6
+ * a TEXT summary while carrying the encoded payload in result metadata
7
+ * (`imagePayload`). The ORCHESTRATOR consumes that metadata: it strips it
8
+ * from the persisted tool_result and injects the image as a canonical image
9
+ * block on a synthetic USER message (providers reject image parts on tool
10
+ * messages; DeepSeek accepts them on user messages only).
11
+ *
12
+ * Only offered to vision-capable model cards (ModelConfig.vision) — the
13
+ * orchestrator filters it from the tool surface otherwise.
14
+ */
15
+ import { BaseTool, type ToolResult } from '../../base/index.js';
16
+ import type { ExecutorConfig } from '../../base/ToolRegistry.js';
17
+ export interface ReadImageToolParams {
18
+ file_path: string;
19
+ }
20
+ export declare class ReadImageTool extends BaseTool<ReadImageToolParams, ToolResult> {
21
+ private config;
22
+ constructor(config: ExecutorConfig);
23
+ validateToolParams(params: ReadImageToolParams): string | null;
24
+ execute(params: ReadImageToolParams, signal: AbortSignal): Promise<ToolResult>;
25
+ getDescription(params: ReadImageToolParams): string;
26
+ }
27
+ //# sourceMappingURL=ReadImageTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadImageTool.d.ts","sourceRoot":"","sources":["../../../src/implementations/file/ReadImageTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAc,SAAQ,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC;IAC9D,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAkB1C,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI;IASxD,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA4CpF,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;CAGpD"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * ReadImage Tool Executor — the READ half of the binary bridge (backlog
3
+ * item 7; WriteBinaryTool is the pre-existing write half).
4
+ *
5
+ * Loads a workspace image (PNG/JPEG/GIF/WebP, magic-byte-sniffed) and returns
6
+ * a TEXT summary while carrying the encoded payload in result metadata
7
+ * (`imagePayload`). The ORCHESTRATOR consumes that metadata: it strips it
8
+ * from the persisted tool_result and injects the image as a canonical image
9
+ * block on a synthetic USER message (providers reject image parts on tool
10
+ * messages; DeepSeek accepts them on user messages only).
11
+ *
12
+ * Only offered to vision-capable model cards (ModelConfig.vision) — the
13
+ * orchestrator filters it from the tool surface otherwise.
14
+ */
15
+ import fs from 'fs';
16
+ import { BaseTool } from '../../base/index.js';
17
+ import { SchemaValidator } from '../../utils/SchemaValidator.js';
18
+ import { makeRelative, resolveFilePath, fileExists } from '../../utils/FileUtils.js';
19
+ import { toImagePayload, resolveDownscaleThreshold, downscaleImageFile } from './imageFile.js';
20
+ import { FileReadTracker } from './EditTool.js';
21
+ export class ReadImageTool extends BaseTool {
22
+ config;
23
+ constructor(config) {
24
+ super('ReadImage', 'ReadImage', 'Load an image file (PNG/JPEG/GIF/WebP) so you can SEE it. The image is attached to the conversation as visual input on the next message.', {
25
+ type: 'object',
26
+ properties: {
27
+ file_path: {
28
+ type: 'string',
29
+ description: 'Path to the image file (absolute, or relative to the working directory).',
30
+ },
31
+ },
32
+ required: ['file_path'],
33
+ });
34
+ this.config = config;
35
+ }
36
+ validateToolParams(params) {
37
+ const schemaError = SchemaValidator.validate(this.parameterSchema, params);
38
+ if (schemaError)
39
+ return `Parameter validation failed: ${schemaError}`;
40
+ const filePath = resolveFilePath(params.file_path, this.config.workingDirectory);
41
+ params.file_path = filePath;
42
+ if (!fileExists(filePath))
43
+ return `File not found: ${filePath}`;
44
+ return null;
45
+ }
46
+ async execute(params, signal) {
47
+ const startTime = Date.now();
48
+ const validationError = this.validateToolParams(params);
49
+ if (validationError)
50
+ return this.createErrorResult(validationError);
51
+ if (signal.aborted)
52
+ return this.createErrorResult('Cancelled before start.');
53
+ try {
54
+ let buf = await fs.promises.readFile(params.file_path);
55
+ // Downscale-at-ingest (item 7 addendum): the provider resizes to
56
+ // ~800×800 anyway, so shrinking large originals locally is lossless to
57
+ // the model and cuts the per-turn base64 re-upload ~100×. Best-effort:
58
+ // no converter available → original passes through (hard cap enforced
59
+ // by toImagePayload).
60
+ let downscaled = false;
61
+ const threshold = resolveDownscaleThreshold();
62
+ if (threshold !== null && buf.length > threshold) {
63
+ const smaller = await downscaleImageFile(params.file_path);
64
+ if (smaller && smaller.length < buf.length) {
65
+ buf = smaller;
66
+ downscaled = true;
67
+ }
68
+ }
69
+ const payload = toImagePayload(buf); // throws model-actionable errors
70
+ const relativePath = makeRelative(params.file_path, this.config.workingDirectory);
71
+ // The bash channel proves nothing visual, but loading the image IS a
72
+ // read of the file — register it (frame coherence, item 6 semantics).
73
+ FileReadTracker.markAsRead(params.file_path);
74
+ return this.createSuccessResult(`Loaded ${relativePath} (${payload.mediaType}, ${(payload.bytes / 1024).toFixed(0)} KB` +
75
+ `${downscaled ? ', downscaled to ~800px for transport — provider parity, no fidelity loss' : ''}). ` +
76
+ `The image is attached as visual input on the next user message — look at it there.`, {
77
+ executionTime: Date.now() - startTime,
78
+ // Consumed + STRIPPED by the orchestrator before session persist
79
+ // (the image rides the injected user message, not this metadata —
80
+ // no double-stored base64).
81
+ imagePayload: payload,
82
+ });
83
+ }
84
+ catch (error) {
85
+ return this.createErrorResult(`Cannot load image: ${error.message}`);
86
+ }
87
+ }
88
+ getDescription(params) {
89
+ return params?.file_path ? `Load image ${params.file_path}` : 'Load image';
90
+ }
91
+ }
92
+ //# sourceMappingURL=ReadImageTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadImageTool.js","sourceRoot":"","sources":["../../../src/implementations/file/ReadImageTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * imageFile — pure helpers for the ReadImage tool (backlog item 7, the
3
+ * image-path bridge). Validates a workspace image file by MAGIC BYTES (never
4
+ * trust the extension), enforces provider limits, and produces the base64
5
+ * payload + media type for an image content block.
6
+ *
7
+ * Provider envelope (DeepSeek vision, probe-verified 2026-08-25, the
8
+ * strictest current consumer): JPEG/PNG/GIF/WebP only; ≤32 MiB per inline
9
+ * image; images ride USER messages only; ~384 tokens per image after
10
+ * provider-side resize.
11
+ */
12
+ export interface ImagePayload {
13
+ mediaType: 'image/png' | 'image/jpeg' | 'image/gif' | 'image/webp';
14
+ base64: string;
15
+ bytes: number;
16
+ }
17
+ /** Default cap mirrors DeepSeek's 32 MiB inline-image limit. */
18
+ export declare const MAX_IMAGE_BYTES: number;
19
+ /** Sniff the image format from magic bytes. Returns null when the buffer is
20
+ * not one of the four supported formats. */
21
+ export declare function sniffImageMediaType(buf: Buffer): ImagePayload['mediaType'] | null;
22
+ /** Validate + encode an image buffer. Throws with a model-actionable message
23
+ * on unsupported format or size — the tool surfaces it verbatim. */
24
+ export declare function toImagePayload(buf: Buffer, maxBytes?: number): ImagePayload;
25
+ /** Above this, ReadImage attempts a local downscale before encoding.
26
+ * Env CORTEX_IMAGE_DOWNSCALE_BYTES overrides; 'off' disables. */
27
+ export declare function resolveDownscaleThreshold(env?: NodeJS.ProcessEnv): number | null;
28
+ /**
29
+ * Best-effort downscale of an image file to fit in maxDim×maxDim (provider
30
+ * parity: 800). Writes the result to a temp file and returns its buffer, or
31
+ * null when no converter is available / conversion fails — caller then uses
32
+ * the original bytes. Never throws.
33
+ */
34
+ export declare function downscaleImageFile(srcPath: string, maxDim?: number): Promise<Buffer | null>;
35
+ //# sourceMappingURL=imageFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageFile.d.ts","sourceRoot":"","sources":["../../../src/implementations/file/imageFile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gEAAgE;AAChE,eAAO,MAAM,eAAe,QAAmB,CAAC;AAEhD;6CAC6C;AAC7C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAmBjF;AAED;qEACqE;AACrE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAwB,GAAG,YAAY,CAiB5F;AAaD;kEACkE;AAClE,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAK7F;AAQD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,MAAM,SAAM,GACX,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2BxB"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * imageFile — pure helpers for the ReadImage tool (backlog item 7, the
3
+ * image-path bridge). Validates a workspace image file by MAGIC BYTES (never
4
+ * trust the extension), enforces provider limits, and produces the base64
5
+ * payload + media type for an image content block.
6
+ *
7
+ * Provider envelope (DeepSeek vision, probe-verified 2026-08-25, the
8
+ * strictest current consumer): JPEG/PNG/GIF/WebP only; ≤32 MiB per inline
9
+ * image; images ride USER messages only; ~384 tokens per image after
10
+ * provider-side resize.
11
+ */
12
+ /** Default cap mirrors DeepSeek's 32 MiB inline-image limit. */
13
+ export const MAX_IMAGE_BYTES = 32 * 1024 * 1024;
14
+ /** Sniff the image format from magic bytes. Returns null when the buffer is
15
+ * not one of the four supported formats. */
16
+ export function sniffImageMediaType(buf) {
17
+ if (buf.length >= 8 &&
18
+ buf[0] === 0x89 && buf[1] === 0x50 && buf[2] === 0x4e && buf[3] === 0x47 &&
19
+ buf[4] === 0x0d && buf[5] === 0x0a && buf[6] === 0x1a && buf[7] === 0x0a) {
20
+ return 'image/png';
21
+ }
22
+ if (buf.length >= 3 && buf[0] === 0xff && buf[1] === 0xd8 && buf[2] === 0xff) {
23
+ return 'image/jpeg';
24
+ }
25
+ if (buf.length >= 6) {
26
+ const sig = buf.subarray(0, 6).toString('latin1');
27
+ if (sig === 'GIF87a' || sig === 'GIF89a')
28
+ return 'image/gif';
29
+ }
30
+ if (buf.length >= 12 &&
31
+ buf.subarray(0, 4).toString('latin1') === 'RIFF' &&
32
+ buf.subarray(8, 12).toString('latin1') === 'WEBP') {
33
+ return 'image/webp';
34
+ }
35
+ return null;
36
+ }
37
+ /** Validate + encode an image buffer. Throws with a model-actionable message
38
+ * on unsupported format or size — the tool surfaces it verbatim. */
39
+ export function toImagePayload(buf, maxBytes = MAX_IMAGE_BYTES) {
40
+ const mediaType = sniffImageMediaType(buf);
41
+ if (!mediaType) {
42
+ throw new Error('Not a supported image (magic-byte check): must be PNG, JPEG, GIF, or WebP. ' +
43
+ 'If this is a different format (e.g. BMP/TIFF/PDF), convert it first ' +
44
+ '(e.g. via Bash: python3 -c "from PIL import Image; Image.open(...).save(..., \'PNG\')").');
45
+ }
46
+ if (buf.length > maxBytes) {
47
+ throw new Error(`Image too large (${(buf.length / (1024 * 1024)).toFixed(1)} MiB > ` +
48
+ `${Math.floor(maxBytes / (1024 * 1024))} MiB limit). Downscale it first ` +
49
+ '(e.g. via Bash with PIL/ffmpeg), then ReadImage again.');
50
+ }
51
+ return { mediaType, base64: buf.toString('base64'), bytes: buf.length };
52
+ }
53
+ // ─── Downscale-at-ingest (item 7 addendum) ────────────────────────────────
54
+ // The provider resizes to ~800×800 anyway, so a local downscale to the same
55
+ // target is LOSSLESS to the model while cutting wire bytes ~100× (the base64
56
+ // re-uploads on every turn of the session). Opportunistic: PIL, then
57
+ // ImageMagick, else the original passes through (≤ the hard cap).
58
+ import { execFile } from 'child_process';
59
+ import { promises as fsp } from 'fs';
60
+ import * as os from 'os';
61
+ import * as pathMod from 'path';
62
+ /** Above this, ReadImage attempts a local downscale before encoding.
63
+ * Env CORTEX_IMAGE_DOWNSCALE_BYTES overrides; 'off' disables. */
64
+ export function resolveDownscaleThreshold(env = process.env) {
65
+ const raw = (env.CORTEX_IMAGE_DOWNSCALE_BYTES ?? '').trim().toLowerCase();
66
+ if (raw === 'off' || raw === 'never')
67
+ return null;
68
+ if (/^\d+$/.test(raw) && Number(raw) > 0)
69
+ return Number(raw);
70
+ return 2 * 1024 * 1024; // 2 MiB default
71
+ }
72
+ function run(cmd, args, timeoutMs = 20000) {
73
+ return new Promise((resolve) => {
74
+ execFile(cmd, args, { timeout: timeoutMs }, (err) => resolve(!err));
75
+ });
76
+ }
77
+ /**
78
+ * Best-effort downscale of an image file to fit in maxDim×maxDim (provider
79
+ * parity: 800). Writes the result to a temp file and returns its buffer, or
80
+ * null when no converter is available / conversion fails — caller then uses
81
+ * the original bytes. Never throws.
82
+ */
83
+ export async function downscaleImageFile(srcPath, maxDim = 800) {
84
+ const tmp = pathMod.join(os.tmpdir(), `cortex-img-${process.pid}-${Date.now().toString(36)}${pathMod.extname(srcPath) || '.png'}`);
85
+ try {
86
+ // 1. PIL (present in bench containers + most dev envs)
87
+ const pilScript = `from PIL import Image\n` +
88
+ `im = Image.open(${JSON.stringify(srcPath)})\n` +
89
+ `im.thumbnail((${maxDim}, ${maxDim}))\n` +
90
+ `im.save(${JSON.stringify(tmp)})\n`;
91
+ if (await run('python3', ['-c', pilScript])) {
92
+ const buf = await fsp.readFile(tmp).catch(() => null);
93
+ if (buf && buf.length > 0 && sniffImageMediaType(buf))
94
+ return buf;
95
+ }
96
+ // 2. ImageMagick
97
+ if (await run('convert', [srcPath, '-resize', `${maxDim}x${maxDim}>`, tmp])) {
98
+ const buf = await fsp.readFile(tmp).catch(() => null);
99
+ if (buf && buf.length > 0 && sniffImageMediaType(buf))
100
+ return buf;
101
+ }
102
+ return null;
103
+ }
104
+ catch {
105
+ return null;
106
+ }
107
+ finally {
108
+ fsp.unlink(tmp).catch(() => { });
109
+ }
110
+ }
111
+ //# sourceMappingURL=imageFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageFile.js","sourceRoot":"","sources":["../../../src/implementations/file/imageFile.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,7 @@
4
4
  export { ReadFileTool, type ReadFileToolParams } from './ReadFileTool.js';
5
5
  export { WriteFileTool, type WriteFileToolParams } from './WriteFileTool.js';
6
6
  export { WriteBinaryTool, type WriteBinaryToolParams } from './WriteBinaryTool.js';
7
+ export { ReadImageTool, type ReadImageToolParams } from './ReadImageTool.js';
8
+ export { sniffImageMediaType, toImagePayload, MAX_IMAGE_BYTES, type ImagePayload } from './imageFile.js';
7
9
  export { EditTool, type EditToolParams, FileReadTracker } from './EditTool.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/implementations/file/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/implementations/file/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -4,5 +4,7 @@
4
4
  export { ReadFileTool } from './ReadFileTool.js';
5
5
  export { WriteFileTool } from './WriteFileTool.js';
6
6
  export { WriteBinaryTool } from './WriteBinaryTool.js';
7
+ export { ReadImageTool } from './ReadImageTool.js';
8
+ export { sniffImageMediaType, toImagePayload, MAX_IMAGE_BYTES } from './imageFile.js';
7
9
  export { EditTool, FileReadTracker } from './EditTool.js';
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/implementations/file/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAA2B,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAA4B,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAA8B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAuB,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/implementations/file/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAA2B,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAA4B,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAA8B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,aAAa,EAA4B,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAqB,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAuB,eAAe,EAAE,MAAM,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-cortex/executors",
3
- "version": "4.70.0",
3
+ "version": "4.71.0",
4
4
  "description": "Tool execution layer for Nexus Cortex",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -30,8 +30,8 @@
30
30
  "dependencies": {
31
31
  "@google/genai": "^1.27.0",
32
32
  "@modelcontextprotocol/sdk": "^1.20.2",
33
- "@nexus-cortex/core": "4.70.0",
34
- "@nexus-cortex/types": "4.70.0",
33
+ "@nexus-cortex/core": "4.71.0",
34
+ "@nexus-cortex/types": "4.71.0",
35
35
  "@types/diff": "^7.0.2",
36
36
  "ajv": "^8.12.0",
37
37
  "diff": "^8.0.2",