@eddyskywalker/dsh-chatgpt-subscription 0.24.7 → 0.25.1

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/lib/client.js +13 -0
  3. package/lib/client.js.map +1 -1
  4. package/lib/index.js +119 -33
  5. package/lib/types/host/agent-preset.d.ts +20 -0
  6. package/lib/types/host/agent-preset.d.ts.map +1 -1
  7. package/lib/types/host/antigravity/adapter.d.ts +11 -0
  8. package/lib/types/host/antigravity/adapter.d.ts.map +1 -1
  9. package/lib/types/host/antigravity/mapper.d.ts +1 -0
  10. package/lib/types/host/antigravity/mapper.d.ts.map +1 -1
  11. package/lib/types/host/common/idle-watchdog.d.ts.map +1 -1
  12. package/lib/types/host/common/llm-compat.d.ts +19 -4
  13. package/lib/types/host/common/llm-compat.d.ts.map +1 -1
  14. package/lib/types/host/common/reasoning-efforts.d.ts +2 -0
  15. package/lib/types/host/common/reasoning-efforts.d.ts.map +1 -0
  16. package/lib/types/host/common/request-images.d.ts +6 -0
  17. package/lib/types/host/common/request-images.d.ts.map +1 -1
  18. package/lib/types/host/common/webserver-compat.d.ts +7 -0
  19. package/lib/types/host/common/webserver-compat.d.ts.map +1 -0
  20. package/lib/types/host/kimi-code/adapter.d.ts +6 -0
  21. package/lib/types/host/kimi-code/adapter.d.ts.map +1 -1
  22. package/lib/types/host/minimax-code/adapter.d.ts +6 -0
  23. package/lib/types/host/minimax-code/adapter.d.ts.map +1 -1
  24. package/lib/types/host/model-catalog.d.ts.map +1 -1
  25. package/lib/types/host/search-provider-switcher.d.ts.map +1 -1
  26. package/lib/types/host/step-code/adapter.d.ts +7 -1
  27. package/lib/types/host/step-code/adapter.d.ts.map +1 -1
  28. package/lib/types/index.d.ts.map +1 -1
  29. package/package.json +37 -37
  30. package/presets/dispatch/agent.cordis.yml +3 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.25.1 - 2026-10-17
6
+
7
+ - **[Harness & 调度预设] 适配 DSH 0.2.1-rc.1 / 0.2.1-rc.2,并修复调度模式在 0.2.1 下报 `unknown prompt variable "{{cwd}}"` 的启动失败**
8
+ - **调度预设(`dispatch`)移除未注册的 `{{cwd}}` 变量**:DSH 0.2.1 引入独立的 `@deepseek-ai/dsh-working-directory` 服务(通过 `working-directory` section 注入工作目录提示),不再向 `ctx.systemPrompt` 注册 `cwd` 模板变量(仅保留 `provider` 与 `model`),导致 `dispatch` 预设在组装系统提示词时直接报错 `unknown prompt variable "{{cwd}}" in section "deployment:persona-prefix"; registered variables: provider, model`。本次从 `presets/dispatch/agent.cordis.yml` 与 `src/host/agent-preset.ts` 的 `persona.config.prefix` 中移除重复的 `Your working directory is {{cwd}}.`,并新增 `resolveDispatchPreset()` 在检测到 `@deepseek-ai/dsh-working-directory`(`>=0.2.1`)时自动剥离 `persona.config.suffix`,而在 `0.1.7–0.2.0` 及 `≤0.1.6` 上完整保留 `suffix: 'Your working directory is {{cwd}}.'`。
9
+ - **适配 0.2.1-rc.2 的 `Volatile` 搜索配置(`SearchProviderSwitcher`)**:`dsh-v0.2.1-rc.2` 将 `@deepseek-ai/dsh-web` 的 `searchProvider` / `fetchProvider` 配置改为 `z.string().volatile()`,运行时 `fiber.config.searchProvider` 为暴露 `.get()` 的 `Volatile` 包装器而非裸字符串。`src/host/search-provider-switcher.ts` 新增 `runningProviderValue()` 同时兼容裸字符串(`≤0.2.1-rc.1`)与 `Volatile<string>`(`>=0.2.1-rc.2`),避免在 `>=0.2.1-rc.2` 下切换搜索源时误判热更新未生效而触发多余的 fiber 强制重启。
10
+ - **依赖基线与 Claude 快照对齐**:15 个 `@deepseek-ai/dsh-*` 的 `peerDependencies` 与 `devDependencies` 同步升级至 `^0.2.1-rc.1`(覆盖 `0.2.1-rc.1`、`0.2.1-rc.2` 及 `0.2.1` 正式版),`@deepseek-ai/cordis` 升级至 `^4.0.6`;Claude 模型目录顺序与测试基线同步对齐本地 Harness 的 `@earendil-works/pi-ai@1.1.0`(17 条快照)。
11
+ - **验证**:`npx tsc -b --force`、测试树 `tsc`、干净 `npm run build`、`npm ci --dry-run`、`npm pack --dry-run`(523 文件)均 0 错误通过;全量 **230 passed | 1 skipped(231 文件)、3787 passed | 7 skipped、0 failed**。
12
+
13
+ ## 0.25.0 - 2026-10-17
14
+
15
+ - **[Harness] 支持 DSH 0.2.1-alpha.5,并接入新版可用的请求元数据能力**
16
+ - **依赖与启动兼容**:15 个 `@deepseek-ai/dsh-*` peer range 都明确加入 `0.2.1-alpha.5`,dev 基线使用精确版本,避免安装时静默落到刚发布的 `0.2.1-rc.1`。Cordis / loader / schemastery 使用与 alpha.5 peer 约束兼容的稳定补丁版,消除了根包 alpha 与间接稳定插件之间的真实 peer 冲突;`package-lock.json`、`pnpm-lock.yaml` 和 `pnpm-workspace.yaml` 已同步。
17
+ - **WebServer 与流超时**:`webServer.port` 在新版变为可空,Codex 本地图片地址改为优先使用新版 `getOrigin()`,旧版保留原 loopback / wildcard 构造,未绑定服务则明确报错。上游 idle watchdog 已能在传输忽略 abort 时结束等待;插件清理路径同步改为 detached drain,不再因 `await iterator.return()` 把已经超时的流重新挂死。
18
+ - **推理档位**:新版把 `reasoning.efforts` 定义为从低到高,会话标题等辅助调用直接选择第一项。Kimi live 乱序、MiniMax M3.1 的本地 `default`(省略后上游默认为 `max`)和 Codex live 档位现在都在 adapter 边界规范,设置页展示顺序与普通请求默认档不变,辅助调用能取得真正的最低档。
19
+ - **图片与工具视图**:Kimi / Step / MiniMax / Antigravity 新增 `imageRequestTarget()`,返回与真实 mapper 一致的缩放目标,供新版 CUA 等调用方使用;小图保留原尺寸和字节。共享与 Antigravity 目标同时补回旧 attachment store 必需的 `maxPixels`。Claude 的缩放取决于整次请求图片数,未伪造单图实现。Codex / Antigravity 图片工具视图还会读取新版惰性 `args`,在 preparing 阶段即可显示正在生成的 prompt,旧 `argsRaw` 形状继续兼容。
20
+ - **PTC 与旧代际**:新版 `run_code` 要求 `workingDirectory` 并用 `agent.ctx` 管理状态;实际受影响的是测试夹具而非生产授权逻辑,四个子代理授权用例已按新契约补齐并全部恢复。`llm-compat` 同时补齐旧类型没有的 `toolHistory`、`deferLoading` 与 tool-update 块,GLM 的现有拒绝行为不变。Claude OAuth 测试不再假设 `freePort + 1` 一定可绑定,以匹配 Windows 动态单端口保留;生产 OAuth 代码未改。
21
+ - **验证**:新基线强制 typecheck、干净 build、`npm ci --dry-run`、`npm pack --dry-run`(523 文件)均通过,全量 **230 passed | 1 skipped(231 文件)、3785 passed | 7 skipped、0 failed**。`0.2.0-rc.2` clean room 为 **3784 passed | 8 skipped、0 failed**;`0.1.5-rc.3` clean room 为 **3780 passed | 8 skipped**,仅已有记录的无 `dsh-ptc-runtime` PTC 文件无法加载,其他 229 个文件全部通过。
22
+ - **未采用 / 未验证**:`conversation.input.model.label` 需要另一套新旧双轨额度 UI 设计,第一方 `AccountNoticeStack` 不是通用插件通知服务,本轮没有强行迁移九条额度徽标;`ConfigureCall` 在插件内没有 auxiliary 调用点,`toolUpdate`、nested PTC `presentationMeta` 和官方图片 factory 留待独立评估。`0.2.1-rc.1` 无对应源码标签,不在本轮已验证范围;未做真实账号网络调用或 CUA / 新槽位的交互验证。
23
+
5
24
  ## 0.24.7 - 2026-10-16
6
25
  - **[MiniMax Code] M3.1 在 `effort: max` 下偶尔把一整轮花在思考上就 `end_turn`:只有 thinking 块、没有正文也没有工具调用,harness 把「无工具调用的 stop」当成正常完成,整轮无报错地停住(issue #57)**
7
26
  - **现象**:MiniMax Code 线路偶发**整轮无预警停住**——界面不报错、不重试、不弹提示,回复停在半句话上(如 `...Let me read lines 130-160 of the upstream preset.`)。
package/lib/client.js CHANGED
@@ -223,6 +223,8 @@ window.__ModuleLoader__.load({
223
223
  });
224
224
  }
225
225
  function promptFromBlock(block) {
226
+ const partial = partialPromptFromBlock(block);
227
+ if (partial !== null) return partial;
226
228
  const raw = "kind" in block ? block.call?.argsRaw : dispatchedArgsRaw(block);
227
229
  if (typeof raw !== "string" || raw.trim() === "") return null;
228
230
  try {
@@ -232,6 +234,17 @@ window.__ModuleLoader__.load({
232
234
  return null;
233
235
  }
234
236
  }
237
+ function partialPromptFromBlock(block) {
238
+ if (!("args" in block)) return null;
239
+ const args = block.args;
240
+ if (typeof args?.text !== "function") return null;
241
+ try {
242
+ const prompt = args.text.call(args, "prompt");
243
+ return typeof prompt === "string" ? prompt : null;
244
+ } catch {
245
+ return null;
246
+ }
247
+ }
235
248
  /**
236
249
  * Arguments of a dispatched call that has no result yet.
237
250
  *