From bc984ae837e68c3c43fa67cfbb688d908c3ef3b0 Mon Sep 17 00:00:00 2001 From: HIsheR Date: Mon, 26 Oct 2026 15:52:38 +0800 Subject: [PATCH] =?UTF-8?q?iter(g152):=20ua=20list=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=85=A8=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 无参仍列包,但每行带上组件数;--components 按包分组列 id / 标题 / 演示锚点。 末尾给出总数与后续命令提示,替代「没有关键词就只能肉眼猜 id」。 --- .ua/backlog.json | 8 ++++++++ packages/tools/cli/bin/ua.js | 20 ++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/.ua/backlog.json b/.ua/backlog.json index 1ea425b..312dad3 100644 --- a/.ua/backlog.json +++ b/.ua/backlog.json @@ -1572,6 +1572,14 @@ "acceptance": "MCP_TOOL_NAMES 为单一来源,cmdMcp 启动时自证注册表与之一致;verify 检查 README/AGENTS/CLI 清单逐个写出工具名,缺失即报错并指出漏了哪个(已负向实测)。", "notes": "", "status": "done" + }, + { + "id": "g152", + "title": "ua list 增加组件全览模式", + "motivation": "ua list 只列 5 个包,67 个组件的 id 只能靠 ua search 猜关键词去找;没关键词时缺少「一次扫全量」的入口。", + "acceptance": "ua list 每行带上组件数;ua list --components 按包分组列出 id / 标题 / 演示锚点并给出总数与后续命令提示,原有无参输出保持可用。", + "notes": "", + "status": "open" } ] } diff --git a/packages/tools/cli/bin/ua.js b/packages/tools/cli/bin/ua.js index 98e91ac..b48d47d 100644 --- a/packages/tools/cli/bin/ua.js +++ b/packages/tools/cli/bin/ua.js @@ -114,12 +114,24 @@ function loadIndex() { return JSON.parse(fs.readFileSync(INDEX_FILE, 'utf8')); } -/*** 列出全部已注册包 ***/ -function cmdList() { +/*** 列出已注册内容:默认列包,--components 改为按包分组列全部组件(id + 标题 + 现场演示锚点) ***/ +function cmdList(args = []) { const { packages } = loadIndex(); if (!packages.length) return console.log('(no packages indexed)'); + if (args.includes('--components')) { + let total = 0; + for (const p of packages) { + const comps = p.docs?.components ?? []; + if (!comps.length) continue; + total += comps.length; + console.log(`\n${p.name} (${comps.length})`); + for (const c of comps) console.log(` ${String(c.id).padEnd(16)} ${c.title ?? ''}${c.demo ? ` [${c.demo}]` : ''}`); + } + return console.log(`\n共 ${total} 个组件;查参数:ua info <组件id>,模糊找:ua search <关键词>`); + } for (const p of packages) { - console.log(`${p.name} v${p.version} [${p.type}] ${p.description}`); + const n = p.docs?.components?.length ?? 0; + console.log(`${p.name} v${p.version} [${p.type}] ${n} 个组件 ${p.description}`); } } @@ -1273,7 +1285,7 @@ switch (cmd) { cmdIndex(); break; case 'list': - cmdList(); + cmdList(args); break; case 'search': cmdSearch(args[0], args.slice(1));