@qxbyte/muse 0.1.1 → 0.1.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 +34 -37
- package/dist/cli.js +1688 -355
- package/dist/cli.js.map +1 -1
- package/dist/index.js +599 -90
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -65,30 +65,32 @@ muse --version
|
|
|
65
65
|
| OpenAI | https://platform.openai.com | `OPENAI_API_KEY` |
|
|
66
66
|
| Ollama (本地) | https://ollama.com | 不需要 |
|
|
67
67
|
|
|
68
|
-
### 2. 建模型仓库 `~/.muse/models.json`
|
|
68
|
+
### 2. 建模型仓库 `~/.muse/models.local.json`
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
71
|
mkdir -p ~/.muse
|
|
72
|
-
cat > ~/.muse/models.json <<'EOF'
|
|
72
|
+
cat > ~/.muse/models.local.json <<'EOF'
|
|
73
73
|
{
|
|
74
74
|
"models": [
|
|
75
75
|
{
|
|
76
76
|
"id": "deepseek-chat",
|
|
77
77
|
"vendor": "DeepSeek",
|
|
78
78
|
"baseUrl": "https://api.deepseek.com/v1",
|
|
79
|
-
"apiKey": "
|
|
79
|
+
"apiKey": "sk-...",
|
|
80
80
|
"supportsToolCall": true
|
|
81
81
|
}
|
|
82
82
|
],
|
|
83
83
|
"availableModels": ["deepseek-chat"]
|
|
84
84
|
}
|
|
85
85
|
EOF
|
|
86
|
+
chmod 600 ~/.muse/models.local.json
|
|
86
87
|
```
|
|
87
88
|
|
|
88
|
-
|
|
89
|
+
> 文件名后缀 `.local.json` 是 muse 的视觉提示——本机本地、从不入 git;明文写 apiKey 是 OK 的。
|
|
90
|
+
|
|
91
|
+
### 3. 启动
|
|
89
92
|
|
|
90
93
|
```bash
|
|
91
|
-
export DEEPSEEK_API_KEY=sk-... # 写入 ~/.zshrc 或 ~/.bashrc 持久化
|
|
92
94
|
muse # 进交互模式
|
|
93
95
|
```
|
|
94
96
|
|
|
@@ -98,19 +100,18 @@ muse # 进交互模式
|
|
|
98
100
|
|
|
99
101
|
## 配置详解
|
|
100
102
|
|
|
101
|
-
muse
|
|
103
|
+
muse 用三个文件:
|
|
102
104
|
|
|
103
105
|
```
|
|
104
106
|
~/.muse/
|
|
105
|
-
├── models.json
|
|
106
|
-
├── models.local.json # 同名兜底,放明文 apiKey(自动 gitignore,优先级更高)
|
|
107
|
+
├── models.local.json # 模型仓库:你能调用的所有模型 + 凭证(本机本地,从不入 git)
|
|
107
108
|
├── settings.json # 运行偏好:当前激活的 model / UI / 权限
|
|
108
|
-
├── settings.local.json #
|
|
109
|
+
├── settings.local.json # settings 的本机兜底覆盖
|
|
109
110
|
├── sessions/ # 会话 JSONL 历史
|
|
110
111
|
└── logs/ # 日志(运行报错排查用)
|
|
111
112
|
```
|
|
112
113
|
|
|
113
|
-
### 模型仓库:`~/.muse/models.json`
|
|
114
|
+
### 模型仓库:`~/.muse/models.local.json`
|
|
114
115
|
|
|
115
116
|
完整字段说明:
|
|
116
117
|
|
|
@@ -120,7 +121,7 @@ muse 用**两个文件**分工:
|
|
|
120
121
|
| `name` | string | | 显示名,缺省 = id |
|
|
121
122
|
| `vendor` | string | | 厂商名,只在 `/models` selector 里分组显示 |
|
|
122
123
|
| `baseUrl` | string | ✅ | OpenAI 兼容协议**基址**(如 `https://api.deepseek.com/v1`);填全 endpoint `.../v1/chat/completions` 也行,会自动剥后缀;别名字段 `url` 等价 |
|
|
123
|
-
| `apiKey` | string | |
|
|
124
|
+
| `apiKey` | string | | 凭证;可直接写明文(推荐,文件本就只在本机),也支持 `${ENV_VAR}` 占位符;本地 Ollama 等可不填 |
|
|
124
125
|
| `supportsToolCall` | bool | | 是否支持 function calling,默认 `true` |
|
|
125
126
|
| `supportsImages` | bool | | 是否支持视觉,默认 `false` |
|
|
126
127
|
| `contextWindow` | number | | 上下文窗口(tokens),用于 `/cost` 估算 |
|
|
@@ -225,7 +226,7 @@ muse 用**两个文件**分工:
|
|
|
225
226
|
|
|
226
227
|
| 字段 | 说明 |
|
|
227
228
|
|---|---|
|
|
228
|
-
| `llm.model` | 当前激活的 model id,必须在 models.json 的 models 数组里能找到 |
|
|
229
|
+
| `llm.model` | 当前激活的 model id,必须在 models.local.json 的 models 数组里能找到 |
|
|
229
230
|
| `ui.lang` | UI 文案语言,`zh-CN` / `en` |
|
|
230
231
|
| `ui.showBanner` | 启动是否显示彩虹 banner |
|
|
231
232
|
| `permissions.allow` | 直接放行的工具名列表(如 `Read`、`Bash(npm:*)`) |
|
|
@@ -237,24 +238,25 @@ muse 用**两个文件**分工:
|
|
|
237
238
|
|
|
238
239
|
### 凭证安全
|
|
239
240
|
|
|
240
|
-
|
|
241
|
+
`~/.muse/models.local.json` 是凭证唯一落脚点。两种写法:
|
|
241
242
|
|
|
242
|
-
1.
|
|
243
|
+
1. **直接写明文**(推荐——文件本就只存在于本机)
|
|
244
|
+
```json
|
|
245
|
+
{ "apiKey": "sk-..." }
|
|
246
|
+
```
|
|
247
|
+
- 文件名带 `.local.json`,约定**绝不入 git**
|
|
248
|
+
- 建议 `chmod 600 ~/.muse/models.local.json`
|
|
249
|
+
- 警惕同步盘(iCloud / Dropbox):如果 `~/.muse/` 被同步盘覆盖,凭证会扩散
|
|
250
|
+
|
|
251
|
+
2. **`${VAR}` 占位符 + shell env**(怕同步盘扩散时用)
|
|
243
252
|
```bash
|
|
244
253
|
# ~/.zshrc 或 ~/.bashrc
|
|
245
254
|
export DEEPSEEK_API_KEY=sk-...
|
|
246
|
-
export MOONSHOT_API_KEY=sk-...
|
|
247
255
|
```
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
- 推荐 `chmod 600 ~/.muse/models.local.json`
|
|
253
|
-
- 同 id 时 `models.local.json` 覆盖 `models.json`,可以只在 local 里放凭证
|
|
254
|
-
|
|
255
|
-
3. **`~/.muse/models.json` 直接写明文**(不推荐)
|
|
256
|
-
- 仅当你 100% 确定该机器 + 账号是私有
|
|
257
|
-
- 任何同步盘(iCloud、Dropbox)都会让它扩散
|
|
256
|
+
```json
|
|
257
|
+
{ "apiKey": "${DEEPSEEK_API_KEY}" }
|
|
258
|
+
```
|
|
259
|
+
muse 启动时自动展开。如果 env 没设,会给出指明缺哪个变量的友好报错。
|
|
258
260
|
|
|
259
261
|
muse 自身的安全保证:
|
|
260
262
|
- 日志里 apiKey **自动脱敏**(前 4 + 后 4,中间打码)
|
|
@@ -272,7 +274,7 @@ muse 自身的安全保证:
|
|
|
272
274
|
5. 环境变量 `MUSE_PROVIDER` / `MUSE_MODEL`
|
|
273
275
|
6. CLI flags `-p` / `-m`
|
|
274
276
|
|
|
275
|
-
`models.json`
|
|
277
|
+
`models.local.json` 只有 `~/.muse/` 层,无项目级(模型仓库本质是 user-level)。
|
|
276
278
|
|
|
277
279
|
---
|
|
278
280
|
|
|
@@ -367,22 +369,17 @@ assistant 回复里的 markdown(标题、列表、代码块、表格、链接
|
|
|
367
369
|
|
|
368
370
|
### `/models` 显示 "No models registry found"
|
|
369
371
|
|
|
370
|
-
`~/.muse/models.json` 不存在或解析失败。
|
|
372
|
+
`~/.muse/models.local.json` 不存在或解析失败。
|
|
371
373
|
|
|
372
|
-
- 路径是否正确?`ls ~/.muse/models.json`
|
|
373
|
-
- JSON 格式是否合法?`jq . ~/.muse/models.json`
|
|
374
|
+
- 路径是否正确?`ls ~/.muse/models.local.json`
|
|
375
|
+
- JSON 格式是否合法?`jq . ~/.muse/models.local.json`
|
|
374
376
|
- 字段错位?看 `~/.muse/logs/<today>.jsonl` 里的 warn
|
|
375
377
|
|
|
376
|
-
### `Model "..."
|
|
378
|
+
### `Model "..." needs an API key but none was found`
|
|
377
379
|
|
|
378
|
-
启动时 apiKey 没注入到 env
|
|
380
|
+
启动时 apiKey 没注入到 env。muse 会直接告诉你根因 + 修复方式(缺哪个 env var、改哪个文件)。看报错头几行即可。
|
|
379
381
|
|
|
380
|
-
|
|
381
|
-
2. 用了 `${ENV_VAR}` 占位符?对应 env 是否在 shell 里 export 过?
|
|
382
|
-
```bash
|
|
383
|
-
echo $DEEPSEEK_API_KEY # 应有值
|
|
384
|
-
```
|
|
385
|
-
3. 改完 `~/.zshrc` 后是否 `source ~/.zshrc`?
|
|
382
|
+
如果用了 `${ENV_VAR}` 占位符且 env 没 export,最快修复是直接把明文 key 填进 `~/.muse/models.local.json`(文件就在本机,明文 OK)。
|
|
386
383
|
|
|
387
384
|
### 启动时一段 zod warn JSON
|
|
388
385
|
|