/** * The constant parts of a tool combo defines: whether an agent asked for it, * and the two shapes of answer a model reads. * * Three tools - the verdict, the board, the subagent - each wrote these three * lines for themselves, once identically and twice inline. A tool body should * be the decision it records or the act it performs, and nothing else. */ /** * Whether an agent's `tools:` names `name`. * * The agent's file is the allowlist: pi enables a custom tool only when the * definition names it, so a tool is offered to whoever declares it and costs * nothing to offer otherwise. What an agent can do stays readable in its file. */ export declare function declares(tools: readonly string[] | undefined, name: string): boolean; /** An answer the model reads as an answer. */ export declare function said(text: string): { content: { type: "text"; text: string; }[]; details: undefined; }; /** * An answer that ends the turn: pi asks the model nothing after it, as long as * every other call in the same batch ends the turn too. */ export declare function saidLast(text: string): { terminate: boolean; content: { type: "text"; text: string; }[]; details: undefined; }; /** A refusal the model can act on, rather than a failure it has to guess at. */ export declare function refuse(text: string): { content: { type: "text"; text: string; }[]; details: undefined; isError: boolean; }; //# sourceMappingURL=tool.d.ts.map