(projectRoot, limit, now)
| 513 | return entry.hook || entry.event || entry.type || entry.metric || 'event'; |
| 514 | } |
| 515 | |
| 516 | function readRecentActivity(projectRoot, limit, now) { |
| 517 | const telemetryDir = path.join(projectRoot, '.planning', 'telemetry'); |
| 518 | const entries = [ |
| 519 | ...tailJsonl(path.join(telemetryDir, 'hook-timing.jsonl'), 50), |
| 520 | ...tailJsonl(path.join(telemetryDir, 'audit.jsonl'), 50), |
| 521 | ...tailJsonl(path.join(telemetryDir, 'agent-runs.jsonl'), 50), |
| 522 | ...tailJsonl(path.join(telemetryDir, 'task-events.jsonl'), 50), |
| 523 | ]; |
| 524 | |
| 525 | return entries |
| 526 | .map((entry) => ({ |
| 527 | timestamp: eventTimestamp(entry), |
| 528 | relative: relativeTime(eventTimestamp(entry), now), |
| 529 | name: eventName(entry), |
| 530 | description: describeTelemetry(entry), |
| 531 | raw: entry, |
| 532 | })) |
| 533 | .sort((left, right) => new Date(right.timestamp || 0).getTime() - new Date(left.timestamp || 0).getTime()) |
| 534 | .slice(0, limit); |
| 535 | } |
| 536 | |
| 537 | function readHookActivity(projectRoot, limit, now) { |
no test coverage detected