Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from dataclasses import dataclass, field | |
| from time import perf_counter | |
| from typing import Any | |
| from uuid import uuid4 | |
| class ContextItem: | |
| source: str | |
| title: str | |
| body: str | |
| kind: str = "note" | |
| people: tuple[str, ...] = () | |
| tags: tuple[str, ...] = () | |
| created_at: str = "" | |
| app: str = "local" | |
| class ToolResult: | |
| name: str | |
| ok: bool | |
| content: str | |
| data: dict[str, Any] = field(default_factory=dict) | |
| class RequestTrace: | |
| request_id: str = field(default_factory=lambda: str(uuid4())) | |
| marks: list[tuple[str, float]] = field(default_factory=list) | |
| started: float = field(default_factory=perf_counter) | |
| def mark(self, label: str) -> None: | |
| self.marks.append((label, perf_counter())) | |
| def timings_ms(self) -> dict[str, float]: | |
| previous = self.started | |
| timings: dict[str, float] = {} | |
| for label, timestamp in self.marks: | |
| timings[label] = round((timestamp - previous) * 1000, 2) | |
| previous = timestamp | |
| timings["total"] = round((previous - self.started) * 1000, 2) | |
| return timings | |