Skip to content

@codesoul-co/hypha-testing / replay

模块用法

用于使用该功能边界的公共契约与操作。Replay 模块公开 3 类、3 函数、10 接口。

从包入口导入

ts
import {
  FileReplayFixtureStore,
  InMemoryReplayFixtureStore,
  ReplayEngine,
  diffStringSequences,
  normalizeEvents,
  projectReplay,
} from '@codesoul-co/hypha-testing';

import type {
  FileReplayFixtureStoreOptions,
  ReplayCaptureInput,
  ReplayEngineOptions,
  ReplayFixture,
  ReplayFixtureStore,
  ReplayProjection,
  ReplayResult,
  TraceDiff,
} from '@codesoul-co/hypha-testing';

// 完整导出列表见下方。

使用要点

  • 10 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用 import type,运行时不应依赖它们。
  • 3 个类提供可实例化的运行时实现;构造参数与公开方法在各自条目中完整列出。
  • 3 个函数是该模块的直接操作入口;每个 overload 的必需/可选参数与返回类型均在下方列出。

公共导出

Symbol种类签名说明
FileReplayFixtureStorenew FileReplayFixtureStore(options: FileReplayFixtureStoreOptions): FileReplayFixtureStoreFile Replay Fixture Store 类,共公开 4 个构造函数或成员;精确签名见本条目的声明与成员表。
InMemoryReplayFixtureStorenew InMemoryReplayFixtureStore(): InMemoryReplayFixtureStoreIn Memory Replay Fixture Store 类,共公开 4 个构造函数或成员;精确签名见本条目的声明与成员表。
ReplayEnginenew ReplayEngine(options?: ReplayEngineOptions): ReplayEngineReplay Engine 类,共公开 6 个构造函数或成员;精确签名见本条目的声明与成员表。
diffStringSequences函数diffStringSequences(expected: string[], actual: string[]): TraceSequenceDiffDiff String Sequences 函数,提供 1 个公开调用签名;参数与返回类型见下表。
normalizeEvents函数normalizeEvents(events: FrameworkEvent[]): FrameworkEvent[]Normalize Events 函数,提供 1 个公开调用签名;参数与返回类型见下表。
projectReplay函数projectReplay(events: FrameworkEvent[]): ReplayProjectionProject Replay 函数,提供 1 个公开调用签名;参数与返回类型见下表。
FileReplayFixtureStoreOptions接口interface FileReplayFixtureStoreOptionsFile Replay Fixture Store Options 接口,共包含 2 个公开字段或方法。
ReplayCaptureInput接口interface ReplayCaptureInputReplay Capture Input 接口,共包含 7 个公开字段或方法。
ReplayEngineOptions接口interface ReplayEngineOptionsReplay Engine Options 接口,共包含 8 个公开字段或方法。
ReplayFixture接口interface ReplayFixtureReplay Fixture 接口,共包含 15 个公开字段或方法。
ReplayFixtureStore接口interface ReplayFixtureStoreReplay Fixture Store 接口,共包含 3 个公开字段或方法。
ReplayProjection接口interface ReplayProjectionReplay Projection 接口,共包含 9 个公开字段或方法。
ReplayResult接口interface ReplayResultReplay Result 接口,共包含 3 个公开字段或方法。
TraceDiff接口interface TraceDiffTrace Diff 接口,共包含 8 个公开字段或方法。
TraceSequenceDiff接口interface TraceSequenceDiffTrace Sequence Diff 接口,共包含 6 个公开字段或方法。
TraceValueDiff接口interface TraceValueDiffTrace Value Diff 接口,共包含 3 个公开字段或方法。

FileReplayFixtureStore

File Replay Fixture Store 类,共公开 4 个构造函数或成员;精确签名见本条目的声明与成员表。

  • 种类: 类
  • 导入: import { FileReplayFixtureStore } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export declare class FileReplayFixtureStore implements ReplayFixtureStore {
    constructor(options: FileReplayFixtureStoreOptions);
    save(fixture: ReplayFixture): Promise<void>;
    get(id: string): Promise<ReplayFixture | null>;
    list(): Promise<ReplayFixture[]>;
}

公开成员

成员种类签名说明
constructor构造函数(options: FileReplayFixtureStoreOptions): FileReplayFixtureStore创建该类的实例。
get方法get(id: string): Promise<ReplayFixture | null>公开方法;参数与返回类型以签名列为准。
list方法list(): Promise<ReplayFixture[]>公开方法;参数与返回类型以签名列为准。
save方法save(fixture: ReplayFixture): Promise<void>公开方法;参数与返回类型以签名列为准。

InMemoryReplayFixtureStore

In Memory Replay Fixture Store 类,共公开 4 个构造函数或成员;精确签名见本条目的声明与成员表。

  • 种类: 类
  • 导入: import { InMemoryReplayFixtureStore } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export declare class InMemoryReplayFixtureStore implements ReplayFixtureStore {
    save(fixture: ReplayFixture): Promise<void>;
    get(id: string): Promise<ReplayFixture | null>;
    list(): Promise<ReplayFixture[]>;
}

公开成员

成员种类签名说明
constructor构造函数(): InMemoryReplayFixtureStore创建该类的实例。
get方法get(id: string): Promise<ReplayFixture | null>公开方法;参数与返回类型以签名列为准。
list方法list(): Promise<ReplayFixture[]>公开方法;参数与返回类型以签名列为准。
save方法save(fixture: ReplayFixture): Promise<void>公开方法;参数与返回类型以签名列为准。

ReplayEngine

Replay Engine 类,共公开 6 个构造函数或成员;精确签名见本条目的声明与成员表。

  • 种类: 类
  • 导入: import { ReplayEngine } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export declare class ReplayEngine {
    constructor(options?: ReplayEngineOptions);
    capture(input: ReplayCaptureInput): Promise<ReplayFixture>;
    replay(fixture: ReplayFixture): ReplayResult;
    compare(expected: ReplayFixture, actual: ReplayFixture | FrameworkEvent[]): TraceDiff;
    getFixture(id: string): Promise<ReplayFixture | null>;
    listFixtures(): Promise<ReplayFixture[]>;
}

公开成员

成员种类签名说明
capture方法capture(input: ReplayCaptureInput): Promise<ReplayFixture>公开方法;参数与返回类型以签名列为准。
compare方法compare(expected: ReplayFixture, actual: ReplayFixture | FrameworkEvent[]): TraceDiff公开方法;参数与返回类型以签名列为准。
constructor构造函数(options?: ReplayEngineOptions): ReplayEngine创建该类的实例。
getFixture方法getFixture(id: string): Promise<ReplayFixture | null>公开方法;参数与返回类型以签名列为准。
listFixtures方法listFixtures(): Promise<ReplayFixture[]>公开方法;参数与返回类型以签名列为准。
replay方法replay(fixture: ReplayFixture): ReplayResult公开方法;参数与返回类型以签名列为准。

diffStringSequences

Diff String Sequences 函数,提供 1 个公开调用签名;参数与返回类型见下表。

  • 种类: 函数
  • 导入: import { diffStringSequences } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export declare function diffStringSequences(expected: string[], actual: string[]): TraceSequenceDiff;

调用签名

text
diffStringSequences(expected: string[], actual: string[]): TraceSequenceDiff

参数

参数类型必需说明
expectedstring[]必需参数;接受的值由类型列定义。
actualstring[]必需参数;接受的值由类型列定义。

返回值

  • 类型: TraceSequenceDiff
  • 说明: 返回值契约由上述类型定义。

normalizeEvents

Normalize Events 函数,提供 1 个公开调用签名;参数与返回类型见下表。

  • 种类: 函数
  • 导入: import { normalizeEvents } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export declare function normalizeEvents(events: FrameworkEvent[]): FrameworkEvent[];

调用签名

text
normalizeEvents(events: FrameworkEvent[]): FrameworkEvent[]

参数

参数类型必需说明
eventsFrameworkEvent<unknown>[]必需参数;接受的值由类型列定义。

返回值

  • 类型: FrameworkEvent<unknown>[]
  • 说明: 返回值契约由上述类型定义。

projectReplay

Project Replay 函数,提供 1 个公开调用签名;参数与返回类型见下表。

  • 种类: 函数
  • 导入: import { projectReplay } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export declare function projectReplay(events: FrameworkEvent[]): ReplayProjection;

调用签名

text
projectReplay(events: FrameworkEvent[]): ReplayProjection

参数

参数类型必需说明
eventsFrameworkEvent<unknown>[]必需参数;接受的值由类型列定义。

返回值

  • 类型: ReplayProjection
  • 说明: 返回值契约由上述类型定义。

FileReplayFixtureStoreOptions

File Replay Fixture Store Options 接口,共包含 2 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { FileReplayFixtureStoreOptions } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface FileReplayFixtureStoreOptions {
    directory: string;
    extension?: string;
}

契约成员

成员种类签名说明
directory属性directory: string公开属性;类型、只读和可选状态以签名列为准。
extension属性extension?: string公开属性;类型、只读和可选状态以签名列为准。

ReplayCaptureInput

Replay Capture Input 接口,共包含 7 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { ReplayCaptureInput } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface ReplayCaptureInput {
    id: string;
    version: string;
    runId: string;
    events?: FrameworkEvent[];
    replaySpec?: ReplaySpec;
    outputContract?: OutputContractSpec;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
events属性events?: FrameworkEvent<unknown>[]公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
outputContract属性outputContract?: OutputContractSpec公开属性;类型、只读和可选状态以签名列为准。
replaySpec属性replaySpec?: ReplaySpec公开属性;类型、只读和可选状态以签名列为准。
runId属性runId: string公开属性;类型、只读和可选状态以签名列为准。
version属性version: string公开属性;类型、只读和可选状态以签名列为准。

ReplayEngineOptions

Replay Engine Options 接口,共包含 8 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { ReplayEngineOptions } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface ReplayEngineOptions {
    eventStore?: EventStore;
    fixtureStore?: ReplayFixtureStore;
    now?: () => string;
    trace?: TraceRecorder;
    sessionId?: string;
    workspaceId?: string;
    agentId?: string;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
agentId属性agentId?: string公开属性;类型、只读和可选状态以签名列为准。
eventStore属性eventStore?: EventStore公开属性;类型、只读和可选状态以签名列为准。
fixtureStore属性fixtureStore?: ReplayFixtureStore公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
now方法now?(): string公开方法;参数与返回类型以签名列为准。
sessionId属性sessionId?: string公开属性;类型、只读和可选状态以签名列为准。
trace属性trace?: TraceRecorder公开属性;类型、只读和可选状态以签名列为准。
workspaceId属性workspaceId?: string公开属性;类型、只读和可选状态以签名列为准。

ReplayFixture

Replay Fixture 接口,共包含 15 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { ReplayFixture } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface ReplayFixture {
    id: string;
    version: string;
    runId: string;
    createdAt: string;
    replaySpecRef?: SpecRef;
    events: FrameworkEvent[];
    eventTypes: string[];
    statePath: string[];
    finalOutput?: unknown;
    toolCalls: string[];
    modelCalls: string[];
    policyDecisions: string[];
    memoryReadSet: string[];
    outputContract?: OutputContractSpec;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
createdAt属性createdAt: string公开属性;类型、只读和可选状态以签名列为准。
events属性events: FrameworkEvent<unknown>[]公开属性;类型、只读和可选状态以签名列为准。
eventTypes属性eventTypes: string[]公开属性;类型、只读和可选状态以签名列为准。
finalOutput属性finalOutput?: unknown公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
memoryReadSet属性memoryReadSet: string[]公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
modelCalls属性modelCalls: string[]公开属性;类型、只读和可选状态以签名列为准。
outputContract属性outputContract?: OutputContractSpec公开属性;类型、只读和可选状态以签名列为准。
policyDecisions属性policyDecisions: string[]公开属性;类型、只读和可选状态以签名列为准。
replaySpecRef属性replaySpecRef?: SpecRef公开属性;类型、只读和可选状态以签名列为准。
runId属性runId: string公开属性;类型、只读和可选状态以签名列为准。
statePath属性statePath: string[]公开属性;类型、只读和可选状态以签名列为准。
toolCalls属性toolCalls: string[]公开属性;类型、只读和可选状态以签名列为准。
version属性version: string公开属性;类型、只读和可选状态以签名列为准。

ReplayFixtureStore

Replay Fixture Store 接口,共包含 3 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { ReplayFixtureStore } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface ReplayFixtureStore {
    save(fixture: ReplayFixture): Promise<void>;
    get(id: string): Promise<ReplayFixture | null>;
    list(): Promise<ReplayFixture[]>;
}

契约成员

成员种类签名说明
get方法get(id: string): Promise<ReplayFixture | null>公开方法;参数与返回类型以签名列为准。
list方法list(): Promise<ReplayFixture[]>公开方法;参数与返回类型以签名列为准。
save方法save(fixture: ReplayFixture): Promise<void>公开方法;参数与返回类型以签名列为准。

ReplayProjection

Replay Projection 接口,共包含 9 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { ReplayProjection } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface ReplayProjection {
    runId: string;
    events: FrameworkEvent[];
    eventTypes: string[];
    statePath: string[];
    finalOutput?: unknown;
    toolCalls: string[];
    policyDecisions: string[];
    memoryReadSet: string[];
    modelCalls: string[];
}

契约成员

成员种类签名说明
events属性events: FrameworkEvent<unknown>[]公开属性;类型、只读和可选状态以签名列为准。
eventTypes属性eventTypes: string[]公开属性;类型、只读和可选状态以签名列为准。
finalOutput属性finalOutput?: unknown公开属性;类型、只读和可选状态以签名列为准。
memoryReadSet属性memoryReadSet: string[]公开属性;类型、只读和可选状态以签名列为准。
modelCalls属性modelCalls: string[]公开属性;类型、只读和可选状态以签名列为准。
policyDecisions属性policyDecisions: string[]公开属性;类型、只读和可选状态以签名列为准。
runId属性runId: string公开属性;类型、只读和可选状态以签名列为准。
statePath属性statePath: string[]公开属性;类型、只读和可选状态以签名列为准。
toolCalls属性toolCalls: string[]公开属性;类型、只读和可选状态以签名列为准。

ReplayResult

Replay Result 接口,共包含 3 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { ReplayResult } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface ReplayResult {
    fixtureId: string;
    runId: string;
    projection: ReplayProjection;
}

契约成员

成员种类签名说明
fixtureId属性fixtureId: string公开属性;类型、只读和可选状态以签名列为准。
projection属性projection: ReplayProjection公开属性;类型、只读和可选状态以签名列为准。
runId属性runId: string公开属性;类型、只读和可选状态以签名列为准。

TraceDiff

Trace Diff 接口,共包含 8 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { TraceDiff } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface TraceDiff {
    passed: boolean;
    eventTypes: TraceSequenceDiff;
    statePath: TraceSequenceDiff;
    toolCalls: TraceSequenceDiff;
    modelCalls: TraceSequenceDiff;
    policyDecisions: TraceSequenceDiff;
    memoryReadSet: TraceSequenceDiff;
    output: TraceValueDiff;
}

契约成员

成员种类签名说明
eventTypes属性eventTypes: TraceSequenceDiff公开属性;类型、只读和可选状态以签名列为准。
memoryReadSet属性memoryReadSet: TraceSequenceDiff公开属性;类型、只读和可选状态以签名列为准。
modelCalls属性modelCalls: TraceSequenceDiff公开属性;类型、只读和可选状态以签名列为准。
output属性output: TraceValueDiff公开属性;类型、只读和可选状态以签名列为准。
passed属性passed: boolean公开属性;类型、只读和可选状态以签名列为准。
policyDecisions属性policyDecisions: TraceSequenceDiff公开属性;类型、只读和可选状态以签名列为准。
statePath属性statePath: TraceSequenceDiff公开属性;类型、只读和可选状态以签名列为准。
toolCalls属性toolCalls: TraceSequenceDiff公开属性;类型、只读和可选状态以签名列为准。

TraceSequenceDiff

Trace Sequence Diff 接口,共包含 6 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { TraceSequenceDiff } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface TraceSequenceDiff {
    passed: boolean;
    expected: string[];
    actual: string[];
    missing: string[];
    extra: string[];
    mismatches: Array<{
        index: number;
        expected?: string;
        actual?: string;
    }>;
}

契约成员

成员种类签名说明
actual属性actual: string[]公开属性;类型、只读和可选状态以签名列为准。
expected属性expected: string[]公开属性;类型、只读和可选状态以签名列为准。
extra属性extra: string[]公开属性;类型、只读和可选状态以签名列为准。
mismatches属性mismatches: { index: number; expected?: string; actual?: string; }[]公开属性;类型、只读和可选状态以签名列为准。
missing属性missing: string[]公开属性;类型、只读和可选状态以签名列为准。
passed属性passed: boolean公开属性;类型、只读和可选状态以签名列为准。

TraceValueDiff

Trace Value Diff 接口,共包含 3 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { TraceValueDiff } from '@codesoul-co/hypha-testing';
  • 源码模块: replay

声明

text
export interface TraceValueDiff {
    passed: boolean;
    expected?: unknown;
    actual?: unknown;
}

契约成员

成员种类签名说明
actual属性actual?: unknown公开属性;类型、只读和可选状态以签名列为准。
expected属性expected?: unknown公开属性;类型、只读和可选状态以签名列为准。
passed属性passed: boolean公开属性;类型、只读和可选状态以签名列为准。