feat(ui,api,admin): sveltekit admin spa, usage by day/agent/conversation/model, rate limits, memory tree, turn snapshot

This commit is contained in:
hh committed 2026-08-28 22:14:15 +02:00
1 parent aaaf459e6d
commit 00618ab7ad
158 files changed
+8459 -2531

No files matched your search

+34
View File
@@ -319,6 +319,39 @@ class Usage(SQLModel, table=True):
cost_usd: float | None = Field(default=None)
duration_ms: int | None = Field(default=None)
num_turns: int | None = Field(default=None)
model_usage: dict[str, Any] | None = Field(
default=None,
sa_column=Column(JSON().with_variant(JSONB(), "postgresql"), nullable=True),
)
class RateLimit(SQLModel, table=True):
"""One ``RateLimitEvent`` from the SDK; the newest row per ``window`` is the state.
The quota is per subscription, not per agent or conversation - the row
only remembers which session reported it.
"""
__tablename__ = "rate_limits"
id: int | None = Field(default=None, primary_key=True)
ts: datetime = Field(default_factory=_utcnow, index=True)
window: str = Field(index=True)
status: str
utilization: float | None = Field(default=None)
resets_at: datetime | None = Field(default=None)
overage_status: str | None = Field(default=None)
overage_resets_at: datetime | None = Field(default=None)
agent_name: str | None = Field(default=None)
session_id: str | None = Field(default=None)
raw: dict[str, Any] = Field(
default_factory=dict,
sa_column=Column(
JSON().with_variant(JSONB(), "postgresql"),
nullable=False,
server_default=text("'{}'"),
),
)
__all__ = [
@@ -328,6 +361,7 @@ __all__ = [
"ConversationMessage",
"Delivery",
"InjectQueueItem",
"RateLimit",
"Schedule",
"TelegramUpdate",
"Token",