@leviyuan/lodestar 0.18.19 → 0.18.21
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/dist/lodestar.js +202 -201
- package/docs/claude-agent-backend.md +5 -4
- package/docs/models.md +54 -9
- package/package.json +1 -1
|
@@ -29,14 +29,15 @@ Token Source 管理账号凭据、模型目录、启动环境、默认模型、e
|
|
|
29
29
|
| Claude Code 订阅 | `claude-sub` 复用本机原生订阅登录态;通过 SDK `accountInfo()` 确认账号,`supportedModels()` 读取模型和 effort,与第三方来源独立共存 |
|
|
30
30
|
| GLM Coding Plan | `[token_source.glm]` 或本机 Claude settings;模型来自兼容端点,可补录已验证模型 |
|
|
31
31
|
| DeepSeek | `[token_source.deepseek]` 或本机 Claude settings;模型来自兼容端点,可补录已验证模型 |
|
|
32
|
-
| OpenRouter | `[token_source.openrouter]` 或本机 Claude settings
|
|
32
|
+
| OpenRouter | `[token_source.openrouter]` 或本机 Claude settings;默认保留六款模型(含 Gemini、MiMo),账号目录验证能力,MD 面板维护增删 |
|
|
33
|
+
| PackyAPI | `[token_source.packy]`、`[token_source.packy-secondary]`;按令牌目录筛选模型,Claude 入口默认展示 MiniMax、Opus、Fable 5.1(claude-fable-5-1)、Qwen;Codex 入口展示 Kimi、Grok 4.6,主令牌与 `packy-codex` 共用凭据 |
|
|
33
34
|
| DeepSeek Harness | `[token_source.deepseek-harness]`;模型、effort 与上下文容量来自当前安装的 DSH 原生目录 |
|
|
34
35
|
| DSH GLM Coding Plan | `[token_source.dsh-glm]` 或复用 `glm`;账号接口返回模型,DSH 原生适配器提供能力和推理档位 |
|
|
35
36
|
| Claude native | 沿用本机 Claude 配置,目录来自 SDK `supportedModels()`;有已启用的第三方 Claude 侧来源时让位 |
|
|
36
37
|
|
|
37
38
|
`model` 按 Claude Code、Codex、DeepSeek Harness 分组,组 ID 由 `ELEMENTS.modelAgentGroup` 生成。两个 Agent 下的 DeepSeek 来源都显示为 DeepSeek,协议 id 保持不变。选账号后进入模型列表;多个档位才展示 effort 卡,只有一个档位时直接应用,获取失败显示 `MISS`。同 provider/source 的切换调用 `setModelSettings`:Claude 和 DSH 从后续 turn 使用,Codex 保存选择并在重启进程后应用。跨 provider/source 或需要变更项目启动配置时,只能在空闲状态更换进程。
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
OpenRouter 和 PackyAPI 使用各自不重叠的显式精选列表,其余来源由 `withModelVisibility` 在真实接口目录上应用 `hidden_models`。接口项通过显示/隐藏调整可见性,新增上游模型自动进入列表。所有来源都支持用 `custom_models` 补录列表外模型,`origin` 区分接口项和补录项;GLM / DeepSeek 会先做端点验证,补录模型可直接选择请求档位使用,DSH 原生解析目录外模型,其余来源使用 Agent 请求档位;不能用目录白名单挡住用户补录。接口收录同名模型后按接口项管理,不重复展示。
|
|
40
41
|
|
|
41
42
|
`tokenSourceRuntimeModel(s)` 使用完整能力目录,隐藏不修改会话、`model`、`effort`、slots 或启动配置指纹。`model_custom_remove` 只删除补录项,拒绝删接口项;删除前要求会话不再选用该项,并清理默认模型和 slots 的悬空引用。补录/删除和显示/隐藏均串行写配置,旧面板失效。
|
|
42
43
|
|
|
@@ -64,9 +65,9 @@ Lodestar 每次启动 Claude SDK 子进程时自动设置 `CLAUDE_CODE_ENABLE_TO
|
|
|
64
65
|
|
|
65
66
|
- 来源 id 为 `openrouter`,通过 factory 注册 `openrouter-setup`。默认根地址 `https://openrouter.ai/api`,粘贴的 `/api/v1` 会规范成 SDK 根地址。API key 注入 `ANTHROPIC_AUTH_TOKEN`,`ANTHROPIC_API_KEY` 显式置空,模型 slug 完整透传,不自动追加 `[1m]`。
|
|
66
67
|
- 主会话和委派共用 `agent-launch.ts`,将所选模型传给 `spawnEnv`。辅助角色在进程启动时绑定所选模型,可用 `slots` 配置 opus/sonnet/haiku;主模型后续切换不改动进程启动时的辅助角色。
|
|
67
|
-
- 默认列表由 `src/openrouter-defaults.ts`
|
|
68
|
+
- 默认列表由 `src/openrouter-defaults.ts` 定义,共六项,详见[账号与模型](models.md#openrouter)。账号目录来自 `GET /api/v1/models/user`,遵循账号供应商、隐私和 guardrail 设置;过滤 OpenAI、GLM、DeepSeek 等被排除厂商、自动路由、非文本输出、无 tools 和 `:batch` 模型。厂商排除也在启动路由和 slot 校验中执行。
|
|
68
69
|
- `modelSelection` 保存可见模型 id 和完整允许候选;`models` 只暴露面板可见项。`model_list_open` / `model_add` / `model_remove` 对应接口项显示/隐藏,服务端校验当前页、模式与配置版本。`model_custom_remove` 删除补录记录,不能用于接口项;厂商排除也应用于手动补录。
|
|
69
|
-
- `models`
|
|
70
|
+
- `models` 未配置时使用默认六项,空字符串表示用户主动清空,不能当作未配置。默认模型、effort、slots、Key 及相邻配置节保留;启动和 slots 按完整允许目录验证。上游不再返回的已选项显示 `unavailableReason`,不能启动,但可以删除。
|
|
70
71
|
- effort 来自 `reasoning.supported_efforts`,仅暴露 Claude SDK 支持的档位;显式 `null` 表示全部网关档位。没有 effort 选择器的模型使用 `default`,含义是请求不携带 `output_config.effort`,不代表关闭推理,选择模型后直接应用并跳过 effort 卡。其他缺失的默认档位保留 `null`,要求用户明确选择。已选榜单代表模型使用榜单明确的档位或账号目录的默认档位。
|
|
71
72
|
- `default` 用显式启动档位配合子进程环境中的 `CLAUDE_CODE_EFFORT_LEVEL=unset`,避免 CLI 为请求补上 effort。`settings.env` 不能替代真实环境,单纯省略 SDK 选项也不成立。显式 `max` 通过 `effortLevel: 'max'` 下发,不能映射成 `ultracode`。
|
|
72
73
|
- `modelEnvironmentRevision` 参与进程配置比较。`default` 与显式档位之间切换需要新进程环境,Session 在空闲时保存并恢复原生 session;相同模式继续走 `setModelSettings`。slots 不能混合两种参数模式,避免辅助任务继承不适用的环境。模型切换不触发 daemon 重启。
|
package/docs/models.md
CHANGED
|
@@ -14,6 +14,11 @@ GLM Key 可在首次安装时跳过,之后用群命令添加或更换。以下
|
|
|
14
14
|
| Z.ai GLM(两个 Agent 共用) | `glm-setup https://api.z.ai/api/anthropic <api_key>` |
|
|
15
15
|
| DeepSeek(两个 Agent 共用) | `deepseek-setup [base_url] <api_key>` |
|
|
16
16
|
| OpenRouter | `openrouter-setup [base_url] <api_key>` |
|
|
17
|
+
| PackyAPI 主令牌 | `packy-setup [base_url] <api_key>` |
|
|
18
|
+
| PackyAPI 第二令牌 | `packy-secondary-setup [base_url] <api_key>` |
|
|
19
|
+
| PackyAPI / Codex(复用主令牌) | `packy-codex-setup [base_url] <api_key>` |
|
|
20
|
+
| PackyAPI 真实余额(主令牌与 Codex 共用) | `packy-balance-setup [management_url] <user_id> <system_token>` |
|
|
21
|
+
| PackyAPI 第二令牌共用主账号余额 | `packy-secondary-balance-setup share packy` |
|
|
17
22
|
| DeepSeek 旧命令,同样更新共享账号 | `deepseek-harness-setup [base_url] <api_key>` |
|
|
18
23
|
| GLM 旧命令,同样更新共享账号 | `dsh-glm-setup [base_url] <api_key>` |
|
|
19
24
|
|
|
@@ -32,7 +37,7 @@ GLM Key 可在首次安装时跳过,之后用群命令添加或更换。以下
|
|
|
32
37
|
| 补录模型 | 添加接口目录外的模型,可选择推理档位并使用 |
|
|
33
38
|
| 删 | 删除补录记录;仍有会话选用时需先切换模型 |
|
|
34
39
|
|
|
35
|
-
除 OpenRouter
|
|
40
|
+
除 OpenRouter 和 PackyAPI 使用内置精选列表外,各来源默认显示接口目录中的模型,新模型会随目录刷新出现。所有来源都支持补录,记录保存在 `custom_models`;支持端点验证的来源会先验证。目录未收录不会阻止选择,实际不支持的请求由后端报告错误。接口后来收录同名模型时自动转为接口项,不重复显示。删除补录记录也会清理默认模型和辅助模型中的相关引用。
|
|
36
41
|
|
|
37
42
|
同账号切换 Claude 或 DSH 模型从后续回复生效;Codex 的持久设置需重启会话生效。跨账号或后端切换只允许在空闲时进行。来源禁用或目录获取失败显示 `MISS`。
|
|
38
43
|
|
|
@@ -73,24 +78,18 @@ api_key = "填写自己的 OpenRouter API key"
|
|
|
73
78
|
# slots = "haiku=moonshotai/kimi-k3" # 可选:辅助任务模型,须获账号目录确认且使用相同的 effort 参数模式
|
|
74
79
|
```
|
|
75
80
|
|
|
76
|
-
|
|
81
|
+
内置默认列表保留以下 **6 项**,定义见[默认模型配置](../src/openrouter-defaults.ts)。Gemini 和 MiMo 使用 OpenRouter;这是项目提供的初始列表,可在面板中自行调整,其他兼容模型仍可从账号目录显示或补录。
|
|
77
82
|
|
|
78
83
|
| 厂商 | 模型 ID | 默认档位 |
|
|
79
84
|
| --- | --- | --- |
|
|
80
|
-
| Anthropic | `anthropic/claude-fable-5.1` | max |
|
|
81
|
-
| Anthropic | `anthropic/claude-opus-5` | max |
|
|
82
|
-
| Moonshot | `moonshotai/kimi-k3` | max |
|
|
83
85
|
| Tencent | `tencent/hy4-preview` | high |
|
|
84
86
|
| Google | `google/gemini-3.8-flash` | high |
|
|
85
|
-
| SpaceXAI | `x-ai/grok-4.5` | high |
|
|
86
|
-
| Alibaba | `qwen/qwen3.8-max-0902` | xhigh |
|
|
87
87
|
| Meta | `meta/muse-spark-1.2` | xhigh |
|
|
88
88
|
| Xiaomi | `xiaomi/mimo-v2.5-pro` | 模型默认 |
|
|
89
|
-
| MiniMax | `minimax/minimax-m3` | 模型默认 |
|
|
90
89
|
| 字节跳动 | `bytedance-seed/seed-2-1-turbo` | 模型默认 |
|
|
91
90
|
| 美团 | `meituan/longcat-2.0` | 模型默认 |
|
|
92
91
|
|
|
93
|
-
在 `md` → Claude Code → OpenRouter 中,点「显示模型」进入账号目录,再点「显」加入列表,点「隐」移出面板列表。可见性自动保存,不改当前运行模型;全部隐藏后也能继续显示或补录。未配置 `models`
|
|
92
|
+
在 `md` → Claude Code → OpenRouter 中,点「显示模型」进入账号目录,再点「显」加入列表,点「隐」移出面板列表。可见性自动保存,不改当前运行模型;全部隐藏后也能继续显示或补录。未配置 `models` 时才使用上述六项;`models = ""` 表示没有已显示的接口模型,刷新或重启不会补回默认项。内置列表更新不会覆盖用户维护的列表。
|
|
94
93
|
|
|
95
94
|
候选目录来自 `/api/v1/models/user`,按账号供应商和隐私设置筛选,仅纳入支持文本和工具调用的交互模型;OpenAI、GLM、DeepSeek 及无法保证厂商范围的自动路由不会出现在添加候选中。目录刷新失败显示 `MISS`。显式配置但已下线的模型保留为可删除的 `MISS` 项。
|
|
96
95
|
|
|
@@ -98,6 +97,52 @@ effort 按上游声明提供。小米、MiniMax、字节等没有 effort 选择
|
|
|
98
97
|
|
|
99
98
|
OpenRouter 余额来自 `/api/v1/credits`,按 `total_credits - total_usage` 计算;接口权限和错误以实际响应为准。账号目录可见不代表所有工具和请求都能成功,上游拒绝或路由不可用会明确报错。兼容接口、模型与档位的处理见[后端说明](claude-agent-backend.md#openrouter)。
|
|
100
99
|
|
|
100
|
+
## PackyAPI
|
|
101
|
+
|
|
102
|
+
PackyAPI 提供三个来源入口:Claude Code 下的 `PackyAPI`、`PackyAPI · 令牌2`,以及 Codex 下的 `PackyAPI`。第二令牌独立保存;Codex 与主令牌共用一次存储的 Key 和平台地址,模型、effort、可见性分别维护。
|
|
103
|
+
|
|
104
|
+
Packy 的 Claude 入口默认展示 MiniMax-M3、claude-opus-5、claude-fable-5-1、qwen3.8-max-0902;Codex 入口默认展示 kimi-k3 和 grok-4.6。Fable 5.1 的 API ID 使用连字符 `claude-fable-5-1`;Grok 4.6 通过 Responses 接口调用。Packy 目录中其余兼容模型只放在「显示模型」目录,不会自动出现在选择面板;已配置的 `model`、`models` 或 `custom_models` 仍按显式配置保留。
|
|
105
|
+
|
|
106
|
+
```toml
|
|
107
|
+
[token_source.packy]
|
|
108
|
+
api_key = "填写主令牌"
|
|
109
|
+
base_url = "https://cf.api.fan"
|
|
110
|
+
model = "MiniMax-M3"
|
|
111
|
+
effort = "default"
|
|
112
|
+
# models = "MiniMax-M3,qwen3.8-max-0902" # 可选:显式覆盖默认精选列表
|
|
113
|
+
management_token = "填写个人设置中的系统访问令牌"
|
|
114
|
+
management_user_id = "填写该账号用户 ID"
|
|
115
|
+
management_url = "https://www.packyapi.ai"
|
|
116
|
+
|
|
117
|
+
[token_source.packy-secondary]
|
|
118
|
+
api_key = "填写第二令牌"
|
|
119
|
+
model = "qwen3.8-max-0902"
|
|
120
|
+
effort = "default"
|
|
121
|
+
billing_source = "packy" # 仅当第二令牌也属于同一余额账号
|
|
122
|
+
|
|
123
|
+
[token_source.packy-codex]
|
|
124
|
+
model = "kimi-k3"
|
|
125
|
+
effort = "medium"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
目录由各令牌的 `GET /v1/models` 实时返回,保留原始 ID 和大小写。预设只筛选真实目录项;目录外模型须显式补录,不把预设伪装成上游模型。Claude Code 默认列声明 `anthropic` 的模型,Codex 默认列声明 `openai-response` 的模型。目录声明可能不完整:确认某个模型实际兼容后,可以通过补录或 `custom_models` 显式启用;条目仍标记为补录项,不改写上游协议声明。隐藏/显示、补录/删除与其他来源一致;目录失败显示 MISS,不更换令牌或模型。
|
|
129
|
+
|
|
130
|
+
有推理档位声明时沿用声明。目录只给模型 ID 和协议、未声明推理档位时,面板提供 Agent 的请求选项:Claude Code 默认 `default`(不发送 effort),Codex 默认请求 `medium`;这些请求选项不保证所有上游模型接受,拒绝会如实报错。`effort` 可覆盖本来源默认请求档位。
|
|
131
|
+
|
|
132
|
+
Claude Code 使用官方 SDK 和 `/v1/messages`,辅助角色也使用当前令牌与所选模型,保留项目 MCP、Skill 和原生 resume。Codex 使用独立 Responses provider 和进程环境变量注入 Key;不要求 ChatGPT 登录,不参与 Codex 订阅自动选号、重置卡或订阅额度查询,也不加载需要订阅认证的 ChatGPT 连接器。模型目录由 Lodestar 直接读取;上游 Codex 自身的模型元数据刷新若遇到 New API 的 `data` / `models` 格式差异,仍保留原始诊断,不伪造原生元数据。
|
|
133
|
+
|
|
134
|
+
Gemini 3.8 Flash 默认使用 OpenRouter 的 `google/gemini-3.8-flash`,Packy 默认隐藏。Packy 的 Messages 转换可能拒绝 Claude 工具 schema 中的 `propertyNames`、`const`;显式使用该路由时会显示真实 HTTP 400 错误。
|
|
135
|
+
|
|
136
|
+
Gemini 3.8 Flash 使用 Claude Code 原生重试:请求超时 `API_TIMEOUT_MS=60000`、字节流空闲超时 `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS=45000`、请求重试预算 `CLAUDE_CODE_MAX_RETRIES=2`,关闭无限重试看门狗。该策略只在选择 Gemini 3.8 Flash 为 Claude 主模型时注入;切换请求策略会替换空闲进程并保留原生会话。宿主不重放整轮用户输入或已完成的工具,不更换 Key、模型或来源;SDK 判定的最终失败仍会显示。
|
|
137
|
+
|
|
138
|
+
官方推理入口为 `https://cf.api.fan`,管理入口为 `https://www.packyapi.ai`。真实余额使用系统访问令牌及 `New-Api-User` 用户 ID 请求 `/api/user/self`,读取账户剩余 `quota`,按 `/api/status` 声明的 `quota_per_unit` 换算 USD。`hi` 与回复页脚显示同一余额;不会使用 API Key 的令牌配额或无限额度占位值代替。
|
|
139
|
+
|
|
140
|
+
系统访问令牌与模型 Key 分开保存,余额凭据不传入 Agent。`packy-codex` 自动共用主来源的余额;第二令牌只有显式设置 `billing_source = "packy"` 才共用。此引用只复用余额凭据,第二个模型 Key 保持独立,同一余额账号在 `hi` 中只列一行。第二令牌属于其他账号时,用 `packy-secondary-balance-setup [management_url] <user_id> <system_token>` 配置独立余额。模型与余额配置命令均先调用上游验证,失败不覆盖已有配置。
|
|
141
|
+
|
|
142
|
+
同一余额凭据跨 Agent、模型 Key 共享 60 秒惰性缓存与并发查询;刷新失败显示 MISS,遵守失败冷却和 Retry-After,不展示旧成功余额或改查令牌配额。余额配置更新不改变 Agent 的启动身份。自建地址未指定 `management_url` 时按自己的 API 根地址查询管理接口,系统令牌请求拒绝重定向。引用其他余额来源时使用被引用来源的管理地址。
|
|
143
|
+
|
|
144
|
+
未配置系统访问令牌时,只能通过 `/api/usage/token/` 查询令牌配额:有限令牌显示“额度”,无限令牌显示 `余额 —`。这不代表真实账户余额。
|
|
145
|
+
|
|
101
146
|
## DeepSeek Harness
|
|
102
147
|
|
|
103
148
|
DeepSeek Harness 与 Claude Code 共用 `[token_source.deepseek]` 中的 DeepSeek Key 和平台地址。发送 `deepseek-setup <api_key>` 后,两边都可在 `model` 面板中选择;旧命令 `deepseek-harness-setup` 也更新同一共享账号。两个 Agent 保留各自的原生会话、默认模型、effort 和模型可见性。
|