UNPKG

vibe-tools

Version:
137 lines (136 loc) 3.51 kB
import type { CommandOptions, Provider } from '../../types'; import type { ToolExecutionResult } from '../../utils/tool-enabled-llm/unified-client'; import { AssetReference } from '../../utils/assets'; import { z } from 'zod'; /** * A specialized AsyncGenerator for test commands that can return TestReport */ export type TestCommandGenerator<T = any> = AsyncGenerator<string, T, unknown>; /** * Extended command options for the test command */ export interface TestOptions extends CommandOptions { output?: string; parallel?: number; branch?: string; compareWith?: string; timeout?: number; retries?: number; tag?: string; mcpServers?: string[]; scenarios?: string; provider?: Provider; /** * Maximum number of files to process concurrently. * @defaultValue 3 */ fileConcurrency?: number; /** * Skip intermediate output during test execution. * @defaultValue false */ skipIntermediateOutput?: boolean; } /** * Represents a test scenario in a feature behavior file */ export interface TestScenario { id: string; type: string; description: string; taskDescription: string; expectedBehavior: string[]; successCriteria: string[]; tags?: string[]; assets?: Record<string, AssetReference>; } /** * Represents the parsed content of a feature behavior file */ export interface FeatureBehavior { name: string; description: string; scenarios: TestScenario[]; } /** * Represents the result of executing a test scenario */ export interface TestScenarioResult { id: string; type: string; description: string; taskDescription: string; approachTaken: string; commands: string[]; actualCommands?: string[]; output: string; outputBuffer?: string[]; toolExecutions?: Array<{ tool: string; args: any; result: ToolExecutionResult; }>; expectedBehavior: { behavior: string; met: boolean; explanation?: string; }[]; successCriteria: { criteria: string; met: boolean; explanation?: string; }[]; result: 'PASS' | 'FAIL'; executionTime: number; attempts?: number; explanation?: string; error?: string; } /** * Represents a complete test report for a feature behavior file */ export interface TestReport { featureName: string; description: string; scenarios: TestScenarioResult[]; timestamp: string; branch: string; provider: string; model: string; os: string; nodeVersion: string; overallResult: 'PASS' | 'FAIL'; failedScenarios: string[]; passedScenarios?: number; totalExecutionTime: number; } /** * Exponential backoff retry configuration */ export interface RetryConfig { initialDelay: number; maxDelay: number; factor: number; retries: number; jitter: boolean; } export declare const TestResultSchema: z.ZodObject<{ id: z.ZodString; status: z.ZodEffects<z.ZodString, "PASS" | "FAIL", string>; summary: z.ZodString; executionTime: z.ZodNumber; error: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>; }, "strip", z.ZodTypeAny, { status: "PASS" | "FAIL"; summary: string; error: string | null; id: string; executionTime: number; }, { status: string; summary: string; id: string; executionTime: number; error?: string | null | undefined; }>; export type TestResult = z.infer<typeof TestResultSchema>;