(kind, summary string)
| 611 | record := taskEvent.Record |
| 612 | activity := map[string]any{ |
| 613 | "task_id": taskEvent.TaskID, |
| 614 | "worker_label": firstNonEmpty(stringFromAny(record["worker_label"]), taskEvent.TaskID), |
| 615 | "status": firstNonEmpty(stringFromAny(record["status"]), "unknown"), |
| 616 | "summary": taskEvent.Summary, |
| 617 | "result_text": taskEvent.ResultText, |
| 618 | "input_tokens": intFromAny(record["input_tokens"]), |
| 619 | "output_tokens": intFromAny(record["output_tokens"]), |
| 620 | "tool_use_count": intFromAny(record["tool_use_count"]), |
| 621 | "duration_ms": intFromAny(record["duration_ms"]), |
| 622 | } |
| 623 | entries := r.Frame.TaskActivityEntries |
| 624 | if len(entries) > 0 && mapsEqual(entries[len(entries)-1], activity) { |
| 625 | return |
| 626 | } |
| 627 | entries = append(entries, activity) |
| 628 | if len(entries) > r.MaxTaskActivityEntries { |
| 629 | entries = entries[len(entries)-r.MaxTaskActivityEntries:] |
| 630 | } |
| 631 | r.Frame.TaskActivityEntries = entries |
| 632 | } |
| 633 | |
| 634 | func (r *UiRuntime) recordInlineActivity(kind, summary string) { |
| 635 | summary = strings.TrimSpace(summary) |
| 636 | if summary == "" { |
| 637 | return |
| 638 | } |
| 639 | entry := map[string]any{ |
| 640 | "task_id": "agent:" + kind, |
| 641 | "worker_label": "agent", |
| 642 | "status": kind, |
no test coverage detected