@polpo-ai/dashboard 0.15.11 → 0.15.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -9
- package/dist/host.d.ts +16 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +3 -0
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +35 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -1
- package/dist/index.js.map +1 -1
- package/dist/self-host-api.d.ts +3 -0
- package/dist/self-host-api.d.ts.map +1 -0
- package/dist/self-host-api.js +55 -0
- package/dist/self-host-api.js.map +1 -0
- package/dist/v2/agents/agent-detail.d.ts +58 -0
- package/dist/v2/agents/agent-detail.d.ts.map +1 -0
- package/dist/v2/agents/agent-detail.js +412 -0
- package/dist/v2/agents/agent-detail.js.map +1 -0
- package/dist/v2/agents/agent-run-panel.d.ts +5 -0
- package/dist/v2/agents/agent-run-panel.d.ts.map +1 -0
- package/dist/v2/agents/agent-run-panel.js +149 -0
- package/dist/v2/agents/agent-run-panel.js.map +1 -0
- package/dist/v2/agents/loops-tab.d.ts +6 -0
- package/dist/v2/agents/loops-tab.d.ts.map +1 -0
- package/dist/v2/agents/loops-tab.js +160 -0
- package/dist/v2/agents/loops-tab.js.map +1 -0
- package/dist/v2/agents/model-select.d.ts +24 -0
- package/dist/v2/agents/model-select.d.ts.map +1 -0
- package/dist/v2/agents/model-select.js +157 -0
- package/dist/v2/agents/model-select.js.map +1 -0
- package/dist/v2/agents/prompt-preview-dialog.d.ts +15 -0
- package/dist/v2/agents/prompt-preview-dialog.d.ts.map +1 -0
- package/dist/v2/agents/prompt-preview-dialog.js +141 -0
- package/dist/v2/agents/prompt-preview-dialog.js.map +1 -0
- package/dist/v2/agents/self-host-create-agent-dialog.d.ts +6 -0
- package/dist/v2/agents/self-host-create-agent-dialog.d.ts.map +1 -0
- package/dist/v2/agents/self-host-create-agent-dialog.js +31 -0
- package/dist/v2/agents/self-host-create-agent-dialog.js.map +1 -0
- package/dist/v2/agents/self-host-detail.d.ts +4 -0
- package/dist/v2/agents/self-host-detail.d.ts.map +1 -0
- package/dist/v2/agents/self-host-detail.js +34 -0
- package/dist/v2/agents/self-host-detail.js.map +1 -0
- package/dist/v2/agents/self-host-run-chat.d.ts +10 -0
- package/dist/v2/agents/self-host-run-chat.d.ts.map +1 -0
- package/dist/v2/agents/self-host-run-chat.js +18 -0
- package/dist/v2/agents/self-host-run-chat.js.map +1 -0
- package/dist/v2/agents/skills-tab.d.ts +6 -0
- package/dist/v2/agents/skills-tab.d.ts.map +1 -0
- package/dist/v2/agents/skills-tab.js +112 -0
- package/dist/v2/agents/skills-tab.js.map +1 -0
- package/dist/v2/agents/tools-panel.d.ts +26 -0
- package/dist/v2/agents/tools-panel.d.ts.map +1 -0
- package/dist/v2/agents/tools-panel.js +123 -0
- package/dist/v2/agents/tools-panel.js.map +1 -0
- package/dist/v2/agents/tools-tab.d.ts +6 -0
- package/dist/v2/agents/tools-tab.d.ts.map +1 -0
- package/dist/v2/agents/tools-tab.js +117 -0
- package/dist/v2/agents/tools-tab.js.map +1 -0
- package/dist/v2/agents/vault-tab.d.ts +13 -0
- package/dist/v2/agents/vault-tab.d.ts.map +1 -0
- package/dist/v2/agents/vault-tab.js +93 -0
- package/dist/v2/agents/vault-tab.js.map +1 -0
- package/dist/v2/files/file-browser-primitives.d.ts +39 -0
- package/dist/v2/files/file-browser-primitives.d.ts.map +1 -0
- package/dist/v2/files/file-browser-primitives.js +75 -0
- package/dist/v2/files/file-browser-primitives.js.map +1 -0
- package/dist/v2/files/file-directory-browser.d.ts +10 -0
- package/dist/v2/files/file-directory-browser.d.ts.map +1 -0
- package/dist/v2/files/file-directory-browser.js +57 -0
- package/dist/v2/files/file-directory-browser.js.map +1 -0
- package/dist/v2/files/files-browser.d.ts +7 -0
- package/dist/v2/files/files-browser.d.ts.map +1 -0
- package/dist/v2/files/files-browser.js +390 -0
- package/dist/v2/files/files-browser.js.map +1 -0
- package/dist/v2/files/host.d.ts +45 -0
- package/dist/v2/files/host.d.ts.map +1 -0
- package/dist/v2/files/host.js +72 -0
- package/dist/v2/files/host.js.map +1 -0
- package/dist/v2/host.d.ts +42 -0
- package/dist/v2/host.d.ts.map +1 -0
- package/dist/v2/host.js +137 -0
- package/dist/v2/host.js.map +1 -0
- package/dist/v2/playground/chat-canvas.d.ts +9 -0
- package/dist/v2/playground/chat-canvas.d.ts.map +1 -0
- package/dist/v2/playground/chat-canvas.js +88 -0
- package/dist/v2/playground/chat-canvas.js.map +1 -0
- package/dist/v2/playground/host.d.ts +116 -0
- package/dist/v2/playground/host.d.ts.map +1 -0
- package/dist/v2/playground/host.js +12 -0
- package/dist/v2/playground/host.js.map +1 -0
- package/dist/v2/playground/self-host-chat.d.ts +11 -0
- package/dist/v2/playground/self-host-chat.d.ts.map +1 -0
- package/dist/v2/playground/self-host-chat.js +85 -0
- package/dist/v2/playground/self-host-chat.js.map +1 -0
- package/dist/v2/playground/self-host.d.ts +2 -0
- package/dist/v2/playground/self-host.d.ts.map +1 -0
- package/dist/v2/playground/self-host.js +87 -0
- package/dist/v2/playground/self-host.js.map +1 -0
- package/dist/v2/sessions/host.d.ts +167 -0
- package/dist/v2/sessions/host.d.ts.map +1 -0
- package/dist/v2/sessions/host.js +12 -0
- package/dist/v2/sessions/host.js.map +1 -0
- package/dist/v2/sessions/self-host.d.ts +7 -0
- package/dist/v2/sessions/self-host.d.ts.map +1 -0
- package/dist/v2/sessions/self-host.js +120 -0
- package/dist/v2/sessions/self-host.js.map +1 -0
- package/dist/v2/sessions/trace-columns.d.ts +4 -0
- package/dist/v2/sessions/trace-columns.d.ts.map +1 -0
- package/dist/v2/sessions/trace-columns.js +102 -0
- package/dist/v2/sessions/trace-columns.js.map +1 -0
- package/dist/v2/sessions/trace-detail-view.d.ts +7 -0
- package/dist/v2/sessions/trace-detail-view.d.ts.map +1 -0
- package/dist/v2/sessions/trace-detail-view.js +346 -0
- package/dist/v2/sessions/trace-detail-view.js.map +1 -0
- package/dist/v2/sessions/trace-detail.d.ts +133 -0
- package/dist/v2/sessions/trace-detail.d.ts.map +1 -0
- package/dist/v2/sessions/trace-detail.js +210 -0
- package/dist/v2/sessions/trace-detail.js.map +1 -0
- package/dist/v2/sessions/trace-normalize.d.ts +60 -0
- package/dist/v2/sessions/trace-normalize.d.ts.map +1 -0
- package/dist/v2/sessions/trace-normalize.js +87 -0
- package/dist/v2/sessions/trace-normalize.js.map +1 -0
- package/dist/v2/sessions/trace-table.d.ts +8 -0
- package/dist/v2/sessions/trace-table.d.ts.map +1 -0
- package/dist/v2/sessions/trace-table.js +27 -0
- package/dist/v2/sessions/trace-table.js.map +1 -0
- package/dist/v2/shell/coding-agents.d.ts +21 -0
- package/dist/v2/shell/coding-agents.d.ts.map +1 -0
- package/dist/v2/shell/coding-agents.js +41 -0
- package/dist/v2/shell/coding-agents.js.map +1 -0
- package/dist/v2/shell/dashboard-shell.d.ts +6 -0
- package/dist/v2/shell/dashboard-shell.d.ts.map +1 -0
- package/dist/v2/shell/dashboard-shell.js +132 -0
- package/dist/v2/shell/dashboard-shell.js.map +1 -0
- package/dist/v2/skills/self-host-create-skill-dialog.d.ts +6 -0
- package/dist/v2/skills/self-host-create-skill-dialog.d.ts.map +1 -0
- package/dist/v2/skills/self-host-create-skill-dialog.js +27 -0
- package/dist/v2/skills/self-host-create-skill-dialog.js.map +1 -0
- package/dist/v2/skills/self-host-detail.d.ts +4 -0
- package/dist/v2/skills/self-host-detail.d.ts.map +1 -0
- package/dist/v2/skills/self-host-detail.js +31 -0
- package/dist/v2/skills/self-host-detail.js.map +1 -0
- package/dist/v2/support/agent-call-snippets.d.ts +35 -0
- package/dist/v2/support/agent-call-snippets.d.ts.map +1 -0
- package/dist/v2/support/agent-call-snippets.js +113 -0
- package/dist/v2/support/agent-call-snippets.js.map +1 -0
- package/dist/v2/support/tool-catalog.d.ts +62 -0
- package/dist/v2/support/tool-catalog.d.ts.map +1 -0
- package/dist/v2/support/tool-catalog.js +271 -0
- package/dist/v2/support/tool-catalog.js.map +1 -0
- package/dist/v2/support/vault-fields.d.ts +29 -0
- package/dist/v2/support/vault-fields.d.ts.map +1 -0
- package/dist/v2/support/vault-fields.js +74 -0
- package/dist/v2/support/vault-fields.js.map +1 -0
- package/dist/v2/tools/param-fields.d.ts +19 -0
- package/dist/v2/tools/param-fields.d.ts.map +1 -0
- package/dist/v2/tools/param-fields.js +191 -0
- package/dist/v2/tools/param-fields.js.map +1 -0
- package/dist/v2/tools/self-host.d.ts +7 -0
- package/dist/v2/tools/self-host.d.ts.map +1 -0
- package/dist/v2/tools/self-host.js +26 -0
- package/dist/v2/tools/self-host.js.map +1 -0
- package/dist/v2/tools/source-parsing.d.ts +4 -0
- package/dist/v2/tools/source-parsing.d.ts.map +1 -0
- package/dist/v2/tools/source-parsing.js +15 -0
- package/dist/v2/tools/source-parsing.js.map +1 -0
- package/dist/v2/tools/tool-detail.d.ts +7 -0
- package/dist/v2/tools/tool-detail.d.ts.map +1 -0
- package/dist/v2/tools/tool-detail.js +157 -0
- package/dist/v2/tools/tool-detail.js.map +1 -0
- package/dist/v2/tools/tool-editor-dialog.d.ts +9 -0
- package/dist/v2/tools/tool-editor-dialog.d.ts.map +1 -0
- package/dist/v2/tools/tool-editor-dialog.js +306 -0
- package/dist/v2/tools/tool-editor-dialog.js.map +1 -0
- package/dist/v2/tools/tools-view.d.ts +21 -0
- package/dist/v2/tools/tools-view.d.ts.map +1 -0
- package/dist/v2/tools/tools-view.js +77 -0
- package/dist/v2/tools/tools-view.js.map +1 -0
- package/dist/v2/ui/bits.d.ts +23 -0
- package/dist/v2/ui/bits.d.ts.map +1 -0
- package/dist/v2/ui/bits.js +18 -0
- package/dist/v2/ui/bits.js.map +1 -0
- package/dist/v2/ui/button.d.ts +9 -0
- package/dist/v2/ui/button.d.ts.map +1 -0
- package/dist/v2/ui/button.js +33 -0
- package/dist/v2/ui/button.js.map +1 -0
- package/dist/v2/ui/code-block.d.ts +20 -0
- package/dist/v2/ui/code-block.d.ts.map +1 -0
- package/dist/v2/ui/code-block.js +44 -0
- package/dist/v2/ui/code-block.js.map +1 -0
- package/dist/v2/ui/code-editor.d.ts +9 -0
- package/dist/v2/ui/code-editor.d.ts.map +1 -0
- package/dist/v2/ui/code-editor.js +25 -0
- package/dist/v2/ui/code-editor.js.map +1 -0
- package/dist/v2/ui/copy-button.d.ts +9 -0
- package/dist/v2/ui/copy-button.d.ts.map +1 -0
- package/dist/v2/ui/copy-button.js +24 -0
- package/dist/v2/ui/copy-button.js.map +1 -0
- package/dist/v2/ui/data-table.d.ts +40 -0
- package/dist/v2/ui/data-table.d.ts.map +1 -0
- package/dist/v2/ui/data-table.js +85 -0
- package/dist/v2/ui/data-table.js.map +1 -0
- package/dist/v2/ui/dialog.d.ts +16 -0
- package/dist/v2/ui/dialog.d.ts.map +1 -0
- package/dist/v2/ui/dialog.js +39 -0
- package/dist/v2/ui/dialog.js.map +1 -0
- package/dist/v2/ui/input.d.ts +2 -0
- package/dist/v2/ui/input.d.ts.map +1 -0
- package/dist/v2/ui/input.js +7 -0
- package/dist/v2/ui/input.js.map +1 -0
- package/dist/v2/ui/multi-select-filter.d.ts +18 -0
- package/dist/v2/ui/multi-select-filter.d.ts.map +1 -0
- package/dist/v2/ui/multi-select-filter.js +37 -0
- package/dist/v2/ui/multi-select-filter.js.map +1 -0
- package/dist/v2/ui/page-header.d.ts +10 -0
- package/dist/v2/ui/page-header.d.ts.map +1 -0
- package/dist/v2/ui/page-header.js +8 -0
- package/dist/v2/ui/page-header.js.map +1 -0
- package/dist/v2/ui/refresh-button.d.ts +5 -0
- package/dist/v2/ui/refresh-button.d.ts.map +1 -0
- package/dist/v2/ui/refresh-button.js +7 -0
- package/dist/v2/ui/refresh-button.js.map +1 -0
- package/dist/v2/ui/select.d.ts +16 -0
- package/dist/v2/ui/select.d.ts.map +1 -0
- package/dist/v2/ui/select.js +36 -0
- package/dist/v2/ui/select.js.map +1 -0
- package/dist/v2/ui/skeleton.d.ts +3 -0
- package/dist/v2/ui/skeleton.d.ts.map +1 -0
- package/dist/v2/ui/skeleton.js +7 -0
- package/dist/v2/ui/skeleton.js.map +1 -0
- package/dist/v2/ui/textarea.d.ts +2 -0
- package/dist/v2/ui/textarea.d.ts.map +1 -0
- package/dist/v2/ui/textarea.js +6 -0
- package/dist/v2/ui/textarea.js.map +1 -0
- package/dist/v2/utils.d.ts +3 -0
- package/dist/v2/utils.d.ts.map +1 -0
- package/dist/v2/utils.js +6 -0
- package/dist/v2/utils.js.map +1 -0
- package/dist/v2/views/agents-detail.d.ts +2 -0
- package/dist/v2/views/agents-detail.d.ts.map +1 -0
- package/dist/v2/views/agents-detail.js +2 -0
- package/dist/v2/views/agents-detail.js.map +1 -0
- package/dist/v2/views/agents.d.ts +27 -0
- package/dist/v2/views/agents.d.ts.map +1 -0
- package/dist/v2/views/agents.js +161 -0
- package/dist/v2/views/agents.js.map +1 -0
- package/dist/v2/views/files.d.ts +2 -0
- package/dist/v2/views/files.d.ts.map +1 -0
- package/dist/v2/views/files.js +10 -0
- package/dist/v2/views/files.js.map +1 -0
- package/dist/v2/views/memory-host.d.ts +10 -0
- package/dist/v2/views/memory-host.d.ts.map +1 -0
- package/dist/v2/views/memory-host.js +17 -0
- package/dist/v2/views/memory-host.js.map +1 -0
- package/dist/v2/views/memory-project.d.ts +5 -0
- package/dist/v2/views/memory-project.d.ts.map +1 -0
- package/dist/v2/views/memory-project.js +36 -0
- package/dist/v2/views/memory-project.js.map +1 -0
- package/dist/v2/views/memory.d.ts +2 -0
- package/dist/v2/views/memory.d.ts.map +1 -0
- package/dist/v2/views/memory.js +14 -0
- package/dist/v2/views/memory.js.map +1 -0
- package/dist/v2/views/playground.d.ts +13 -0
- package/dist/v2/views/playground.d.ts.map +1 -0
- package/dist/v2/views/playground.js +88 -0
- package/dist/v2/views/playground.js.map +1 -0
- package/dist/v2/views/sessions-detail.d.ts +8 -0
- package/dist/v2/views/sessions-detail.d.ts.map +1 -0
- package/dist/v2/views/sessions-detail.js +107 -0
- package/dist/v2/views/sessions-detail.js.map +1 -0
- package/dist/v2/views/sessions.d.ts +9 -0
- package/dist/v2/views/sessions.d.ts.map +1 -0
- package/dist/v2/views/sessions.js +9 -0
- package/dist/v2/views/sessions.js.map +1 -0
- package/dist/v2/views/skills-detail.d.ts +26 -0
- package/dist/v2/views/skills-detail.d.ts.map +1 -0
- package/dist/v2/views/skills-detail.js +120 -0
- package/dist/v2/views/skills-detail.js.map +1 -0
- package/dist/v2/views/skills.d.ts +18 -0
- package/dist/v2/views/skills.d.ts.map +1 -0
- package/dist/v2/views/skills.js +46 -0
- package/dist/v2/views/skills.js.map +1 -0
- package/package.json +20 -4
- package/src/v2.css +212 -0
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { useQuery } from "../host";
|
|
5
|
+
import { Link } from "../host";
|
|
6
|
+
import { useRouter, useSearchParams } from "../host";
|
|
7
|
+
import { AGENT_TAB_TO_SUB } from "../host";
|
|
8
|
+
import { AgentRunPanel } from "./agent-run-panel";
|
|
9
|
+
import { ArrowLeft, ArrowsClockwise, Lightning, Coins, CurrencyDollar, Play, Plus, X, PencilSimple, Gauge, FloppyDisk, CircleNotch, TextAa, Eye, Image as ImageIcon, Microphone, SpeakerHigh, VideoCamera, Trash, WarningCircle, } from "@phosphor-icons/react/dist/ssr";
|
|
10
|
+
import { usePolpoClient } from "../host";
|
|
11
|
+
import { announceNavigationStart } from "../host";
|
|
12
|
+
import { countEnabledTools } from "../host";
|
|
13
|
+
import { V2_FLAGS } from "../host";
|
|
14
|
+
import { useDashboardApi } from "../../host";
|
|
15
|
+
import { normalizeAll } from "../sessions/trace-normalize";
|
|
16
|
+
import { traceColumns } from "../sessions/trace-columns";
|
|
17
|
+
import { DataTable } from "../ui/data-table";
|
|
18
|
+
import { PageBody } from "../ui/page-header";
|
|
19
|
+
import { EmptyBox } from "../ui/bits";
|
|
20
|
+
import { Button } from "../ui/button";
|
|
21
|
+
import { ModelSelect } from "./model-select";
|
|
22
|
+
import { ToolsPanel, AgentToolsPanel, } from "./tools-panel";
|
|
23
|
+
import { SkillsTab } from "./skills-tab";
|
|
24
|
+
import { LoopsTab } from "./loops-tab";
|
|
25
|
+
import { Markdown } from "../host";
|
|
26
|
+
import { VaultTab } from "./vault-tab";
|
|
27
|
+
import { useCopilot } from "../host";
|
|
28
|
+
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "../ui/dialog";
|
|
29
|
+
import { CodeBlock } from "../ui/code-block";
|
|
30
|
+
import { CopyButton } from "../ui/copy-button";
|
|
31
|
+
import { PromptPreviewDialog } from "./prompt-preview-dialog";
|
|
32
|
+
const REFINE_TEXTAREA_CLASS = "h-[calc(100vh-340px)] min-h-[360px] max-h-[900px] w-full resize-y rounded-lg border border-border bg-card p-4 font-mono text-[13px] leading-relaxed text-foreground placeholder:text-muted-foreground/40 focus:border-ring/50 focus:outline-none";
|
|
33
|
+
const TABS = [
|
|
34
|
+
"Agent",
|
|
35
|
+
"Loops",
|
|
36
|
+
"Credentials",
|
|
37
|
+
"Sessions",
|
|
38
|
+
"Tools & MCPs",
|
|
39
|
+
"Skills",
|
|
40
|
+
];
|
|
41
|
+
/** Temporarily hidden from the top bar (still live in the code + Agent sub-nav). */
|
|
42
|
+
const HIDDEN_TABS = new Set(["Tools & MCPs", "Skills", "Loops"]);
|
|
43
|
+
function teamOf(a) {
|
|
44
|
+
const raw = (a.teamName && a.teamName.trim()) ||
|
|
45
|
+
(a.team_name && a.team_name.trim()) ||
|
|
46
|
+
(a.team && a.team.trim()) ||
|
|
47
|
+
"default";
|
|
48
|
+
return raw && raw !== "default" ? raw : "default";
|
|
49
|
+
}
|
|
50
|
+
function monogram(name) {
|
|
51
|
+
return (name
|
|
52
|
+
.replace(/[^a-zA-Z0-9]/g, " ")
|
|
53
|
+
.trim()
|
|
54
|
+
.split(/\s+/)
|
|
55
|
+
.map((w) => w[0])
|
|
56
|
+
.slice(0, 2)
|
|
57
|
+
.join("")
|
|
58
|
+
.toUpperCase() || name.slice(0, 2).toUpperCase());
|
|
59
|
+
}
|
|
60
|
+
export function AgentDetail({ projectId, agent, initialMemory, initialVault, }) {
|
|
61
|
+
const [tab, setTab] = useState("Agent");
|
|
62
|
+
const [editOpen, setEditOpen] = useState(false);
|
|
63
|
+
const [runOpen, setRunOpen] = useState(false);
|
|
64
|
+
const { openChat } = useCopilot();
|
|
65
|
+
const team = teamOf(agent);
|
|
66
|
+
const code = agentConfigCode(agent);
|
|
67
|
+
const tabCount = (t) => t === "Tools & MCPs"
|
|
68
|
+
? countEnabledTools(agent.allowedTools ?? [])
|
|
69
|
+
: t === "Skills"
|
|
70
|
+
? agent.skills?.length ?? 0
|
|
71
|
+
: t === "Loops"
|
|
72
|
+
? agent.assignedLoops?.length ?? 0
|
|
73
|
+
: null;
|
|
74
|
+
return (_jsxs(PageBody, { children: [_jsxs(Link, { href: `/projects/${projectId}/agents`, className: "mb-5 inline-flex items-center gap-1.5 text-[13px] text-muted-foreground transition-colors hover:text-foreground", children: [_jsx(ArrowLeft, { size: 14 }), "Agents"] }), _jsxs("div", { className: "flex items-center justify-between gap-4", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-4", children: [V2_FLAGS.showAvatars && (_jsx("span", { className: "grid h-12 w-12 shrink-0 place-items-center rounded-lg border border-border bg-secondary text-[15px] font-semibold text-foreground", children: monogram(agent.name) })), _jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "flex items-center gap-2.5", children: [_jsx("h1", { className: "font-mono text-[20px] font-semibold tracking-tight text-foreground", children: agent.name }), V2_FLAGS.showTeams && (_jsx("span", { className: `rounded px-1.5 py-0.5 font-mono text-[10px] ${team === "default"
|
|
75
|
+
? "bg-muted text-muted-foreground"
|
|
76
|
+
: "bg-brand/10 text-brand"}`, children: team }))] }), _jsx("p", { className: "mt-0.5 text-[13px] text-muted-foreground", children: agent.role || "No role set" })] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [_jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => setEditOpen(true), children: [_jsx(PencilSimple, { size: 15 }), "Edit"] }), _jsxs(Button, { type: "button", size: "sm", onClick: () => setRunOpen(true), children: [_jsx(Play, { size: 15, weight: "fill" }), "Run"] })] })] }), _jsx("div", { className: "scrollbar-none mt-6 flex items-center gap-1 overflow-x-auto border-b border-border", children: TABS.filter((t) => !HIDDEN_TABS.has(t)).map((t) => (_jsxs("button", { type: "button", onClick: () => setTab(t), className: `-mb-px inline-flex shrink-0 items-center gap-1.5 border-b-2 px-3 py-2 text-[13px] transition-colors ${tab === t
|
|
77
|
+
? "border-brand font-medium text-foreground"
|
|
78
|
+
: "border-transparent text-muted-foreground hover:text-foreground"}`, children: [t, tabCount(t) !== null && (_jsx("span", { className: "rounded bg-secondary px-1.5 py-0.5 text-[10px] tabular-nums text-muted-foreground", children: tabCount(t) })), t === "Loops" && (_jsx("span", { className: "rounded-sm bg-brand/15 px-1 py-px text-[9px] font-semibold uppercase leading-none tracking-wide text-brand", children: "New" }))] }, t))) }), _jsxs("div", { className: "mt-6", children: [tab === "Sessions" && (_jsx(OverviewPanel, { projectId: projectId, agent: agent })), tab === "Agent" && (_jsx(SystemPanel, { projectId: projectId, agent: agent, initialMemory: initialMemory })), tab === "Tools & MCPs" && (_jsx(ToolsPanel, { projectId: projectId, agentName: agent.name, allowedTools: agent.allowedTools ?? [] })), tab === "Skills" && (_jsx(SkillsTab, { projectId: projectId, agentName: agent.name, fallbackSkills: agent.skills ?? [] })), tab === "Loops" && (_jsx(LoopsTab, { projectId: projectId, agentName: agent.name, assignedLoops: agent.assignedLoops ?? [] })), tab === "Credentials" && (_jsx(VaultTab, { projectId: projectId, agentName: agent.name, initialEntries: initialVault }))] }), _jsx(EditDialog, { open: editOpen, onOpenChange: setEditOpen, agentName: agent.name, code: code, onSubmit: (prompt) => {
|
|
79
|
+
openChat({ kind: "agent", name: agent.name, prompt });
|
|
80
|
+
setEditOpen(false);
|
|
81
|
+
} }), _jsx(RunDialog, { open: runOpen, onOpenChange: setRunOpen, projectId: projectId, agentName: agent.name })] }));
|
|
82
|
+
}
|
|
83
|
+
/* ── Edit — review config + request a change via the builder ──────────── */
|
|
84
|
+
function EditDialog({ open, onOpenChange, agentName, code, onSubmit, }) {
|
|
85
|
+
const [msg, setMsg] = useState("");
|
|
86
|
+
return (_jsx(Dialog, { open: open, onOpenChange: (o) => {
|
|
87
|
+
onOpenChange(o);
|
|
88
|
+
if (!o)
|
|
89
|
+
setMsg("");
|
|
90
|
+
}, children: _jsxs(DialogContent, { className: "v2 w-[calc(100vw-2rem)] sm:max-w-5xl", children: [_jsxs(DialogHeader, { className: "border-b border-border pb-4", children: [_jsxs(DialogTitle, { className: "flex items-center gap-2 text-[18px] font-semibold tracking-tight text-foreground", children: ["Edit", _jsx("span", { className: "rounded-md bg-secondary px-2 py-0.5 font-mono text-[14px] font-medium text-foreground", children: agentName })] }), _jsx(DialogDescription, { className: "sr-only", children: "Describe a change and send it to the builder." })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1.5 block text-[12px] font-medium text-muted-foreground", children: "What do you want to change?" }), _jsx("textarea", { autoFocus: true, value: msg, onChange: (e) => setMsg(e.target.value), onKeyDown: (e) => {
|
|
91
|
+
if (e.key === "Enter" &&
|
|
92
|
+
(e.metaKey || e.ctrlKey) &&
|
|
93
|
+
msg.trim()) {
|
|
94
|
+
e.preventDefault();
|
|
95
|
+
onSubmit(msg.trim());
|
|
96
|
+
}
|
|
97
|
+
}, placeholder: "e.g. add the web_search tool and make it always cite its sources", className: "h-24 w-full resize-none rounded-md border border-border bg-background px-3 py-2 text-[13px] text-foreground placeholder:text-muted-foreground/40 focus:border-ring/50 focus:outline-none" }), _jsxs("div", { className: "mt-2 flex items-center justify-between gap-3", children: [_jsx("span", { className: "text-[11px] text-muted-foreground", children: "Opens the builder with your request \u2014 it edits the config for you." }), _jsxs(Button, { size: "sm", disabled: !msg.trim(), onClick: () => onSubmit(msg.trim()), children: [_jsx(PencilSimple, { size: 14 }), "Request change"] })] })] }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "mb-2 text-[12px] font-medium text-muted-foreground", children: "Current configuration" }), _jsx(CodeBlock, { code: code, lang: "json", maxHeightClass: "max-h-[42vh]" })] })] }) }));
|
|
98
|
+
}
|
|
99
|
+
/* ── Run — playground + call-from-code (chat / task) ──────────────────── */
|
|
100
|
+
function RunDialog({ open, onOpenChange, projectId, agentName, }) {
|
|
101
|
+
return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "v2 flex h-[88dvh] max-h-[88dvh] w-[calc(100vw-2rem)] flex-col sm:max-w-[94rem]", children: [_jsxs(DialogHeader, { className: "shrink-0 border-b border-border pb-4", children: [_jsxs(DialogTitle, { className: "flex items-center gap-2 text-[18px] font-semibold tracking-tight text-foreground", children: ["Integrate", _jsx("span", { className: "rounded-md bg-secondary px-2 py-0.5 font-mono text-[14px] font-medium text-foreground", children: agentName })] }), _jsx(DialogDescription, { className: "text-[13px] text-muted-foreground", children: "Call it from your app with the snippet \u2014 or run a quick test here to see it work." })] }), open && (_jsx(AgentRunPanel, { projectId: projectId, agentName: agentName }))] }) }));
|
|
102
|
+
}
|
|
103
|
+
export function agentConfigCode(a) {
|
|
104
|
+
const cfg = { name: a.name };
|
|
105
|
+
if (a.role)
|
|
106
|
+
cfg.role = a.role;
|
|
107
|
+
if (a.model)
|
|
108
|
+
cfg.model = a.model;
|
|
109
|
+
if (a.image_model)
|
|
110
|
+
cfg.image_model = a.image_model;
|
|
111
|
+
if (a.vision_model)
|
|
112
|
+
cfg.vision_model = a.vision_model;
|
|
113
|
+
if (a.transcribe_model)
|
|
114
|
+
cfg.transcribe_model = a.transcribe_model;
|
|
115
|
+
if (a.tts_model)
|
|
116
|
+
cfg.tts_model = a.tts_model;
|
|
117
|
+
if (a.video_model)
|
|
118
|
+
cfg.video_model = a.video_model;
|
|
119
|
+
if (a.allowedTools?.length)
|
|
120
|
+
cfg.allowedTools = a.allowedTools;
|
|
121
|
+
if (a.skills?.length)
|
|
122
|
+
cfg.skills = a.skills;
|
|
123
|
+
if (a.assignedLoops?.length)
|
|
124
|
+
cfg.assignedLoops = a.assignedLoops;
|
|
125
|
+
const t = teamOf(a);
|
|
126
|
+
if (t !== "default")
|
|
127
|
+
cfg.team = t;
|
|
128
|
+
if (a.systemPrompt)
|
|
129
|
+
cfg.systemPrompt = a.systemPrompt;
|
|
130
|
+
return JSON.stringify(cfg, null, 2);
|
|
131
|
+
}
|
|
132
|
+
/* ── Overview ─────────────────────────────────────────────────────────── */
|
|
133
|
+
/**
|
|
134
|
+
* Overview = a small activity dashboard for this agent (what it has actually
|
|
135
|
+
* done), not a re-list of its config — model / tools / skills / loops each have
|
|
136
|
+
* their own tab.
|
|
137
|
+
*/
|
|
138
|
+
function OverviewPanel({ projectId, agent, }) {
|
|
139
|
+
const api = useDashboardApi();
|
|
140
|
+
const { data: rows = [], isLoading } = useQuery({
|
|
141
|
+
queryKey: ["agent-activity", projectId, agent.name],
|
|
142
|
+
queryFn: async () => {
|
|
143
|
+
const [s, t, l] = await Promise.all([
|
|
144
|
+
api.fetchDataPlane(projectId, "/v1/chat/sessions").catch(() => ({ data: { sessions: [] } })),
|
|
145
|
+
api.fetchDataPlane(projectId, "/v1/tasks").catch(() => ({ data: [] })),
|
|
146
|
+
api.fetchDataPlane(projectId, "/v1/loop-runs?limit=100").catch(() => ({ data: [] })),
|
|
147
|
+
]);
|
|
148
|
+
return normalizeAll((s.data?.sessions ?? []), (t.data ?? []), (l.data ?? []));
|
|
149
|
+
},
|
|
150
|
+
staleTime: 30_000,
|
|
151
|
+
});
|
|
152
|
+
const mine = rows.filter((r) => r.agent === agent.name);
|
|
153
|
+
const runs = mine.length;
|
|
154
|
+
const chatRuns = mine.filter((r) => r.kind === "chat").length;
|
|
155
|
+
const taskRuns = mine.filter((r) => r.kind === "task").length;
|
|
156
|
+
const { data: spend } = useQuery({
|
|
157
|
+
queryKey: ["agent-spend", projectId, agent.name],
|
|
158
|
+
queryFn: () => api.fetchControlPlane(`/v1/projects/${projectId}/spending?range=30d`).catch(() => ({
|
|
159
|
+
ok: false,
|
|
160
|
+
data: { byAgent: [] },
|
|
161
|
+
})),
|
|
162
|
+
staleTime: 60_000,
|
|
163
|
+
});
|
|
164
|
+
const spent = spend?.data?.byAgent?.find((x) => x.agent === agent.name);
|
|
165
|
+
const calls = spent?.calls ?? 0;
|
|
166
|
+
const tokens = (spent?.inputTokens ?? 0) + (spent?.outputTokens ?? 0);
|
|
167
|
+
const cost = spent?.cost ?? 0;
|
|
168
|
+
const avgTokPerCall = calls ? Math.round(tokens / calls) : 0;
|
|
169
|
+
return (_jsxs("div", { className: "flex flex-col gap-6", children: [isLoading ? (_jsx("div", { className: "grid grid-cols-2 gap-3 sm:grid-cols-4", children: Array.from({ length: 4 }).map((_, i) => (_jsxs("div", { className: "rounded-lg border border-border bg-card p-3.5", children: [_jsx("div", { className: "h-3 w-14 animate-pulse rounded bg-muted" }), _jsx("div", { className: "mt-2.5 h-6 w-20 animate-pulse rounded bg-muted" })] }, i))) })) : (_jsxs("div", { className: "grid grid-cols-2 gap-3 sm:grid-cols-4", children: [_jsx(StatTile, { icon: ArrowsClockwise, label: "Runs", value: runs, sub: runs ? `${chatRuns} chat · ${taskRuns} task` : undefined }), _jsx(StatTile, { icon: Lightning, label: "LLM calls", value: calls, sub: calls ? `~${fmtCompact(avgTokPerCall)} tok/call` : undefined }), _jsx(StatTile, { icon: Coins, label: "Tokens", value: fmtCompact(tokens), sub: `${fmtCompact(spent?.inputTokens ?? 0)} in · ${fmtCompact(spent?.outputTokens ?? 0)} out` }), _jsx(StatTile, { icon: CurrencyDollar, label: "Spend", value: fmtUsd(cost), sub: "last 30 days" })] })), _jsxs("div", { children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsx("h2", { className: "text-[13px] font-medium text-foreground", children: "Activity" }), _jsx(Link, { href: `/projects/${projectId}/sessions`, className: "text-[12px] text-muted-foreground transition-colors hover:text-foreground", children: "All sessions" })] }), isLoading ? (_jsx("div", { className: "rounded-lg border border-dashed border-border px-3.5 py-6 text-center text-[13px] text-muted-foreground/60", children: "Loading\u2026" })) : (_jsx(DataTable, { columns: traceColumns, data: mine, getRowId: (r) => r.id, rowHref: (r) => `/projects/${projectId}/sessions/${encodeURIComponent(r.id)}`, initialSorting: [{ id: "when", desc: true }], searchPlaceholder: "Search this agent\u2019s runs\u2026", searchFn: (r, q) => [r.title, r.loop, r.status, r.id].some((v) => (v ?? "").toLowerCase().includes(q)), empty: _jsx("span", { className: "text-sm text-muted-foreground", children: "This agent hasn\u2019t run yet \u2014 hit Test to start a session." }) }))] })] }));
|
|
170
|
+
}
|
|
171
|
+
/* ── Danger zone (lives at the bottom of the Agent tab) ───────────────── */
|
|
172
|
+
function AgentDangerZone({ projectId, agentName, }) {
|
|
173
|
+
const api = useDashboardApi();
|
|
174
|
+
const router = useRouter();
|
|
175
|
+
const [confirmDelete, setConfirmDelete] = useState(false);
|
|
176
|
+
const [deleting, setDeleting] = useState(false);
|
|
177
|
+
const [delError, setDelError] = useState(null);
|
|
178
|
+
async function del() {
|
|
179
|
+
setDeleting(true);
|
|
180
|
+
setDelError(null);
|
|
181
|
+
try {
|
|
182
|
+
await api.mutateDataPlane(projectId, `/v1/agents/${encodeURIComponent(agentName)}`, { method: "DELETE" });
|
|
183
|
+
const href = `/projects/${projectId}/agents`;
|
|
184
|
+
announceNavigationStart("agents", href);
|
|
185
|
+
router.push(href);
|
|
186
|
+
}
|
|
187
|
+
catch (e) {
|
|
188
|
+
setDelError(e instanceof Error ? e.message : "Failed to delete");
|
|
189
|
+
setDeleting(false);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between gap-4 rounded-lg border border-destructive/30 bg-destructive/[0.04] p-4", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h3", { className: "text-[13px] font-medium text-foreground", children: "Danger zone" }), _jsx("p", { className: "mt-0.5 text-[12px] text-muted-foreground", children: "Permanently delete this agent and its entire configuration." })] }), _jsxs(Button, { variant: "destructive", size: "sm", className: "shrink-0", onClick: () => setConfirmDelete(true), children: [_jsx(Trash, { size: 14 }), "Delete agent"] })] }), _jsx(Dialog, { open: confirmDelete, onOpenChange: (o) => {
|
|
193
|
+
if (!o)
|
|
194
|
+
setConfirmDelete(false);
|
|
195
|
+
}, children: _jsxs(DialogContent, { showCloseButton: false, className: "v2", children: [_jsxs(DialogHeader, { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(WarningCircle, { size: 16, className: "text-destructive", weight: "fill" }), _jsx(DialogTitle, { children: "Delete agent" })] }), _jsxs(DialogDescription, { children: ["Permanently deletes", " ", _jsx("span", { className: "font-mono font-medium text-foreground", children: agentName }), " ", "and its configuration \u2014 model, tools, skills and loop assignments. This can\u2019t be undone."] })] }), delError && _jsx("p", { className: "text-[12px] text-destructive", children: delError }), _jsxs(DialogFooter, { children: [_jsx(DialogClose, { render: _jsx(Button, { variant: "ghost", size: "sm" }), children: "Cancel" }), _jsx(Button, { variant: "destructive", size: "sm", disabled: deleting, onClick: del, children: deleting ? (_jsxs(_Fragment, { children: [_jsx(CircleNotch, { size: 14, className: "animate-spin" }), "Deleting\u2026"] })) : ("Delete agent") })] })] }) })] }));
|
|
196
|
+
}
|
|
197
|
+
function fmtCompact(n) {
|
|
198
|
+
if (n >= 1_000_000)
|
|
199
|
+
return `${(n / 1_000_000).toFixed(n >= 10_000_000 ? 0 : 1)}M`;
|
|
200
|
+
if (n >= 1_000)
|
|
201
|
+
return `${(n / 1_000).toFixed(n >= 10_000 ? 0 : 1)}k`;
|
|
202
|
+
return `${n}`;
|
|
203
|
+
}
|
|
204
|
+
function fmtUsd(n) {
|
|
205
|
+
if (n === 0)
|
|
206
|
+
return "$0.00";
|
|
207
|
+
if (n < 0.01)
|
|
208
|
+
return `$${n.toFixed(4)}`;
|
|
209
|
+
return `$${n.toFixed(2)}`;
|
|
210
|
+
}
|
|
211
|
+
function StatTile({ icon: Icon, label, value, sub, }) {
|
|
212
|
+
return (_jsxs("div", { className: "rounded-lg border border-border bg-card px-4 py-3.5", children: [_jsxs("div", { className: "flex items-center gap-1.5 text-[11px] uppercase tracking-[0.06em] text-muted-foreground/60", children: [_jsx(Icon, { size: 13 }), label] }), _jsx("div", { className: "mt-1 text-[22px] font-semibold text-foreground tabular-nums", children: value }), _jsx("div", { className: "mt-0.5 h-[15px] font-mono text-[11px] text-muted-foreground/55", "data-tabular": true, children: sub ?? "" })] }));
|
|
213
|
+
}
|
|
214
|
+
export function SystemPanel({ projectId, agent, initialMemory, hiddenSubs, fillHeight, sub: subProp, onSubChange, }) {
|
|
215
|
+
// The Meta Agent's `navigate` tool lands here via `?tab=<sub>` (mapped
|
|
216
|
+
// through AGENT_TAB_TO_SUB) — so the builder can focus a vertical tab.
|
|
217
|
+
const searchParams = useSearchParams();
|
|
218
|
+
const paramSub = (() => {
|
|
219
|
+
const raw = searchParams.get("tab");
|
|
220
|
+
const mapped = raw ? AGENT_TAB_TO_SUB[raw] : undefined;
|
|
221
|
+
return mapped ?? undefined;
|
|
222
|
+
})();
|
|
223
|
+
const [internalSub, setInternalSub] = useState(paramSub ?? "instructions");
|
|
224
|
+
const sub = subProp ?? internalSub;
|
|
225
|
+
const setSub = (s) => onSubChange ? onSubChange(s) : setInternalSub(s);
|
|
226
|
+
// Follow later `?tab=` changes (client nav to the same page) when uncontrolled.
|
|
227
|
+
useEffect(() => {
|
|
228
|
+
if (!subProp && paramSub)
|
|
229
|
+
setInternalSub(paramSub);
|
|
230
|
+
}, [subProp, paramSub]);
|
|
231
|
+
const items = [
|
|
232
|
+
{ id: "instructions", label: "Prompt" },
|
|
233
|
+
{ id: "models", label: "Models" },
|
|
234
|
+
{ id: "tools", label: "Tools & MCPs" },
|
|
235
|
+
{ id: "skills", label: "Skills" },
|
|
236
|
+
{ id: "loops", label: "Loops" },
|
|
237
|
+
{ id: "permissions", label: "Permissions" },
|
|
238
|
+
{ id: "settings", label: "Settings" },
|
|
239
|
+
].filter((it) => !hiddenSubs?.includes(it.id));
|
|
240
|
+
return (_jsxs("div", { className: `flex flex-col gap-5 md:flex-row md:gap-6 ${fillHeight ? "md:h-full md:min-h-0" : ""}`, children: [_jsx("nav", { className: `flex shrink-0 gap-1 overflow-x-auto md:w-44 md:flex-col md:gap-0.5 md:overflow-visible ${fillHeight ? "md:self-start" : ""}`, children: items.map((it) => (_jsxs("button", { type: "button", onClick: () => setSub(it.id), className: `flex shrink-0 items-center gap-1.5 rounded-md px-2.5 py-1.5 text-left text-[13px] transition-colors ${sub === it.id
|
|
241
|
+
? "bg-secondary font-medium text-foreground"
|
|
242
|
+
: "text-muted-foreground hover:bg-secondary/60 hover:text-foreground"}`, children: [it.label, it.id === "loops" && (_jsx("span", { className: "rounded-sm bg-brand/15 px-1 py-px text-[9px] font-semibold uppercase leading-none tracking-wide text-brand", children: "New" }))] }, it.id))) }), _jsxs("div", { className: `min-w-0 flex-1 ${fillHeight ? "md:min-h-0 md:overflow-y-auto md:pr-1" : ""}`, children: [sub === "models" && _jsx(ModelPanel, { projectId: projectId, agent: agent }), sub === "instructions" && (_jsx(InstructionsPanel, { projectId: projectId, agentName: agent.name, model: agent.model, initial: agent.systemPrompt ?? "" })), sub === "memory" && (_jsx(MemoryPanel, { projectId: projectId, agentName: agent.name, initial: initialMemory })), sub === "tools" && (_jsx(AgentToolsPanel, { projectId: projectId, agentName: agent.name, allowedTools: agent.allowedTools ?? [] })), sub === "skills" && (_jsx(SkillsTab, { projectId: projectId, agentName: agent.name, fallbackSkills: agent.skills ?? [] })), sub === "loops" && (_jsx(LoopsTab, { projectId: projectId, agentName: agent.name, assignedLoops: agent.assignedLoops ?? [] })), sub === "permissions" && (_jsx(SecurityPanel, { projectId: projectId, agent: agent })), sub === "settings" && (_jsx(AgentSettingsPanel, { projectId: projectId, agent: agent }))] })] }));
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Inline agent editor — the SAME panels as SystemPanel (DRY), but stacked in a
|
|
246
|
+
* single scroll instead of a vertical sub-nav. Used by the onboarding studio's
|
|
247
|
+
* "Agent" tab where a compact, no-navigation layout reads better. Only the
|
|
248
|
+
* agent-definition panels (no Credentials / Sessions, and Settings lives in the
|
|
249
|
+
* Config tab already).
|
|
250
|
+
*/
|
|
251
|
+
export function AgentInlinePanel({ projectId, agent, }) {
|
|
252
|
+
const sections = [
|
|
253
|
+
{
|
|
254
|
+
title: "Prompt",
|
|
255
|
+
node: (_jsx(InstructionsPanel, { projectId: projectId, agentName: agent.name, model: agent.model, initial: agent.systemPrompt ?? "" })),
|
|
256
|
+
},
|
|
257
|
+
{ title: "Models", node: _jsx(ModelPanel, { projectId: projectId, agent: agent }) },
|
|
258
|
+
{
|
|
259
|
+
title: "Tools & MCPs",
|
|
260
|
+
node: (_jsx(AgentToolsPanel, { projectId: projectId, agentName: agent.name, allowedTools: agent.allowedTools ?? [] })),
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
title: "Skills",
|
|
264
|
+
node: (_jsx(SkillsTab, { projectId: projectId, agentName: agent.name, fallbackSkills: agent.skills ?? [] })),
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
title: "Loops",
|
|
268
|
+
node: (_jsx(LoopsTab, { projectId: projectId, agentName: agent.name, assignedLoops: agent.assignedLoops ?? [] })),
|
|
269
|
+
},
|
|
270
|
+
];
|
|
271
|
+
return (_jsx("div", { className: "flex flex-col divide-y divide-border", children: sections.map((s) => (_jsxs("section", { className: "flex flex-col gap-3 py-5 first:pt-0 last:pb-0", children: [_jsx("h3", { className: "text-[13px] font-semibold text-foreground", children: s.title }), s.node] }, s.title))) }));
|
|
272
|
+
}
|
|
273
|
+
/* ── Settings (identity + lifecycle) ──────────────────────────────────── */
|
|
274
|
+
function AgentSettingsPanel({ projectId, agent, }) {
|
|
275
|
+
return (_jsxs("div", { className: "flex flex-col gap-8", children: [_jsxs("section", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsx("p", { className: "text-[13px] text-muted-foreground", children: "The full definition of this agent \u2014 copy it to version-control or recreate it elsewhere." }), _jsx(CopyButton, { text: agentConfigCode(agent), label: "Copy" })] }), _jsx(CodeBlock, { code: agentConfigCode(agent), lang: "json", showCopy: false })] }), _jsx(AgentDangerZone, { projectId: projectId, agentName: agent.name })] }));
|
|
276
|
+
}
|
|
277
|
+
/* ── Security (filesystem sandbox) ────────────────────────────────────── */
|
|
278
|
+
function SecurityPanel({ projectId, agent, }) {
|
|
279
|
+
const api = useDashboardApi();
|
|
280
|
+
const router = useRouter();
|
|
281
|
+
const initial = agent.allowedPaths ?? [];
|
|
282
|
+
const [paths, setPaths] = useState(initial);
|
|
283
|
+
const [draft, setDraft] = useState("");
|
|
284
|
+
const [saving, setSaving] = useState(false);
|
|
285
|
+
const [error, setError] = useState(null);
|
|
286
|
+
const dirty = paths.length !== initial.length || paths.some((p, i) => p !== initial[i]);
|
|
287
|
+
function add() {
|
|
288
|
+
const p = draft.trim();
|
|
289
|
+
if (!p || paths.includes(p))
|
|
290
|
+
return;
|
|
291
|
+
setPaths([...paths, p]);
|
|
292
|
+
setDraft("");
|
|
293
|
+
}
|
|
294
|
+
async function save() {
|
|
295
|
+
setSaving(true);
|
|
296
|
+
setError(null);
|
|
297
|
+
try {
|
|
298
|
+
await api.mutateDataPlane(projectId, `/v1/agents/${encodeURIComponent(agent.name)}`, { method: "PATCH", body: { allowedPaths: paths } });
|
|
299
|
+
router.refresh();
|
|
300
|
+
}
|
|
301
|
+
catch (e) {
|
|
302
|
+
setError(e instanceof Error ? e.message : "Failed to save");
|
|
303
|
+
}
|
|
304
|
+
finally {
|
|
305
|
+
setSaving(false);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return (_jsxs("div", { className: "flex max-w-2xl flex-col gap-5", children: [_jsxs("div", { children: [_jsx("p", { className: "text-[13px] text-muted-foreground", children: "Directories this agent may read and write. Leave empty to use the runtime\u2019s default sandbox." }), _jsxs("div", { className: "mt-3 flex gap-2", children: [_jsx("input", { value: draft, onChange: (e) => setDraft(e.target.value), onKeyDown: (e) => {
|
|
309
|
+
if (e.key === "Enter") {
|
|
310
|
+
e.preventDefault();
|
|
311
|
+
add();
|
|
312
|
+
}
|
|
313
|
+
}, placeholder: "/workspace/data", className: "h-9 flex-1 rounded-md border border-border bg-background px-3 font-mono text-[13px] text-foreground placeholder:text-muted-foreground/40 focus:border-ring/50 focus:outline-none" }), _jsxs(Button, { variant: "outline", size: "sm", disabled: !draft.trim(), onClick: add, children: [_jsx(Plus, { size: 14, weight: "bold" }), "Add"] })] }), paths.length > 0 ? (_jsx("div", { className: "mt-3 overflow-hidden rounded-lg border border-border bg-card", children: paths.map((p, i) => (_jsxs("div", { className: `flex items-center justify-between gap-2 px-3.5 py-2.5 ${i > 0 ? "border-t border-border" : ""}`, children: [_jsx("code", { className: "min-w-0 truncate font-mono text-[12px] text-foreground", children: p }), _jsx("button", { type: "button", onClick: () => setPaths(paths.filter((x) => x !== p)), "aria-label": `Remove ${p}`, className: "grid h-7 w-7 shrink-0 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-secondary hover:text-destructive", children: _jsx(X, { size: 13, weight: "bold" }) })] }, p))) })) : (_jsx("div", { className: "mt-3 rounded-lg border border-dashed border-border py-8 text-center text-[13px] text-muted-foreground", children: "No paths set \u2014 using the default sandbox." }))] }), error && _jsx("p", { className: "text-[12px] text-destructive", children: error }), _jsx("div", { children: _jsxs(Button, { size: "sm", disabled: !dirty || saving, onClick: save, children: [saving ? _jsx(CircleNotch, { size: 14, className: "animate-spin" }) : null, "Save"] }) })] }));
|
|
314
|
+
}
|
|
315
|
+
/* ── Model (capability slots) ─────────────────────────────────────────── */
|
|
316
|
+
const IMAGE_MODELS = [
|
|
317
|
+
{ id: "fal/fal-ai/flux/dev", provider: "fal", name: "flux/dev" },
|
|
318
|
+
{ id: "fal/fal-ai/flux/schnell", provider: "fal", name: "flux/schnell" },
|
|
319
|
+
{ id: "fal/fal-ai/flux-pro/v1.1", provider: "fal", name: "flux-pro v1.1" },
|
|
320
|
+
{ id: "openai/gpt-image-1", provider: "openai", name: "gpt-image-1" },
|
|
321
|
+
];
|
|
322
|
+
const STT_MODELS = [
|
|
323
|
+
{ id: "openai/whisper-1", provider: "openai", name: "whisper-1" },
|
|
324
|
+
{ id: "openai/gpt-4o-transcribe", provider: "openai", name: "gpt-4o-transcribe" },
|
|
325
|
+
];
|
|
326
|
+
const TTS_MODELS = [
|
|
327
|
+
{ id: "edge/edge-tts", provider: "edge", name: "edge-tts (free)" },
|
|
328
|
+
{ id: "openai/tts-1", provider: "openai", name: "tts-1" },
|
|
329
|
+
{ id: "openai/gpt-4o-mini-tts", provider: "openai", name: "gpt-4o-mini-tts" },
|
|
330
|
+
];
|
|
331
|
+
const VIDEO_MODELS = [
|
|
332
|
+
{ id: "fal/luma-ray-2-flash", provider: "fal", name: "luma-ray-2-flash" },
|
|
333
|
+
{ id: "fal/luma-ray-2", provider: "fal", name: "luma-ray-2" },
|
|
334
|
+
];
|
|
335
|
+
function ModelPanel({ projectId, agent, }) {
|
|
336
|
+
const slots = [
|
|
337
|
+
{ field: "model", label: "Text generation", desc: "Reasoning and tool calls", icon: TextAa, current: agent.model },
|
|
338
|
+
{ field: "vision_model", label: "Vision", desc: "Understands images", icon: Eye, current: agent.vision_model },
|
|
339
|
+
{ field: "image_model", label: "Image generation", desc: "Creates images from prompts", icon: ImageIcon, current: agent.image_model, options: IMAGE_MODELS },
|
|
340
|
+
{ field: "transcribe_model", label: "Speech-to-text", desc: "Transcribes audio", icon: Microphone, current: agent.transcribe_model, options: STT_MODELS },
|
|
341
|
+
{ field: "tts_model", label: "Text-to-speech", desc: "Generates speech", icon: SpeakerHigh, current: agent.tts_model, options: TTS_MODELS },
|
|
342
|
+
{ field: "video_model", label: "Video generation", desc: "Creates video from prompts", icon: VideoCamera, current: agent.video_model, options: VIDEO_MODELS },
|
|
343
|
+
];
|
|
344
|
+
return (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-[13px] text-muted-foreground", children: "The model this agent uses for each capability. Text generation is the core; the others only apply when it works with images, audio, or video." }), _jsx("div", { className: "flex flex-col divide-y divide-border rounded-lg border border-border bg-card", children: slots.map((s) => {
|
|
345
|
+
const Icon = s.icon;
|
|
346
|
+
return (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 px-3.5 py-2.5", children: [_jsxs("div", { className: "flex items-start gap-2.5", children: [_jsx(Icon, { size: 17, className: "mt-0.5 shrink-0 text-muted-foreground" }), _jsxs("div", { children: [_jsx("div", { className: "text-[14px] font-medium text-foreground", children: s.label }), s.desc && (_jsx("div", { className: "mt-0.5 text-[12px] text-muted-foreground", children: s.desc }))] })] }), _jsx(ModelSelect, { projectId: projectId, agentName: agent.name, currentModel: s.current, field: s.field, options: s.options })] }, s.field));
|
|
347
|
+
}) })] }));
|
|
348
|
+
}
|
|
349
|
+
/* ── Instructions ─────────────────────────────────────────────────────── */
|
|
350
|
+
function InstructionsPanel({ projectId, agentName, model, initial, }) {
|
|
351
|
+
const api = useDashboardApi();
|
|
352
|
+
const router = useRouter();
|
|
353
|
+
const [value, setValue] = useState(initial);
|
|
354
|
+
const [mode, setMode] = useState(initial ? "read" : "edit");
|
|
355
|
+
const [promptOpen, setPromptOpen] = useState(false);
|
|
356
|
+
const [saving, setSaving] = useState(false);
|
|
357
|
+
const [error, setError] = useState(null);
|
|
358
|
+
const dirty = value !== initial;
|
|
359
|
+
async function save() {
|
|
360
|
+
setSaving(true);
|
|
361
|
+
setError(null);
|
|
362
|
+
try {
|
|
363
|
+
await api.mutateDataPlane(projectId, `/v1/agents/${encodeURIComponent(agentName)}`, { method: "PATCH", body: { systemPrompt: value } });
|
|
364
|
+
router.refresh();
|
|
365
|
+
setMode("read");
|
|
366
|
+
}
|
|
367
|
+
catch (e) {
|
|
368
|
+
setError(e instanceof Error ? e.message : "Save failed");
|
|
369
|
+
}
|
|
370
|
+
finally {
|
|
371
|
+
setSaving(false);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
return (_jsxs("div", { children: [_jsxs("div", { className: "mb-3 flex items-start justify-between gap-3", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("p", { className: "text-[13px] text-muted-foreground", children: "Extra instructions appended to the agent\u2019s system prompt." }), _jsxs("span", { className: "font-mono text-[11px] text-muted-foreground/50", "data-tabular": true, children: [value.length, " chars \u00B7 ~", Math.ceil(value.length / 4), " tokens"] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => setPromptOpen(true), children: [_jsx(Gauge, { size: 15 }), "Inspect prompt"] }), mode === "read" ? (_jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => setMode("edit"), children: [_jsx(PencilSimple, { size: 15 }), "Refine"] })) : (_jsxs(_Fragment, { children: [_jsx(Button, { size: "sm", onClick: save, disabled: !dirty || saving, children: saving ? (_jsxs(_Fragment, { children: [_jsx(CircleNotch, { size: 14, className: "animate-spin" }), "Saving\u2026"] })) : (_jsxs(_Fragment, { children: [_jsx(FloppyDisk, { size: 14 }), "Save"] })) }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", disabled: saving, onClick: () => {
|
|
375
|
+
setValue(initial);
|
|
376
|
+
setError(null);
|
|
377
|
+
setMode("read");
|
|
378
|
+
}, children: "Cancel" })] }))] })] }), _jsx(PromptPreviewDialog, { projectId: projectId, agentName: agentName, model: model, open: promptOpen, onOpenChange: setPromptOpen }), mode === "read" ? (value.trim() ? (_jsx("div", { className: "rounded-lg border border-border bg-card px-4 py-3 text-[13px] leading-relaxed text-foreground", children: _jsx(Markdown, { content: value }) })) : (_jsx(EmptyBox, { children: "No instructions yet \u2014 click Edit to add them." }))) : (_jsxs(_Fragment, { children: [_jsx("textarea", { value: value, onChange: (e) => setValue(e.target.value), spellCheck: false, placeholder: "You are a meticulous research assistant\u2026", className: REFINE_TEXTAREA_CLASS }), error && _jsx("p", { className: "mt-2 text-[12px] text-destructive", children: error })] }))] }));
|
|
379
|
+
}
|
|
380
|
+
/* ── Memory ───────────────────────────────────────────────────────────── */
|
|
381
|
+
function MemoryPanel({ projectId, agentName, initial, }) {
|
|
382
|
+
const router = useRouter();
|
|
383
|
+
const polpo = usePolpoClient(projectId);
|
|
384
|
+
const [value, setValue] = useState(initial);
|
|
385
|
+
const [mode, setMode] = useState(initial ? "read" : "edit");
|
|
386
|
+
const [savedAt, setSavedAt] = useState(initial);
|
|
387
|
+
const [saving, setSaving] = useState(false);
|
|
388
|
+
const [error, setError] = useState(null);
|
|
389
|
+
const dirty = value !== savedAt;
|
|
390
|
+
async function save() {
|
|
391
|
+
setSaving(true);
|
|
392
|
+
setError(null);
|
|
393
|
+
try {
|
|
394
|
+
await polpo.saveAgentMemory(agentName, value);
|
|
395
|
+
setSavedAt(value);
|
|
396
|
+
setMode("read");
|
|
397
|
+
router.refresh();
|
|
398
|
+
}
|
|
399
|
+
catch (e) {
|
|
400
|
+
setError(e instanceof Error ? e.message : "Save failed");
|
|
401
|
+
}
|
|
402
|
+
finally {
|
|
403
|
+
setSaving(false);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
return (_jsxs("div", { children: [_jsxs("div", { className: "mb-3 flex items-start justify-between gap-3", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("p", { className: "text-[13px] text-muted-foreground", children: "Persistent notes the agent reads and writes across runs (Markdown)." }), _jsxs("span", { className: "font-mono text-[11px] text-muted-foreground/50", "data-tabular": true, children: [value.length, " chars \u00B7 ~", Math.ceil(value.length / 4), " tokens"] })] }), _jsx("div", { className: "flex items-center gap-2", children: mode === "read" ? (_jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => setMode("edit"), children: [_jsx(PencilSimple, { size: 15 }), "Refine"] })) : (_jsxs(_Fragment, { children: [_jsx(Button, { size: "sm", onClick: save, disabled: !dirty || saving, children: saving ? (_jsxs(_Fragment, { children: [_jsx(CircleNotch, { size: 14, className: "animate-spin" }), "Saving\u2026"] })) : (_jsxs(_Fragment, { children: [_jsx(FloppyDisk, { size: 14 }), "Save memory"] })) }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", disabled: saving, onClick: () => {
|
|
407
|
+
setValue(savedAt);
|
|
408
|
+
setError(null);
|
|
409
|
+
setMode(savedAt ? "read" : "edit");
|
|
410
|
+
}, children: "Cancel" })] })) })] }), mode === "read" ? (value.trim() ? (_jsx("div", { className: "rounded-lg border border-border bg-card px-4 py-3 text-[13px] leading-relaxed text-foreground", children: _jsx(Markdown, { content: value }) })) : (_jsx(EmptyBox, { children: "No agent memory yet. Click Refine to add it." }))) : (_jsxs(_Fragment, { children: [_jsx("textarea", { value: value, onChange: (e) => setValue(e.target.value), spellCheck: false, placeholder: "Things this agent should remember across runs\u2026", className: REFINE_TEXTAREA_CLASS }), error && _jsx("p", { className: "mt-2 text-[12px] text-destructive", children: error })] }))] }));
|
|
411
|
+
}
|
|
412
|
+
//# sourceMappingURL=agent-detail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-detail.js","sourceRoot":"","sources":["../../../src/v2/agents/agent-detail.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-run-panel.d.ts","sourceRoot":"","sources":["../../../src/v2/agents/agent-run-panel.tsx"],"names":[],"mappings":"AAmCA,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,SAAS,GACV,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,2CAsaA"}
|