@markusylisiurunen/tau 0.2.34 → 0.2.35
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,5 +1,6 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
2
|
import { fileTypeFromBuffer } from "file-type";
|
|
3
|
+
import sharp from "sharp";
|
|
3
4
|
import { z } from "zod";
|
|
4
5
|
import { createToolError } from "../utils/messages.js";
|
|
5
6
|
import { formatBytes } from "../utils/truncate.js";
|
|
@@ -9,7 +10,13 @@ const VIEW_IMAGE_DESCRIPTION = [
|
|
|
9
10
|
"Only use this tool when the user explicitly requests viewing or analyzing an image.",
|
|
10
11
|
].join(" ");
|
|
11
12
|
const VIEW_IMAGE_PATH_DESCRIPTION = "Path to the image file to view.";
|
|
12
|
-
const
|
|
13
|
+
const VIEW_IMAGE_READ_MAX_BYTES = 50 * 1024 * 1024;
|
|
14
|
+
const VIEW_IMAGE_MODEL_MAX_BYTES = 2.5 * 1024 * 1024;
|
|
15
|
+
const VIEW_IMAGE_MAX_DIMENSION_PX = 2048;
|
|
16
|
+
const VIEW_IMAGE_DIMENSION_STEPS = [
|
|
17
|
+
2048, 1920, 1792, 1664, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512,
|
|
18
|
+
];
|
|
19
|
+
const VIEW_IMAGE_LOSSY_QUALITY_STEPS = [95, 90, 85, 80, 75];
|
|
13
20
|
const SUPPORTED_IMAGE_TYPES = ["image/jpeg", "image/png", "image/webp"];
|
|
14
21
|
export const VIEW_IMAGE_TOOL = {
|
|
15
22
|
name: TOOL_NAME_VIEW_IMAGE,
|
|
@@ -25,17 +32,118 @@ function parseViewImageArgs(raw) {
|
|
|
25
32
|
const parsed = viewImageArgsSchema.safeParse(raw);
|
|
26
33
|
return parsed.success ? parsed.data : { path: "" };
|
|
27
34
|
}
|
|
35
|
+
function isSupportedImageType(mimeType) {
|
|
36
|
+
return mimeType ? SUPPORTED_IMAGE_TYPES.includes(mimeType) : false;
|
|
37
|
+
}
|
|
38
|
+
function buildDimensionCaps(maxDimension) {
|
|
39
|
+
const caps = new Set([maxDimension]);
|
|
40
|
+
for (const step of VIEW_IMAGE_DIMENSION_STEPS) {
|
|
41
|
+
if (step < maxDimension) {
|
|
42
|
+
caps.add(step);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return [...caps];
|
|
46
|
+
}
|
|
47
|
+
function buildLossyEncodePlans(mimeType) {
|
|
48
|
+
return VIEW_IMAGE_LOSSY_QUALITY_STEPS.map((quality) => ({ mimeType, quality }));
|
|
49
|
+
}
|
|
50
|
+
function buildEncodePlans(args) {
|
|
51
|
+
const { sourceMimeType, hasAlpha } = args;
|
|
52
|
+
const plans = [];
|
|
53
|
+
if (sourceMimeType === "image/png") {
|
|
54
|
+
plans.push({ mimeType: "image/png" });
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
plans.push(...buildLossyEncodePlans(sourceMimeType));
|
|
58
|
+
}
|
|
59
|
+
if (sourceMimeType !== "image/webp") {
|
|
60
|
+
plans.push({ mimeType: "image/webp", quality: 100, lossless: true });
|
|
61
|
+
plans.push(...buildLossyEncodePlans("image/webp"));
|
|
62
|
+
}
|
|
63
|
+
if (!hasAlpha && sourceMimeType !== "image/jpeg") {
|
|
64
|
+
plans.push(...buildLossyEncodePlans("image/jpeg"));
|
|
65
|
+
}
|
|
66
|
+
return plans;
|
|
67
|
+
}
|
|
68
|
+
async function encodeImageCandidate(args) {
|
|
69
|
+
const { content, maxDimension, plan } = args;
|
|
70
|
+
const pipeline = sharp(content).resize({
|
|
71
|
+
width: maxDimension,
|
|
72
|
+
height: maxDimension,
|
|
73
|
+
fit: "inside",
|
|
74
|
+
withoutEnlargement: true,
|
|
75
|
+
});
|
|
76
|
+
if (plan.mimeType === "image/jpeg") {
|
|
77
|
+
return {
|
|
78
|
+
mimeType: "image/jpeg",
|
|
79
|
+
content: await pipeline.jpeg({ quality: plan.quality }).toBuffer(),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (plan.mimeType === "image/png") {
|
|
83
|
+
return {
|
|
84
|
+
mimeType: "image/png",
|
|
85
|
+
content: await pipeline.png({ compressionLevel: 9 }).toBuffer(),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
mimeType: "image/webp",
|
|
90
|
+
content: await pipeline
|
|
91
|
+
.webp({
|
|
92
|
+
quality: plan.quality,
|
|
93
|
+
lossless: plan.lossless,
|
|
94
|
+
})
|
|
95
|
+
.toBuffer(),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
async function prepareImageForModel(content, sourceMimeType) {
|
|
99
|
+
const metadata = await sharp(content).metadata();
|
|
100
|
+
const width = metadata.width;
|
|
101
|
+
const height = metadata.height;
|
|
102
|
+
if (!width || !height) {
|
|
103
|
+
throw new Error("failed to read image dimensions.");
|
|
104
|
+
}
|
|
105
|
+
if (width <= VIEW_IMAGE_MAX_DIMENSION_PX &&
|
|
106
|
+
height <= VIEW_IMAGE_MAX_DIMENSION_PX &&
|
|
107
|
+
content.byteLength <= VIEW_IMAGE_MODEL_MAX_BYTES) {
|
|
108
|
+
return { content, mimeType: sourceMimeType };
|
|
109
|
+
}
|
|
110
|
+
const maxDimension = Math.min(VIEW_IMAGE_MAX_DIMENSION_PX, Math.max(width, height));
|
|
111
|
+
const dimensionCaps = buildDimensionCaps(maxDimension);
|
|
112
|
+
const encodePlans = buildEncodePlans({
|
|
113
|
+
sourceMimeType,
|
|
114
|
+
hasAlpha: metadata.hasAlpha ?? false,
|
|
115
|
+
});
|
|
116
|
+
let smallest;
|
|
117
|
+
for (const dimensionCap of dimensionCaps) {
|
|
118
|
+
for (const plan of encodePlans) {
|
|
119
|
+
const candidate = await encodeImageCandidate({
|
|
120
|
+
content,
|
|
121
|
+
maxDimension: dimensionCap,
|
|
122
|
+
plan,
|
|
123
|
+
});
|
|
124
|
+
if (!smallest || candidate.content.byteLength < smallest.content.byteLength) {
|
|
125
|
+
smallest = candidate;
|
|
126
|
+
}
|
|
127
|
+
if (candidate.content.byteLength <= VIEW_IMAGE_MODEL_MAX_BYTES) {
|
|
128
|
+
return candidate;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const targetSizeLabel = formatBytes(VIEW_IMAGE_MODEL_MAX_BYTES);
|
|
133
|
+
if (smallest) {
|
|
134
|
+
throw new Error(`image could not be reduced below ${targetSizeLabel} (best effort produced ${formatBytes(smallest.content.byteLength)}).`);
|
|
135
|
+
}
|
|
136
|
+
throw new Error(`image could not be reduced below ${targetSizeLabel}.`);
|
|
137
|
+
}
|
|
28
138
|
function buildViewImageUiText(args) {
|
|
29
|
-
const { mimeType,
|
|
30
|
-
const sizeLabel = formatBytes(bytes);
|
|
31
|
-
const summary = sizeLabel;
|
|
139
|
+
const { mimeType, fullText } = args;
|
|
32
140
|
const trimmedFullText = fullText.trimEnd();
|
|
33
141
|
const fullLines = trimmedFullText
|
|
34
142
|
? trimmedFullText.split("\n").map((text) => ({ text }))
|
|
35
|
-
: [{ text:
|
|
143
|
+
: [{ text: mimeType }];
|
|
36
144
|
return {
|
|
37
145
|
previewLines: [],
|
|
38
|
-
statusLine:
|
|
146
|
+
statusLine: mimeType,
|
|
39
147
|
fullLines,
|
|
40
148
|
};
|
|
41
149
|
}
|
|
@@ -60,38 +168,39 @@ export function createViewImageToolDefinition(backend) {
|
|
|
60
168
|
return blocked("missing 'path' parameter.");
|
|
61
169
|
}
|
|
62
170
|
try {
|
|
63
|
-
const { path: resolvedPath, content
|
|
64
|
-
maxBytes:
|
|
171
|
+
const { path: resolvedPath, content } = await backend.readFileBinary(path, {
|
|
172
|
+
maxBytes: VIEW_IMAGE_READ_MAX_BYTES,
|
|
65
173
|
});
|
|
66
174
|
const detected = await fileTypeFromBuffer(content);
|
|
67
175
|
const mimeType = detected?.mime;
|
|
68
|
-
|
|
69
|
-
? SUPPORTED_IMAGE_TYPES.includes(mimeType)
|
|
70
|
-
: false;
|
|
71
|
-
if (!isSupported || !mimeType) {
|
|
176
|
+
if (!isSupportedImageType(mimeType)) {
|
|
72
177
|
return blocked(`unsupported image format. supported: ${SUPPORTED_IMAGE_TYPES.join(", ")}.`);
|
|
73
178
|
}
|
|
74
|
-
const
|
|
75
|
-
const
|
|
179
|
+
const encodedImage = await prepareImageForModel(content, mimeType);
|
|
180
|
+
const data = encodedImage.content.toString("base64");
|
|
181
|
+
const resultText = `viewed ${resolvedPath} (${encodedImage.mimeType})`;
|
|
76
182
|
const toolResult = {
|
|
77
183
|
role: "toolResult",
|
|
78
184
|
toolCallId: toolCall.id,
|
|
79
185
|
toolName: toolCall.name,
|
|
80
186
|
content: [
|
|
81
187
|
{ type: "text", text: resultText },
|
|
82
|
-
{ type: "image", data, mimeType },
|
|
188
|
+
{ type: "image", data, mimeType: encodedImage.mimeType },
|
|
83
189
|
],
|
|
84
190
|
isError: false,
|
|
85
191
|
timestamp: Date.now(),
|
|
86
192
|
};
|
|
87
|
-
const uiText = buildViewImageUiText({
|
|
193
|
+
const uiText = buildViewImageUiText({
|
|
194
|
+
mimeType: encodedImage.mimeType,
|
|
195
|
+
fullText: resultText,
|
|
196
|
+
});
|
|
88
197
|
const uiEvent = {
|
|
89
198
|
type: "view_image_success",
|
|
90
199
|
toolCallId: toolCall.id,
|
|
91
200
|
path: resolvedPath,
|
|
92
201
|
headerTarget: resolvedPath,
|
|
93
|
-
mimeType,
|
|
94
|
-
bytes,
|
|
202
|
+
mimeType: encodedImage.mimeType,
|
|
203
|
+
bytes: encodedImage.content.byteLength,
|
|
95
204
|
uiText,
|
|
96
205
|
};
|
|
97
206
|
return { kind: "single", toolResult, uiEvent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view_image.js","sourceRoot":"","sources":["../../../src/core/tools/view_image.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,sBAAsB,GAAG;IAC7B,gDAAgD;IAChD,qFAAqF;CACtF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,2BAA2B,GAAG,iCAAiC,CAAC;AAEtE,MAAM,
|
|
1
|
+
{"version":3,"file":"view_image.js","sourceRoot":"","sources":["../../../src/core/tools/view_image.ts"],"names":[],"mappings":"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"}
|
package/dist/core/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const APP_VERSION = "0.2.
|
|
1
|
+
export const APP_VERSION = "0.2.35";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@markusylisiurunen/tau",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.35",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"tau": "./dist/main.js"
|
|
@@ -26,13 +26,14 @@
|
|
|
26
26
|
"@sinclair/typebox": "^0.34.48",
|
|
27
27
|
"chalk": "^5.6.2",
|
|
28
28
|
"file-type": "^21.3.0",
|
|
29
|
+
"sharp": "^0.34.5",
|
|
29
30
|
"strip-ansi": "^7.1.2",
|
|
30
31
|
"yaml": "^2.8.2",
|
|
31
32
|
"zod": "^4.3.6"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
|
-
"@biomejs/biome": "2.3.
|
|
35
|
-
"@types/node": "^24.10.
|
|
35
|
+
"@biomejs/biome": "2.3.15",
|
|
36
|
+
"@types/node": "^24.10.13",
|
|
36
37
|
"colorjs.io": "^0.6.1",
|
|
37
38
|
"prettier": "^3.8.1",
|
|
38
39
|
"typescript": "^5.9.3",
|