fix(agents): make image sanitization dimension configurable

This commit is contained in:
Peter Steinberger
2026-02-18 00:43:31 +01:00
parent 5ee79f80eb
commit b05e89e5e6
21 changed files with 156 additions and 45 deletions

View File

@@ -1,5 +1,6 @@
import fs from "node:fs/promises";
import type { AgentTool, AgentToolResult } from "@mariozechner/pi-agent-core";
import fs from "node:fs/promises";
import type { ImageSanitizationLimits } from "../image-sanitization.js";
import { detectMime } from "../../media/mime.js";
import { sanitizeToolResultImages } from "../tool-images.js";
@@ -214,6 +215,7 @@ export async function imageResult(params: {
mimeType: string;
extraText?: string;
details?: Record<string, unknown>;
imageSanitization?: ImageSanitizationLimits;
}): Promise<AgentToolResult<unknown>> {
const content: AgentToolResult<unknown>["content"] = [
{
@@ -230,7 +232,7 @@ export async function imageResult(params: {
content,
details: { path: params.path, ...params.details },
};
return await sanitizeToolResultImages(result, params.label);
return await sanitizeToolResultImages(result, params.label, params.imageSanitization);
}
export async function imageResultFromFile(params: {
@@ -238,6 +240,7 @@ export async function imageResultFromFile(params: {
path: string;
extraText?: string;
details?: Record<string, unknown>;
imageSanitization?: ImageSanitizationLimits;
}): Promise<AgentToolResult<unknown>> {
const buf = await fs.readFile(params.path);
const mimeType = (await detectMime({ buffer: buf.slice(0, 256) })) ?? "image/png";
@@ -248,5 +251,6 @@ export async function imageResultFromFile(params: {
mimeType,
extraText: params.extraText,
details: params.details,
imageSanitization: params.imageSanitization,
});
}