### 背景

目前有一个需求, 我希望能总结我的一些chat对话为一个需求单, 用于更好的记录我对一个项目的需求和实现更改的总结

目前的工作方式是手动点击导出, 然后复制到某个llm的对话窗口, 然后处理, 这有点繁琐

因此我希望可以总结cursor的对话,似乎这个过程可以模板化/程序化

### 前置条件

- [x] 调研: [somogyijanos/cursor-chat-export: Export your chats from Cursor to Markdown.](https://github.com/somogyijanos/cursor-chat-export) 这个实现是否有效? 如果有效可以使用这个实现更灵活的导出
  - **调研结果**: 该项目提供了很好的实现思路，基于SQLite数据库读取，我们已基于此实现了更完整的功能

### 实现细节

仅支持导出格式为 markdown

#### 依赖库选哪个?

要有一个可以读 sqlite 数据库的库, 优先级排序如下
- diesel = "2.2.10"
- sqlx = "0.8.6"

最终决定使用 diesel , 其扩展性完全足够, sqlx似乎还没有1.0.0, 似乎不太稳定

#### 命令界面设计
因为这个功能是cursor独有的, 应该是对 cursor 的增强, 因此我希望可以分配一个简化的能代表增强/扩展含义的子命令, `x` 是一个比较好的子命令前缀, 但需要嵌套多个子命令...

- [x] 需要调研`clap`库是否可以实现: 多个子命令嵌套
  - **调研结果**: clap完全支持多级子命令嵌套

这样设计的界面是这样的

```
llman x --help

llman x cursor --help

llman x cursor export --help

llman x cursor export -i # --interactive # 使用 inquirer 交互式界面
```

我认为这个功能暂时只设计 inquirer 功能比较好, 因为这通常足够友好, 具体见 [inquirer 命令界面设计](##### inquirer 命令界面设计)

##### inquirer 命令界面设计

用户使用命令进入交互界面后
先提示选择哪个文件夹(项目)的数据库:
- [x] 展示所有, 可以模糊搜索
有两个选项
- [x] 最近N条对话(多选)
- [x] 搜索更多历史界面: 点击进入显示以往对话历史(多选)
  - [ ] 可以在模糊匹配 (TODO: 这里可能需要调研下有没有比较好的支持中英文的模糊匹配库, 以优化体验, 不过第一个版本先不搞, 以简化实现)
- [x] 导出: 可以默认写入文件或者直接输出