@eddyskywalker/dsh-chatgpt-subscription 0.25.0 → 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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
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
+
5
13
  ## 0.25.0 - 2026-10-17
6
14
 
7
15
  - **[Harness] 支持 DSH 0.2.1-alpha.5,并接入新版可用的请求元数据能力**
package/lib/index.js CHANGED
@@ -12189,7 +12189,7 @@ var SearchProviderSwitcher = class {
12189
12189
  const nextSearch = codexSelected ? CODEX_SEARCH_PROVIDER_ID : this.originalSearchProvider;
12190
12190
  const nextFetch = options.fetchProvider === "plugin" || options.fetchProvider !== "dsh" && (codexSelected || options.pluginFetch === true) ? CODEX_FETCH_PROVIDER_ID : this.originalFetchProvider;
12191
12191
  const configured = config.searchProvider === nextSearch && config.fetchProvider === nextFetch;
12192
- const applied = running === void 0 || running.searchProvider === nextSearch && running.fetchProvider === nextFetch;
12192
+ const applied = running === void 0 || runningProviderValue(running.searchProvider) === nextSearch && runningProviderValue(running.fetchProvider) === nextFetch;
12193
12193
  if (configured && applied) {
12194
12194
  this.state = "applied";
12195
12195
  return;
@@ -12244,6 +12244,14 @@ function currentConfig(entry) {
12244
12244
  const config = entry.options.config;
12245
12245
  return typeof config === "object" && config !== null && !Array.isArray(config) ? config : {};
12246
12246
  }
12247
+ /**
12248
+ * Unwrap a Cordis `Volatile<string | undefined>` config reference (`@deepseek-ai/dsh-web`
12249
+ * >=0.2.1-rc.2) or return a plain runtime config value (`<=0.2.1-rc.1`).
12250
+ */
12251
+ function runningProviderValue(value) {
12252
+ if (typeof value === "object" && value !== null && "get" in value && typeof value.get === "function") return value.get();
12253
+ return value;
12254
+ }
12247
12255
  /** Never include paths, credentials, or arbitrary configuration in public diagnostics. */
12248
12256
  function providerId(value) {
12249
12257
  return typeof value === "string" && /^[a-zA-Z0-9_-]{1,80}$/.test(value) ? value : null;
@@ -38058,6 +38066,24 @@ const CLAUDE_MODELS = Object.freeze([
38058
38066
  ],
38059
38067
  canDisableThinking: true
38060
38068
  },
38069
+ {
38070
+ id: "claude-haiku-5-5",
38071
+ name: "Claude Haiku 5.5",
38072
+ contextWindow: 1e6,
38073
+ maxTokens: 128e3,
38074
+ supportsImage: true,
38075
+ supportsTemperature: false,
38076
+ thinkingMode: "adaptive",
38077
+ reasoningEfforts: [
38078
+ "low",
38079
+ "medium",
38080
+ "high",
38081
+ "xhigh",
38082
+ "max"
38083
+ ],
38084
+ canDisableThinking: true,
38085
+ bindsThinkingToPrefix: true
38086
+ },
38061
38087
  {
38062
38088
  id: "claude-opus-4-5",
38063
38089
  name: "Claude Opus 4.5 (latest)",
@@ -38254,24 +38280,6 @@ const CLAUDE_MODELS = Object.freeze([
38254
38280
  ],
38255
38281
  canDisableThinking: false,
38256
38282
  bindsThinkingToPrefix: true
38257
- },
38258
- {
38259
- id: "claude-haiku-5-5",
38260
- name: "Claude Haiku 5.5",
38261
- contextWindow: 1e6,
38262
- maxTokens: 128e3,
38263
- supportsImage: true,
38264
- supportsTemperature: false,
38265
- thinkingMode: "adaptive",
38266
- reasoningEfforts: [
38267
- "low",
38268
- "medium",
38269
- "high",
38270
- "xhigh",
38271
- "max"
38272
- ],
38273
- canDisableThinking: true,
38274
- bindsThinkingToPrefix: true
38275
38283
  }
38276
38284
  ]);
38277
38285
  /** Every id the fallback table knows, in declaration order. */
@@ -58820,7 +58828,7 @@ const DISPATCH_PRESET = {
58820
58828
  name: "@deepseek-ai/dsh-persona",
58821
58829
  config: {
58822
58830
  suffix: "Your working directory is {{cwd}}.",
58823
- prefix: `You are powered by {{model}}. Your working directory is {{cwd}}.
58831
+ prefix: `You are powered by {{model}}.
58824
58832
 
58825
58833
  [Role Identification] If your first user message is a task brief (rather than a direct request from the human user), you are a subagent: the coordinator-facing rules in R0, R0.5, R-G, R1, R2, R4, R5, and R-W do not apply to you. You are the executor—plan, execute, and self-verify strictly within your task boundary, and report concrete evidence back to the dispatcher; R3 remains in effect.
58826
58834
 
@@ -59136,6 +59144,33 @@ Reset: fallback applies only to the current task. When the next task begins, alw
59136
59144
  }
59137
59145
  ]
59138
59146
  };
59147
+ /**
59148
+ * Reconcile {@link DISPATCH_PRESET} with the running harness generation.
59149
+ *
59150
+ * Harnesses shipping `@deepseek-ai/dsh-working-directory` (>= 0.2.1) provide the
59151
+ * session working directory through the `WORKING_DIRECTORY` dynamic context and
59152
+ * no longer register `{{cwd}}` on `ctx.systemPrompt`, so keeping `persona.config.suffix`
59153
+ * (`Your working directory is {{cwd}}.`) makes `SystemPrompt` throw
59154
+ * `unknown prompt variable "{{cwd}}"` at render time. On 0.1.7–0.2.0 that package
59155
+ * is absent and `{{cwd}}` is still the only way the persona states the workspace,
59156
+ * so the unmodified {@link DISPATCH_PRESET} is returned unchanged.
59157
+ * @param resolves - whether a bare specifier resolves in this installation.
59158
+ * @returns the preset definition for the running harness generation.
59159
+ */
59160
+ function resolveDispatchPreset(resolves = resolvesFromHere) {
59161
+ if (!resolves("@deepseek-ai/dsh-working-directory")) return DISPATCH_PRESET;
59162
+ return {
59163
+ ...DISPATCH_PRESET,
59164
+ plugins: DISPATCH_PRESET.plugins.map((row) => {
59165
+ if (row.id !== "persona" || typeof row.config !== "object" || row.config === null) return row;
59166
+ const { suffix: _omitted, ...rest } = row.config;
59167
+ return {
59168
+ ...row,
59169
+ config: rest
59170
+ };
59171
+ })
59172
+ };
59173
+ }
59139
59174
  /** The `agentPresets` service, when the host exposes one that can register. */
59140
59175
  function presetRegistry(host) {
59141
59176
  if (typeof host.get !== "function") return void 0;
@@ -59168,7 +59203,7 @@ function installDispatchPreset(host, resolves = resolvesFromHere) {
59168
59203
  host.logger.warn(`[dsh-chatgpt-subscription] agent preset "${DISPATCH_PRESET_ID}" fell back to the preset root: ${PRESET_REGISTRY_PACKAGE} is installed but no agentPresets service is available`);
59169
59204
  return "legacy";
59170
59205
  }
59171
- host.effect(() => registerDispatchPreset(host, registry), "dsh-chatgpt-subscription: dispatch agent preset");
59206
+ host.effect(() => registerDispatchPreset(host, registry, resolves), "dsh-chatgpt-subscription: dispatch agent preset");
59172
59207
  return "registered";
59173
59208
  } catch (error) {
59174
59209
  host.logger.warn(`[dsh-chatgpt-subscription] agent preset "${DISPATCH_PRESET_ID}" could not be registered: ${messageOf(error)}`);
@@ -59180,11 +59215,12 @@ function installDispatchPreset(host, resolves = resolvesFromHere) {
59180
59215
  * it.
59181
59216
  * @param host - plugin context, for the logger.
59182
59217
  * @param registry - the service the definition is submitted to.
59218
+ * @param resolves - whether a bare specifier resolves in this installation.
59183
59219
  * @returns the harness's own unregister function, or a no-op after a failure.
59184
59220
  */
59185
- async function registerDispatchPreset(host, registry) {
59221
+ async function registerDispatchPreset(host, registry, resolves) {
59186
59222
  try {
59187
- const unregister = await registry.register(DISPATCH_PRESET);
59223
+ const unregister = await registry.register(resolveDispatchPreset(resolves));
59188
59224
  host.logger.info(`[dsh-chatgpt-subscription] agent preset "${DISPATCH_PRESET_ID}" registered with the running harness`);
59189
59225
  return unregister;
59190
59226
  } catch (error) {
@@ -25,6 +25,12 @@
25
25
  */
26
26
  /** The row package whose presence marks a harness that takes presets from a row. */
27
27
  export declare const PRESET_REGISTRY_PACKAGE = "@deepseek-ai/dsh-agent-preset";
28
+ /**
29
+ * The package whose presence marks a harness (>= 0.2.1) that injects the
30
+ * session working directory via `WORKING_DIRECTORY` user context and no longer
31
+ * registers `{{cwd}}` as a `systemPrompt` variable.
32
+ */
33
+ export declare const WORKING_DIRECTORY_PACKAGE = "@deepseek-ai/dsh-working-directory";
28
34
  /** The id the `dispatch` preset is selectable under. */
29
35
  export declare const DISPATCH_PRESET_ID = "dispatch";
30
36
  /**
@@ -92,6 +98,20 @@ export type PresetInstall = 'registered' | 'legacy';
92
98
  * for text the Loader evaluates, and nothing evaluates this.
93
99
  */
94
100
  export declare const DISPATCH_PRESET: PresetDefinition;
101
+ /**
102
+ * Reconcile {@link DISPATCH_PRESET} with the running harness generation.
103
+ *
104
+ * Harnesses shipping `@deepseek-ai/dsh-working-directory` (>= 0.2.1) provide the
105
+ * session working directory through the `WORKING_DIRECTORY` dynamic context and
106
+ * no longer register `{{cwd}}` on `ctx.systemPrompt`, so keeping `persona.config.suffix`
107
+ * (`Your working directory is {{cwd}}.`) makes `SystemPrompt` throw
108
+ * `unknown prompt variable "{{cwd}}"` at render time. On 0.1.7–0.2.0 that package
109
+ * is absent and `{{cwd}}` is still the only way the persona states the workspace,
110
+ * so the unmodified {@link DISPATCH_PRESET} is returned unchanged.
111
+ * @param resolves - whether a bare specifier resolves in this installation.
112
+ * @returns the preset definition for the running harness generation.
113
+ */
114
+ export declare function resolveDispatchPreset(resolves?: SpecifierResolver): PresetDefinition;
95
115
  /**
96
116
  * Declare `dispatch` to the running harness, when the harness has the mechanism.
97
117
  *
@@ -1 +1 @@
1
- {"version":3,"file":"agent-preset.d.ts","sourceRoot":"","sources":["../../../src/host/agent-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,kCAAkC,CAAA;AAEtE,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,aAAa,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAA;IACV,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAA;CACxC;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;CACvC;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CACrE;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5E,yBAAyB;IACzB,MAAM,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;AAE9D,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAA;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,gBAoR7B,CAAA;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,iBAAoC,GAC7C,aAAa,CAuBf"}
1
+ {"version":3,"file":"agent-preset.d.ts","sourceRoot":"","sources":["../../../src/host/agent-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,kCAAkC,CAAA;AAEtE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,uCAAuC,CAAA;AAE7E,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,aAAa,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAA;IACV,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAA;CACxC;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;CACvC;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CACrE;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5E,yBAAyB;IACzB,MAAM,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;AAE9D,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAA;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,gBAoR7B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,iBAAoC,GAAG,gBAAgB,CAUtG;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,iBAAoC,GAC7C,aAAa,CAuBf"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-provider-switcher.d.ts","sourceRoot":"","sources":["../../../src/host/search-provider-switcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAEtE,UAAU,UAAU;IAClB,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;CAC3B;AA2BD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;CACnD;AAED,qFAAqF;AACrF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IACtE,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChD,QAAQ,CAAC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD;AAED,qBAAa,sBAAsB;IAUrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,IAAI,IAAI;IACf,OAAO,CAAC,KAAK,CAAgD;gBAEhC,MAAM,EAAE,UAAU;IAE/C,MAAM,IAAI,4BAA4B;IAUtC,MAAM,CAAC,UAAU,EAAE,wBAAwB,EAAE,OAAO,GAAE,2BAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;YAOxF,cAAc;IAiE5B;;;;;;;;;;OAUG;YACW,YAAY;IAiB1B,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"search-provider-switcher.d.ts","sourceRoot":"","sources":["../../../src/host/search-provider-switcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAEtE,UAAU,UAAU;IAClB,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;CAC3B;AA2BD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;CACnD;AAED,qFAAqF;AACrF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IACtE,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChD,QAAQ,CAAC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD;AAED,qBAAa,sBAAsB;IAUrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,IAAI,IAAI;IACf,OAAO,CAAC,KAAK,CAAgD;gBAEhC,MAAM,EAAE,UAAU;IAE/C,MAAM,IAAI,4BAA4B;IAUtC,MAAM,CAAC,UAAU,EAAE,wBAAwB,EAAE,OAAO,GAAE,2BAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;YAOxF,cAAc;IAoE5B;;;;;;;;;;OAUG;YACW,YAAY;IAiB1B,OAAO,CAAC,YAAY;CAMrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eddyskywalker/dsh-chatgpt-subscription",
3
- "version": "0.25.0",
3
+ "version": "0.25.1",
4
4
  "description": "DSH provider plugin for Codex access through a ChatGPT subscription.",
5
5
  "icon": "./icon.svg",
6
6
  "author": {
@@ -61,42 +61,42 @@
61
61
  "peerDependencies": {
62
62
  "@deepseek-ai/cordis": "^4.0.2 || 4.0.5",
63
63
  "@deepseek-ai/cordis-plugin-loader": "^1.0.3 || 1.0.6",
64
- "@deepseek-ai/dsh-attachment": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
65
- "@deepseek-ai/dsh-client-connection": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
66
- "@deepseek-ai/dsh-client-locale": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
67
- "@deepseek-ai/dsh-client-ui-conversation": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
68
- "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
69
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
70
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
71
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
72
- "@deepseek-ai/dsh-client-ui-tool": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
73
- "@deepseek-ai/dsh-host-webserver": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
74
- "@deepseek-ai/dsh-llm": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
75
- "@deepseek-ai/dsh-settings": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
76
- "@deepseek-ai/dsh-timeout": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
77
- "@deepseek-ai/dsh-tools": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
78
- "@deepseek-ai/dsh-web": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5",
64
+ "@deepseek-ai/dsh-attachment": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
65
+ "@deepseek-ai/dsh-client-connection": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
66
+ "@deepseek-ai/dsh-client-locale": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
67
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
68
+ "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
69
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
70
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
71
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
72
+ "@deepseek-ai/dsh-client-ui-tool": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
73
+ "@deepseek-ai/dsh-host-webserver": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
74
+ "@deepseek-ai/dsh-llm": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
75
+ "@deepseek-ai/dsh-settings": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
76
+ "@deepseek-ai/dsh-timeout": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
77
+ "@deepseek-ai/dsh-tools": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
78
+ "@deepseek-ai/dsh-web": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.1.7-rc.1 || ^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.0-rc.2 || 0.2.1-alpha.5 || ^0.2.1-rc.1",
79
79
  "@deepseek-ai/schemastery": "^3.18.2 || 3.18.5",
80
80
  "react": "^18.2.0"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@deepseek-ai/cordis": "4.0.5",
84
84
  "@deepseek-ai/cordis-plugin-loader": "1.0.6",
85
- "@deepseek-ai/dsh-attachment": "0.2.1-alpha.5",
86
- "@deepseek-ai/dsh-client-connection": "0.2.1-alpha.5",
87
- "@deepseek-ai/dsh-client-locale": "0.2.1-alpha.5",
88
- "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-alpha.5",
89
- "@deepseek-ai/dsh-client-ui-model-selection": "0.2.1-alpha.5",
90
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.5",
91
- "@deepseek-ai/dsh-client-ui-settings": "0.2.1-alpha.5",
92
- "@deepseek-ai/dsh-client-ui-slots": "0.2.1-alpha.5",
93
- "@deepseek-ai/dsh-client-ui-tool": "0.2.1-alpha.5",
94
- "@deepseek-ai/dsh-host-webserver": "0.2.1-alpha.5",
95
- "@deepseek-ai/dsh-llm": "0.2.1-alpha.5",
96
- "@deepseek-ai/dsh-settings": "0.2.1-alpha.5",
97
- "@deepseek-ai/dsh-timeout": "0.2.1-alpha.5",
98
- "@deepseek-ai/dsh-tools": "0.2.1-alpha.5",
99
- "@deepseek-ai/dsh-web": "0.2.1-alpha.5",
85
+ "@deepseek-ai/dsh-attachment": "^0.2.1-rc.1",
86
+ "@deepseek-ai/dsh-client-connection": "^0.2.1-rc.1",
87
+ "@deepseek-ai/dsh-client-locale": "^0.2.1-rc.1",
88
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.2.1-rc.1",
89
+ "@deepseek-ai/dsh-client-ui-model-selection": "^0.2.1-rc.1",
90
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.2.1-rc.1",
91
+ "@deepseek-ai/dsh-client-ui-settings": "^0.2.1-rc.1",
92
+ "@deepseek-ai/dsh-client-ui-slots": "^0.2.1-rc.1",
93
+ "@deepseek-ai/dsh-client-ui-tool": "^0.2.1-rc.1",
94
+ "@deepseek-ai/dsh-host-webserver": "^0.2.1-rc.1",
95
+ "@deepseek-ai/dsh-llm": "^0.2.1-rc.1",
96
+ "@deepseek-ai/dsh-settings": "^0.2.1-rc.1",
97
+ "@deepseek-ai/dsh-timeout": "^0.2.1-rc.1",
98
+ "@deepseek-ai/dsh-tools": "^0.2.1-rc.1",
99
+ "@deepseek-ai/dsh-web": "^0.2.1-rc.1",
100
100
  "@deepseek-ai/schemastery": "3.18.5",
101
101
  "@types/node": "^22.20.0",
102
102
  "@types/react": "~18.3.1",
@@ -35,13 +35,14 @@
35
35
  # ── identity ────────────────────────────────────────────────────────────────
36
36
 
37
37
  # The preset's own persona, shadowing the deployment default for this agent.
38
- # `{{model}}` and `{{cwd}}` resolve from the agent's own route and workspace.
38
+ # `{{model}}` resolves from the agent's route; `{{cwd}}` in `suffix` is kept for
39
+ # harnesses before 0.2.1 and stripped when `@deepseek-ai/dsh-working-directory` is present.
39
40
  - id: persona
40
41
  name: '@deepseek-ai/dsh-persona'
41
42
  config:
42
43
  suffix: Your working directory is {{cwd}}.
43
44
  prefix: |
44
- You are powered by {{model}}. Your working directory is {{cwd}}.
45
+ You are powered by {{model}}.
45
46
 
46
47
  [Role Identification] If your first user message is a task brief (rather than a direct request from the human user), you are a subagent: the coordinator-facing rules in R0, R0.5, R-G, R1, R2, R4, R5, and R-W do not apply to you. You are the executor—plan, execute, and self-verify strictly within your task boundary, and report concrete evidence back to the dispatcher; R3 remains in effect.
47
48