File size: 877 Bytes
4e23b01 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | export type TurnId = string;
export type StepId = string;
export type FrameId = string;
export type MarkerId = string;
export type TaskRefId = string;
export type TaskId = string;
export type AgentId = string;
export type InteractionId = string;
export type AttachmentId = string;
export type TodoId = string;
export type PromptId = string;
export type ItemId = string;
export function turnId(ordinal: number): TurnId {
return `t${ordinal}`;
}
export function stepId(turn: TurnId, ordinal: number): StepId {
return `${turn}.${ordinal}`;
}
export function frameId(step: StepId, ordinal: number): FrameId {
return `${step}.f${ordinal}`;
}
export function compareTurnIds(a: TurnId, b: TurnId): number {
return turnOrdinal(a) - turnOrdinal(b);
}
export function turnOrdinal(id: TurnId): number {
const n = Number(id.slice(1));
return Number.isFinite(n) ? n : 0;
}
|