dsh-codex-subscription 2.1.5 → 2.1.8

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/README.en.md CHANGED
@@ -22,7 +22,7 @@ No OpenAI API key or Codex CLI. Models, search, quota, and image generation stay
22
22
  <img src="docs/assets/codex-subscription-overview-en.webp" width="900" alt="Use ChatGPT and Codex subscriptions in DeepSeek Harness: sign in without an API key, choose models and view remaining quota">
23
23
  </p>
24
24
 
25
- Compatible with the settings and UI changes in DSH `0.1.7-alpha.1`, while retaining support for previously supported versions.
25
+ Compatible with DSH `0.1.7-rc.1` plugin compatibility checks and settings APIs, while retaining support for previously supported versions.
26
26
 
27
27
  ## Three-step start
28
28
 
@@ -78,7 +78,7 @@ This plugin supports the latest DeepSeek Harness release recorded in its package
78
78
  3. Click **Install** and wait for completion. Follow the page instructions; save your work before restarting if requested.
79
79
  4. Open **Settings → Codex**, sign in to ChatGPT, then select a Codex model in your conversation.
80
80
 
81
- The unversioned package name installs the latest stable release. To select a version, enter `dsh-codex-subscription@2.1.5`; for a beta, use the complete version from its release notes. Enter only the package name here, not a terminal command. This plugin can be installed using its npm package name; no GitHub URL or local directory is needed.
81
+ The unversioned package name installs the latest stable release. To select a version, enter `dsh-codex-subscription@2.1.8`; for a beta, use the complete version from its release notes. Enter only the package name here, not a terminal command. This plugin can be installed using its npm package name; no GitHub URL or local directory is needed.
82
82
 
83
83
  <details>
84
84
  <summary>Terminal installation (with an existing dsh command)</summary>
@@ -111,7 +111,11 @@ Use DSH’s native message queue: messages sent during generation can wait for t
111
111
 
112
112
  ### GPT-Reserve (Experimental)
113
113
 
114
- When the account’s official catalog advertises `gpt-reserve`, it appears at the end of the model picker as an experimental option. Availability and billing are determined by the service; a successful response does not confirm use of a separate reserve allowance. The composer shows only a matching quota bucket returned by the service, and does not substitute ordinary Codex quota when none is returned.
114
+ When the account’s official catalog advertises `gpt-reserve`, it appears at the end of the model picker as an experimental option. Availability and billing are determined by the service; a successful response does not confirm use of a separate reserve allowance. Even when ordinary Codex usage reaches 100%, the service may list `gpt-reserve` in the model catalog without returning a separate Reserve quota bucket. In that case, the composer treats Reserve quota as unknown and does not substitute ordinary Codex quota. An “allowed” response does not prove that a request was charged to Reserve.
115
+
116
+ ### GPT-6 Sol / Luna
117
+
118
+ GPT-6 Sol and GPT-6 Luna are listed in [OpenAI's Codex model guidance](https://learn.chatgpt.com/docs/models). The plugin reads available models and reasoning levels from the current account's Codex catalog, so no model ID needs to be added manually; models do not appear before the account gets access. Sol suits complex coding, while Luna suits focused, high-volume tasks. Their extended context limits and Fast availability follow the account catalog.
115
119
 
116
120
  ### GPT-6 Astra context
117
121
 
@@ -240,15 +244,15 @@ In **Settings → Codex → Advanced → Independent subtasks**, click **Install
240
244
 
241
245
  ![Optional component management](docs/assets/settings-runtime-current-en.png)
242
246
 
243
- Prefer **Install component** above: the plugin selects a verified component version. Stable release **2.1.5** installs `0.1.5-rc.3` by default and remains compatible with an existing rc.2 installation. Do not omit the component version or substitute `@next`.
247
+ Prefer **Install component** above. Stable release **2.1.8** selects a component matching the current DSH version: DSH `0.1.7-rc.1` installs component `0.1.7-rc.1`, while DSH `0.1.5-rc.2` installs component `0.1.5-rc.2`. An existing `0.1.5-rc.3` component is recognized only on a matching host. Do not omit the component version or substitute `@next`.
244
248
 
245
249
  <details>
246
250
  <summary>Manual installation on older hosts and offline preparation</summary>
247
251
 
248
- Enter `@deepseek-ai/dsh-subagent-codex@0.1.5-rc.2` in the plugin installer, or run:
252
+ Enter a component version matching the current DSH version in the plugin installer. For DSH `0.1.7-rc.1`, enter `@deepseek-ai/dsh-subagent-codex@0.1.7-rc.1`, or run:
249
253
 
250
254
  ```sh
251
- dsh plugin --profile web add @deepseek-ai/dsh-subagent-codex@0.1.5-rc.2
255
+ dsh plugin --profile web add @deepseek-ai/dsh-subagent-codex@0.1.7-rc.1
252
256
  ```
253
257
 
254
258
  Use the same profile as the subscription plugin and restart afterwards. Offline preparation requires a complete runtime installed and verified on the target OS and architecture; copying only the subscription plugin or Codex launcher is insufficient. Model requests still need connectivity.
package/README.md CHANGED
@@ -23,7 +23,7 @@
23
23
  <img src="docs/assets/codex-subscription-overview.webp" width="900" alt="在 DeepSeek Harness 登录 ChatGPT 并使用 Codex 订阅:无需 API Key,支持模型选择和剩余额度显示">
24
24
  </p>
25
25
 
26
- 已适配 DSH `0.1.7-alpha.1` 的设置保存与界面接口,同时保留已支持版本的兼容。
26
+ 已适配 DSH `0.1.7-rc.1` 的插件兼容性检查与设置接口,同时保留已支持版本的兼容。
27
27
 
28
28
  ## 三步开始
29
29
 
@@ -79,7 +79,7 @@
79
79
  3. 点击 **安装**,等待安装完成;按页面提示操作,需要重启时先保存工作。
80
80
  4. 打开 **设置 → Codex 订阅**,登录 ChatGPT,然后在会话中选择 Codex 模型。
81
81
 
82
- 包名不带版本号时安装最新正式版。指定版本时填写 `dsh-codex-subscription@2.1.5`;测试版则使用对应发布说明中的完整版本号。此处只填包名,不要粘贴整条终端命令。安装本插件使用上面的 npm 包名即可,无需填写 GitHub 地址或本地目录。
82
+ 包名不带版本号时安装最新正式版。指定版本时填写 `dsh-codex-subscription@2.1.8`;测试版则使用对应发布说明中的完整版本号。此处只填包名,不要粘贴整条终端命令。安装本插件使用上面的 npm 包名即可,无需填写 GitHub 地址或本地目录。
83
83
 
84
84
  <details>
85
85
  <summary>终端安装(已能运行 dsh 命令)</summary>
@@ -112,7 +112,11 @@ dsh --profile headless "只回复:ok"
112
112
 
113
113
  ### GPT-Reserve(实验性)
114
114
 
115
- 账号的官方模型目录提供 `gpt-reserve` 时,模型选择器末尾会出现实验性选项。可用性和扣费归属由服务端决定;请求成功不代表已确认使用独立备用额度。输入框只显示服务端返回的匹配额度桶,未返回时不会借用普通 Codex 额度。
115
+ 账号的官方模型目录提供 `gpt-reserve` 时,模型选择器末尾会出现实验性选项。可用性和扣费归属由服务端决定;请求成功不代表已确认使用独立备用额度。即使普通 Codex 额度显示已用尽,服务端也可能只在模型目录中返回 `gpt-reserve`,不返回独立的 Reserve 额度桶。此时输入框将 Reserve 额度视为未知,不会借用普通 Codex 额度;服务端返回“允许使用”也不能证明请求扣的是 Reserve。
116
+
117
+ ### GPT-6 Sol / Luna
118
+
119
+ GPT-6 Sol 和 GPT-6 Luna 已在 [OpenAI 的 Codex 模型说明](https://learn.chatgpt.com/docs/models)中列出。插件会从当前账号的 Codex 模型目录自动读取可用模型及推理档位,无需手动添加型号;账号尚未开放时不会显示。Sol 适合复杂编程,Luna 适合高频、目标明确的任务。两者的扩展上下文上限和高速模式以账号目录返回值为准。
116
120
 
117
121
  ### GPT-6 Astra 上下文
118
122
 
@@ -239,15 +243,15 @@ ChatGPT 返回可用重置卡时,设置页会把每张卡分别显示为紧凑
239
243
 
240
244
  ![可选组件管理实机界面](docs/assets/settings-runtime-current.png)
241
245
 
242
- 优先使用上面的 **安装组件** 按钮,由插件选择已验证的组件版本。正式版 **2.1.5** 默认安装 `0.1.5-rc.3`,并继续兼容已安装的 rc.2。请不要省略组件版本号或自行改用 `@next`。
246
+ 优先使用上面的 **安装组件** 按钮。正式版 **2.1.8** 会按当前 DSH 版本选择对应组件:DSH `0.1.7-rc.1` 安装组件 `0.1.7-rc.1`,DSH `0.1.5-rc.2` 安装组件 `0.1.5-rc.2`;已安装的 `0.1.5-rc.3` 组件仅在同版本宿主上识别。请不要省略组件版本号或自行改用 `@next`。
243
247
 
244
248
  <details>
245
249
  <summary>旧版宿主手动安装与离线准备</summary>
246
250
 
247
- 插件安装页面填写 `@deepseek-ai/dsh-subagent-codex@0.1.5-rc.2`。终端方式:
251
+ 插件安装页面填写与当前 DSH 相同版本的组件,例如 DSH `0.1.7-rc.1` 填写 `@deepseek-ai/dsh-subagent-codex@0.1.7-rc.1`。终端方式:
248
252
 
249
253
  ```sh
250
- dsh plugin --profile web add @deepseek-ai/dsh-subagent-codex@0.1.5-rc.2
254
+ dsh plugin --profile web add @deepseek-ai/dsh-subagent-codex@0.1.7-rc.1
251
255
  ```
252
256
 
253
257
  安装到订阅插件所在的同一个 profile,完成后重启。离线使用须提前在目标系统与架构上安装并验证完整运行时;只复制订阅插件或 Codex 启动脚本不够。模型请求仍需联网。
@@ -1,9 +1,11 @@
1
1
  {
2
- "latestTested": "0.1.5-rc.2",
2
+ "latestTested": "0.1.7-rc.1",
3
3
  "supported": [
4
4
  "0.1.2-rc.1",
5
5
  "0.1.5-rc.1",
6
- "0.1.5-rc.2"
6
+ "0.1.5-rc.2",
7
+ "0.1.5-rc.3",
8
+ "0.1.7-rc.1"
7
9
  ],
8
10
  "previews": [
9
11
  "0.1.5-alpha.1",
package/lib/client.js CHANGED
@@ -4543,6 +4543,7 @@ window.__ModuleLoader__.load({
4543
4543
  runtimeBuildBlocked: "DSH 拦截了依赖安装脚本。请在官方插件管理中审核后再安装。",
4544
4544
  runtimeCancelled: "安装已取消,可重新安装。",
4545
4545
  runtimeUnavailable: "当前宿主未提供组件管理接口,请更新 DSH 或按说明手动管理。",
4546
+ runtimeHostUnsupported: "当前 DSH 版本暂无已验证的 Codex 子任务组件。",
4546
4547
  runtimeInstallHint: "此处只管理官方 Codex 子任务组件,由 DSH 负责安装与卸载。安装后不会自动开启子任务;仅切回 DSH 不会卸载组件。",
4547
4548
  compactionTitle: "云端压缩",
4548
4549
  compaction_dsh: "关闭",
@@ -4996,6 +4997,7 @@ window.__ModuleLoader__.load({
4996
4997
  runtimeBuildBlocked: "DSH blocked dependency build scripts. Review them in the official plugin manager before installing.",
4997
4998
  runtimeCancelled: "Installation cancelled. You can try again.",
4998
4999
  runtimeUnavailable: "This host has no component management interface. Update DSH or use the manual instructions.",
5000
+ runtimeHostUnsupported: "No Codex subtask component has been verified for this DSH version.",
4999
5001
  runtimeInstallHint: "DSH installs and removes the official Codex subtask component here. Installation does not enable subtasks automatically. Switching to DSH alone does not uninstall it.",
5000
5002
  compactionTitle: "Cloud compaction",
5001
5003
  compaction_dsh: "Off",
@@ -7274,7 +7276,7 @@ window.__ModuleLoader__.load({
7274
7276
  }
7275
7277
  //#endregion
7276
7278
  //#region src/version.js
7277
- const PACKAGE_VERSION = "2.1.5";
7279
+ const PACKAGE_VERSION = "2.1.8";
7278
7280
  //#endregion
7279
7281
  //#region src/client-recovery.js
7280
7282
  async function recoveryCall(rpc, endpoint, payload = {}, timeoutMs = 1e4) {
@@ -8210,7 +8212,7 @@ window.__ModuleLoader__.load({
8210
8212
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8211
8213
  role: "status",
8212
8214
  children: t(!state ? "runtimeLoading" : state.restartRequired ? "runtimeRestart" : busy ? `runtime_${state.phase}` : state.installed ? "subagentRuntimeInstalled" : state.present ? "runtimeIncompatible" : "subagentRuntimeMissing")
8213
- }), state?.available ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
8215
+ }), state?.available && (state.present || state.installable) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
8214
8216
  type: "button",
8215
8217
  variant: "outline",
8216
8218
  disabled: locked || state.present && !state.removable,
@@ -8273,8 +8275,9 @@ window.__ModuleLoader__.load({
8273
8275
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", { children: [
8274
8276
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("summary", { children: t("subagentRuntimeManage") }),
8275
8277
  state && !state.available ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: t("runtimeUnavailable") }) : null,
8278
+ state?.available && !state.installable && !state.present ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: t("runtimeHostUnsupported") }) : null,
8276
8279
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: t("runtimeInstallHint") }),
8277
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", { children: "@deepseek-ai/dsh-subagent-codex@0.1.5-rc.2" }),
8280
+ state?.componentVersion ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("code", { children: ["@deepseek-ai/dsh-subagent-codex@", state.componentVersion] }) : null,
8278
8281
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: t("subagentRuntimeCacheHint") }),
8279
8282
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
8280
8283
  href: "https://github.com/WSL043/dsh-codex-subscription/blob/main/README.md#codex-subtask-runtime",
package/lib/index.js CHANGED
@@ -1074,15 +1074,26 @@ function authenticatedSubagentChild(child, { Transport, getTokens, thread, signa
1074
1074
  //#endregion
1075
1075
  //#region src/subagent-runtime.js
1076
1076
  const SUBAGENT_RUNTIME_PACKAGE = "@deepseek-ai/dsh-subagent-codex";
1077
- const SUBAGENT_RUNTIME_VERSION = "0.1.5-rc.3";
1078
- const SUPPORTED_RUNTIME_VERSIONS = /* @__PURE__ */ new Set(["0.1.5-rc.2", SUBAGENT_RUNTIME_VERSION]);
1077
+ const SUPPORTED_RUNTIME_VERSIONS = /* @__PURE__ */ new Set([
1078
+ "0.1.5-rc.2",
1079
+ "0.1.5-rc.3",
1080
+ "0.1.7-rc.1"
1081
+ ]);
1079
1082
  const require = createRequire(import.meta.url);
1080
1083
  const execute = promisify(execFile);
1084
+ function matchingSubagentRuntimeVersion(resolve = require.resolve) {
1085
+ try {
1086
+ const host = JSON.parse(readFileSync(resolve("@deepseek-ai/dsh-llm/package.json"), "utf8"));
1087
+ return SUPPORTED_RUNTIME_VERSIONS.has(host.version) ? host.version : void 0;
1088
+ } catch {
1089
+ return;
1090
+ }
1091
+ }
1081
1092
  function inspectSubagentRuntime(resolve = require.resolve) {
1082
1093
  try {
1083
1094
  const manifestPath = resolve(`${SUBAGENT_RUNTIME_PACKAGE}/package.json`);
1084
1095
  const manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
1085
- if (!SUPPORTED_RUNTIME_VERSIONS.has(manifest.version)) return {
1096
+ if (!SUPPORTED_RUNTIME_VERSIONS.has(manifest.version) || manifest.version !== matchingSubagentRuntimeVersion(resolve)) return {
1086
1097
  installed: false,
1087
1098
  present: true
1088
1099
  };
@@ -1327,7 +1338,7 @@ function createSubagentBackendSwitcher({ entries, prepare, persist }) {
1327
1338
  }
1328
1339
  //#endregion
1329
1340
  //#region src/runtime-management.js
1330
- function createRuntimeManagement({ manager, inspect, active, selectDsh }) {
1341
+ function createRuntimeManagement({ manager, inspect, active, selectDsh, componentVersion = matchingSubagentRuntimeVersion }) {
1331
1342
  let operation;
1332
1343
  let state = {
1333
1344
  phase: "idle",
@@ -1349,9 +1360,12 @@ function createRuntimeManagement({ manager, inspect, active, selectDsh }) {
1349
1360
  available = false;
1350
1361
  }
1351
1362
  const runtime = inspect();
1363
+ const version = componentVersion();
1352
1364
  return {
1353
1365
  ...state,
1354
1366
  available,
1367
+ installable: available && version !== void 0,
1368
+ componentVersion: version,
1355
1369
  installed: runtime.installed,
1356
1370
  present: runtime.installed || runtime.present === true || bundle?.installed === true,
1357
1371
  removable: available && bundle?.installed === true && !bundle.readOnlyReason,
@@ -1365,6 +1379,8 @@ function createRuntimeManagement({ manager, inspect, active, selectDsh }) {
1365
1379
  if (active() > 0) throw Error("active-tasks");
1366
1380
  const host = manager();
1367
1381
  if (!supported(host)) throw Error("unavailable");
1382
+ const version = componentVersion();
1383
+ if (action === "install" && version === void 0) throw Error("unavailable");
1368
1384
  const requestId = randomUUID();
1369
1385
  const current = {
1370
1386
  action,
@@ -1383,7 +1399,7 @@ function createRuntimeManagement({ manager, inspect, active, selectDsh }) {
1383
1399
  if (!bundle?.installed || bundle.readOnlyReason) throw Error("not-removable");
1384
1400
  await selectDsh();
1385
1401
  }
1386
- const result = action === "install" ? await host.installBundle(`${SUBAGENT_RUNTIME_PACKAGE}@${SUBAGENT_RUNTIME_VERSION}`, {
1402
+ const result = action === "install" ? await host.installBundle(`${SUBAGENT_RUNTIME_PACKAGE}@${version}`, {
1387
1403
  enabled: false,
1388
1404
  requestId
1389
1405
  }) : await host.removeBundle(SUBAGENT_RUNTIME_PACKAGE);
@@ -2812,7 +2828,7 @@ function openaiCodexSubscriptionProvider({ resolveSpeedMode = () => void 0, reso
2812
2828
  Object.freeze(["0.82.1", "0.85.1"]);
2813
2829
  //#endregion
2814
2830
  //#region src/version.js
2815
- const PACKAGE_VERSION = "2.1.5";
2831
+ const PACKAGE_VERSION = "2.1.8";
2816
2832
  const USER_AGENT = `dsh-codex-subscription/${PACKAGE_VERSION}`;
2817
2833
  //#endregion
2818
2834
  //#region src/model-catalog.js
@@ -5091,7 +5107,7 @@ const settingsFields = {
5091
5107
  [CUSTOM_CONTEXT_WINDOW_FIELD]: z.number().step(1).min(128e3).max(1e6).default(DEFAULT_CUSTOM_CONTEXT_WINDOW),
5092
5108
  ...Object.fromEntries(Object.entries(CUSTOM_CONTEXT_MODEL_FIELDS).map(([modelKey, field]) => [field, z.number().step(1).min(128e3).max(CUSTOM_CONTEXT_MODEL_CAPS[modelKey]).default(CUSTOM_CONTEXT_MODEL_DEFAULTS[modelKey])]))
5093
5109
  };
5094
- const Config = z.object(Object.fromEntries(Object.entries(settingsFields).map(([key, field]) => [key, typeof field.volatile === "function" ? field.volatile() : field])));
5110
+ const Config = z.object(Object.fromEntries(Object.entries(settingsFields).map(([key, field]) => [key, field.extra("volatile", true)])));
5095
5111
  function apply(ctx, config = {}) {
5096
5112
  const settings = createSettingsAdapter(ctx, z.object(settingsFields), config, SETTINGS_NAMESPACE);
5097
5113
  const searchProvider = createSearchProviderSwitcher(ctx.loader);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-codex-subscription",
3
- "version": "2.1.5",
3
+ "version": "2.1.8",
4
4
  "description": "Use ChatGPT and Codex subscriptions in DeepSeek Harness with OAuth, quota, safe resets, web search, images, and Fast mode",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -74,59 +74,59 @@
74
74
  "node": "^22.19.0 || >=24.0.0"
75
75
  },
76
76
  "peerDependencies": {
77
- "@deepseek-ai/cordis": "4.0.1 || 4.0.2 || 4.0.3",
78
- "@deepseek-ai/dsh-api-remotes": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
79
- "@deepseek-ai/dsh-client-connection": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
80
- "@deepseek-ai/dsh-client-locale": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
81
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
82
- "@deepseek-ai/dsh-client-ui-model-selection": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
83
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
84
- "@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
85
- "@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
86
- "@deepseek-ai/dsh-client-ui-tool": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
87
- "@deepseek-ai/dsh-credentials": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
88
- "@deepseek-ai/dsh-llm": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
89
- "@deepseek-ai/dsh-llm-pi-ai": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
90
- "@deepseek-ai/dsh-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
91
- "@deepseek-ai/dsh-tools": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
92
- "@deepseek-ai/dsh-web": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
77
+ "@deepseek-ai/cordis": "4.0.1 || 4.0.2 || 4.0.3 || 4.0.4",
78
+ "@deepseek-ai/dsh-api-remotes": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
79
+ "@deepseek-ai/dsh-client-connection": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
80
+ "@deepseek-ai/dsh-client-locale": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
81
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
82
+ "@deepseek-ai/dsh-client-ui-model-selection": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
83
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
84
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
85
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
86
+ "@deepseek-ai/dsh-client-ui-tool": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
87
+ "@deepseek-ai/dsh-credentials": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
88
+ "@deepseek-ai/dsh-llm": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
89
+ "@deepseek-ai/dsh-llm-pi-ai": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
90
+ "@deepseek-ai/dsh-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
91
+ "@deepseek-ai/dsh-tools": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
92
+ "@deepseek-ai/dsh-web": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1",
93
93
  "@deepseek-ai/schemastery": "3.18.1 || ^3.18.2",
94
94
  "@earendil-works/pi-ai": "0.82.1 || 0.85.1",
95
95
  "react": "^18.2.0",
96
96
  "react-dom": "^18.2.0",
97
- "@deepseek-ai/dsh-subagent-codex": "0.1.5-rc.2 || 0.1.5-rc.3"
97
+ "@deepseek-ai/dsh-subagent-codex": "0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1"
98
98
  },
99
99
  "devDependencies": {
100
- "@deepseek-ai/cordis": "4.0.2",
101
- "@deepseek-ai/dsh-api-remotes": "0.1.5-rc.2",
102
- "@deepseek-ai/dsh-client-connection": "0.1.5-rc.2",
103
- "@deepseek-ai/dsh-client-locale": "0.1.5-rc.2",
104
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.5-rc.2",
105
- "@deepseek-ai/dsh-client-ui-model-selection": "0.1.5-rc.2",
106
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.5-rc.2",
107
- "@deepseek-ai/dsh-client-ui-settings": "0.1.5-rc.2",
108
- "@deepseek-ai/dsh-client-ui-slots": "0.1.5-rc.2",
109
- "@deepseek-ai/dsh-client-ui-tool": "0.1.5-rc.2",
110
- "@deepseek-ai/dsh-credentials": "0.1.5-rc.2",
111
- "@deepseek-ai/dsh-invariants": "0.1.5-rc.2",
112
- "@deepseek-ai/dsh-llm": "0.1.5-rc.2",
113
- "@deepseek-ai/dsh-llm-pi-ai": "0.1.5-rc.2",
114
- "@deepseek-ai/dsh-session": "0.1.5-rc.2",
115
- "@deepseek-ai/dsh-settings": "0.1.5-rc.2",
116
- "@deepseek-ai/dsh-tools": "0.1.5-rc.2",
117
- "@deepseek-ai/dsh-web": "0.1.5-rc.2",
118
- "@deepseek-ai/schemastery": "3.18.2",
119
- "@earendil-works/pi-ai": "0.82.1",
100
+ "@deepseek-ai/cordis": "4.0.4",
101
+ "@deepseek-ai/dsh-api-remotes": "0.1.7-rc.1",
102
+ "@deepseek-ai/dsh-client-connection": "0.1.7-rc.1",
103
+ "@deepseek-ai/dsh-client-locale": "0.1.7-rc.1",
104
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.1",
105
+ "@deepseek-ai/dsh-client-ui-model-selection": "0.1.7-rc.1",
106
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.1",
107
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.1",
108
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.1",
109
+ "@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.1",
110
+ "@deepseek-ai/dsh-credentials": "0.1.7-rc.1",
111
+ "@deepseek-ai/dsh-invariants": "0.1.7-rc.1",
112
+ "@deepseek-ai/dsh-llm": "0.1.7-rc.1",
113
+ "@deepseek-ai/dsh-llm-pi-ai": "0.1.7-rc.1",
114
+ "@deepseek-ai/dsh-session": "0.1.7-rc.1",
115
+ "@deepseek-ai/dsh-settings": "0.1.7-rc.1",
116
+ "@deepseek-ai/dsh-tools": "0.1.7-rc.1",
117
+ "@deepseek-ai/dsh-web": "0.1.7-rc.1",
118
+ "@deepseek-ai/schemastery": "3.18.4",
119
+ "@earendil-works/pi-ai": "0.85.1",
120
120
  "@heroicons/react": "2.2.0",
121
121
  "ag-psd": "31.0.2",
122
122
  "fake-indexeddb": "6.2.5",
123
123
  "react": "18.3.1",
124
124
  "react-dom": "18.3.1",
125
125
  "tsdown": "0.22.2",
126
- "@deepseek-ai/dsh-subagent-codex": "0.1.5-rc.2"
126
+ "@deepseek-ai/dsh-subagent-codex": "0.1.7-rc.1"
127
127
  },
128
128
  "dependencies": {
129
- "@deepseek-ai/dsh-home-paths": "0.1.1-rc.2",
129
+ "@deepseek-ai/dsh-home-paths": "0.1.7-rc.1",
130
130
  "https-proxy-agent": "7.0.6",
131
131
  "ws": "8.21.3"
132
132
  },