Start a new conversation to begin chatting with AI.
++ The AI has access to both test tools and any connected MCP servers. +
+No conversations yet.
+Click "New Conversation" to get started.
++ {formatDate(conversation.updatedAt)} +
+ {conversation.messages.length > 0 && ( ++ {(() => { + const lastMessage = conversation.messages[conversation.messages.length - 1]; + const firstBlock = lastMessage?.content?.[0]; + return firstBlock?.type === 'text' ? firstBlock.text : 'Tool interaction'; + })()} +
+ )} ++ Choose a provider and authenticate to start chatting +
+{error}
++ Your API key is stored locally and never sent to our servers +
++ {JSON.stringify({ + id: message.id, + type: message.type, + providerId: message.providerId, + providerName: message.providerName, + model: message.model, + timestamp: message.timestamp.toISOString(), + duration: message.duration + }, null, 2)} ++
+ {JSON.stringify(message.request, null, 2)} ++
+ {JSON.stringify(message.response, null, 2)} ++
+ {message.error instanceof Error ? message.error.message : JSON.stringify(message.error, null, 2)} ++
+ π’ Connected to {provider.name} +
++ {models.length} models available +
++ βͺ Not connected +
+ +Connect to OpenRouter to access AI models for conversations.
+You'll need an OpenRouter account and API key to authenticate.
++ {JSON.stringify(entry.message, null, 2)} ++
+ {connectedServers.length} servers connected +
++ {allTools.length} tools available +
++ No MCP servers configured. Go to the "MCP Provider Test" tab to add servers. +
+ ) : ( ++ {connection.status} +
+ {connection.error && ( ++ {connection.error} +
+ )} ++ Tools ({connection.tools.length}): +
++ {tool.function.description} +
+ )} ++ {connectedServers.length} servers connected +
++ {allTools.length} tools available +
++ No MCP servers configured. Add a server above to get started. +
+ ) : ( ++ {connection.status} +
+ {connection.error && ( ++ {connection.error} +
+ )} ++ {connection.url} +
++ Tools ({connection.tools.length}): +
+{block.text}
++ {JSON.stringify(block.input, null, 2)} ++
+ {block.content} ++ ) : ( + block.content.map((contentItem: any, idx: number) => ( +
{contentItem.text}+ )} + {contentItem.error && ( +
+ Error: {contentItem.error} ++ )} +
Start a conversation
++ Ask a question or request help with something. The AI can use tools to help you. +
++ This window will close automatically. +
+