/** * Supervisor read surface. Every tool is bounded (hard row caps, truncated * text) and answers with ids a person can click on the board, so the model * can explain a card's state without ever touching the database itself. */ import type { MastraDBMessage } from '@mastra/core/agent/message-list'; import type { BoardRegistry } from '../boards/index.js'; import type { IntegrationTools } from '../integrations/base.js'; import type { AuditStorage } from '../storage/domains/audit/base.js'; import type { WorkItemCommentsStorage } from '../storage/domains/comments/base.js'; import type { WorkItemsStorage } from '../storage/domains/work-items/base.js'; import type { FactoryHealthThresholds } from './health.js'; export interface SupervisorScope { orgId: string; factoryProjectId: string; } export interface SupervisorMessageReader { listMessages(input: { threadId: string; resourceId?: string; page: number; perPage: number; orderBy: { field: 'createdAt'; direction: 'ASC' | 'DESC'; }; }): Promise<{ messages: MastraDBMessage[]; hasMore: boolean; }>; } export interface SupervisorReadDependencies { scope: SupervisorScope; workItems: WorkItemsStorage; boards: BoardRegistry; comments: WorkItemCommentsStorage; audit: AuditStorage; messageReader?: SupervisorMessageReader; healthThresholds?: FactoryHealthThresholds; now?: () => Date; } export declare function createFactorySupervisorReadTools(deps: SupervisorReadDependencies): IntegrationTools; //# sourceMappingURL=read-tools.d.ts.map