import type { BoxRow, InsertBoxData, ThreadMessage } from './box.types'; export interface IBoxStorage { listBoxes(threadId: string): BoxRow[]; findBox(threadId: string, boxId: string): BoxRow | null; insertBox(threadId: string, data: InsertBoxData): BoxRow; getTaskPreview(taskId: string, maxLen: number): string; } export interface ITaskReader { getThreadMessages(threadId: string): ThreadMessage[]; } export interface ITokenizer { countTokens(text: string): number; } import type { BoxResponse } from './box.types'; export interface IBoxServiceReader { listBoxes(threadId: string): { boxes: BoxResponse[]; total: number; }; getBox(threadId: string, boxId: string): BoxResponse | null; }