返回 CodeWhale
pet-demo.ts
根目录 / pet / src / core / pet-demo.ts
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
22 lines TYPESCRIPT