From e55cd149c2ee79b461483b5444a9338deb369de9 Mon Sep 17 00:00:00 2001 From: A <258483684+la14-1@users.noreply.github.com> Date: Tue, 17 Feb 2026 04:21:06 -0800 Subject: [PATCH] feat(cli): add type-ahead filtering to agent and cloud selection (#1393) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace select prompts with autocomplete for improved UX when choosing agents and clouds. Users can now type to filter the list, significantly reducing time to find desired options in long lists. - Replace p.select with p.autocomplete for agent selection - Replace p.select with p.autocomplete for cloud selection - Add "type to filter" messaging and placeholder text - Update CLI version 0.3.2 → 0.3.3 Fixes #1367 Agent: ux-engineer Co-authored-by: B <6723574+louisgv@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.5 --- cli/src/commands.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/cli/src/commands.ts b/cli/src/commands.ts index 4c01b859..ed8b4e76 100644 --- a/cli/src/commands.ts +++ b/cli/src/commands.ts @@ -398,13 +398,14 @@ export function buildAgentPickerHints(manifest: Manifest): Record { const agents = agentKeys(manifest); const agentHints = buildAgentPickerHints(manifest); - const agentChoice = await p.select({ - message: "Select an agent", + const agentChoice = await p.autocomplete({ + message: "Select an agent (type to filter)", options: mapToSelectOptions(agents, manifest.agents, agentHints), + placeholder: "Start typing to search...", }); if (p.isCancel(agentChoice)) handleCancel(); return agentChoice; @@ -435,11 +436,12 @@ function getAndValidateCloudChoices( return { clouds: sortedClouds, hintOverrides, credCount }; } -// Prompt user to select a cloud from the sorted list +// Prompt user to select a cloud from the sorted list with type-ahead filtering async function selectCloud(manifest: Manifest, cloudList: string[], hintOverrides: Record): Promise { - const cloudChoice = await p.select({ - message: "Select a cloud provider", + const cloudChoice = await p.autocomplete({ + message: "Select a cloud provider (type to filter)", options: mapToSelectOptions(cloudList, manifest.clouds, hintOverrides), + placeholder: "Start typing to search...", }); if (p.isCancel(cloudChoice)) handleCancel(); return cloudChoice;