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