diff --git a/packages/cli/src/utils/client.ts b/packages/cli/src/utils/client.ts index a7926e30d..d61803b97 100644 --- a/packages/cli/src/utils/client.ts +++ b/packages/cli/src/utils/client.ts @@ -73,3 +73,58 @@ export async function tryConnectToDaemon(options?: ConnectOptions): Promise a.id === idOrName) + if (exactMatch) { + return exactMatch.id + } + + // Try ID prefix match + const prefixMatches = agents.filter((a) => a.id.toLowerCase().startsWith(query)) + if (prefixMatches.length === 1 && prefixMatches[0]) { + return prefixMatches[0].id + } + + // Try title/name match (case-insensitive) + const titleMatches = agents.filter((a) => a.title?.toLowerCase() === query) + if (titleMatches.length === 1 && titleMatches[0]) { + return titleMatches[0].id + } + + // Try partial title match + const partialTitleMatches = agents.filter((a) => a.title?.toLowerCase().includes(query)) + if (partialTitleMatches.length === 1 && partialTitleMatches[0]) { + return partialTitleMatches[0].id + } + + // If we have multiple prefix matches and no unique title match, return first prefix match + const firstPrefixMatch = prefixMatches[0] + if (firstPrefixMatch) { + return firstPrefixMatch.id + } + + return null +}