/** * Grounding: o run lê o projeto antes de escrever sobre ele. * * O nó de survey é um `kind: 'tool'` na CABEÇA do grafo. Ele roda antes de * qualquer agente, não gasta token nenhum (é uma varredura determinística), e * o artefato que produz entra no contexto mínimo dos nós seguintes pelo * Context Resolver — que já limita cada insumo a ~1200 chars. O custo do * grounding é, portanto, um teto conhecido, e não "o repositório no prompt". * * A alternativa que existia era pior e invisível: o agente escrevia sobre um * projeto que nunca viu, inventava a stack e os caminhos, e o artefato passava * na verificação porque o schema pergunta se os campos existem, não se * correspondem a alguma realidade. * * Não roda em modo `direct`: uma resposta de uma chamada não justifica dobrar * o grafo para levantar o terreno. */ import type { GraphNode } from '../types.js'; import type { TaskContract } from '../contracts/task-contract.js'; /** Id do nó de survey. Fixo: o trace e os testes referenciam por nome. */ export declare const SURVEY_NODE_ID = "survey"; /** * Nó de survey + contrato. Sem agente: quem declarou a tool foi o * planejamento do framework, então o trust tier é `builtin`. Concede `fs:read` * e nada mais — o survey lê a forma do projeto, nunca escreve. */ export declare function surveyNode(): { node: GraphNode; contract: TaskContract; }; /** * Põe o survey na frente do grafo: todo nó que não dependia de nada passa a * depender dele. * * Só as RAÍZES ganham a dependência. Ligar o survey a todos os nós faria cada * um carregar o levantamento no contexto, e o mesmo insumo repetido em sete * prompts é a duplicação de contexto que a arquitetura proíbe: quem está a * jusante já recebe o que a raiz produziu a partir dele. */ export declare function withSurveyAtHead(nodes: GraphNode[], surveyId?: string): GraphNode[]; //# sourceMappingURL=grounding.d.ts.map