import type { StandardSchemaV1 } from "#compiled/@standard-schema/spec/index.js"; import type { HandleMessageStreamEvent } from "#protocol/message.js"; import { type EveEvalSkillLoadMatchOptions, type EveEvalSubagentCallMatchOptions, type EveEvalToolCallMatchOptions } from "#evals/match.js"; import type { RunAssertion } from "#evals/assertions/collector.js"; /** * Asserts the run ran to completion: it did not fail and did not park on an * unanswered HITL input request. */ export declare function completed(): RunAssertion; /** * Asserts the run ended parked on HITL input. For approval gates and * ask-question flows. */ export declare function waiting(): RunAssertion; /** * Asserts the run did not fail: terminal status is not `"failed"` and no * `turn.failed` / `step.failed` events were emitted. Parked runs pass; use * {@link completed} to also reject parking. */ export declare function didNotFail(): RunAssertion; /** * Asserts the joined assistant message text contains `token` (substring for * strings, `test` for RegExps). */ export declare function messageIncludes(token: string | RegExp): RunAssertion; /** * Asserts a tool call with `name` happened. Options constrain the call * further: `input` partial-deep-matches, `output` matches the result, * `isError` constrains error state, and `times` requires an exact count. */ export declare function calledTool(name: string, options?: EveEvalToolCallMatchOptions): RunAssertion; /** * Sugar over {@link calledTool} for the framework `load_skill` tool: asserts a * skill with id `skill` was loaded. `output`/`isError`/`times` constrain the * matching call exactly as for `calledTool`. */ export declare function loadedSkill(skill: string, options?: EveEvalSkillLoadMatchOptions): RunAssertion; /** * Asserts no tool call with `name` happened. */ export declare function notCalledTool(name: string): RunAssertion; /** * Asserts the named tools were called in the given order (subsequence match: * other calls may interleave). */ export declare function toolOrder(names: readonly string[]): RunAssertion; /** * Asserts the run made no tool calls at all. */ export declare function usedNoTools(): RunAssertion; /** * Asserts the run made at most `max` tool calls. */ export declare function maxToolCalls(max: number): RunAssertion; /** * Asserts no action result (tool, subagent, or skill) reported a failure. */ export declare function noFailedActions(): RunAssertion; /** * Asserts a subagent delegation to `name` occurred. `remoteUrl` matches the * `subagent.called` remote metadata, `output` matches the `subagent.completed` * output. */ export declare function calledSubagent(name: string, options?: EveEvalSubagentCallMatchOptions): RunAssertion; /** * Escape hatch: asserts an arbitrary predicate over the full typed event * stream. `label` names the assertion in reports. */ export declare function event(predicate: (events: readonly HandleMessageStreamEvent[]) => boolean, label: string): RunAssertion; /** * Asserts `result.output` (the final assistant message) deep-equals `value`. */ export declare function outputEquals(value: unknown): RunAssertion; /** * Asserts `result.output` validates against a Standard Schema (e.g. a Zod * schema). */ export declare function outputMatches(schema: StandardSchemaV1): RunAssertion;