/** * O nó que roda o teste do projeto. * * É o primeiro check do runtime que decide por EXECUÇÃO. Todos os outros * decidem por leitura: tamanho do texto, presença de termo, existência de * arquivo. A métrica `testResults` da avaliação vinha, até aqui, de um artefato * `test-results` escrito por um AGENTE — o runtime reportava "testes passando" * a partir de um texto produzido pelo mesmo processo que deveria estar sendo * testado. * * ## O que este nó mede, e o que ele NÃO mede * * Mede: o comando de teste do projeto, executado no diretório de trabalho, com * o exit code do processo. `passed` é `exitCode === 0`, decidido pelo sistema * operacional. * * NÃO mede: que o trabalho do run causou esse resultado. A materialização * grava em `//` e não toca a fonte do projeto (decisão * registrada), então num run cujo `--output` fica fora da árvore testada o * resultado é a linha de base do projeto, não o efeito da entrega. O artefato * declara o comando e o diretório justamente para que quem lê saiba qual dos * dois casos está olhando. * * O nó roda por ÚLTIMO, depois da materialização: quando o `--output` aponta * para dentro da árvore que a suíte cobre, o que ele mede é o projeto COM o que * o run escreveu. Rodar antes mediria o projeto sem a entrega e chamaria isso * de verificação. */ import type { GraphNode } from '../types.js'; import type { TaskContract } from '../contracts/task-contract.js'; /** Id do nó. Fixo: `izanagi explain` e os testes referenciam por nome. */ export declare const TEST_NODE_ID = "verify-tests"; /** * Nó de teste + contrato. Sem agente, como os outros nós de tool gerados pelo * planejamento: quem declarou a tool foi o próprio framework, então o trust * tier é `builtin` e a `PolicyEngine` não nega `shell` a ele. */ export declare function testGateNode(opts: { /** Ids que precisam concluir antes (tudo que pode ter escrito arquivo). */ dependencies: string[]; timeoutMs?: number; }): { node: GraphNode; contract: TaskContract; }; //# sourceMappingURL=test-gate.d.ts.map