@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.
Files changed (283) hide show
  1. package/README.md +43 -9
  2. package/dist/host.d.ts +16 -0
  3. package/dist/host.d.ts.map +1 -1
  4. package/dist/host.js +3 -0
  5. package/dist/host.js.map +1 -1
  6. package/dist/index.d.ts +35 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +27 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/self-host-api.d.ts +3 -0
  11. package/dist/self-host-api.d.ts.map +1 -0
  12. package/dist/self-host-api.js +55 -0
  13. package/dist/self-host-api.js.map +1 -0
  14. package/dist/v2/agents/agent-detail.d.ts +58 -0
  15. package/dist/v2/agents/agent-detail.d.ts.map +1 -0
  16. package/dist/v2/agents/agent-detail.js +412 -0
  17. package/dist/v2/agents/agent-detail.js.map +1 -0
  18. package/dist/v2/agents/agent-run-panel.d.ts +5 -0
  19. package/dist/v2/agents/agent-run-panel.d.ts.map +1 -0
  20. package/dist/v2/agents/agent-run-panel.js +149 -0
  21. package/dist/v2/agents/agent-run-panel.js.map +1 -0
  22. package/dist/v2/agents/loops-tab.d.ts +6 -0
  23. package/dist/v2/agents/loops-tab.d.ts.map +1 -0
  24. package/dist/v2/agents/loops-tab.js +160 -0
  25. package/dist/v2/agents/loops-tab.js.map +1 -0
  26. package/dist/v2/agents/model-select.d.ts +24 -0
  27. package/dist/v2/agents/model-select.d.ts.map +1 -0
  28. package/dist/v2/agents/model-select.js +157 -0
  29. package/dist/v2/agents/model-select.js.map +1 -0
  30. package/dist/v2/agents/prompt-preview-dialog.d.ts +15 -0
  31. package/dist/v2/agents/prompt-preview-dialog.d.ts.map +1 -0
  32. package/dist/v2/agents/prompt-preview-dialog.js +141 -0
  33. package/dist/v2/agents/prompt-preview-dialog.js.map +1 -0
  34. package/dist/v2/agents/self-host-create-agent-dialog.d.ts +6 -0
  35. package/dist/v2/agents/self-host-create-agent-dialog.d.ts.map +1 -0
  36. package/dist/v2/agents/self-host-create-agent-dialog.js +31 -0
  37. package/dist/v2/agents/self-host-create-agent-dialog.js.map +1 -0
  38. package/dist/v2/agents/self-host-detail.d.ts +4 -0
  39. package/dist/v2/agents/self-host-detail.d.ts.map +1 -0
  40. package/dist/v2/agents/self-host-detail.js +34 -0
  41. package/dist/v2/agents/self-host-detail.js.map +1 -0
  42. package/dist/v2/agents/self-host-run-chat.d.ts +10 -0
  43. package/dist/v2/agents/self-host-run-chat.d.ts.map +1 -0
  44. package/dist/v2/agents/self-host-run-chat.js +18 -0
  45. package/dist/v2/agents/self-host-run-chat.js.map +1 -0
  46. package/dist/v2/agents/skills-tab.d.ts +6 -0
  47. package/dist/v2/agents/skills-tab.d.ts.map +1 -0
  48. package/dist/v2/agents/skills-tab.js +112 -0
  49. package/dist/v2/agents/skills-tab.js.map +1 -0
  50. package/dist/v2/agents/tools-panel.d.ts +26 -0
  51. package/dist/v2/agents/tools-panel.d.ts.map +1 -0
  52. package/dist/v2/agents/tools-panel.js +123 -0
  53. package/dist/v2/agents/tools-panel.js.map +1 -0
  54. package/dist/v2/agents/tools-tab.d.ts +6 -0
  55. package/dist/v2/agents/tools-tab.d.ts.map +1 -0
  56. package/dist/v2/agents/tools-tab.js +117 -0
  57. package/dist/v2/agents/tools-tab.js.map +1 -0
  58. package/dist/v2/agents/vault-tab.d.ts +13 -0
  59. package/dist/v2/agents/vault-tab.d.ts.map +1 -0
  60. package/dist/v2/agents/vault-tab.js +93 -0
  61. package/dist/v2/agents/vault-tab.js.map +1 -0
  62. package/dist/v2/files/file-browser-primitives.d.ts +39 -0
  63. package/dist/v2/files/file-browser-primitives.d.ts.map +1 -0
  64. package/dist/v2/files/file-browser-primitives.js +75 -0
  65. package/dist/v2/files/file-browser-primitives.js.map +1 -0
  66. package/dist/v2/files/file-directory-browser.d.ts +10 -0
  67. package/dist/v2/files/file-directory-browser.d.ts.map +1 -0
  68. package/dist/v2/files/file-directory-browser.js +57 -0
  69. package/dist/v2/files/file-directory-browser.js.map +1 -0
  70. package/dist/v2/files/files-browser.d.ts +7 -0
  71. package/dist/v2/files/files-browser.d.ts.map +1 -0
  72. package/dist/v2/files/files-browser.js +390 -0
  73. package/dist/v2/files/files-browser.js.map +1 -0
  74. package/dist/v2/files/host.d.ts +45 -0
  75. package/dist/v2/files/host.d.ts.map +1 -0
  76. package/dist/v2/files/host.js +72 -0
  77. package/dist/v2/files/host.js.map +1 -0
  78. package/dist/v2/host.d.ts +42 -0
  79. package/dist/v2/host.d.ts.map +1 -0
  80. package/dist/v2/host.js +137 -0
  81. package/dist/v2/host.js.map +1 -0
  82. package/dist/v2/playground/chat-canvas.d.ts +9 -0
  83. package/dist/v2/playground/chat-canvas.d.ts.map +1 -0
  84. package/dist/v2/playground/chat-canvas.js +88 -0
  85. package/dist/v2/playground/chat-canvas.js.map +1 -0
  86. package/dist/v2/playground/host.d.ts +116 -0
  87. package/dist/v2/playground/host.d.ts.map +1 -0
  88. package/dist/v2/playground/host.js +12 -0
  89. package/dist/v2/playground/host.js.map +1 -0
  90. package/dist/v2/playground/self-host-chat.d.ts +11 -0
  91. package/dist/v2/playground/self-host-chat.d.ts.map +1 -0
  92. package/dist/v2/playground/self-host-chat.js +85 -0
  93. package/dist/v2/playground/self-host-chat.js.map +1 -0
  94. package/dist/v2/playground/self-host.d.ts +2 -0
  95. package/dist/v2/playground/self-host.d.ts.map +1 -0
  96. package/dist/v2/playground/self-host.js +87 -0
  97. package/dist/v2/playground/self-host.js.map +1 -0
  98. package/dist/v2/sessions/host.d.ts +167 -0
  99. package/dist/v2/sessions/host.d.ts.map +1 -0
  100. package/dist/v2/sessions/host.js +12 -0
  101. package/dist/v2/sessions/host.js.map +1 -0
  102. package/dist/v2/sessions/self-host.d.ts +7 -0
  103. package/dist/v2/sessions/self-host.d.ts.map +1 -0
  104. package/dist/v2/sessions/self-host.js +120 -0
  105. package/dist/v2/sessions/self-host.js.map +1 -0
  106. package/dist/v2/sessions/trace-columns.d.ts +4 -0
  107. package/dist/v2/sessions/trace-columns.d.ts.map +1 -0
  108. package/dist/v2/sessions/trace-columns.js +102 -0
  109. package/dist/v2/sessions/trace-columns.js.map +1 -0
  110. package/dist/v2/sessions/trace-detail-view.d.ts +7 -0
  111. package/dist/v2/sessions/trace-detail-view.d.ts.map +1 -0
  112. package/dist/v2/sessions/trace-detail-view.js +346 -0
  113. package/dist/v2/sessions/trace-detail-view.js.map +1 -0
  114. package/dist/v2/sessions/trace-detail.d.ts +133 -0
  115. package/dist/v2/sessions/trace-detail.d.ts.map +1 -0
  116. package/dist/v2/sessions/trace-detail.js +210 -0
  117. package/dist/v2/sessions/trace-detail.js.map +1 -0
  118. package/dist/v2/sessions/trace-normalize.d.ts +60 -0
  119. package/dist/v2/sessions/trace-normalize.d.ts.map +1 -0
  120. package/dist/v2/sessions/trace-normalize.js +87 -0
  121. package/dist/v2/sessions/trace-normalize.js.map +1 -0
  122. package/dist/v2/sessions/trace-table.d.ts +8 -0
  123. package/dist/v2/sessions/trace-table.d.ts.map +1 -0
  124. package/dist/v2/sessions/trace-table.js +27 -0
  125. package/dist/v2/sessions/trace-table.js.map +1 -0
  126. package/dist/v2/shell/coding-agents.d.ts +21 -0
  127. package/dist/v2/shell/coding-agents.d.ts.map +1 -0
  128. package/dist/v2/shell/coding-agents.js +41 -0
  129. package/dist/v2/shell/coding-agents.js.map +1 -0
  130. package/dist/v2/shell/dashboard-shell.d.ts +6 -0
  131. package/dist/v2/shell/dashboard-shell.d.ts.map +1 -0
  132. package/dist/v2/shell/dashboard-shell.js +132 -0
  133. package/dist/v2/shell/dashboard-shell.js.map +1 -0
  134. package/dist/v2/skills/self-host-create-skill-dialog.d.ts +6 -0
  135. package/dist/v2/skills/self-host-create-skill-dialog.d.ts.map +1 -0
  136. package/dist/v2/skills/self-host-create-skill-dialog.js +27 -0
  137. package/dist/v2/skills/self-host-create-skill-dialog.js.map +1 -0
  138. package/dist/v2/skills/self-host-detail.d.ts +4 -0
  139. package/dist/v2/skills/self-host-detail.d.ts.map +1 -0
  140. package/dist/v2/skills/self-host-detail.js +31 -0
  141. package/dist/v2/skills/self-host-detail.js.map +1 -0
  142. package/dist/v2/support/agent-call-snippets.d.ts +35 -0
  143. package/dist/v2/support/agent-call-snippets.d.ts.map +1 -0
  144. package/dist/v2/support/agent-call-snippets.js +113 -0
  145. package/dist/v2/support/agent-call-snippets.js.map +1 -0
  146. package/dist/v2/support/tool-catalog.d.ts +62 -0
  147. package/dist/v2/support/tool-catalog.d.ts.map +1 -0
  148. package/dist/v2/support/tool-catalog.js +271 -0
  149. package/dist/v2/support/tool-catalog.js.map +1 -0
  150. package/dist/v2/support/vault-fields.d.ts +29 -0
  151. package/dist/v2/support/vault-fields.d.ts.map +1 -0
  152. package/dist/v2/support/vault-fields.js +74 -0
  153. package/dist/v2/support/vault-fields.js.map +1 -0
  154. package/dist/v2/tools/param-fields.d.ts +19 -0
  155. package/dist/v2/tools/param-fields.d.ts.map +1 -0
  156. package/dist/v2/tools/param-fields.js +191 -0
  157. package/dist/v2/tools/param-fields.js.map +1 -0
  158. package/dist/v2/tools/self-host.d.ts +7 -0
  159. package/dist/v2/tools/self-host.d.ts.map +1 -0
  160. package/dist/v2/tools/self-host.js +26 -0
  161. package/dist/v2/tools/self-host.js.map +1 -0
  162. package/dist/v2/tools/source-parsing.d.ts +4 -0
  163. package/dist/v2/tools/source-parsing.d.ts.map +1 -0
  164. package/dist/v2/tools/source-parsing.js +15 -0
  165. package/dist/v2/tools/source-parsing.js.map +1 -0
  166. package/dist/v2/tools/tool-detail.d.ts +7 -0
  167. package/dist/v2/tools/tool-detail.d.ts.map +1 -0
  168. package/dist/v2/tools/tool-detail.js +157 -0
  169. package/dist/v2/tools/tool-detail.js.map +1 -0
  170. package/dist/v2/tools/tool-editor-dialog.d.ts +9 -0
  171. package/dist/v2/tools/tool-editor-dialog.d.ts.map +1 -0
  172. package/dist/v2/tools/tool-editor-dialog.js +306 -0
  173. package/dist/v2/tools/tool-editor-dialog.js.map +1 -0
  174. package/dist/v2/tools/tools-view.d.ts +21 -0
  175. package/dist/v2/tools/tools-view.d.ts.map +1 -0
  176. package/dist/v2/tools/tools-view.js +77 -0
  177. package/dist/v2/tools/tools-view.js.map +1 -0
  178. package/dist/v2/ui/bits.d.ts +23 -0
  179. package/dist/v2/ui/bits.d.ts.map +1 -0
  180. package/dist/v2/ui/bits.js +18 -0
  181. package/dist/v2/ui/bits.js.map +1 -0
  182. package/dist/v2/ui/button.d.ts +9 -0
  183. package/dist/v2/ui/button.d.ts.map +1 -0
  184. package/dist/v2/ui/button.js +33 -0
  185. package/dist/v2/ui/button.js.map +1 -0
  186. package/dist/v2/ui/code-block.d.ts +20 -0
  187. package/dist/v2/ui/code-block.d.ts.map +1 -0
  188. package/dist/v2/ui/code-block.js +44 -0
  189. package/dist/v2/ui/code-block.js.map +1 -0
  190. package/dist/v2/ui/code-editor.d.ts +9 -0
  191. package/dist/v2/ui/code-editor.d.ts.map +1 -0
  192. package/dist/v2/ui/code-editor.js +25 -0
  193. package/dist/v2/ui/code-editor.js.map +1 -0
  194. package/dist/v2/ui/copy-button.d.ts +9 -0
  195. package/dist/v2/ui/copy-button.d.ts.map +1 -0
  196. package/dist/v2/ui/copy-button.js +24 -0
  197. package/dist/v2/ui/copy-button.js.map +1 -0
  198. package/dist/v2/ui/data-table.d.ts +40 -0
  199. package/dist/v2/ui/data-table.d.ts.map +1 -0
  200. package/dist/v2/ui/data-table.js +85 -0
  201. package/dist/v2/ui/data-table.js.map +1 -0
  202. package/dist/v2/ui/dialog.d.ts +16 -0
  203. package/dist/v2/ui/dialog.d.ts.map +1 -0
  204. package/dist/v2/ui/dialog.js +39 -0
  205. package/dist/v2/ui/dialog.js.map +1 -0
  206. package/dist/v2/ui/input.d.ts +2 -0
  207. package/dist/v2/ui/input.d.ts.map +1 -0
  208. package/dist/v2/ui/input.js +7 -0
  209. package/dist/v2/ui/input.js.map +1 -0
  210. package/dist/v2/ui/multi-select-filter.d.ts +18 -0
  211. package/dist/v2/ui/multi-select-filter.d.ts.map +1 -0
  212. package/dist/v2/ui/multi-select-filter.js +37 -0
  213. package/dist/v2/ui/multi-select-filter.js.map +1 -0
  214. package/dist/v2/ui/page-header.d.ts +10 -0
  215. package/dist/v2/ui/page-header.d.ts.map +1 -0
  216. package/dist/v2/ui/page-header.js +8 -0
  217. package/dist/v2/ui/page-header.js.map +1 -0
  218. package/dist/v2/ui/refresh-button.d.ts +5 -0
  219. package/dist/v2/ui/refresh-button.d.ts.map +1 -0
  220. package/dist/v2/ui/refresh-button.js +7 -0
  221. package/dist/v2/ui/refresh-button.js.map +1 -0
  222. package/dist/v2/ui/select.d.ts +16 -0
  223. package/dist/v2/ui/select.d.ts.map +1 -0
  224. package/dist/v2/ui/select.js +36 -0
  225. package/dist/v2/ui/select.js.map +1 -0
  226. package/dist/v2/ui/skeleton.d.ts +3 -0
  227. package/dist/v2/ui/skeleton.d.ts.map +1 -0
  228. package/dist/v2/ui/skeleton.js +7 -0
  229. package/dist/v2/ui/skeleton.js.map +1 -0
  230. package/dist/v2/ui/textarea.d.ts +2 -0
  231. package/dist/v2/ui/textarea.d.ts.map +1 -0
  232. package/dist/v2/ui/textarea.js +6 -0
  233. package/dist/v2/ui/textarea.js.map +1 -0
  234. package/dist/v2/utils.d.ts +3 -0
  235. package/dist/v2/utils.d.ts.map +1 -0
  236. package/dist/v2/utils.js +6 -0
  237. package/dist/v2/utils.js.map +1 -0
  238. package/dist/v2/views/agents-detail.d.ts +2 -0
  239. package/dist/v2/views/agents-detail.d.ts.map +1 -0
  240. package/dist/v2/views/agents-detail.js +2 -0
  241. package/dist/v2/views/agents-detail.js.map +1 -0
  242. package/dist/v2/views/agents.d.ts +27 -0
  243. package/dist/v2/views/agents.d.ts.map +1 -0
  244. package/dist/v2/views/agents.js +161 -0
  245. package/dist/v2/views/agents.js.map +1 -0
  246. package/dist/v2/views/files.d.ts +2 -0
  247. package/dist/v2/views/files.d.ts.map +1 -0
  248. package/dist/v2/views/files.js +10 -0
  249. package/dist/v2/views/files.js.map +1 -0
  250. package/dist/v2/views/memory-host.d.ts +10 -0
  251. package/dist/v2/views/memory-host.d.ts.map +1 -0
  252. package/dist/v2/views/memory-host.js +17 -0
  253. package/dist/v2/views/memory-host.js.map +1 -0
  254. package/dist/v2/views/memory-project.d.ts +5 -0
  255. package/dist/v2/views/memory-project.d.ts.map +1 -0
  256. package/dist/v2/views/memory-project.js +36 -0
  257. package/dist/v2/views/memory-project.js.map +1 -0
  258. package/dist/v2/views/memory.d.ts +2 -0
  259. package/dist/v2/views/memory.d.ts.map +1 -0
  260. package/dist/v2/views/memory.js +14 -0
  261. package/dist/v2/views/memory.js.map +1 -0
  262. package/dist/v2/views/playground.d.ts +13 -0
  263. package/dist/v2/views/playground.d.ts.map +1 -0
  264. package/dist/v2/views/playground.js +88 -0
  265. package/dist/v2/views/playground.js.map +1 -0
  266. package/dist/v2/views/sessions-detail.d.ts +8 -0
  267. package/dist/v2/views/sessions-detail.d.ts.map +1 -0
  268. package/dist/v2/views/sessions-detail.js +107 -0
  269. package/dist/v2/views/sessions-detail.js.map +1 -0
  270. package/dist/v2/views/sessions.d.ts +9 -0
  271. package/dist/v2/views/sessions.d.ts.map +1 -0
  272. package/dist/v2/views/sessions.js +9 -0
  273. package/dist/v2/views/sessions.js.map +1 -0
  274. package/dist/v2/views/skills-detail.d.ts +26 -0
  275. package/dist/v2/views/skills-detail.d.ts.map +1 -0
  276. package/dist/v2/views/skills-detail.js +120 -0
  277. package/dist/v2/views/skills-detail.js.map +1 -0
  278. package/dist/v2/views/skills.d.ts +18 -0
  279. package/dist/v2/views/skills.d.ts.map +1 -0
  280. package/dist/v2/views/skills.js +46 -0
  281. package/dist/v2/views/skills.js.map +1 -0
  282. package/package.json +20 -4
  283. 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,5 @@
1
+ export declare function AgentRunPanel({ projectId, agentName, }: {
2
+ projectId: string;
3
+ agentName: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=agent-run-panel.d.ts.map
@@ -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"}