SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
4e23b01 verified
Raw
History Blame Contribute Delete
994 Bytes
import type { MarkerId, TaskId, TaskRefId } from './ids';
import type { TranscriptTurn } from './turn';
export type MarkerKey = string;
export const KNOWN_MARKERS = [
'compaction',
'undo',
'clear',
'goal',
'plan.enter',
'plan.exit',
'plan.revision',
'swarm.enter',
'swarm.exit',
'skill',
'cron.fired',
'notice',
'hook',
] as const;
export interface TranscriptMarker {
readonly kind: 'marker';
readonly markerId: MarkerId;
readonly marker: MarkerKey;
readonly payload?: unknown;
readonly at?: string;
}
export interface TranscriptTaskRef {
readonly kind: 'taskref';
readonly refId: TaskRefId;
readonly taskId: TaskId;
readonly at?: string;
}
export type TranscriptItem = TranscriptTurn | TranscriptMarker | TranscriptTaskRef;
export function itemId(item: TranscriptItem): string {
switch (item.kind) {
case 'turn':
return item.turnId;
case 'marker':
return item.markerId;
case 'taskref':
return item.refId;
}
}