diff --git a/packages/extension/package.json b/packages/extension/package.json index f0c2ee7..0d0e031 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "wxt", "dev:firefox": "wxt -b firefox", - "build": "wxt build", + "build:ext": "wxt build", "build:firefox": "wxt build -b firefox", "zip": "wxt zip", "zip:firefox": "wxt zip -b firefox", diff --git a/packages/extension/src/entrypoints/sidepanel/App.tsx b/packages/extension/src/entrypoints/sidepanel/App.tsx index f5120f9..ed50053 100644 --- a/packages/extension/src/entrypoints/sidepanel/App.tsx +++ b/packages/extension/src/entrypoints/sidepanel/App.tsx @@ -1,6 +1,8 @@ import { ArrowRight, CheckCircle, + ChevronDown, + ChevronRight, Loader2, MessageSquare, Send, @@ -103,7 +105,15 @@ function ConfigPanel({ onClose }: { onClose: () => void }) { } // Result card for done action -function ResultCard({ success, text }: { success: boolean; text: string }) { +function ResultCard({ + success, + text, + children, +}: { + success: boolean + text: string + children?: React.ReactNode +}) { return (

{text}

+ {children} ) } @@ -166,16 +177,46 @@ function ReflectionSection({ ) } +// Raw response section (collapsible, for debugging) +function RawResponseSection({ rawResponse }: { rawResponse: unknown }) { + const [expanded, setExpanded] = useState(false) + + return ( +
+ + {expanded && ( +
+					{JSON.stringify(rawResponse, null, 4)}
+				
+ )} +
+ ) +} + // History event card component function EventCard({ event }: { event: HistoricalEvent }) { // Done action - show as result card if (event.type === 'step' && event.action?.name === 'done') { const input = event.action.input as { text?: string; success?: boolean } return ( - +
+ + {!event.rawResponse || } + +
) } @@ -202,6 +243,9 @@ function EventCard({ event }: { event: HistoricalEvent }) { )} + + {/* Raw Response */} + {!event.rawResponse || } ) } @@ -217,9 +261,12 @@ function EventCard({ event }: { event: HistoricalEvent }) { if (event.type === 'error') { return ( -
- - {event.message} +
+
+ + {event.message} +
+ {!event.rawResponse || }
) } diff --git a/packages/extension/src/messaging/protocol.ts b/packages/extension/src/messaging/protocol.ts index 3ae8d39..8206676 100644 --- a/packages/extension/src/messaging/protocol.ts +++ b/packages/extension/src/messaging/protocol.ts @@ -72,6 +72,8 @@ export interface HistoricalEvent { // For 'error' type errorType?: 'retry' | 'error' message?: string + // Raw LLM response for debugging (step and error types) + rawResponse?: unknown } /** Agent state snapshot */ diff --git a/packages/extension/tsconfig.json b/packages/extension/tsconfig.json index a60920d..98a679a 100644 --- a/packages/extension/tsconfig.json +++ b/packages/extension/tsconfig.json @@ -5,6 +5,7 @@ "useDefineForClassFields": true, "noEmit": false, "allowImportingTsExtensions": false, + "strictNullChecks": true, "jsx": "react-jsx", "baseUrl": ".", "paths": {