+
+
+
{t("general.budget")}
+
+
+
+
+ {t("general.budgetHint")}
+
+
+
setBudgetDollars(e.target.value)}
+ className="max-w-[200px]"
+ />
+
+
{/* Self-Evolve (predefined agents only) */}
{agent.agent_type === "predefined" && (
<>
diff --git a/ui/web/src/pages/overview/overview-page.tsx b/ui/web/src/pages/overview/overview-page.tsx
index 753dc591..9feb313c 100644
--- a/ui/web/src/pages/overview/overview-page.tsx
+++ b/ui/web/src/pages/overview/overview-page.tsx
@@ -1,5 +1,5 @@
import { useEffect, useCallback } from "react";
-import { Activity, Bot, Hash, Radio, AlertTriangle } from "lucide-react";
+import { Activity, Bot, DollarSign, Hash, Radio, AlertTriangle } from "lucide-react";
import { Link } from "react-router";
import { useTranslation } from "react-i18next";
import { PageHeader } from "@/components/shared/page-header";
@@ -12,7 +12,7 @@ import { useProviders } from "@/pages/providers/hooks/use-providers";
import { useTraces } from "@/pages/traces/hooks/use-traces";
import { Methods, Events } from "@/api/protocol";
import { ROUTES } from "@/lib/constants";
-import { formatTokens } from "@/lib/format";
+import { formatTokens, formatCost } from "@/lib/format";
import type {
HealthPayload,
@@ -132,7 +132,7 @@ export function OverviewPage() {
)}
{/* Summary cards */}
-
+
+
const ContactsPage = lazy(() =>
import("@/pages/contacts/contacts-page").then((m) => ({ default: m.ContactsPage })),
);
+const ActivityPage = lazy(() =>
+ import("@/pages/activity/activity-page").then((m) => ({ default: m.ActivityPage })),
+);
function PageLoader() {
return (
@@ -145,6 +148,7 @@ export function AppRoutes() {
} />
} />
} />
+ } />
} />
} />
} />
diff --git a/ui/web/src/types/agent.ts b/ui/web/src/types/agent.ts
index 098a315c..6c2ca070 100644
--- a/ui/web/src/types/agent.ts
+++ b/ui/web/src/types/agent.ts
@@ -102,6 +102,7 @@ export interface AgentData {
compaction_config?: CompactionConfig | null;
context_pruning?: ContextPruningConfig | null;
other_config?: Record | null;
+ budget_monthly_cents?: number | null;
}
export interface AgentShareData {