import { TodoModule } from "./todo-module.js"; import { HooksEngine } from "./hooks-engine.js"; import type { HooksConfig } from "./hooks-engine.js"; import { SkillLoader } from "./skill-loader.js"; import type { SkillDefinition } from "./skill-loader.js"; import type { HarnessConfig, AgentNodeConfig, LoopMessage } from "./types.js"; import type { ToolDefinition } from "../tools/types.js"; export interface SwarmAgentCompat { name: string; description: string; capabilities: string[]; handler: (state: Record) => Promise>; } export declare class ONIHarness { private readonly config; private readonly todoModule; private readonly hooksEngine; private readonly compactor; private readonly safetyGate; private readonly skillLoader; private constructor(); static create(config: HarnessConfig): ONIHarness; private buildLoopConfig; run(prompt: string, agentConfig: AgentNodeConfig | string, signal?: AbortSignal): AsyncGenerator; runToResult(prompt: string, agentConfig: AgentNodeConfig | string, signal?: AbortSignal): Promise; asNode & { task?: string; context?: string; agentResults?: Record; }>(agentConfig: AgentNodeConfig, signal?: AbortSignal): (state: S) => Promise>; asSwarmAgent(name: string, soul: string, tools?: ToolDefinition[], opts?: { description?: string; capabilities?: string[]; signal?: AbortSignal; }): SwarmAgentCompat; getTodoModule(): TodoModule; getHooksEngine(): HooksEngine; getSkillLoader(): SkillLoader; /** * Returns tools assembled by this harness instance. * Does NOT include agentConfig.tools (per-run) or memory_query (loop-created). * Used for test assertions and introspection. */ getHarnessTools(): import("../tools/types.js").ToolDefinition[]; registerSkill(skill: SkillDefinition): void; addHooks(config: HooksConfig): void; } //# sourceMappingURL=harness.d.ts.map