+
+
+
+
+ {toolCalls.length > 0 && (
+
+ {toolCalls.map((tc, i) => (
+ onSelectTool(tc)}
+ />
+ ))}
+
+ )}
+
+ );
+}
diff --git a/web/src/canvas/ToolCallCard.tsx b/web/src/canvas/ToolCallCard.tsx
new file mode 100644
index 0000000..9601969
--- /dev/null
+++ b/web/src/canvas/ToolCallCard.tsx
@@ -0,0 +1,65 @@
+import type { CSSProperties } from 'react';
+import type { ToolCall } from '@/api/types';
+
+interface ToolCallCardProps {
+ tc: ToolCall;
+ onClick: () => void;
+}
+
+const cardStyle: CSSProperties = {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: 2,
+ padding: '6px 8px',
+ border: '1px solid var(--hair)',
+ background: 'var(--bg-elev)',
+ cursor: 'pointer',
+ fontFamily: 'var(--ff-mono)',
+};
+
+const statusColor: Record