import React, { useState } from 'react'; import { useApi } from '../hooks/useApi'; import { getMeshAgents, discoverAgents, type MeshAgent } from '../api/discovery'; export default function AgentNetwork() { const [searchQuery, setSearchQuery] = useState(''); const agentsQuery = useApi(() => getMeshAgents(), []); const agents = agentsQuery.data ?? []; const [searchResults, setSearchResults] = useState<{ agent: MeshAgent; score: number; matchedTerms: string[] }[] | null>(null); const handleSearch = async () => { if (!searchQuery.trim()) { setSearchResults(null); return; } const resp = await discoverAgents({ query: searchQuery.trim() }); setSearchResults(resp.results as { agent: MeshAgent; score: number; matchedTerms: string[] }[]); }; const displayAgents = searchResults ? searchResults.map(r => r.agent) : agents; return (
Loading...
} {agentsQuery.error &&Error: {agentsQuery.error}
} {searchResults &&{searchResults.length} result(s) for "{searchQuery}"
} {!agentsQuery.loading && displayAgents.length === 0 && (No agents found.
)}| Agent | Description | Capabilities | Protocol | Last Seen |
|---|---|---|---|---|
| {agent.name} | {agent.description} |
{agent.capabilities.map(c => (
{c}
))}
|
{agent.protocol} | {new Date(agent.last_seen).toLocaleString()} |