docs: 完善 --help 输出

- 每个子命令增加 long_about 描述和示例
- Login: 说明认证存储方式
- Listen: 示例 ias listen --llm / --echo
- Send: 示例 ias send --to <id> --text <msg>
- Whoami: 说明输出内容
- Usage: 示例时间范围查询、模型过滤
- Service: 说明日志位置、systemd 配合
- Skills: 子命令 Import/List/Delete 详细说明
- SkillsAction: 每种操作的目标路径和范围
- arg 添加 help 属性(--llm/--echo/--to/--text/--since)
This commit is contained in:
2026-06-01 22:38:28 +08:00
parent 438c52e79b
commit 2bd4485af6
+65 -19
View File
@@ -1,8 +1,11 @@
use clap::{Parser, Subcommand}; use clap::{Parser, Subcommand};
/// iAs - 微信 AI 智能助手 /// iAs 微信 AI 智能助手
///
/// 支持扫码登录、长轮询收发消息、AI 自动回复(DeepSeek/LM Studio)、
/// 工具调用(天气/搜索/邮件/Shell/定时任务等)、Token 用量统计。
#[derive(Parser, Debug)] #[derive(Parser, Debug)]
#[command(name = "ias", version, about = "微信 AI 智能助手 (Rust)")] #[command(name = "ias", version, about, long_about = None)]
pub struct Cli { pub struct Cli {
#[command(subcommand)] #[command(subcommand)]
pub command: Commands, pub command: Commands,
@@ -11,60 +14,101 @@ pub struct Cli {
#[derive(Subcommand, Debug)] #[derive(Subcommand, Debug)]
pub enum Commands { pub enum Commands {
/// 扫码登录微信 /// 扫码登录微信
///
/// 在终端显示二维码,扫描后完成登录。
/// 认证信息存入 PostgreSQL 或本地文件。
Login { Login {
/// 登录超时秒数 /// 登录超时秒数(默认 480s
#[arg(long, default_value = "480")] #[arg(long, default_value = "480")]
timeout: u64, timeout: u64,
}, },
/// 监听消息(长轮询) /// 监听微信消息(长轮询)
///
/// 启动微信消息监听,接收并处理消息。
/// 使用 --llm 启用 AI 自动回复,--echo 原样回显。
///
/// 示例:
/// ias listen # 仅监听,不做回复
/// ias listen --llm # AI 自动回复
/// ias listen --echo # 原样回显
Listen { Listen {
/// 启用 AI 自动回复 /// 启用 AI 自动回复DeepSeek/LM Studio
#[arg(long)] #[arg(long, help = "启用 AI 自动回复")]
llm: bool, llm: bool,
/// 仅回显消息(不调用 AI /// 仅回显消息(不调用 AI
#[arg(long)] #[arg(long, help = "原样回显收到的消息")]
echo: bool, echo: bool,
}, },
/// 发送文本消息 /// 发送文本消息
///
/// 向指定微信用户发送文本。
///
/// 示例:
/// ias send --to <user_id> --text "你好"
Send { Send {
/// 目标用户 ID /// 目标用户 ID
#[arg(long)] #[arg(long, help = "微信用户 ID")]
to: String, to: String,
/// 消息内容 /// 消息内容
#[arg(long)] #[arg(long, help = "文本消息内容")]
text: String, text: String,
/// 上下文令牌 /// 上下文令牌
#[arg(long)] #[arg(long, help = "微信上下文令牌")]
context_token: Option<String>, context_token: Option<String>,
}, },
/// 查看当前登录状态 /// 查看当前登录状态
///
/// 显示已登录的账号、Token 前缀、API 地址及存储方式。
Whoami, Whoami,
/// 查看 LLM Token 使用统计 /// 查看 LLM Token 使用统计
///
/// 查询 LLM 调用的 Token 消耗、缓存命中率。
/// 默认查询最近 7 天,支持时间范围和模型过滤。
///
/// 示例:
/// ias usage
/// ias usage --since 2026-06-01T00:00:00Z
/// ias usage --model deepseek-v4-flash
Usage { Usage {
/// 起始时间(ISO 格式,默认7天前) /// 起始时间(RFC3339 格式,默认 7 天前)
#[arg(long)] #[arg(long, help = "起始时间(如 2026-06-01T00:00:00Z")]
since: Option<String>, since: Option<String>,
/// 结束时间(ISO 格式,默认现在) /// 结束时间(RFC3339 格式,默认现在)
#[arg(long)] #[arg(long)]
until: Option<String>, until: Option<String>,
/// 模型名称过滤 /// 模型名称过滤
#[arg(long)] #[arg(long)]
model: Option<String>, model: Option<String>,
}, },
/// 后台服务模式(等同 listen --llm,日志写入文件) /// 后台服务模式
///
/// 等同 listen --llm,同时日志写入 .data/logs/ 滚动文件。
/// 配合 systemd 实现开机自启和进程守护。
///
/// 示例:
/// ias service # 前台运行
/// sudo systemctl enable ias --now # systemd 管理
Service, Service,
/// 从其他工具导入 Skills /// Skills 管理
///
/// 从其他工具(Claude Code、OpenCode、pi 等)导入 Skills
/// 或管理已导入的 Skills。
///
/// 示例:
/// ias skills list # 列出可导入的 Skill
/// ias skills import # 交互式多选导入
/// ias skills delete # 交互式删除已导入的 Skill
Skills { Skills {
#[command(subcommand)] #[command(subcommand)]
action: SkillsAction, action: SkillsAction,
@@ -73,10 +117,12 @@ pub enum Commands {
#[derive(Subcommand, Debug)] #[derive(Subcommand, Debug)]
pub enum SkillsAction { pub enum SkillsAction {
/// 扫描并交互式导入 /// 扫描 ~/.claude/、~/.agents/、~/.opencode/、~/.pi/ 等路径,
/// 交互式多选导入 Skill 到当前项目的 skills/ 目录。
Import, Import,
/// 列出可导入的 Skill /// 列出所有已知路径中可导入的 Skill(不导入)。
List, List,
/// 交互式删除用户 Skill /// 扫描 skills/ 目录中的用户 Skill,交互式多选删除。
/// 系统 Skillresources/skills/)不会被删除。
Delete, Delete,
} }