From ee5f660572676edf829faca3a238796468ab2c12 Mon Sep 17 00:00:00 2001 From: Ku6epXBOCTuK Date: Sat, 12 Sep 2026 14:43:33 +0500 Subject: [PATCH] feat: add files tool result --- web/src/lib/registry/index.ts | 2 ++ web/src/lib/registry/types.ts | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/web/src/lib/registry/index.ts b/web/src/lib/registry/index.ts index 2add801..9d5de1b 100644 --- a/web/src/lib/registry/index.ts +++ b/web/src/lib/registry/index.ts @@ -23,6 +23,8 @@ export type { ToolContext, ToolEntry, ToolResult, + ToolImageFile, + FileResult, } from "./types"; export const TOOLS: ToolEntry[] = [ diff --git a/web/src/lib/registry/types.ts b/web/src/lib/registry/types.ts index 299b1dd..5c69cdb 100644 --- a/web/src/lib/registry/types.ts +++ b/web/src/lib/registry/types.ts @@ -19,11 +19,15 @@ export const INPUT_MODES = { } as const; export type InputMode = (typeof INPUT_MODES)[keyof typeof INPUT_MODES]; -/** Тип результата: картинка (по умолчанию), большой текст или короткий вердикт. */ +/** + * Тип результата: картинка (по умолчанию), большой текст, короткий вердикт + * или набор файлов (1 → many, скачивается zip-архивом). + */ export const RESULT_KINDS = { image: "image", text: "text", verdict: "verdict", + files: "files", } as const; export type ResultKind = (typeof RESULT_KINDS)[keyof typeof RESULT_KINDS]; @@ -34,7 +38,18 @@ export interface ToolContext

{ text?: string; } -export type ToolResult = PixelImage | string; +/** Один файл мультифайлового результата (1 → many). */ +export interface ToolImageFile { + name: string; + image: PixelImage; +} + +/** Результат-набор файлов; скачивается zip-архивом. */ +export interface FileResult { + files: ToolImageFile[]; +} + +export type ToolResult = PixelImage | string | FileResult; /** * Инструмент нового registry: полностью типизирован на `Params`, схема —