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,6 +1,7 @@
import crypto from "node:crypto";
import type { AgentToolResult } from "@mariozechner/pi-agent-core";
import { Type } from "@sinclair/typebox";
import crypto from "node:crypto";
import type { OpenClawConfig } from "../../config/config.js";
import {
type CameraFacing,
cameraTempPath,
@@ -16,9 +17,9 @@ import {
writeScreenRecordToFile,
} from "../../cli/nodes-screen.js";
import { parseDurationMs } from "../../cli/parse-duration.js";
import type { OpenClawConfig } from "../../config/config.js";
import { imageMimeFromFormat } from "../../media/mime.js";
import { resolveSessionAgentId } from "../agent-scope.js";
import { resolveImageSanitizationLimits } from "../image-sanitization.js";
import { optionalStringEnum, stringEnum } from "../schema/typebox.js";
import { sanitizeToolResultImages } from "../tool-images.js";
import { type AnyAgentTool, jsonResult, readStringParam } from "./common.js";
@@ -100,6 +101,7 @@ export function createNodesTool(options?: {
sessionKey: options?.agentSessionKey,
config: options?.config,
});
const imageSanitization = resolveImageSanitizationLimits(options?.config);
return {
label: "Nodes",
name: "nodes",
@@ -250,7 +252,7 @@ export function createNodesTool(options?: {
}
const result: AgentToolResult<unknown> = { content, details };
return await sanitizeToolResultImages(result, "nodes:camera_snap");
return await sanitizeToolResultImages(result, "nodes:camera_snap", imageSanitization);
}
case "camera_list": {
const node = readStringParam(params, "node", { required: true });