import React, { useState, useEffect } from 'react'; import useFlowStore from '../store/flowStore'; import type { NodeData } from '../store/flowStore'; import ReactMarkdown from 'react-markdown'; import { Play, Settings, Info, Save } from 'lucide-react'; const Sidebar = () => { const { nodes, selectedNodeId, updateNodeData, getActiveContext } = useFlowStore(); const [activeTab, setActiveTab] = useState<'interact' | 'settings' | 'debug'>('interact'); const [streamBuffer, setStreamBuffer] = useState(''); const selectedNode = nodes.find((n) => n.id === selectedNodeId); // Reset stream buffer when node changes useEffect(() => { setStreamBuffer(''); }, [selectedNodeId]); if (!selectedNode) { return (
Select a node to edit
Smart merge combines consecutive messages from the same role to avoid API errors.
{JSON.stringify(getActiveContext(selectedNode.id), null, 2)}
{JSON.stringify(selectedNode.data.traces, null, 2)}