import { type HarnessCallerFixture, type HarnessExpectation } from "../../parser/src/index.js"; import { type ExecutionEvent, type RunLocalChainResult, type RunLocalSkillResult } from "../../runner-local/src/index.js"; import type { ResolutionRequest, ResolutionResponse } from "../../executor/src/index.js"; type HarnessKind = "skill" | "chain"; export interface HarnessFixture { readonly name: string; readonly kind: HarnessKind; readonly target: string; readonly runner?: string; readonly inputs: Readonly>; readonly env: Readonly>; readonly caller: HarnessCallerFixture; readonly expect: HarnessExpectation; } export interface HarnessRunOptions { readonly env?: NodeJS.ProcessEnv; readonly keepFiles?: boolean; } export interface CallerTrace { readonly resolutions: readonly { readonly request: ResolutionRequest; readonly response?: ResolutionResponse; }[]; readonly events: readonly ExecutionEvent[]; } export interface HarnessRunResult { readonly source: "fixture" | "inline"; readonly fixture: HarnessFixture; readonly fixturePath: string; readonly targetPath: string; readonly receiptDir: string; readonly runxHome: string; readonly status: RunLocalSkillResult["status"] | RunLocalChainResult["status"]; readonly receipt?: RunLocalSkillResult extends infer SkillResult ? SkillResult extends { readonly receipt: infer Receipt; } ? Receipt : never : never; readonly chainReceipt?: RunLocalChainResult extends infer ChainResult ? ChainResult extends { readonly receipt: infer Receipt; } ? Receipt : never : never; readonly trace: CallerTrace; readonly assertionErrors: readonly string[]; } export interface HarnessSuiteResult { readonly source: "inline"; readonly targetPath: string; readonly skillPath: string; readonly profileSourcePath: string; readonly status: "success" | "failure"; readonly cases: readonly HarnessRunResult[]; readonly assertionErrors: readonly string[]; } export type HarnessTargetResult = HarnessRunResult | HarnessSuiteResult; export declare function parseHarnessFixtureFile(fixturePath: string): Promise; export declare function parseHarnessFixture(contents: string): HarnessFixture; export declare function runHarnessTarget(targetPath: string, options?: HarnessRunOptions): Promise; export declare function runHarness(fixturePath: string, options?: HarnessRunOptions): Promise; export {};