/** * Contracts & Artifacts — schemas de artefatos + validação programática. * * Artefato inválido → INVALID → REPAIR → RE-EVALUATE. * O validators.ts aplica os schemas sobre artefatos (string | objeto) e * devolve issues estruturadas. */ import type { ArtifactKind, ArtifactRef, ArtifactSchema } from '../types.js'; /** * Schemas padrão dos artefatos importantes do framework. * `kind` → schema. Compatível com a classe ArtifactRef. */ export declare const ARTIFACT_SCHEMAS: Record; /** * Artefato que ENCENA o uso de ferramenta em vez de responder. * * O caso que motivou: com `--agent-tools none` (nenhuma tool no subprocesso), o * nó de auditoria gravou onze linhas no formato `**Tool Call: rg -il "jwt"**` / * `Status: Completed` / `Terminal:` seguidas de dois caminhos de arquivo que * não existem no repositório. Nenhuma leitura aconteceu, e o artefato não tinha * uma linha de resposta: era a narração de um trabalho imaginário. * * A regra é de PROPORÇÃO, não de presença: uma resposta legítima pode citar um * comando ou colar um trecho de terminal como evidência. O que não acontece * numa resposta é a narração ser o texto inteiro. Por isso exige-se mais de um * marcador e que sobre pouca prosa depois de removê-los. */ export declare function looksLikeStagedToolTranscript(text: string): boolean; export declare function hashContent(content: string): string; export interface ValidationReport { kind: ArtifactKind; valid: boolean; issues: string[]; /** Score de conformidade [0,1]. */ score: number; } /** Esvazia o cache de validacao (testes e processos de vida longa). */ export declare function clearValidationCache(): void; export declare function validateArtifact(kind: ArtifactKind, content: unknown): ValidationReport; /** * Cria um ArtifactRef validado a partir de conteúdo. */ export declare function makeArtifact(kind: ArtifactKind, name: string, content: unknown, path?: string): ArtifactRef; /** * Valida um handoff entre agentes — só passa contexto relevante. */ export declare function validateHandoffShape(input: { from: string; to: string; reason: string; artifacts?: unknown[]; }): string[]; /** * Marca que precisa sobreviver a qualquer edição deste módulo: quem lê o * artefato tem que saber, pelo próprio conteúdo, que nenhum modelo foi chamado. */ export declare const SIMULATION_BANNER = "SIMULACAO HEADLESS: nenhum modelo foi chamado para produzir este artefato."; /** * Conteúdo simulado que satisfaz o schema REAL de um kind. * * Existe porque, sem provider configurado, o producer headless devolvia sempre * a mesma forma genérica: para todo kind tipado o artefato reprovava por campo * obrigatório ausente, o nó entrava em healing e o run terminava FAIL por um * motivo que não tem relação nenhuma com o runtime. Quem experimenta o Izanagi * pela primeira vez via um vermelho que não era dele. * * O conteúdo sai do próprio schema (`required` + `minSize` + `simulationHint`), * então schema e simulação não podem divergir em silêncio: existe um teste que * valida a simulação de TODO kind registrado contra o validador de verdade. * * Isto NÃO apresenta simulação como execução: o banner está no conteúdo, o * `model` da chamada continua sendo `cli-headless` e a CLI segue avisando em * toda saída que rodou sem provider. */ export declare function simulatedArtifact(kind: ArtifactKind | string, ctx: { nodeId: string; label: string; objective: string; }): unknown; //# sourceMappingURL=artifacts.d.ts.map