@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.
- package/dist/ExecutorRegistry.d.ts.map +1 -1
- package/dist/ExecutorRegistry.js +2 -1
- package/dist/ExecutorRegistry.js.map +1 -1
- package/dist/implementations/file/ReadImageTool.d.ts +27 -0
- package/dist/implementations/file/ReadImageTool.d.ts.map +1 -0
- package/dist/implementations/file/ReadImageTool.js +92 -0
- package/dist/implementations/file/ReadImageTool.js.map +1 -0
- package/dist/implementations/file/imageFile.d.ts +35 -0
- package/dist/implementations/file/imageFile.d.ts.map +1 -0
- package/dist/implementations/file/imageFile.js +111 -0
- package/dist/implementations/file/imageFile.js.map +1 -0
- package/dist/implementations/file/index.d.ts +2 -0
- package/dist/implementations/file/index.d.ts.map +1 -1
- package/dist/implementations/file/index.js +2 -0
- package/dist/implementations/file/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -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;
|
|
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"}
|
package/dist/ExecutorRegistry.js
CHANGED
|
@@ -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":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO;AACL,kBAAkB;AAClB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,QAAQ,GACT,MAAM,iCAAiC,CAAC;AAEzC,OAAO;AACL,oBAAoB;AACpB,QAAQ,EACR,QAAQ,GACT,MAAM,mCAAmC,CAAC;AAE3C,OAAO;AACL,uBAAuB;AACvB,SAAS,EACT,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAE9C,OAAO;AACL,iBAAiB;AACjB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,OAAO;AACL,yBAAyB;AACzB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO;AACL,sBAAsB;AACtB,gBAAgB,GACjB,MAAM,qCAAqC,CAAC;AAE7C,OAAO;AACL,wBAAwB;AACxB,oCAAoC,EACpC,qCAAqC,EACrC,kCAAkC,EAClC,oCAAoC,EACpC,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAE/C,OAAO;AACL,qDAAqD;AACrD,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO;AACL,uBAAuB;AACvB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAE/C,OAAO;AACL,mBAAmB;AACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO;AACL,yCAAyC;AACzC,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO;AACL,kBAAkB;AAClB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IACnB,SAAS,CAAyC;IAClD,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACK,oBAAoB;QAC1B,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEzC,oBAAoB;QACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEzC,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9C,iBAAiB;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpD,mDAAmD;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjD,sBAAsB;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjD,wBAAwB;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,CAAC,IAAI,qCAAqC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,IAAI,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAExD,qDAAqD;QACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAE7D,iBAAiB;QACjB,yFAAyF;QACzF,+BAA+B;QAE/B,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,2BAA2B,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;QAEzC,mBAAmB;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpD,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAErD,yCAAyC;QACzC,0DAA0D;QAC1D,iEAAiE;QACjE,IAAI,CAAC,QAAQ,CAAC,IAAI,0BAA0B,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,QAAQ,CAAC,IAAI,2BAA2B,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5G,iDAAiD;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;QAErC,uCAAuC;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;QAErC,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,QAAmC;QAClD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAgC;QAC3C,kEAAkE;QAClE,+EAA+E;QAC/E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,MAAW,EACX,MAAmB,EACnB,YAAuC;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,sBAAsB;QACtB,MAAM,eAAe,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,KAAK,eAAe,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,mBAAmB;QACnB,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAsB;IAC3D,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
|
|
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.
|
|
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.
|
|
34
|
-
"@nexus-cortex/types": "4.
|
|
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",
|