diff --git a/frontend/packages/inspector/src/App.tsx b/frontend/packages/inspector/src/App.tsx index 8f3bfe6..17aebb2 100644 --- a/frontend/packages/inspector/src/App.tsx +++ b/frontend/packages/inspector/src/App.tsx @@ -548,6 +548,16 @@ export default function App() { } }; + const endSession = async () => { + if (!sessionId) return; + try { + await getClient().terminateSession(sessionId); + await fetchSessions(); + } catch (error) { + setSessionError(getErrorMessage(error, "Unable to end session")); + } + }; + const questionRequests = useMemo(() => { const latestById = new Map(); for (const event of events) { @@ -859,6 +869,7 @@ export default function App() { onVariantChange={setVariant} onStreamModeChange={setStreamMode} onToggleStream={toggleStream} + onEndSession={endSession} hasSession={Boolean(sessionId)} eventError={eventError} questionRequests={questionRequests} diff --git a/frontend/packages/inspector/src/components/chat/ChatPanel.tsx b/frontend/packages/inspector/src/components/chat/ChatPanel.tsx index 44345b8..1c03fa7 100644 --- a/frontend/packages/inspector/src/components/chat/ChatPanel.tsx +++ b/frontend/packages/inspector/src/components/chat/ChatPanel.tsx @@ -1,4 +1,4 @@ -import { MessageSquare, PauseCircle, PlayCircle, Plus, Terminal } from "lucide-react"; +import { MessageSquare, PauseCircle, PlayCircle, Plus, Square, Terminal } from "lucide-react"; import { useEffect, useRef, useState } from "react"; import type { AgentInfo, AgentModeInfo, PermissionEventData, QuestionEventData } from "sandbox-agent"; import ApprovalsTab from "../debug/ApprovalsTab"; @@ -39,6 +39,7 @@ const ChatPanel = ({ onVariantChange, onStreamModeChange, onToggleStream, + onEndSession, eventError, questionRequests, permissionRequests, @@ -79,6 +80,7 @@ const ChatPanel = ({ onVariantChange: (value: string) => void; onStreamModeChange: (value: "poll" | "sse" | "turn") => void; onToggleStream: () => void; + onEndSession: () => void; eventError: string | null; questionRequests: QuestionEventData[]; permissionRequests: PermissionEventData[]; @@ -131,6 +133,17 @@ const ChatPanel = ({ )}
+ {sessionId && ( + + )}