| 1 | import type { Category, WhaleEvent } from './model.js'; |
| 2 | |
| 3 | /** Authored event-v1 fixture, explicitly labelled demo by every driver. */ |
| 4 | export function petDemoEvents(): WhaleEvent[] { |
| 5 | const out: WhaleEvent[] = []; |
| 6 | const span = (startTime: number, endTime: number, category: Category, name: string, agentId = 'parent', status: WhaleEvent['status'] = 'success') => { |
| 7 | out.push({ schemaVersion: 1, id: `demo-${out.length}`, traceId: 'pet-demo', startTime, endTime, |
| 8 | category, name, agentId, status, attributes: {} }); |
| 9 | }; |
| 10 | span(0, 6000, 'reasoning', 'Plan'); |
| 11 | for (let i = 0; i < 5; i++) span(6400 + i * 800, 6900 + i * 800, 'filesystem', `Read source ${i}`); |
| 12 | span(11_000, 16_000, 'code', 'Check implementation'); |
| 13 | for (const [i, agent] of ['parent', 'reviewer', 'tester'].entries()) span(17_000 + i * 400, 25_000, 'reasoning', 'Parallel work', agent); |
| 14 | for (let i = 0; i < 7; i++) span(26_000 + i * 700, 26_450 + i * 700, 'tool', 'Repeated tool'); |
| 15 | for (let i = 0; i < 3; i++) span(31_000 + i * 400, 31_000 + i * 400, 'error', 'Reported failure', 'parent', 'error'); |
| 16 | span(34_000, 63_000, 'human', 'Awaiting input', 'parent', 'pending'); |
| 17 | span(63_000, 63_000, 'human', 'User response'); |
| 18 | span(64_000, 69_000, 'memory', 'Recall'); |
| 19 | span(70_000, 75_000, 'reasoning', 'Resolve'); |
| 20 | return out; |
| 21 | } |
| 22 |