Skip to content

Commit cdc289e

Browse files
authored
support som agent + add copy jjson button (#103)
Signed-off-by: Peter Jausovec <[email protected]>
1 parent 6288d10 commit cdc289e

File tree

4 files changed

+242
-115
lines changed

4 files changed

+242
-115
lines changed

ui/src/components/AgentsProvider.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { getTeams, createTeam } from "@/app/actions/teams";
55
import { Team, Component, ToolConfig } from "@/types/datamodel";
66
import { getBuiltInTools } from "@/app/actions/tools";
77
import { BaseResponse, Model } from "@/lib/types";
8-
import { createTeamConfig, transformToAgentConfig } from "@/lib/agents";
8+
import { createTeamConfig } from "@/lib/agents";
99
import { isIdentifier } from "@/lib/utils";
1010

1111
interface ValidationErrors {
@@ -126,8 +126,7 @@ export function AgentsProvider({ children }: AgentsProviderProps) {
126126
return { success: false, error: "Validation failed", data: {} as Team };
127127
}
128128

129-
const agentConfig = transformToAgentConfig(agentData);
130-
const teamConfig = await createTeamConfig(agentConfig);
129+
const teamConfig = await createTeamConfig(agentData);
131130
const result = await createTeam(teamConfig);
132131

133132
if (result.success) {

ui/src/components/sidebars/AgentDetailsSidebar.tsx

+29-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ScrollArea } from "@/components/ui/scroll-area";
2-
import { ChevronRight, ChevronLeft, FunctionSquare } from "lucide-react";
2+
import { ChevronRight, ChevronLeft, FunctionSquare, Clipboard } from "lucide-react";
33
import type { Team, AssistantAgentConfig, ToolConfig, Component } from "@/types/datamodel";
44
import { Button } from "@/components/ui/button";
55
import { Badge } from "@/components/ui/badge";
@@ -145,11 +145,33 @@ export function AgentDetailsSidebar({ selectedTeam }: AgentDetailsSidebarProps)
145145
const assistantAgent = participant.config as AssistantAgentConfig;
146146
return (
147147
<div key={index} className="text-sm text-white/50">
148-
<div className="flex items-center justify-between">
149-
<h5 className="text-white font-semibold text-lg flex items-center gap-2">
150-
<KagentLogo className="h-5 w-5" />
151-
{participant.label}
152-
</h5>
148+
<div className="flex items-start flex-col space-y-2">
149+
<div className="flex items-center justify-between w-full">
150+
<div className="inline-flex justify-center items-center gap-2">
151+
<KagentLogo className="h-5 w-5" />
152+
<h5 className="text-white font-semibold text-base">{participant.label}</h5>
153+
</div>
154+
<div>
155+
<TooltipProvider>
156+
<Tooltip>
157+
<TooltipTrigger asChild>
158+
<Button
159+
variant="link"
160+
size="sm"
161+
onClick={async () => await navigator.clipboard.writeText(JSON.stringify(selectedTeam))}
162+
className="px-0 text-white/80 hover:text-white"
163+
>
164+
<Clipboard className="h-4 w-4 mr-2" />
165+
</Button>
166+
</TooltipTrigger>
167+
<TooltipContent>
168+
<p>Copy JSON representation</p>
169+
</TooltipContent>
170+
</Tooltip>
171+
</TooltipProvider>
172+
</div>
173+
</div>
174+
153175
<TooltipProvider>
154176
<Tooltip>
155177
<TooltipTrigger asChild>
@@ -158,7 +180,7 @@ export function AgentDetailsSidebar({ selectedTeam }: AgentDetailsSidebarProps)
158180
</Badge>
159181
</TooltipTrigger>
160182
<TooltipContent>
161-
<p>Model agent is using</p>
183+
<p>The model agent is using</p>
162184
</TooltipContent>
163185
</Tooltip>
164186
</TooltipProvider>

0 commit comments

Comments
 (0)