30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
// Types for harness-session.mjs, so TS consumers (its test, snapshot-to-task) see a
|
|
// real shape instead of `any`.
|
|
|
|
export interface Turn {
|
|
/** Line index in the native session file. */
|
|
index: number;
|
|
role: 'user' | 'assistant';
|
|
text: string;
|
|
/** A slash-command turn, not real conversation. */
|
|
isCommand: boolean;
|
|
/** This record concluded its turn — the truncation boundary. */
|
|
endsTurn: boolean;
|
|
}
|
|
|
|
export interface Session {
|
|
harness: string;
|
|
rawPath: string;
|
|
/** The harness own id for this conversation. */
|
|
sessionId: string | null;
|
|
lines: string[];
|
|
turns: Turn[];
|
|
}
|
|
|
|
export function supportedHarnesses(): string[];
|
|
export function readSession(harness: string, recordedPath?: string): Session | null;
|
|
export function truncationIndex(turns: Turn[]): number;
|
|
export function turnsFromLines(harness: string, lines: string[]): Turn[];
|
|
export function linearSnapshotLines(session: Session, startLine?: number): string[];
|
|
export function stripAuthoringScaffolding(harness: string, lines: string[]): string[];
|