import { CoverageCollector } from "./coverageCollector.js"; import type { ProviderLoadingContext, RegisterAttachArgs } from "./platform.js"; /** Registers the configured LLM providers before a run starts: the * modules named in `agency.json` and AGENCY_PROVIDER_MODULES, and the * llama-cpp provider when the config routes calls to it. */ export declare function loadConfiguredProviders(execCtx: ProviderLoadingContext): Promise; /** A collector for step coverage, which `write` saves as a file. */ export declare function newCoverageCollector(): CoverageCollector; /** A function that appends one line to the file at `filePath`, * synchronously, making the parent directory first. For the statelog * client's log file, which a test reads right after an awaited event. */ export declare function openLineSink(filePath: string): (line: string) => void; /** The model a local provider serves for an embedding target: a .gguf * path for llama-cpp, the served name for mlx. */ export declare function resolveLocalEmbeddingModel(provider: string, model: string): Promise; /** The environment variable that keeps a program from registering for * attach at all. Set to "1", like AGENCY_IPC, for a host that does not * want a debug socket opened in its process. */ export declare const NO_ATTACH_VAR = "AGENCY_NO_ATTACH"; /** Make the program attachable: sweep the records of programs that have * exited, write this one's record in the sessions directory, and listen * on its debug socket (docs/dev/cli/debugger-attach.md). Called by * `runNode` for every node run, and returns at once when: this process * already registered; the host is not the Node host, so a memory host in * a test writes nothing; a debugger is already installed, so `agency * debug` does not register its own process and a second debugger cannot * attach over the first; the process is an IPC child of a parent Agency * program (`AGENCY_IPC`, which the parent sets; any child process with * an IPC channel, such as a test worker, is not one), which the listing * leaves out; or `AGENCY_NO_ATTACH` is "1". A sessions directory that * cannot be used, or a socket that cannot be opened, is logged under * DEBUG and the run goes on without attach: a program must never fail, * or print, because it cannot be debugged. When the socket fails the * record is removed with it, so the listing shows only programs a * debugger can reach. Until this change the socket was opened on * SIGUSR2, and nodemon, which restarts a child with that signal, left * the program running with its debugger open instead. */ export declare function registerAttach({ ctx, nodeName, host, functions }: RegisterAttachArgs): void;