/** * Agent-to-Agent Protocol: comunicação estruturada entre tarefas. * * A arquitetura proíbe explicitamente a "colmeia de agentes" (A manda texto * longo para B, B manda texto longo para C). Quando uma tarefa precisa falar * com outra, ela emite um objeto tipado com referência a artefato, e não uma * cópia do conteúdo. * * Este módulo define esses objetos e o parsing tolerante da crítica: o crítico * é um modelo, então a saída dele chega como texto e precisa ser normalizada * de forma determinística antes de virar decisão de runtime. */ export type AgentMessageType = 'task' | 'result' | 'critique' | 'correction' | 'request' | 'evidence'; export interface AgentMessage { id: string; from: string; to: string; type: AgentMessageType; taskId: string; /** Ids de artefatos (`runId:nodeId`). Preferir referência a copiar conteúdo. */ artifactRefs?: string[]; payload?: T; /** Confiança declarada pelo emissor em [0,1]. */ confidence?: number; timestamp: string; } export declare function createMessage(input: Omit, 'id' | 'timestamp'>): AgentMessage; export type IssueSeverity = 'low' | 'medium' | 'high' | 'critical'; export interface CritiqueIssue { severity: IssueSeverity; description: string; /** Nó/artefato ao qual o problema se refere. */ artifact?: string; suggestedFix?: string; } export interface Critique { status: 'approved' | 'needs_revision' | 'rejected'; issues: CritiqueIssue[]; /** Confiança do crítico na própria avaliação. */ confidence?: number; } /** * Extrai o primeiro objeto JSON balanceado do texto. Modelos costumam * embrulhar JSON em cerca de código ou prosa; sem isso, `JSON.parse` direto * falharia em saídas perfeitamente utilizáveis. */ export declare function extractJsonObject(text: string): string | null; /** * Converte a saída de um crítico em `Critique`. Nunca lança: saída não * parseável vira `needs_revision` com um issue explicando que a crítica não * chegou em formato utilizável (o que É um problema real, não um sucesso). */ export declare function parseCritique(text: string): Critique; /** Maior severidade presente na crítica (null quando não há issue). */ export declare function worstSeverity(critique: Critique): IssueSeverity | null; /** Crítica bloqueia a entrega? Só high/critical bloqueiam; low/medium viram recomendação. */ export declare function isBlocking(critique: Critique): boolean; /** * Instrução de correção MÍNIMA para o agente original: só os problemas * bloqueantes, sem reenviar histórico nenhum. É o oposto de "mandar tudo de * novo e pedir para melhorar". */ export declare function formatCorrection(critique: Critique, maxIssues?: number): string; //# sourceMappingURL=messages.d.ts.map