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`, схема —