@eddyskywalker/dsh-chatgpt-subscription 0.1.20 → 0.1.22

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/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ (暂无内容)
6
+
7
+ ## 0.1.21 - 2026-08-22
8
+
9
+ - 修复 DSH 更新到 `0.1.1-rc.2` 后“本轮运行失败:registration.adapter.prepareCall is not a function”:新代理循环经 `ctx.llm.prepareCall()` 冻结每次调用,适配器必须实现 `prepareCall`;CodexChatGptAdapter 现显式绑定同一次解析的模型元数据与流分发(`PreparedAdapterCall`)。
10
+ - 将全部 `@deepseek-ai/*` peerDependencies 与 devDependencies 版本统一从 `^0.1.1-rc.1` 提升至 `^0.1.1-rc.2`,并重新生成 package-lock.json。
11
+ - 增强文件完整性与编码防御:确保 `package.json` 及全部工程文件均为无 BOM 的 UTF-8 编码,新增 `test/package-integrity.test.ts` 自动化防范 UTF-8 BOM 引入与依赖一致性。已在本机 rc.2 依赖集上验证:typecheck、69 项测试与 tsdown 构建全部通过。
12
+
13
+ ## 0.1.20 - 2026-08-22
14
+
5
15
  - 新增独立的“子代理”设置页;模型、思考深度和上下文预算改为所有 DSH 内置子代理的全局设置,不再要求父 Agent 使用 Codex 模型。
6
16
  - 新增全局 0–3 最大嵌套深度和每个父 Agent 子树的活动子代理数量上限;新委派即时受限,现有运行不被中断。
7
17
  - 子代理设置扩展为 DSH 全部已接入 Provider/模型;思考深度使用所选模型的真实 reasoning effort 目录,上下文在选定模型后展开并作为子 Agent 的有效压缩预算。
@@ -13,4 +23,3 @@
13
23
  - 移除已无引用的 `@deepseek-ai/dsh-agent` peer 依赖(子代理报告去重兼容模块已于 0.1.11 移除)。
14
24
  - 新增 `@deepseek-ai/dsh-client-connection` peer 依赖(客户端 `ContentBlock` 类型来源,符合 rc.8 客户端包 peer 声明惯例)。
15
25
  - 说明:rc.8 中 `@deepseek-ai/dsh-client-ui-slots` 不再是 DSH 运行时依赖图成员(仅保留为各客户端包的 devDependency),插件继续将其声明为 peer 依赖以保证安装时解析(`^0.1.0-rc.6` 联网安装时解析到 rc.8;本地锁文件因离线环境暂固定 rc.7,API 与 rc.8 用法一致)。
16
-
package/lib/index.js CHANGED
@@ -205,9 +205,15 @@ var CodexChatGptAdapter = class extends LlmAdapter {
205
205
  async listModels() {
206
206
  return listCodexModels();
207
207
  }
208
- async resolveModel(_provider, model) {
208
+ async resolveModel(_provider, model, signal) {
209
209
  return resolveCodexModel(model, this.preferences);
210
210
  }
211
+ async prepareCall(provider, model, signal) {
212
+ return {
213
+ model: await this.resolveModel(provider, model, signal),
214
+ stream: (options) => this.stream(options)
215
+ };
216
+ }
211
217
  stream(options) {
212
218
  return this.client.stream(options);
213
219
  }
@@ -1,4 +1,4 @@
1
- import { LlmAdapter, type GenerateOptions, type LlmModelInfo, type LlmProviderInfo, type LlmResolvedModelInfo, type ResolvedRetryPolicy, type StreamChunk } from '@deepseek-ai/dsh-llm';
1
+ import { LlmAdapter, type GenerateOptions, type LlmModelInfo, type LlmProviderInfo, type LlmResolvedModelInfo, type PreparedAdapterCall, type ResolvedRetryPolicy, type StreamChunk } from '@deepseek-ai/dsh-llm';
2
2
  import { PROVIDER_ID } from './model-catalog.ts';
3
3
  import { ResponsesClient } from './responses-client.ts';
4
4
  import type { SubscriptionPreferenceStore } from './preferences.ts';
@@ -9,7 +9,8 @@ export declare class CodexChatGptAdapter extends LlmAdapter {
9
9
  providerInfo(provider: string): LlmProviderInfo;
10
10
  providerRetryPolicy(): ResolvedRetryPolicy;
11
11
  listModels(): Promise<readonly LlmModelInfo[]>;
12
- resolveModel(_provider: string, model: string): Promise<LlmResolvedModelInfo>;
12
+ resolveModel(_provider: string, model: string, signal?: AbortSignal): Promise<LlmResolvedModelInfo>;
13
+ prepareCall(provider: string, model: string, signal?: AbortSignal): Promise<PreparedAdapterCall>;
13
14
  stream(options: GenerateOptions): AsyncIterable<StreamChunk>;
14
15
  }
15
16
  export { PROVIDER_ID };
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/host/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAmB,WAAW,EAAoC,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AASnE,qBAAa,mBAAoB,SAAQ,UAAU;IAE/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBADZ,MAAM,EAAE,eAAe,EACvB,WAAW,CAAC,EAAE,2BAA2B,YAAA;IAK5D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAI/C,mBAAmB,IAAI,mBAAmB;IAIpC,UAAU,IAAI,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IAI9C,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAInF,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAAC,WAAW,CAAC;CAG7D;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/host/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAmB,WAAW,EAAoC,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AASnE,qBAAa,mBAAoB,SAAQ,UAAU;IAE/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBADZ,MAAM,EAAE,eAAe,EACvB,WAAW,CAAC,EAAE,2BAA2B,YAAA;IAK5D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAI/C,mBAAmB,IAAI,mBAAmB;IAIpC,UAAU,IAAI,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IAI9C,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAInG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOtG,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAAC,WAAW,CAAC;CAG7D;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eddyskywalker/dsh-chatgpt-subscription",
3
- "version": "0.1.20",
3
+ "version": "0.1.22",
4
4
  "description": "DSH provider plugin for Codex access through a ChatGPT subscription.",
5
5
  "author": {
6
6
  "name": "eddyskywalker",
@@ -61,44 +61,44 @@
61
61
  "peerDependencies": {
62
62
  "@deepseek-ai/cordis": "^4.0.1",
63
63
  "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
64
- "@deepseek-ai/dsh-agent": "^0.1.1-rc.1",
65
- "@deepseek-ai/dsh-attachment": "^0.1.1-rc.1",
66
- "@deepseek-ai/dsh-client-connection": "^0.1.1-rc.1",
67
- "@deepseek-ai/dsh-client-locale": "^0.1.1-rc.1",
68
- "@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.1",
69
- "@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.1",
70
- "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.1-rc.1",
71
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.1-rc.1",
72
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.1-rc.1",
73
- "@deepseek-ai/dsh-client-ui-tool": "^0.1.1-rc.1",
74
- "@deepseek-ai/dsh-host-webserver": "^0.1.1-rc.1",
75
- "@deepseek-ai/dsh-llm": "^0.1.1-rc.1",
76
- "@deepseek-ai/dsh-settings": "^0.1.1-rc.1",
77
- "@deepseek-ai/dsh-subagent": "^0.1.1-rc.1",
78
- "@deepseek-ai/dsh-tools": "^0.1.1-rc.1",
79
- "@deepseek-ai/dsh-web": "^0.1.1-rc.1",
64
+ "@deepseek-ai/dsh-agent": "^0.1.1-rc.2",
65
+ "@deepseek-ai/dsh-attachment": "^0.1.1-rc.2",
66
+ "@deepseek-ai/dsh-client-connection": "^0.1.1-rc.2",
67
+ "@deepseek-ai/dsh-client-locale": "^0.1.1-rc.2",
68
+ "@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.2",
69
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.2",
70
+ "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.1-rc.2",
71
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.1-rc.2",
72
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.1-rc.2",
73
+ "@deepseek-ai/dsh-client-ui-tool": "^0.1.1-rc.2",
74
+ "@deepseek-ai/dsh-host-webserver": "^0.1.1-rc.2",
75
+ "@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
76
+ "@deepseek-ai/dsh-settings": "^0.1.1-rc.2",
77
+ "@deepseek-ai/dsh-subagent": "^0.1.1-rc.2",
78
+ "@deepseek-ai/dsh-tools": "^0.1.1-rc.2",
79
+ "@deepseek-ai/dsh-web": "^0.1.1-rc.2",
80
80
  "@deepseek-ai/schemastery": "^3.18.1",
81
81
  "react": "^18.2.0"
82
82
  },
83
83
  "devDependencies": {
84
84
  "@deepseek-ai/cordis": "^4.0.1",
85
85
  "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
86
- "@deepseek-ai/dsh-agent": "^0.1.1-rc.1",
87
- "@deepseek-ai/dsh-attachment": "^0.1.1-rc.1",
88
- "@deepseek-ai/dsh-client-connection": "^0.1.1-rc.1",
89
- "@deepseek-ai/dsh-client-locale": "^0.1.1-rc.1",
90
- "@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.1",
91
- "@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.1",
92
- "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.1-rc.1",
93
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.1-rc.1",
94
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.1-rc.1",
95
- "@deepseek-ai/dsh-client-ui-tool": "^0.1.1-rc.1",
96
- "@deepseek-ai/dsh-host-webserver": "^0.1.1-rc.1",
97
- "@deepseek-ai/dsh-llm": "^0.1.1-rc.1",
98
- "@deepseek-ai/dsh-settings": "^0.1.1-rc.1",
99
- "@deepseek-ai/dsh-subagent": "^0.1.1-rc.1",
100
- "@deepseek-ai/dsh-tools": "^0.1.1-rc.1",
101
- "@deepseek-ai/dsh-web": "^0.1.1-rc.1",
86
+ "@deepseek-ai/dsh-agent": "^0.1.1-rc.2",
87
+ "@deepseek-ai/dsh-attachment": "^0.1.1-rc.2",
88
+ "@deepseek-ai/dsh-client-connection": "^0.1.1-rc.2",
89
+ "@deepseek-ai/dsh-client-locale": "^0.1.1-rc.2",
90
+ "@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.2",
91
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.2",
92
+ "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.1-rc.2",
93
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.1-rc.2",
94
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.1-rc.2",
95
+ "@deepseek-ai/dsh-client-ui-tool": "^0.1.1-rc.2",
96
+ "@deepseek-ai/dsh-host-webserver": "^0.1.1-rc.2",
97
+ "@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
98
+ "@deepseek-ai/dsh-settings": "^0.1.1-rc.2",
99
+ "@deepseek-ai/dsh-subagent": "^0.1.1-rc.2",
100
+ "@deepseek-ai/dsh-tools": "^0.1.1-rc.2",
101
+ "@deepseek-ai/dsh-web": "^0.1.1-rc.2",
102
102
  "@deepseek-ai/schemastery": "^3.18.1",
103
103
  "@types/node": "^22.20.0",
104
104
  "@types/react": "~18.3.1",