learning_ai_common_plat/packages/events/src/timeline.test.ts

96 lines
3.4 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { buildTimelineItems, TimelineItemSchema } from './timeline.js';
describe('timeline contract baseline', () => {
it('builds unified timeline items across phases 1 to 3', () => {
const items = buildTimelineItems([
{
eventId: 'evt_capture_1',
eventName: 'capture.transcript.created',
occurredAt: '2026-04-03T12:00:00.000Z',
productId: 'lysnrai',
artifactId: 'art_transcript_1',
actor: { actorType: 'user', actorId: 'saravana' },
trace: { correlationId: 'corr_phase1', causationId: null, parentEventId: null },
payload: { durationMs: 42150, transcriptSource: 'microphone' },
},
{
eventId: 'evt_plan_1',
eventName: 'artifact.created',
occurredAt: '2026-04-03T13:00:00.000Z',
productId: 'flowmonk',
artifactId: 'art_plan_1',
actor: { actorType: 'agent', actorId: 'phase2-plan-exporter' },
trace: { correlationId: 'corr_phase2', causationId: null, parentEventId: null },
payload: { artifactType: 'plan', title: 'FlowMonk weekly plan', status: 'draft' },
},
{
eventId: 'evt_trail_1',
eventName: 'artifact.created',
occurredAt: '2026-04-03T14:00:00.000Z',
productId: 'actiontrail',
artifactId: 'art_trail_1',
actor: { actorType: 'agent', actorId: 'phase3-audit-importer' },
trace: {
correlationId: 'corr_phase3',
causationId: 'task_phase3',
parentEventId: 'task_phase3',
},
payload: {
artifactType: 'trail-report',
title: 'Cowork audit report for task task_phase3',
status: 'recorded',
},
},
{
eventId: 'evt_memory_1',
eventName: 'memory.entry.created',
occurredAt: '2026-04-03T14:10:00.000Z',
productId: 'mindlyst',
artifactId: 'art_memory_1',
actor: { actorType: 'agent', actorId: 'phase3-audit-note-importer' },
trace: {
correlationId: 'corr_phase3',
causationId: 'evt_note_linked_1',
parentEventId: 'evt_note_linked_1',
},
payload: {
memoryKind: 'insight',
sourceArtifactIds: ['art_note_1', 'art_trail_1'],
},
},
]);
expect(items.map(item => item.eventName)).toEqual([
'memory.entry.created',
'artifact.created',
'artifact.created',
'capture.transcript.created',
]);
expect(items[0]?.title).toBe('Insight memory proposed');
expect(items[1]?.title).toBe('Cowork audit report for task task_phase3');
expect(items[2]?.summary).toBe('plan status: draft');
expect(items[3]?.summary).toContain('microphone transcript captured');
expect(items[0]?.relatedEventIds).toEqual(['evt_note_linked_1']);
});
it('exposes a stable timeline item schema', () => {
const item = TimelineItemSchema.parse({
itemId: 'timeline_evt_1',
occurredAt: '2026-04-03T14:10:00.000Z',
eventName: 'memory.entry.created',
productId: 'mindlyst',
title: 'Insight memory proposed',
summary: '2 source artifacts linked',
artifactRefs: ['art_memory_1'],
relatedEventIds: ['evt_note_linked_1'],
actorType: 'agent',
visibility: 'private',
correlationId: 'corr_phase3',
});
expect(item.visibility).toBe('private');
expect(item.relatedEventIds).toHaveLength(1);
});
});