@minipi/mini-pi 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -10
- package/bin/mini-pi-cli.cjs +1199 -629
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -35,7 +35,16 @@ mini-pi/
|
|
|
35
35
|
├── src/
|
|
36
36
|
│ ├── agent/ # AI 代理核心逻辑
|
|
37
37
|
│ │ ├── loop.ts # 主循环(Agent Loop)
|
|
38
|
-
│ │ ├── model
|
|
38
|
+
│ │ ├── model/ # 模型封装(OpenAI/Anthropic 双协议、超时与重试、流式看门狗)
|
|
39
|
+
│ │ │ ├── config.ts # 时限与输出上限(以及非法值的回落)
|
|
40
|
+
│ │ │ ├── types.ts # CompleteInput / ModelConfig / LlmModel 契约
|
|
41
|
+
│ │ │ ├── errors.ts # 取消 / 上游静默 / 已外发正文 三类失败的识别与重试判定
|
|
42
|
+
│ │ │ ├── retry.ts # 指数退避重试(读 Retry-After + 抖动)
|
|
43
|
+
│ │ │ ├── stream.ts # 静默看门狗与 OpenAI 兼容分片的拼装
|
|
44
|
+
│ │ │ ├── response.ts # 失败 → 统一 AssistantMessage
|
|
45
|
+
│ │ │ ├── openai.ts / anthropic.ts # 两条 SDK 实现
|
|
46
|
+
│ │ │ └── factory.ts # 按 provider 的 sdkType 挑实现
|
|
47
|
+
│ │ │ # 外部仍从 "../agent/model" 导入,index.ts 只做汇总导出
|
|
39
48
|
│ │ ├── usage.ts # token 用量累计(主会话与子 Agent 分开记账)
|
|
40
49
|
│ │ ├── patterns.ts # 检索时忽略的目录规则(node_modules 等)
|
|
41
50
|
│ │ ├── skillLoader.ts # Skill 扫描与渐进式披露
|
|
@@ -56,6 +65,7 @@ mini-pi/
|
|
|
56
65
|
│ │ ├── toolEvents.ts # agent 事件 → 状态行 / 工具卡片 / /last
|
|
57
66
|
│ │ ├── approval.ts # 工具调用审批;input.ts 输入串行化;exit.ts 退出协调
|
|
58
67
|
│ │ ├── commands.ts # 命令的单一注册表(/help 与启动欢迎语同源)
|
|
68
|
+
│ │ ├── updateCheck.ts / versionCompare.ts # 版本更新检测(registry 取数、24h 缓存、启动提示与 /update)
|
|
59
69
|
│ │ ├── render.ts / status.ts / width.ts / ui.ts # 终端呈现
|
|
60
70
|
│ │ └── select.ts / options.ts / login.ts / skills.ts / subagentCommand.ts # 交互与命令实现
|
|
61
71
|
│ ├── provider/ # 模型供应商(openai / deepseek / minimax-cn / mimo / kimi / zhipu / anthropic)
|
|
@@ -127,8 +137,10 @@ mini-pi/
|
|
|
127
137
|
**默认关闭**(委派会额外烧 token 且单次成本难预估),需用 `/subagent on` 主动打开,
|
|
128
138
|
状态持久化到 settings.json;关闭后模型看不到 `task` 工具
|
|
129
139
|
(详见 [多 Agent 实现方案](docs/multi-agent-design.md))
|
|
130
|
-
18. **Skills 渐进式披露** - 扫描多个目录里的 `SKILL.md
|
|
131
|
-
|
|
140
|
+
18. **Skills 渐进式披露** - 扫描多个目录里的 `SKILL.md`,把「名称 + 一句话描述」
|
|
141
|
+
全量注入系统提示词(不设数量上限),由**模型自己判断**该用哪个,再调用
|
|
142
|
+
`load_skill` 工具把对应全文取进对话;用户也可用 `/load <name>` 手动加载。
|
|
143
|
+
全文不进系统提示词——每次请求的固定开销只有那一份清单。
|
|
132
144
|
(详见 [Skills](#skills))
|
|
133
145
|
19. **项目技术栈探测** - 启动时读 `package.json` / lock 文件 / `tsconfig.json`,
|
|
134
146
|
把模块系统(ESM/CommonJS)、包管理器与**项目里真实存在的验证命令**(`pnpm test` 等)
|
|
@@ -137,6 +149,13 @@ mini-pi/
|
|
|
137
149
|
每个回合结束有一行脚注 `↳ 8.6s · ↑1.2k ↓318 · 上下文 3.4k/6.0k`
|
|
138
150
|
(耗时 / 用量 / 上下文刻度,与 `/status` 读同一个数);
|
|
139
151
|
工具输出被折叠时提示用 `/last` 回看
|
|
152
|
+
21. **版本号可见** - 启动画面在 logo 下显示 `v1.0.0`(窄终端退化成单行时也保留);
|
|
153
|
+
`mini-pi --version` / `-v` 只打印版本就退出,不读配置、不起 REPL
|
|
154
|
+
—— 版本号来自 `package.json`,发布时由 CI 回写后再打包,报的就是实际发布的那一个
|
|
155
|
+
22. **更新检测** - 交互式启动时询问 npm registry(结果按 24h 缓存,每天最多多一次请求、
|
|
156
|
+
最多 5s 超时),发现新版本就在启动画面后提示一行与更新命令;`/update` 手动检查,
|
|
157
|
+
`/update off` 关闭自动检测,`MINI_PI_SKIP_UPDATE_CHECK` 环境变量可整体跳过;
|
|
158
|
+
检查失败保持安静——取不到就当没有,绝不让 CLI 起不来
|
|
140
159
|
|
|
141
160
|
## 运行方式
|
|
142
161
|
|
|
@@ -457,6 +476,7 @@ MiniMax-CN 使用 Anthropic 兼容接口,Base URL 是 `https://api.minimax.cn/
|
|
|
457
476
|
| `/load <name>` | 加载指定 Skill 的完整内容 |
|
|
458
477
|
| `/trust` | 切换信任模式(跳过写文件/执行命令的确认);提示里 `y` = 允许本次、`n` = 拒绝、`a` = 本会话全部允许 |
|
|
459
478
|
| `/subagent [on\|off\|trace on\|trace off]` | 开关子 Agent 委派(`task` 工具),**默认关闭**,不带参数则切换;`trace on\|off` 单独开关子 Agent trace 落盘(**默认关闭**)。两者状态都写入 settings.json |
|
|
479
|
+
| `/update [on\|off]` | 检查是否有新版本:不带参数立即联网检查;`on`/`off` 开关**启动时**的自动检测(**缺省开启**,写入 settings.json) |
|
|
460
480
|
| `/status` | 查看模型、会话文件、上下文窗口与用量、token 消耗、确认模式、子 Agent 开关、trace 开关与累计用量 |
|
|
461
481
|
| `/sessions` | 列出当前工作目录的会话 |
|
|
462
482
|
| `/switch <序号>` | 切换到指定会话并恢复其历史上下文 |
|
|
@@ -471,9 +491,12 @@ MiniMax-CN 使用 Anthropic 兼容接口,Base URL 是 `https://api.minimax.cn/
|
|
|
471
491
|
```bash
|
|
472
492
|
# 启动 Mini Pi
|
|
473
493
|
pnpm dev:cli
|
|
494
|
+
|
|
495
|
+
# 只看版本号(不进 REPL,不读配置)
|
|
496
|
+
mini-pi --version # → mini-pi v1.0.0
|
|
474
497
|
```
|
|
475
498
|
|
|
476
|
-
|
|
499
|
+
启动后会显示(第一屏含版本号,取自 `package.json`):
|
|
477
500
|
|
|
478
501
|
```
|
|
479
502
|
███╗ ███╗██╗███╗ ██╗██╗ ██████╗ ██╗
|
|
@@ -482,6 +505,7 @@ pnpm dev:cli
|
|
|
482
505
|
██║╚██╔╝██║██║██║╚██╗██║██║ ██╔═══╝ ██║
|
|
483
506
|
██║ ╚═╝ ██║██║██║ ╚████║██║ ██║ ██║
|
|
484
507
|
╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝
|
|
508
|
+
v1.0.0
|
|
485
509
|
|
|
486
510
|
────────────────────────────────────────────────────────────
|
|
487
511
|
Provider: minimax-cn
|
|
@@ -495,9 +519,16 @@ pnpm dev:cli
|
|
|
495
519
|
|
|
496
520
|
────────────────────────────────────────────────────────────
|
|
497
521
|
|
|
498
|
-
|
|
522
|
+
⬆️ 发现新版本 v1.0.1(当前 v1.0.0)
|
|
523
|
+
更新命令:npm install -g @minipi/mini-pi
|
|
524
|
+
|
|
499
525
|
```
|
|
500
526
|
|
|
527
|
+
> 最后两行是版本更新检测的提示:交互式启动时最多每天问一次 registry
|
|
528
|
+
> (结果缓存 24h、请求带 5s 超时),只在发现新版本时出现;
|
|
529
|
+
> `/update` 可手动检查,`/update off` 关闭自动检测,
|
|
530
|
+
> `MINI_PI_SKIP_UPDATE_CHECK` 环境变量可整体跳过。
|
|
531
|
+
|
|
501
532
|
> 未配置模型时(`~/.mini-pi/settings.json` 里没有可用的 `defaultModel`),
|
|
502
533
|
> `Provider / Model / Context` 区块不显示,改为提示先执行 `/login` 与 `/model`。
|
|
503
534
|
|
|
@@ -541,14 +572,15 @@ pnpm dev:cli
|
|
|
541
572
|
- **项目技术栈**:由 `src/cli/projectStack.ts` 自动探测(`package.json` / lock 文件 /
|
|
542
573
|
`tsconfig.json`),给出模块系统、包管理器、主要依赖与项目里真实存在的验证命令
|
|
543
574
|
(如 `pnpm test`、`pnpm typecheck`)。长驻的 `dev` / `start` 不列入。
|
|
544
|
-
- **Skill
|
|
575
|
+
- **Skill 摘要**:只列名称与一句话描述,模型据此自行决定加载哪个(见下)。
|
|
545
576
|
|
|
546
577
|
## Skills
|
|
547
578
|
|
|
548
579
|
一个 Skill 就是「一个目录 + 一篇 `SKILL.md`」,`SKILL.md` 的 YAML frontmatter 里写
|
|
549
|
-
`name` 与 `description
|
|
550
|
-
|
|
551
|
-
|
|
580
|
+
`name` 与 `description`。系统提示词里**只注入名称与描述**(全量、不设上限),
|
|
581
|
+
模型判断相关后调用 `load_skill` 工具取全文(`src/agent/tools/skill.ts`);
|
|
582
|
+
用户侧的手动入口是 `/load <name>`。全部正文常驻系统提示词会让每次请求的固定开销
|
|
583
|
+
变大,而它会计入上下文压缩的预算。
|
|
552
584
|
|
|
553
585
|
扫描目录按下面的顺序,**后者覆盖同名 Skill**:
|
|
554
586
|
|
|
@@ -557,7 +589,9 @@ pnpm dev:cli
|
|
|
557
589
|
| 全局 | `~/.agents/skills/` → `~/.mini-pi/skills/` |
|
|
558
590
|
| 项目 | `<工作目录>/.mini-pi/skills/` → `.pi/skills/` → `.agents/skills/` |
|
|
559
591
|
|
|
560
|
-
- `/skills`
|
|
592
|
+
- `/skills` 列出名称、描述与来源(每次全量重扫,会话中途新建的 skill 立刻可见);
|
|
593
|
+
`/load <name>` 把全文注入系统提示词(名单派生,`/reload` 不丢、重复加载不重复注入);
|
|
594
|
+
模型则可自行调用 `load_skill` 把全文取进对话。
|
|
561
595
|
- 本仓库自带 4 个项目级 Skill,都是踩过坑之后沉淀下来的约束:
|
|
562
596
|
|
|
563
597
|
| Skill | 覆盖什么 |
|