@leviyuan/lodestar 0.18.3 → 0.18.4

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.
@@ -26,16 +26,17 @@ Token Source 管理账号凭据、模型目录、启动环境、默认模型、e
26
26
  | 来源 | 配置和模型目录 |
27
27
  | --- | --- |
28
28
  | Codex subscription | 使用 Codex 登录态,模型来自 app-server `model/list` |
29
+ | Claude Code 订阅 | `claude-sub` 复用本机原生订阅登录态;通过 SDK `accountInfo()` 确认账号,`supportedModels()` 读取模型和 effort,与第三方来源独立共存 |
29
30
  | GLM Coding Plan | `[token_source.glm]` 或本机 Claude settings;模型来自兼容端点,可补录已验证模型 |
30
31
  | DeepSeek | `[token_source.deepseek]` 或本机 Claude settings;模型来自兼容端点,可补录已验证模型 |
31
- | OpenRouter | `[token_source.openrouter]` 或本机 Claude settings;默认十一家各一模型,账号目录验证能力,MD 面板维护增删 |
32
+ | OpenRouter | `[token_source.openrouter]` 或本机 Claude settings;默认十家各一模型(不含 Claude),账号目录验证能力,MD 面板维护增删 |
32
33
  | DeepSeek Harness | `[token_source.deepseek-harness]`;模型、effort 与上下文容量来自当前安装的 DSH 原生目录 |
33
34
  | DSH GLM Coding Plan | `[token_source.dsh-glm]` 或复用 `glm`;账号接口返回模型,DSH 原生适配器提供能力和推理档位 |
34
- | Claude native | 沿用本机 Claude 配置,目录来自 SDK `supportedModels()`;有其他已启用的 Claude 侧来源时让位 |
35
+ | Claude native | 沿用本机 Claude 配置,目录来自 SDK `supportedModels()`;有已启用的第三方 Claude 侧来源时让位 |
35
36
 
36
37
  `model` 按 Claude Code、Codex、DeepSeek Harness 分组,组 ID 由 `ELEMENTS.modelAgentGroup` 生成。两个 Agent 下的 DeepSeek 来源都显示为 DeepSeek,协议 id 保持不变。选账号后进入模型列表;多个档位才展示 effort 卡,只有一个档位时直接应用,获取失败显示 `MISS`。同 provider/source 的切换调用 `setModelSettings`:Claude 和 DSH 从后续 turn 使用,Codex 保存选择并在重启进程后应用。跨 provider/source 或需要变更项目启动配置时,只能在空闲状态更换进程。
37
38
 
38
- 除 OpenRouter 保留默认十一项的显式列表外,所有来源由 `withModelVisibility` 在真实接口目录上应用 `hidden_models`。接口项通过显示/隐藏调整可见性,新增上游模型自动进入列表。所有来源都支持用 `custom_models` 补录列表外模型,`origin` 区分接口项和补录项;GLM / DeepSeek 会先做端点验证,补录模型可直接选择请求档位使用,DSH 原生解析目录外模型,其余来源使用 Agent 请求档位;不能用目录白名单挡住用户补录。接口收录同名模型后按接口项管理,不重复展示。
39
+ 除 OpenRouter 保留默认十项的显式列表外,所有来源由 `withModelVisibility` 在真实接口目录上应用 `hidden_models`。接口项通过显示/隐藏调整可见性,新增上游模型自动进入列表。所有来源都支持用 `custom_models` 补录列表外模型,`origin` 区分接口项和补录项;GLM / DeepSeek 会先做端点验证,补录模型可直接选择请求档位使用,DSH 原生解析目录外模型,其余来源使用 Agent 请求档位;不能用目录白名单挡住用户补录。接口收录同名模型后按接口项管理,不重复展示。
39
40
 
40
41
  `tokenSourceRuntimeModel(s)` 使用完整能力目录,隐藏不修改会话、`model`、`effort`、slots 或启动配置指纹。`model_custom_remove` 只删除补录项,拒绝删接口项;删除前要求会话不再选用该项,并清理默认模型和 slots 的悬空引用。补录/删除和显示/隐藏均串行写配置,旧面板失效。
41
42
 
@@ -49,7 +50,7 @@ Token Source 管理账号凭据、模型目录、启动环境、默认模型、e
49
50
 
50
51
  ## Claude 启动配置
51
52
 
52
- GLM、DeepSeek、OpenRouter 等来源先清除冲突的 Anthropic 环境变量(含模型角色、OAuth 和云供应商选择),再注入各自凭据;默认读取 `project`、`local` settings。Claude native 沿用本机环境并读取 `user`、`project`、`local`。Token Source 指定的 settings 来源优先;未绑定 Token Source 时才使用项目 `setting_sources`。给注入凭据的来源加上 `user` 会重新引入本机 settings 中的路由。
53
+ GLM、DeepSeek、OpenRouter 等来源先清除冲突的 Anthropic 环境变量(含模型角色、OAuth 和云供应商选择),再注入各自凭据;默认读取 `project`、`local` settings。Claude Code 订阅读取 `user`、`project`、`local`,通过进程级 `settings` 覆盖冲突路由和 API key helper,不改本机文件;SDK `accountInfo()` 确认第一方订阅后才向 streaming input 放行用户输入。Claude native 沿用本机环境并读取 `user`、`project`、`local`。Token Source 指定的 settings 来源优先;未绑定 Token Source 时才使用项目 `setting_sources`。给注入凭据的来源加上 `user` 会重新引入本机 settings 中的路由。
53
54
 
54
55
  `[projects.<name>]` 的 `cwd` 对所有后端生效;`setting_sources`、`strict_mcp` 用于 Claude,`tools`、`load_project_mcp` 用于 Claude 和 DSH 主会话。Claude 主会话默认发现项目 `.mcp.json`。排除 user settings 的 Claude 会话通过 SDK 本地插件加载 daemon 管理的 Skill,安装内容统一由 `managed-skills.ts` 生成。
55
56
 
@@ -61,9 +62,9 @@ Claude 使用 `permissionMode: default`:普通工具在 `canUseTool` 中放行
61
62
 
62
63
  - 来源 id 为 `openrouter`,通过 factory 注册 `openrouter-setup`。默认根地址 `https://openrouter.ai/api`,粘贴的 `/api/v1` 会规范成 SDK 根地址。API key 注入 `ANTHROPIC_AUTH_TOKEN`,`ANTHROPIC_API_KEY` 显式置空,模型 slug 完整透传,不自动追加 `[1m]`。
63
64
  - 主会话和委派共用 `agent-launch.ts`,将所选模型传给 `spawnEnv`。辅助角色在进程启动时绑定所选模型,可用 `slots` 配置 opus/sonnet/haiku;主模型后续切换不改动进程启动时的辅助角色。
64
- - 默认列表由 `src/openrouter-defaults.ts` 定义,共十一项,详见[账号与模型](models.md#openrouter)。账号目录来自 `GET /api/v1/models/user`,遵循账号供应商、隐私和 guardrail 设置;过滤 OpenAI、GLM、DeepSeek 等被排除厂商、自动路由、非文本输出、无 tools 和 `:batch` 模型。厂商排除也在启动路由和 slot 校验中执行。
65
+ - 默认列表由 `src/openrouter-defaults.ts` 定义,共十项,详见[账号与模型](models.md#openrouter)。账号目录来自 `GET /api/v1/models/user`,遵循账号供应商、隐私和 guardrail 设置;过滤 OpenAI、GLM、DeepSeek 等被排除厂商、自动路由、非文本输出、无 tools 和 `:batch` 模型。厂商排除也在启动路由和 slot 校验中执行。
65
66
  - `modelSelection` 保存可见模型 id 和完整允许候选;`models` 只暴露面板可见项。`model_list_open` / `model_add` / `model_remove` 对应接口项显示/隐藏,服务端校验当前页、模式与配置版本。`model_custom_remove` 删除补录记录,不能用于接口项;厂商排除也应用于手动补录。
66
- - `models` 未配置时使用默认十一项,空字符串表示用户主动清空,不能当作未配置。默认模型、effort、slots、Key 及相邻配置节保留;启动和 slots 按完整允许目录验证。上游不再返回的已选项显示 `unavailableReason`,不能启动,但可以删除。
67
+ - `models` 未配置时使用默认十项,空字符串表示用户主动清空,不能当作未配置。默认模型、effort、slots、Key 及相邻配置节保留;启动和 slots 按完整允许目录验证。上游不再返回的已选项显示 `unavailableReason`,不能启动,但可以删除。
67
68
  - effort 来自 `reasoning.supported_efforts`,仅暴露 Claude SDK 支持的档位;显式 `null` 表示全部网关档位。没有 effort 选择器的模型使用 `default`,含义是请求不携带 `output_config.effort`,不代表关闭推理,选择模型后直接应用并跳过 effort 卡。其他缺失的默认档位保留 `null`,要求用户明确选择。已选榜单代表模型使用榜单明确的档位或账号目录的默认档位。
68
69
  - `default` 用显式启动档位配合子进程环境中的 `CLAUDE_CODE_EFFORT_LEVEL=unset`,避免 CLI 为请求补上 effort。`settings.env` 不能替代真实环境,单纯省略 SDK 选项也不成立。显式 `max` 通过 `effortLevel: 'max'` 下发,不能映射成 `ultracode`。
69
70
  - `modelEnvironmentRevision` 参与进程配置比较。`default` 与显式档位之间切换需要新进程环境,Session 在空闲时保存并恢复原生 session;相同模式继续走 `setModelSettings`。slots 不能混合两种参数模式,避免辅助任务继承不适用的环境。模型切换不触发 daemon 重启。
package/docs/models.md CHANGED
@@ -25,6 +25,14 @@
25
25
 
26
26
  回复底部显示 `agent · 模型名/effort`,其中 Agent 为 `claude`、`codex` 或 `dsh`。窗口额度如 `4.1h·7%·[6.9d·17%]`,分别表示重置倒计时与已用百分比,方括号内为周窗口;余额显示 `余额 $12.34` 或 `余额 ¥12.34`。读取失败显示 `MISS`,Codex 的短暂网络失败会有限重试。
27
27
 
28
+ ## Claude Code 订阅
29
+
30
+ 在运行 Lodestar 的本机通过 `claude auth login` 登录 Claude 订阅后,发送 `md` → Claude Code → **Claude Code 订阅**。来源 id 为 `claude-sub`,可与 GLM、DeepSeek、OpenRouter 同时使用;无需复制登录凭据或填写 API key。
31
+
32
+ 账号和模型目录通过 Claude Code 原生 SDK 查询,模型与 effort 随目录更新;未登录会显示启用引导,查询失败显示 `MISS`。可选配置节为 `[token_source.claude-sub]`,支持 `display`、`model`、`effort`、`hidden_models` 和 `custom_models`。当前未接入订阅额度查询。
33
+
34
+ 订阅进程保留本机和项目的 Claude 设置,并在进程内清除其他来源的 API key、模型映射和中转路由。发送任务前会再次核对实际账号是否为第一方订阅。Claude native 继续保留为使用本机完整配置的来源。
35
+
28
36
  ## OpenRouter
29
37
 
30
38
  OpenRouter 通过 Claude Agent SDK 运行。在群内发送 `openrouter-setup <api_key>`,再通过 `model` 面板选择模型和 effort;自建兼容端点用 `openrouter-setup <base_url> <api_key>`。也可在配置文件中添加:
@@ -34,17 +42,16 @@ OpenRouter 通过 Claude Agent SDK 运行。在群内发送 `openrouter-setup <a
34
42
  agent = "claude"
35
43
  api_key = "填写自己的 OpenRouter API key"
36
44
  # base_url = "https://openrouter.ai/api" # SDK 自动追加 /v1/messages
37
- # model = "anthropic/claude-fable-5.1" # 可选:默认运行模型,须获账号目录确认
45
+ # model = "moonshotai/kimi-k3" # 可选:默认运行模型,须获账号目录确认
38
46
  # effort = "max" # 可选:仅覆盖默认运行模型的档位
39
- # models = "anthropic/claude-fable-5.1,moonshotai/kimi-k3" # 可选:自定义可选列表
40
- # slots = "haiku=anthropic/claude-fable-5.1" # 可选:辅助任务模型,须获账号目录确认且使用相同的 effort 参数模式
47
+ # models = "moonshotai/kimi-k3,google/gemini-3.8-flash" # 可选:自定义可选列表
48
+ # slots = "haiku=moonshotai/kimi-k3" # 可选:辅助任务模型,须获账号目录确认且使用相同的 effort 参数模式
41
49
  ```
42
50
 
43
- 内置默认列表包含以下 **11 项**,定义见[默认模型配置](../src/openrouter-defaults.ts)。这是项目提供的初始列表,可在面板中自行调整。
51
+ 内置默认列表包含以下 **10 项**,定义见[默认模型配置](../src/openrouter-defaults.ts)。这是项目提供的初始列表,默认不含 Claude,可在面板中自行调整。
44
52
 
45
53
  | 厂商 | 模型 ID | 默认档位 |
46
54
  | --- | --- | --- |
47
- | Anthropic | `anthropic/claude-fable-5.1` | max |
48
55
  | Moonshot | `moonshotai/kimi-k3` | max |
49
56
  | Tencent | `tencent/hy4-preview` | high |
50
57
  | Google | `google/gemini-3.8-flash` | high |
@@ -56,7 +63,7 @@ api_key = "填写自己的 OpenRouter API key"
56
63
  | 字节跳动 | `bytedance-seed/seed-2-1-turbo` | 模型默认 |
57
64
  | 美团 | `meituan/longcat-2.0` | 模型默认 |
58
65
 
59
- 在 `md` → Claude Code → OpenRouter 中,点「显示模型」进入账号目录,再点「显」加入列表,点「隐」移出面板列表。可见性自动保存,不改当前运行模型;全部隐藏后也能继续显示或补录。未配置 `models` 时才使用上述十一项;`models = ""` 表示没有已显示的接口模型,刷新或重启不会补回默认项。内置列表更新不会覆盖用户维护的列表。
66
+ 在 `md` → Claude Code → OpenRouter 中,点「显示模型」进入账号目录,再点「显」加入列表,点「隐」移出面板列表。可见性自动保存,不改当前运行模型;全部隐藏后也能继续显示或补录。未配置 `models` 时才使用上述十项;`models = ""` 表示没有已显示的接口模型,刷新或重启不会补回默认项。内置列表更新不会覆盖用户维护的列表。
60
67
 
61
68
  候选目录来自 `/api/v1/models/user`,按账号供应商和隐私设置筛选,仅纳入支持文本和工具调用的交互模型;OpenAI、GLM、DeepSeek 及无法保证厂商范围的自动路由不会出现在添加候选中。目录刷新失败显示 `MISS`。显式配置但已下线的模型保留为可删除的 `MISS` 项。
62
69
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leviyuan/lodestar",
3
- "version": "0.18.3",
3
+ "version": "0.18.4",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },