Sfoglia il codice sorgente

fix: deduplicate dependency JSON and isolate npm configuration

Tianyi Cui 3 settimane fa
parent
commit
7900404541

+ 0 - 6
.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.i18n.yaml

@@ -1,6 +0,0 @@
-# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
-# side as of the last confirmed-consistent state. Both languages carry equal authority;
-# after editing either side, bring the other along and re-record with:
-#   pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.md
-2026-09-12-published-npm-dependency-catalog.md: abae1bdbef403a76d6e26f5771f8d1f784e9c980
-2026-09-12-published-npm-dependency-catalog.zh.md: c11c588532e33e5406d1e7fef6fc222b17b9fb1e

+ 0 - 29
.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.md

@@ -1,29 +0,0 @@
-# Agent Note: Published npm dependency catalog
-
-Status: implemented
-
-English | [中文](2026-09-12-published-npm-dependency-catalog.zh.md)
-
-## Problem
-
-The README runs `npx @deepseek-ai/dsh web`. Workspace package lists and the development lockfile cannot identify the packages npm resolves for that command: the published `latest` tag can differ from the source version, npm installs required peers, and package ranges can resolve independently of the CLI version.
-
-## Decision
-
-The [dependency catalog](../../../../docs/dependency-catalog.md) records the published CLI's complete npm dependency resolution. Its [generator](../../../../scripts/gen-dependency-catalog.ts) asks npm to resolve only `@deepseek-ai/dsh@latest` in a temporary consumer with install scripts disabled. The committed npm lockfile and resolver metadata retain the registry, capture time, tool versions, and host platform. Normal generation and `doc-sync` compare deterministic English, Chinese, and pairing-record output without network access.
-
-The catalog retains nested versions and duplicate package locations, excludes development-only entries, and distinguishes direct dependencies, transitive dependencies, automatically installed peers, and optional candidates. Package platform declarations remain visible. Optional installation failures, optional ancestor paths, install-script downloads, npm configuration, and an existing local installation or cache prevent a static record from promising an identical installation on every host.
-
-The [third-party notices decision](2026-07-30-generated-third-party-notices.md) remains active: notices disclose licenses across distributed plugins and browser bundles, while this catalog records packages in the default npm installation. Neither inventory replaces the other.
-
-## Alternatives considered
-
-**Traverse workspace manifests or the pnpm lockfile.** Those describe source development and may include unpublished packages, build dependencies, and resolutions that npm does not choose.
-
-**Resolve the live registry during each documentation check.** Registry changes would fail unrelated pull requests and make identical commits produce different documentation. An explicit refresh replaces the recorded resolution; ordinary checks remain offline.
-
-**List every resolved entry as unconditionally installed.** npm records optional packages for multiple platforms, and optional installation can fail. The catalog identifies these candidates and states the limits of its lockfile-only evidence.
-
-## Consequences
-
-Readers can inspect exact resolved versions for the latest recorded public release, and contributors can refresh the record with one command. The capture time exposes when that evidence was gathered; the freshness check proves agreement with the committed resolution, not that npm's `latest` tag has remained unchanged. Focused tests cover runtime selection, nested versions, aliases, peers, optional platform entries, and stale generated files or translations.

+ 0 - 29
.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.zh.md

@@ -1,29 +0,0 @@
-# Agent Note: 已发布 npm 包的依赖目录
-
-Status: implemented
-
-[English](2026-09-12-published-npm-dependency-catalog.md) | 中文
-
-## 问题
-
-README 运行 `npx @deepseek-ai/dsh web`。Workspace 包列表和开发用 lockfile 无法确定 npm 为该命令解析的包:已发布的 `latest` tag 可能不同于源码版本,npm 会自动安装必需的 Peer 依赖,各包的版本范围也可能独立于 CLI(命令行界面)版本解析。
-
-## 决策
-
-[依赖目录](../../../../docs/dependency-catalog.zh.md)记录已发布 CLI 的完整 npm 依赖解析结果。[生成器](../../../../scripts/gen-dependency-catalog.ts)要求 npm 在临时消费项目中仅解析 `@deepseek-ai/dsh@latest`,并禁用安装脚本。提交的 npm lockfile 和解析元数据保留 registry、采集时间、工具版本及宿主平台。普通生成和 `doc-sync`(文档同步门禁)使用确定性的英文、中文及配对记录内容进行比较,无需访问网络。
-
-目录保留嵌套版本和重复的包安装位置,排除仅用于开发的条目,并区分直接依赖、传递依赖、自动安装的 Peer 依赖及可选候选项。包的平台声明仍然可见。可选依赖安装失败、可选祖先路径、安装脚本下载、npm 配置,以及现有本地安装或缓存,使静态记录无法承诺每台宿主机上的安装完全相同。
-
-[第三方声明决策](2026-07-30-generated-third-party-notices.zh.md)仍然有效:声明披露已分发插件和浏览器 bundle 的许可证,目录则记录默认 npm 安装中的包。两份清单互不替代。
-
-## 考虑过的替代方案
-
-**遍历 workspace manifest 或 pnpm lockfile。** 它们描述源码开发环境,可能包含未发布包、构建依赖,以及 npm 不会选择的解析结果。
-
-**每次文档检查都访问实时 registry。** Registry 变化会使无关 PR(Pull Request)失败,并使同一提交产生不同文档。显式刷新替换记录的解析结果,普通检查保持离线。
-
-**将所有解析条目列为无条件安装。** npm 会记录多个平台的可选包,可选安装也可能失败。目录标明这些候选项,并说明仅生成 lockfile 的证据范围。
-
-## 影响
-
-读者可以查看最近记录的公开发布版本对应的精确解析版本,贡献者可以用一个命令刷新记录。采集时间显示证据的获取时点;新鲜度检查证明生成内容与提交的解析结果一致,不证明 npm 的 `latest` tag 未发生变化。定向测试覆盖运行时依赖筛选、嵌套版本、别名、Peer 依赖、可选平台条目,以及过期的生成文件或译文。

+ 2 - 2
README.i18n.yaml

@@ -2,5 +2,5 @@
 # side as of the last confirmed-consistent state. Both languages carry equal authority;
 # after editing either side, bring the other along and re-record with:
 #   pnpm run verify-translation-pairing --write README.md
-README.md: bc449f85ac123238c8ba128986f22f794f5c063d
-README.zh.md: e86d7f15958fdb70511aff6f60727e0dd896977f
+README.md: 36adfe913902e75ce0673adc2cb5cb692151a291
+README.zh.md: f6861b4c9490741b5e5f2d825a370766178dd9f6

+ 0 - 2
README.md

@@ -24,8 +24,6 @@ Install `Node.js`, then run:
 npx @deepseek-ai/dsh web
 ```
 
-See the generated [dependency catalog](docs/dependency-catalog.md) for the latest recorded npm installation dependencies.
-
 The command starts the Web UI at `http://127.0.0.1:3080` by default and opens it in the default browser for a local launch. An SSH launch only prints the host URL because the SSH client or editor owns the local forwarded address. Pass `--no-open` to run the server without opening a browser. See [Web UI guide](docs/user/guide/index.md).
 
 ### Run from source

+ 0 - 2
README.zh.md

@@ -26,8 +26,6 @@ DeepSeek Harness 处于 _开发者预览_ 阶段,正在快速迭代。**未来
 npx @deepseek-ai/dsh web
 ```
 
-参见自动生成的[依赖目录](docs/dependency-catalog.zh.md),了解最近记录的 npm 安装依赖。
-
 该命令默认会在 `http://127.0.0.1:3080` 启动 Web UI,本机启动时还会用默认浏览器打开页面。通过 SSH 启动时只打印宿主机 URL,因为本地转发地址由 SSH 客户端或编辑器持有。传入 `--no-open` 可仅运行服务器而不打开浏览器。详见 [Web UI 指南](docs/user/guide/index.zh.md)。
 
 <a id="run-from-source"></a>

+ 0 - 6
docs/dependency-catalog.i18n.yaml

@@ -1,6 +0,0 @@
-# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
-# side as of the last confirmed-consistent state. Both languages carry equal authority;
-# after editing either side, bring the other along and re-record with:
-#   pnpm run verify-translation-pairing --write docs/dependency-catalog.md
-dependency-catalog.md: bbf3c122ef40eec085f5153510311bbcc3e6c7bf
-dependency-catalog.zh.md: 21526914f3ce29910a9bc364a590e418d97aa753

+ 7312 - 0
docs/dependency-catalog.json

@@ -0,0 +1,7312 @@
+{
+  "package": "@deepseek-ai/dsh",
+  "version": "0.1.5-rc.1",
+  "requested": "@deepseek-ai/dsh@latest",
+  "resolution": {
+    "capturedAt": "2026-09-12T08:56:20.434Z",
+    "npm": "11.17.0",
+    "node": "24.19.0",
+    "platform": "darwin",
+    "arch": "arm64",
+    "registry": "https://registry.npmjs.org/",
+    "installStrategy": "hoisted"
+  },
+  "dependencies": [
+    {
+      "name": "@agentclientprotocol/sdk",
+      "version": "1.4.0",
+      "installations": [
+        {
+          "location": "node_modules/@agentclientprotocol/sdk",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@anthropic-ai/sdk",
+      "version": "0.123.0",
+      "installations": [
+        {
+          "location": "node_modules/@anthropic-ai/sdk",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-crypto/sha256-browser",
+      "version": "5.2.0",
+      "installations": [
+        {
+          "location": "node_modules/@aws-crypto/sha256-browser",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-crypto/sha256-js",
+      "version": "5.2.0",
+      "installations": [
+        {
+          "location": "node_modules/@aws-crypto/sha256-js",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-crypto/supports-web-crypto",
+      "version": "5.2.0",
+      "installations": [
+        {
+          "location": "node_modules/@aws-crypto/supports-web-crypto",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-crypto/util",
+      "version": "5.2.0",
+      "installations": [
+        {
+          "location": "node_modules/@aws-crypto/util",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/client-bedrock-runtime",
+      "version": "3.1048.0",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/client-bedrock-runtime",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/core",
+      "version": "3.978.0",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/core",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/credential-provider-env",
+      "version": "3.972.71",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-env",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/credential-provider-http",
+      "version": "3.972.73",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-http",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/credential-provider-ini",
+      "version": "3.973.16",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-ini",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/credential-provider-login",
+      "version": "3.972.78",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-login",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/credential-provider-node",
+      "version": "3.972.83",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-node",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/credential-provider-process",
+      "version": "3.972.71",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-process",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/credential-provider-sso",
+      "version": "3.973.15",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-sso",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/credential-provider-web-identity",
+      "version": "3.972.77",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-web-identity",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/eventstream-handler-node",
+      "version": "3.972.34",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/eventstream-handler-node",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/middleware-eventstream",
+      "version": "3.972.29",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/middleware-eventstream",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/middleware-websocket",
+      "version": "3.972.53",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/middleware-websocket",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/nested-clients",
+      "version": "3.997.45",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/nested-clients",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/signature-v4-multi-region",
+      "version": "3.996.46",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/signature-v4-multi-region",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/token-providers",
+      "version": "3.1048.0",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/token-providers",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/token-providers",
+      "version": "3.1129.0",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/types",
+      "version": "3.974.5",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/types",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/util-locate-window",
+      "version": "3.965.10",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/util-locate-window",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws-sdk/xml-builder",
+      "version": "3.972.40",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/xml-builder",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@aws/lambda-invoke-store",
+      "version": "0.3.0",
+      "installations": [
+        {
+          "location": "node_modules/@aws/lambda-invoke-store",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@babel/code-frame",
+      "version": "7.29.7",
+      "installations": [
+        {
+          "location": "node_modules/@babel/code-frame",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@babel/helper-validator-identifier",
+      "version": "7.29.7",
+      "installations": [
+        {
+          "location": "node_modules/@babel/helper-validator-identifier",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@babel/runtime",
+      "version": "7.29.7",
+      "installations": [
+        {
+          "location": "node_modules/@babel/runtime",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/cordis",
+      "version": "4.0.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/cordis",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/cordis-plugin-group",
+      "version": "1.0.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/cordis-plugin-group",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/cordis-plugin-hmr",
+      "version": "1.0.17",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/cordis-plugin-hmr",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/cordis-plugin-include",
+      "version": "1.0.7",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/cordis-plugin-include",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/cordis-plugin-loader",
+      "version": "1.0.3",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/cordis-plugin-loader",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/cordis-plugin-timer",
+      "version": "1.1.4",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/cordis-plugin-timer",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/cosmokit",
+      "version": "1.8.3",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/cosmokit",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-acp",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-acp",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-acp-app",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-acp-app",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-agent",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-agent",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-agent-default-model",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-agent-default-model",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-agent-instructions",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-agent-instructions",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-agent-loop",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-agent-loop",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-agent-presets",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-agent-presets",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-agent-tool-presentation",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-agent-tool-presentation",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-anonymous-user-id",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-anonymous-user-id",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-api-gateway",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-api-gateway",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-api-remotes",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-api-remotes",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-api-session-controller",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-api-session-controller",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-api-settings-controller",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-api-settings-controller",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-api-workspace-controller",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-api-workspace-controller",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-api-workspace-files",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-api-workspace-files",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-app-boot",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-app-boot",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-atomic-write",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-atomic-write",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-attachment",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-attachment",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-attachment-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-attachment-local",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-authorization",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-authorization",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-base",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-base",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-bash-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-bash-local",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-bash-sandbox",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-bash-sandbox",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-brand",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-brand",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-chunked-list",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-chunked-list",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-connection",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-connection",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-file-upload",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-file-upload",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-hmr",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-hmr",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-locale",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-locale",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-modules",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-modules",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-resources",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-resources",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-agent-preset",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-agent-preset",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-approval",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-approval",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-attachment",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-attachment",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-brand-official",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-brand-official",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-chat",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-chat",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-commands",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-commands",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-conversation",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-conversation",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-cordis",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-cordis",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-deliverables",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-deliverables",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-directory-picker-browse",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-directory-picker-native",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-goal",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-goal",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-input-trigger",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-input-trigger",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-jobs",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-jobs",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-layout",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-layout",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-message-feedback",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-message-feedback",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-model-selection",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-model-selection",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-open-in-app",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-open-in-app",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-permission-presets",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-permission-presets",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-plan",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-plan",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-reference",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-reference",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-renderer",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-renderer",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-schedule",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-schedule",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-session",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-session",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-settings",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-settings",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-settings-general",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-settings-general",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-settings-models",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-settings-models",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-settings-plugin-inventory",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-settings-plugins",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-settings-plugins",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-sidebar",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-sidebar",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-sidebar-documentpreview",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-sidebar-files",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-sidebar-files",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-sidebar-right",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-sidebar-right",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-skill",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-skill",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-subagent",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-subagent",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-theme",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-theme",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-tool",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-tool",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-trajectory",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-trajectory",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-user-questions",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-user-questions",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-workflow-run",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-workflow-run",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-client-ui-workspace",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-client-ui-workspace",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-cmdline",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-cmdline",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-code-runtime",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-code-runtime",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-code-runtime-worker-thread",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-code-runtime-worker-thread",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-command-compact",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-command-compact",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-command-feedback",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-command-feedback",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-command-goal",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-command-goal",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-commands",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-commands",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-compaction",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-compaction",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-compaction-basic",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-compaction-basic",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-compaction-tool-result-pruner",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-compaction-tool-result-pruner",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-cordis-client-runner",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-cordis-client-runner",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-cordis-host-runner",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-cordis-host-runner",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-credentials",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-credentials",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-credentials-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-credentials-local",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-deepseek-llm-api-extensions",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-deepseek-llm-api-extensions",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-deque",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-deque",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-file-reference",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-file-reference",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-file-reference-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-file-reference-local",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-fs",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-fs",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-fs-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-fs-local",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-fs-observation-policy",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-fs-observation-policy",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-fs-sandbox",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-fs-sandbox",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-goal",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-goal",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-goal-round-driver",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-goal-round-driver",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-headless",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-headless",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-home-paths",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-home-paths",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-hook-protocol",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-hook-protocol",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-hooks-claude-code",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-hooks-claude-code",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-hooks-codex",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-hooks-codex",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-host-directory-picker",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-host-directory-picker",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-host-directory-picker-auto",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-host-directory-picker-auto",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-host-directory-picker-browse",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-host-directory-picker-browse",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-host-directory-picker-native",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-host-directory-picker-native",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-host-frontend-static",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-host-frontend-static",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-host-open-in-app",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-host-open-in-app",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-host-plugin-inventory",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-host-plugin-inventory",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-host-webserver",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-host-webserver",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-http-proxy",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-http-proxy",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-invariants",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-invariants",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-jobs",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-jobs",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-jobs-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-jobs-local",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-launch-environment",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-launch-environment",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-llm",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-llm",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-llm-deepseek",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-llm-deepseek",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-llm-pi-ai",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-llm-pi-ai",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-llm-retry",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-llm-retry",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-mcp-client",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-mcp-client",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-message-feedback",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-message-feedback",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-native-command",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-native-command",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-output-retention",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-output-retention",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-package-manifest",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-package-manifest",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-permission-presets",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-permission-presets",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-persona",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-persona",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-plan-mode",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-plan-mode",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-plugin-package-inventory-deepseek",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-plugin-package-inventory-deepseek",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-pwsh-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-pwsh-local",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-pwsh-sandbox",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-pwsh-sandbox",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-repeat-tool-reminder",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-repeat-tool-reminder",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-sandbox",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-sandbox",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-sandbox-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-sandbox-local",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-sandbox-policy",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-sandbox-policy",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-sandbox-windows-acl",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-sandbox-windows-acl",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-schedule",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-schedule",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-scope",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-scope",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-sdk-app",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-sdk-app",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-sdk-jsonrpc-server",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-sdk-jsonrpc-server",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-sdk-minimal",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-sdk-minimal",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-sdk-protocol",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-sdk-protocol",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-checkpoint-policy",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-checkpoint-policy",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-format",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-format",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-format-catalog",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-format-catalog",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-format-v0-to-v1",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-format-v0-to-v1",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-format-v1-to-v2",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-format-v1-to-v2",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-format-v2-to-v3",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-format-v2-to-v3",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-log-deepseek",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-log-deepseek",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-log-export",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-log-export",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-persistence",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-persistence",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-persistence-jsonl",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-persistence-jsonl",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-projection",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-projection",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-projection-cache",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-projection-cache",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-query",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-query",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-query-sqlite",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-query-sqlite",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-reference",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-reference",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-stats",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-stats",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-telemetry",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-telemetry",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-telemetry-otel",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-telemetry-otel",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-title",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-title",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-title-first-prompt-llm",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-title-first-prompt-llm",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-title-llm",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-title-llm",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-session-turn-outline",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-session-turn-outline",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-settings",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-settings",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-settings-file",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-settings-file",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-shell",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-shell",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-shell-env",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-shell-env",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-skill",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-skill",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-skill-badge",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-skill-badge",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-skill-filesystem",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-skill-filesystem",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-spill",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-spill",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-spill-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-spill-local",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-spill-policy",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-spill-policy",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-storage",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-storage",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-storage-domain",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-storage-domain",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-storage-json",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-storage-json",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-subagent",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-subagent",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-subagent-fork-in-process",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-subagent-fork-in-process",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-subagent-in-process-driver",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-subagent-in-process-driver",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-subagent-spawn-in-process",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-subagent-spawn-in-process",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-subprocess",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-subprocess",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-subprocess-local",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-subprocess-local",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-system-prompt",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-system-prompt",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-terminal",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-terminal",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-terminal-bash",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-terminal-bash",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-time-context",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-time-context",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-timeout",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-timeout",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tmux-context",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tmux-context",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-token-meter",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-token-meter",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-ask-user",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-ask-user",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-bash",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-bash",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-bash-persistent",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-bash-persistent",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-call-timeout-policy",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-call-timeout-policy",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-cordis",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-cordis",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-fs",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-fs",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-fs-search",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-fs-search",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-goal",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-goal",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-jobs",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-jobs",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-present",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-present",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-pwsh",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-pwsh",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-pwsh-persistent",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-pwsh-persistent",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-ralph",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-ralph",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-skill",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-skill",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-str-replace-editor",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-str-replace-editor",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-subagent",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-subagent",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-subagent-control",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-subagent-control",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-todo",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-todo",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-web",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-web",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tool-workflow",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tool-workflow",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-tools",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-tools",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-typert-loader",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-typert-loader",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-typert-protocol",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-typert-protocol",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-typert-registry",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-typert-registry",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-user-approval",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-user-approval",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-user-questions",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-user-questions",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-util-crypto",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-util-crypto",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-util-time",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-util-time",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-util-values",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-util-values",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-util-workspace-path",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-util-workspace-path",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-web",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-web",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-web-app",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-web-app",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-web-fetch-http",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-web-fetch-http",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-web-frontend",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-web-frontend",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-web-search-deepseek",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-web-search-deepseek",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-webhook",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-webhook",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-webhook-github",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-webhook-github",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-win32-process",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-win32-process",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-workflow",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-workflow",
+          "direct": false,
+          "optional": false,
+          "peer": true
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-workflow-worker-thread",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-workflow-worker-thread",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/dsh-workspace",
+      "version": "0.1.5-rc.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-workspace",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/node-addon-system",
+      "version": "0.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/node-addon-system",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/node-addon-system-darwin-arm64",
+      "version": "0.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/node-addon-system-darwin-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/node-addon-system-darwin-x64",
+      "version": "0.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/node-addon-system-darwin-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/node-addon-system-linux-arm64",
+      "version": "0.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/node-addon-system-linux-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/node-addon-system-linux-x64",
+      "version": "0.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/node-addon-system-linux-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@deepseek-ai/schemastery",
+      "version": "3.18.2",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/schemastery",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@earendil-works/pi-ai",
+      "version": "0.85.1",
+      "installations": [
+        {
+          "location": "node_modules/@earendil-works/pi-ai",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@earendil-works/pi-telemetry",
+      "version": "0.85.1",
+      "installations": [
+        {
+          "location": "node_modules/@earendil-works/pi-telemetry",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@emnapi/runtime",
+      "version": "1.11.3",
+      "installations": [
+        {
+          "location": "node_modules/@emnapi/runtime",
+          "direct": false,
+          "optional": true,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@google/genai",
+      "version": "1.52.0",
+      "installations": [
+        {
+          "location": "node_modules/@google/genai",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@hono/node-server",
+      "version": "2.1.1",
+      "installations": [
+        {
+          "location": "node_modules/@hono/node-server",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@img/colour",
+      "version": "1.1.0",
+      "installations": [
+        {
+          "location": "node_modules/@img/colour",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-darwin-arm64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-darwin-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-darwin-x64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-darwin-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-freebsd-wasm32",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-freebsd-wasm32",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "freebsd"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-darwin-arm64",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-darwin-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-darwin-x64",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-darwin-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-linux-arm",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-linux-arm",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-linux-arm64",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-linux-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-linux-ppc64",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-linux-ppc64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "ppc64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-linux-riscv64",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-linux-riscv64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "riscv64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-linux-s390x",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-linux-s390x",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "s390x"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-linux-x64",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-linux-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "x64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-linuxmusl-arm64",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-linuxmusl-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm64"
+          ],
+          "libc": [
+            "musl"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-libvips-linuxmusl-x64",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-libvips-linuxmusl-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "x64"
+          ],
+          "libc": [
+            "musl"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-linux-arm",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-linux-arm",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-linux-arm64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-linux-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-linux-ppc64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-linux-ppc64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "ppc64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-linux-riscv64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-linux-riscv64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "riscv64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-linux-s390x",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-linux-s390x",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "s390x"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-linux-x64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-linux-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "x64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-linuxmusl-arm64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-linuxmusl-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm64"
+          ],
+          "libc": [
+            "musl"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-linuxmusl-x64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-linuxmusl-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "x64"
+          ],
+          "libc": [
+            "musl"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-wasm32",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-wasm32",
+          "direct": false,
+          "optional": true,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-webcontainers-wasm32",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-webcontainers-wasm32",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "cpu": [
+            "wasm32"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-win32-arm64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-win32-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-win32-ia32",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-win32-ia32",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "ia32"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@img/sharp-win32-x64",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/@img/sharp-win32-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@joplin/turndown-plugin-gfm",
+      "version": "1.0.68",
+      "installations": [
+        {
+          "location": "node_modules/@joplin/turndown-plugin-gfm",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-android-arm64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-android-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "android"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-android-x64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-android-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "android"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-darwin-arm64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-darwin-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-darwin-x64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-darwin-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-freebsd-arm64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-freebsd-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "freebsd"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-freebsd-ia32",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-freebsd-ia32",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "freebsd"
+          ],
+          "cpu": [
+            "ia32"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-freebsd-x64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-freebsd-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "freebsd"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-linux-arm",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-linux-arm",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-linux-arm64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-linux-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-linux-ia32",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-linux-ia32",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "ia32"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-linux-loong64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-linux-loong64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "loong64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-linux-riscv64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-linux-riscv64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "riscv64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-linux-x64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-linux-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-openbsd-ia32",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-openbsd-ia32",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "openbsd"
+          ],
+          "cpu": [
+            "ia32"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-openbsd-x64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-openbsd-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "openbsd"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-win32-arm64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-win32-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-win32-ia32",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-win32-ia32",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "ia32"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@koromix/koffi-win32-x64",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/@koromix/koffi-win32-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@mixmark-io/domino",
+      "version": "2.2.0",
+      "installations": [
+        {
+          "location": "node_modules/@mixmark-io/domino",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@modelcontextprotocol/sdk",
+      "version": "1.30.0",
+      "installations": [
+        {
+          "location": "node_modules/@modelcontextprotocol/sdk",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@octokit/openapi-types",
+      "version": "29.0.1",
+      "installations": [
+        {
+          "location": "node_modules/@octokit/openapi-types",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@octokit/openapi-webhooks-types",
+      "version": "12.1.0",
+      "installations": [
+        {
+          "location": "node_modules/@octokit/openapi-webhooks-types",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@octokit/request-error",
+      "version": "7.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@octokit/request-error",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@octokit/types",
+      "version": "18.0.0",
+      "installations": [
+        {
+          "location": "node_modules/@octokit/types",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@octokit/webhooks",
+      "version": "14.2.0",
+      "installations": [
+        {
+          "location": "node_modules/@octokit/webhooks",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@octokit/webhooks-methods",
+      "version": "6.0.0",
+      "installations": [
+        {
+          "location": "node_modules/@octokit/webhooks-methods",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/api",
+      "version": "1.9.1",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/api",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/api-logs",
+      "version": "0.220.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/api-logs",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/core",
+      "version": "2.11.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/core",
+      "version": "2.9.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/core",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/exporter-logs-otlp-http",
+      "version": "0.220.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/exporter-logs-otlp-http",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/otlp-exporter-base",
+      "version": "0.220.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/otlp-exporter-base",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/otlp-transformer",
+      "version": "0.220.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/otlp-transformer",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/resources",
+      "version": "2.11.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/resources",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/resources",
+      "version": "2.9.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/@opentelemetry/sdk-trace/node_modules/@opentelemetry/resources",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/sdk-logs",
+      "version": "0.220.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/sdk-logs",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/sdk-metrics",
+      "version": "2.9.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/sdk-metrics",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/sdk-trace",
+      "version": "2.9.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/sdk-trace",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@opentelemetry/semantic-conventions",
+      "version": "1.43.0",
+      "installations": [
+        {
+          "location": "node_modules/@opentelemetry/semantic-conventions",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@protobufjs/aspromise",
+      "version": "1.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@protobufjs/aspromise",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@protobufjs/base64",
+      "version": "1.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@protobufjs/base64",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@protobufjs/codegen",
+      "version": "2.0.5",
+      "installations": [
+        {
+          "location": "node_modules/@protobufjs/codegen",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@protobufjs/eventemitter",
+      "version": "1.1.1",
+      "installations": [
+        {
+          "location": "node_modules/@protobufjs/eventemitter",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@protobufjs/fetch",
+      "version": "1.1.1",
+      "installations": [
+        {
+          "location": "node_modules/@protobufjs/fetch",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@protobufjs/float",
+      "version": "1.0.2",
+      "installations": [
+        {
+          "location": "node_modules/@protobufjs/float",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@protobufjs/path",
+      "version": "1.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@protobufjs/path",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@protobufjs/pool",
+      "version": "1.1.0",
+      "installations": [
+        {
+          "location": "node_modules/@protobufjs/pool",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@protobufjs/utf8",
+      "version": "1.1.2",
+      "installations": [
+        {
+          "location": "node_modules/@protobufjs/utf8",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/core",
+      "version": "3.34.1",
+      "installations": [
+        {
+          "location": "node_modules/@smithy/core",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/credential-provider-imds",
+      "version": "4.5.2",
+      "installations": [
+        {
+          "location": "node_modules/@smithy/credential-provider-imds",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/fetch-http-handler",
+      "version": "5.8.0",
+      "installations": [
+        {
+          "location": "node_modules/@smithy/fetch-http-handler",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/is-array-buffer",
+      "version": "2.2.0",
+      "installations": [
+        {
+          "location": "node_modules/@smithy/is-array-buffer",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/node-http-handler",
+      "version": "4.12.1",
+      "installations": [
+        {
+          "location": "node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/node-http-handler",
+      "version": "4.7.3",
+      "installations": [
+        {
+          "location": "node_modules/@smithy/node-http-handler",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/signature-v4",
+      "version": "5.7.3",
+      "installations": [
+        {
+          "location": "node_modules/@smithy/signature-v4",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/types",
+      "version": "4.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@smithy/types",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/util-buffer-from",
+      "version": "2.2.0",
+      "installations": [
+        {
+          "location": "node_modules/@smithy/util-buffer-from",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@smithy/util-utf8",
+      "version": "2.3.0",
+      "installations": [
+        {
+          "location": "node_modules/@smithy/util-utf8",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@stablelib/base64",
+      "version": "1.0.1",
+      "installations": [
+        {
+          "location": "node_modules/@stablelib/base64",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@standard-schema/spec",
+      "version": "1.1.0",
+      "installations": [
+        {
+          "location": "node_modules/@standard-schema/spec",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@types/node",
+      "version": "22.20.2",
+      "installations": [
+        {
+          "location": "node_modules/@types/node",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@types/retry",
+      "version": "0.12.0",
+      "installations": [
+        {
+          "location": "node_modules/@types/retry",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-darwin-arm64",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-darwin-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-darwin-x64",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-darwin-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-linux-arm",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-linux-arm",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-linux-arm64",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-linux-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-linux-ia32",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-linux-ia32",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "ia32"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-linux-ppc64",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-linux-ppc64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "ppc64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-linux-riscv64",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-linux-riscv64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "riscv64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-linux-s390x",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-linux-s390x",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "s390x"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-linux-x64",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-linux-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-win32-arm64",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-win32-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-win32-ia32",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-win32-ia32",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "ia32"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@vscode/ripgrep-win32-x64",
+      "version": "1.18.0",
+      "installations": [
+        {
+          "location": "node_modules/@vscode/ripgrep-win32-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "@xterm/headless",
+      "version": "6.0.0",
+      "installations": [
+        {
+          "location": "node_modules/@xterm/headless",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "accepts",
+      "version": "2.0.0",
+      "installations": [
+        {
+          "location": "node_modules/accepts",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "agent-base",
+      "version": "7.1.4",
+      "installations": [
+        {
+          "location": "node_modules/agent-base",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ajv",
+      "version": "8.20.0",
+      "installations": [
+        {
+          "location": "node_modules/ajv",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ajv-formats",
+      "version": "3.0.1",
+      "installations": [
+        {
+          "location": "node_modules/ajv-formats",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "argparse",
+      "version": "2.0.1",
+      "installations": [
+        {
+          "location": "node_modules/argparse",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "base64-js",
+      "version": "1.5.1",
+      "installations": [
+        {
+          "location": "node_modules/base64-js",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "bignumber.js",
+      "version": "9.3.1",
+      "installations": [
+        {
+          "location": "node_modules/bignumber.js",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "body-parser",
+      "version": "2.3.0",
+      "installations": [
+        {
+          "location": "node_modules/body-parser",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "bowser",
+      "version": "2.14.1",
+      "installations": [
+        {
+          "location": "node_modules/bowser",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "buffer-equal-constant-time",
+      "version": "1.0.1",
+      "installations": [
+        {
+          "location": "node_modules/buffer-equal-constant-time",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "bundle-name",
+      "version": "4.1.0",
+      "installations": [
+        {
+          "location": "node_modules/bundle-name",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "bytes",
+      "version": "3.1.2",
+      "installations": [
+        {
+          "location": "node_modules/bytes",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "call-bind-apply-helpers",
+      "version": "1.0.2",
+      "installations": [
+        {
+          "location": "node_modules/call-bind-apply-helpers",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "call-bound",
+      "version": "1.0.4",
+      "installations": [
+        {
+          "location": "node_modules/call-bound",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "chokidar",
+      "version": "4.0.3",
+      "installations": [
+        {
+          "location": "node_modules/chokidar",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "chokidar",
+      "version": "5.0.0",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-skill-filesystem/node_modules/chokidar",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "commander",
+      "version": "15.0.0",
+      "installations": [
+        {
+          "location": "node_modules/commander",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "compressible",
+      "version": "2.0.18",
+      "installations": [
+        {
+          "location": "node_modules/compressible",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "compression",
+      "version": "1.8.2",
+      "installations": [
+        {
+          "location": "node_modules/compression",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "content-disposition",
+      "version": "1.1.0",
+      "installations": [
+        {
+          "location": "node_modules/content-disposition",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "content-type",
+      "version": "1.0.5",
+      "installations": [
+        {
+          "location": "node_modules/content-type",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "content-type",
+      "version": "2.1.0",
+      "installations": [
+        {
+          "location": "node_modules/body-parser/node_modules/content-type",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/negotiator/node_modules/content-type",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/type-is/node_modules/content-type",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "cookie",
+      "version": "0.7.2",
+      "installations": [
+        {
+          "location": "node_modules/cookie",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "cookie-signature",
+      "version": "1.2.2",
+      "installations": [
+        {
+          "location": "node_modules/cookie-signature",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "cors",
+      "version": "2.8.6",
+      "installations": [
+        {
+          "location": "node_modules/cors",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "cross-spawn",
+      "version": "7.0.6",
+      "installations": [
+        {
+          "location": "node_modules/cross-spawn",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "data-uri-to-buffer",
+      "version": "4.0.1",
+      "installations": [
+        {
+          "location": "node_modules/data-uri-to-buffer",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "debug",
+      "version": "2.6.9",
+      "installations": [
+        {
+          "location": "node_modules/debug",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "debug",
+      "version": "4.4.3",
+      "installations": [
+        {
+          "location": "node_modules/body-parser/node_modules/debug",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/express-rate-limit/node_modules/debug",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/express/node_modules/debug",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/finalhandler/node_modules/debug",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/http-proxy-agent/node_modules/debug",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/https-proxy-agent/node_modules/debug",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/router/node_modules/debug",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/send/node_modules/debug",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "default-browser",
+      "version": "5.5.1",
+      "installations": [
+        {
+          "location": "node_modules/default-browser",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "default-browser-id",
+      "version": "5.0.1",
+      "installations": [
+        {
+          "location": "node_modules/default-browser-id",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "define-lazy-prop",
+      "version": "3.0.0",
+      "installations": [
+        {
+          "location": "node_modules/define-lazy-prop",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "depd",
+      "version": "2.0.0",
+      "installations": [
+        {
+          "location": "node_modules/depd",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "destroy",
+      "version": "1.2.0",
+      "installations": [
+        {
+          "location": "node_modules/destroy",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "detect-libc",
+      "version": "2.1.2",
+      "installations": [
+        {
+          "location": "node_modules/detect-libc",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "diff",
+      "version": "9.0.0",
+      "installations": [
+        {
+          "location": "node_modules/diff",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "dunder-proto",
+      "version": "1.0.1",
+      "installations": [
+        {
+          "location": "node_modules/dunder-proto",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ecdsa-sig-formatter",
+      "version": "1.0.11",
+      "installations": [
+        {
+          "location": "node_modules/ecdsa-sig-formatter",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ee-first",
+      "version": "1.1.1",
+      "installations": [
+        {
+          "location": "node_modules/ee-first",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "encodeurl",
+      "version": "2.0.0",
+      "installations": [
+        {
+          "location": "node_modules/encodeurl",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "es-define-property",
+      "version": "1.0.1",
+      "installations": [
+        {
+          "location": "node_modules/es-define-property",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "es-errors",
+      "version": "1.3.0",
+      "installations": [
+        {
+          "location": "node_modules/es-errors",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "es-object-atoms",
+      "version": "1.1.2",
+      "installations": [
+        {
+          "location": "node_modules/es-object-atoms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "escape-html",
+      "version": "1.0.3",
+      "installations": [
+        {
+          "location": "node_modules/escape-html",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "etag",
+      "version": "1.8.1",
+      "installations": [
+        {
+          "location": "node_modules/etag",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "eventsource",
+      "version": "3.0.7",
+      "installations": [
+        {
+          "location": "node_modules/eventsource",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "eventsource-parser",
+      "version": "3.1.1",
+      "installations": [
+        {
+          "location": "node_modules/eventsource-parser",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "express",
+      "version": "5.2.1",
+      "installations": [
+        {
+          "location": "node_modules/express",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "express-rate-limit",
+      "version": "8.7.0",
+      "installations": [
+        {
+          "location": "node_modules/express-rate-limit",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "extend",
+      "version": "3.0.2",
+      "installations": [
+        {
+          "location": "node_modules/extend",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "fast-deep-equal",
+      "version": "3.1.3",
+      "installations": [
+        {
+          "location": "node_modules/fast-deep-equal",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "fast-sha256",
+      "version": "1.3.0",
+      "installations": [
+        {
+          "location": "node_modules/fast-sha256",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "fast-uri",
+      "version": "3.1.7",
+      "installations": [
+        {
+          "location": "node_modules/fast-uri",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "fetch-blob",
+      "version": "3.2.0",
+      "installations": [
+        {
+          "location": "node_modules/fetch-blob",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "fflate",
+      "version": "0.8.3",
+      "installations": [
+        {
+          "location": "node_modules/fflate",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "finalhandler",
+      "version": "2.1.1",
+      "installations": [
+        {
+          "location": "node_modules/finalhandler",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "formdata-polyfill",
+      "version": "4.0.10",
+      "installations": [
+        {
+          "location": "node_modules/formdata-polyfill",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "forwarded",
+      "version": "0.2.0",
+      "installations": [
+        {
+          "location": "node_modules/forwarded",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "fresh",
+      "version": "2.0.0",
+      "installations": [
+        {
+          "location": "node_modules/fresh",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "function-bind",
+      "version": "1.1.2",
+      "installations": [
+        {
+          "location": "node_modules/function-bind",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "gaxios",
+      "version": "7.3.1",
+      "installations": [
+        {
+          "location": "node_modules/gaxios",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "gcp-metadata",
+      "version": "8.1.2",
+      "installations": [
+        {
+          "location": "node_modules/gcp-metadata",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "get-intrinsic",
+      "version": "1.3.0",
+      "installations": [
+        {
+          "location": "node_modules/get-intrinsic",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "get-proto",
+      "version": "1.0.1",
+      "installations": [
+        {
+          "location": "node_modules/get-proto",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "google-auth-library",
+      "version": "10.9.1",
+      "installations": [
+        {
+          "location": "node_modules/google-auth-library",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "google-logging-utils",
+      "version": "1.1.3",
+      "installations": [
+        {
+          "location": "node_modules/google-logging-utils",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "gopd",
+      "version": "1.2.0",
+      "installations": [
+        {
+          "location": "node_modules/gopd",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "has-symbols",
+      "version": "1.1.0",
+      "installations": [
+        {
+          "location": "node_modules/has-symbols",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "hasown",
+      "version": "2.0.4",
+      "installations": [
+        {
+          "location": "node_modules/hasown",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "hono",
+      "version": "4.13.7",
+      "installations": [
+        {
+          "location": "node_modules/hono",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "http-errors",
+      "version": "2.0.1",
+      "installations": [
+        {
+          "location": "node_modules/http-errors",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "http-proxy-agent",
+      "version": "7.0.2",
+      "installations": [
+        {
+          "location": "node_modules/http-proxy-agent",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "https-proxy-agent",
+      "version": "7.0.6",
+      "installations": [
+        {
+          "location": "node_modules/https-proxy-agent",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "iconv-lite",
+      "version": "0.7.3",
+      "installations": [
+        {
+          "location": "node_modules/iconv-lite",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "inherits",
+      "version": "2.0.4",
+      "installations": [
+        {
+          "location": "node_modules/inherits",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ip-address",
+      "version": "10.7.0",
+      "installations": [
+        {
+          "location": "node_modules/ip-address",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ipaddr.js",
+      "version": "1.9.1",
+      "installations": [
+        {
+          "location": "node_modules/proxy-addr/node_modules/ipaddr.js",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ipaddr.js",
+      "version": "2.5.0",
+      "installations": [
+        {
+          "location": "node_modules/ipaddr.js",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "is-docker",
+      "version": "3.0.0",
+      "installations": [
+        {
+          "location": "node_modules/is-docker",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "is-in-ssh",
+      "version": "1.0.0",
+      "installations": [
+        {
+          "location": "node_modules/is-in-ssh",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "is-inside-container",
+      "version": "1.0.0",
+      "installations": [
+        {
+          "location": "node_modules/is-inside-container",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "is-promise",
+      "version": "4.0.0",
+      "installations": [
+        {
+          "location": "node_modules/is-promise",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "is-wsl",
+      "version": "3.1.1",
+      "installations": [
+        {
+          "location": "node_modules/is-wsl",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "isexe",
+      "version": "2.0.0",
+      "installations": [
+        {
+          "location": "node_modules/isexe",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "jose",
+      "version": "6.2.12",
+      "installations": [
+        {
+          "location": "node_modules/jose",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "js-tokens",
+      "version": "4.0.0",
+      "installations": [
+        {
+          "location": "node_modules/js-tokens",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "js-yaml",
+      "version": "4.3.2",
+      "installations": [
+        {
+          "location": "node_modules/js-yaml",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "json-bigint",
+      "version": "1.0.0",
+      "installations": [
+        {
+          "location": "node_modules/json-bigint",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "json-schema-to-ts",
+      "version": "3.1.1",
+      "installations": [
+        {
+          "location": "node_modules/json-schema-to-ts",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "json-schema-traverse",
+      "version": "1.0.0",
+      "installations": [
+        {
+          "location": "node_modules/json-schema-traverse",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "json-schema-typed",
+      "version": "8.0.2",
+      "installations": [
+        {
+          "location": "node_modules/json-schema-typed",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "jwa",
+      "version": "2.0.1",
+      "installations": [
+        {
+          "location": "node_modules/jwa",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "jws",
+      "version": "4.0.1",
+      "installations": [
+        {
+          "location": "node_modules/jws",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "koffi",
+      "version": "3.2.1",
+      "installations": [
+        {
+          "location": "node_modules/koffi",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "long",
+      "version": "5.3.2",
+      "installations": [
+        {
+          "location": "node_modules/long",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "math-intrinsics",
+      "version": "1.1.0",
+      "installations": [
+        {
+          "location": "node_modules/math-intrinsics",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "media-typer",
+      "version": "1.1.1",
+      "installations": [
+        {
+          "location": "node_modules/media-typer",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "merge-descriptors",
+      "version": "2.0.0",
+      "installations": [
+        {
+          "location": "node_modules/merge-descriptors",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "mime-db",
+      "version": "1.54.0",
+      "installations": [
+        {
+          "location": "node_modules/mime-db",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "mime-types",
+      "version": "3.0.2",
+      "installations": [
+        {
+          "location": "node_modules/mime-types",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ms",
+      "version": "2.0.0",
+      "installations": [
+        {
+          "location": "node_modules/ms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ms",
+      "version": "2.1.3",
+      "installations": [
+        {
+          "location": "node_modules/body-parser/node_modules/ms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/express-rate-limit/node_modules/ms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/express/node_modules/ms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/finalhandler/node_modules/ms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/http-proxy-agent/node_modules/ms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/https-proxy-agent/node_modules/ms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/router/node_modules/ms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        },
+        {
+          "location": "node_modules/send/node_modules/ms",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "negotiator",
+      "version": "0.6.4",
+      "installations": [
+        {
+          "location": "node_modules/compression/node_modules/negotiator",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "negotiator",
+      "version": "1.1.0",
+      "installations": [
+        {
+          "location": "node_modules/negotiator",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "node-addon-api",
+      "version": "7.1.1",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-api",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "node-addon-native-custom-loader",
+      "version": "0.1.5",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-native-custom-loader",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "node-addon-require-builtin",
+      "version": "0.1.5",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-require-builtin",
+          "direct": true,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "node-addon-require-builtin-darwin-arm64",
+      "version": "0.1.5",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-require-builtin-darwin-arm64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "node-addon-require-builtin-darwin-x64",
+      "version": "0.1.5",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-require-builtin-darwin-x64",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "darwin"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "node-addon-require-builtin-linux-arm64-gnu",
+      "version": "0.1.5",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-require-builtin-linux-arm64-gnu",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "arm64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "node-addon-require-builtin-linux-x64-gnu",
+      "version": "0.1.5",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-require-builtin-linux-x64-gnu",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "linux"
+          ],
+          "cpu": [
+            "x64"
+          ],
+          "libc": [
+            "glibc"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "node-addon-require-builtin-win32-arm64-msvc",
+      "version": "0.1.5",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-require-builtin-win32-arm64-msvc",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "arm64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "node-addon-require-builtin-win32-ia32-msvc",
+      "version": "0.1.5",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-require-builtin-win32-ia32-msvc",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "ia32"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "node-addon-require-builtin-win32-x64-msvc",
+      "version": "0.1.5",
+      "installations": [
+        {
+          "location": "node_modules/node-addon-require-builtin-win32-x64-msvc",
+          "direct": false,
+          "optional": true,
+          "peer": false,
+          "os": [
+            "win32"
+          ],
+          "cpu": [
+            "x64"
+          ]
+        }
+      ]
+    },
+    {
+      "name": "node-domexception",
+      "version": "1.0.0",
+      "installations": [
+        {
+          "location": "node_modules/node-domexception",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "node-fetch",
+      "version": "3.3.2",
+      "installations": [
+        {
+          "location": "node_modules/node-fetch",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "node-pty",
+      "version": "1.2.0-beta.15",
+      "installations": [
+        {
+          "location": "node_modules/node-pty",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "object-assign",
+      "version": "4.1.1",
+      "installations": [
+        {
+          "location": "node_modules/object-assign",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "object-inspect",
+      "version": "1.13.4",
+      "installations": [
+        {
+          "location": "node_modules/object-inspect",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "on-finished",
+      "version": "2.4.1",
+      "installations": [
+        {
+          "location": "node_modules/on-finished",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "on-headers",
+      "version": "1.1.0",
+      "installations": [
+        {
+          "location": "node_modules/on-headers",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "once",
+      "version": "1.4.0",
+      "installations": [
+        {
+          "location": "node_modules/once",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "open",
+      "version": "11.0.3",
+      "installations": [
+        {
+          "location": "node_modules/open",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "openai",
+      "version": "6.40.0",
+      "installations": [
+        {
+          "location": "node_modules/openai",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "p-retry",
+      "version": "4.6.2",
+      "installations": [
+        {
+          "location": "node_modules/p-retry",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "parseurl",
+      "version": "1.3.3",
+      "installations": [
+        {
+          "location": "node_modules/parseurl",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "partial-json",
+      "version": "0.1.7",
+      "installations": [
+        {
+          "location": "node_modules/partial-json",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "path-key",
+      "version": "3.1.1",
+      "installations": [
+        {
+          "location": "node_modules/path-key",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "path-to-regexp",
+      "version": "8.4.2",
+      "installations": [
+        {
+          "location": "node_modules/path-to-regexp",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "picocolors",
+      "version": "1.1.1",
+      "installations": [
+        {
+          "location": "node_modules/picocolors",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "picomatch",
+      "version": "4.0.7",
+      "installations": [
+        {
+          "location": "node_modules/picomatch",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "pkce-challenge",
+      "version": "5.0.1",
+      "installations": [
+        {
+          "location": "node_modules/pkce-challenge",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "powershell-utils",
+      "version": "0.1.0",
+      "installations": [
+        {
+          "location": "node_modules/wsl-utils/node_modules/powershell-utils",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "powershell-utils",
+      "version": "0.2.1",
+      "installations": [
+        {
+          "location": "node_modules/powershell-utils",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "protobufjs",
+      "version": "7.6.6",
+      "installations": [
+        {
+          "location": "node_modules/protobufjs",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "proxy-addr",
+      "version": "2.0.7",
+      "installations": [
+        {
+          "location": "node_modules/proxy-addr",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "qs",
+      "version": "6.16.0",
+      "installations": [
+        {
+          "location": "node_modules/qs",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "range-parser",
+      "version": "1.3.0",
+      "installations": [
+        {
+          "location": "node_modules/range-parser",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "raw-body",
+      "version": "3.0.2",
+      "installations": [
+        {
+          "location": "node_modules/raw-body",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "readdirp",
+      "version": "4.1.2",
+      "installations": [
+        {
+          "location": "node_modules/readdirp",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "readdirp",
+      "version": "5.1.1",
+      "installations": [
+        {
+          "location": "node_modules/@deepseek-ai/dsh-skill-filesystem/node_modules/readdirp",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "require-from-string",
+      "version": "2.0.2",
+      "installations": [
+        {
+          "location": "node_modules/require-from-string",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "resolve.exports",
+      "version": "2.0.3",
+      "installations": [
+        {
+          "location": "node_modules/resolve.exports",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "retry",
+      "version": "0.13.1",
+      "installations": [
+        {
+          "location": "node_modules/retry",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "router",
+      "version": "2.2.0",
+      "installations": [
+        {
+          "location": "node_modules/router",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "run-applescript",
+      "version": "7.1.0",
+      "installations": [
+        {
+          "location": "node_modules/run-applescript",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "safe-buffer",
+      "version": "5.2.1",
+      "installations": [
+        {
+          "location": "node_modules/safe-buffer",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "safer-buffer",
+      "version": "2.1.2",
+      "installations": [
+        {
+          "location": "node_modules/safer-buffer",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "semver",
+      "version": "7.8.5",
+      "installations": [
+        {
+          "location": "node_modules/semver",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "send",
+      "version": "1.2.1",
+      "installations": [
+        {
+          "location": "node_modules/send",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "serve-static",
+      "version": "2.2.1",
+      "installations": [
+        {
+          "location": "node_modules/serve-static",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "setprototypeof",
+      "version": "1.2.0",
+      "installations": [
+        {
+          "location": "node_modules/setprototypeof",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "sharp",
+      "version": "0.35.4",
+      "installations": [
+        {
+          "location": "node_modules/sharp",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "shebang-command",
+      "version": "2.0.0",
+      "installations": [
+        {
+          "location": "node_modules/shebang-command",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "shebang-regex",
+      "version": "3.0.0",
+      "installations": [
+        {
+          "location": "node_modules/shebang-regex",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "side-channel",
+      "version": "1.1.1",
+      "installations": [
+        {
+          "location": "node_modules/side-channel",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "side-channel-list",
+      "version": "1.0.1",
+      "installations": [
+        {
+          "location": "node_modules/side-channel-list",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "side-channel-map",
+      "version": "1.0.1",
+      "installations": [
+        {
+          "location": "node_modules/side-channel-map",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "side-channel-weakmap",
+      "version": "1.0.2",
+      "installations": [
+        {
+          "location": "node_modules/side-channel-weakmap",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "standardwebhooks",
+      "version": "1.1.1",
+      "installations": [
+        {
+          "location": "node_modules/standardwebhooks",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "statuses",
+      "version": "2.0.2",
+      "installations": [
+        {
+          "location": "node_modules/statuses",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "toidentifier",
+      "version": "1.0.1",
+      "installations": [
+        {
+          "location": "node_modules/toidentifier",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ts-algebra",
+      "version": "2.0.0",
+      "installations": [
+        {
+          "location": "node_modules/ts-algebra",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "tslib",
+      "version": "2.8.1",
+      "installations": [
+        {
+          "location": "node_modules/tslib",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "turndown",
+      "version": "7.2.4",
+      "installations": [
+        {
+          "location": "node_modules/turndown",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "type-is",
+      "version": "2.1.0",
+      "installations": [
+        {
+          "location": "node_modules/type-is",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "typebox",
+      "version": "1.3.7",
+      "installations": [
+        {
+          "location": "node_modules/typebox",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "undici",
+      "version": "8.10.2",
+      "installations": [
+        {
+          "location": "node_modules/undici",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "undici-types",
+      "version": "6.21.0",
+      "installations": [
+        {
+          "location": "node_modules/undici-types",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "unpipe",
+      "version": "1.0.0",
+      "installations": [
+        {
+          "location": "node_modules/unpipe",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "vary",
+      "version": "1.1.2",
+      "installations": [
+        {
+          "location": "node_modules/vary",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "web-streams-polyfill",
+      "version": "3.3.3",
+      "installations": [
+        {
+          "location": "node_modules/web-streams-polyfill",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "which",
+      "version": "2.0.2",
+      "installations": [
+        {
+          "location": "node_modules/which",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "wrappy",
+      "version": "1.0.2",
+      "installations": [
+        {
+          "location": "node_modules/wrappy",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "ws",
+      "version": "8.21.3",
+      "installations": [
+        {
+          "location": "node_modules/ws",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "wsl-utils",
+      "version": "1.0.0",
+      "installations": [
+        {
+          "location": "node_modules/wsl-utils",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "yaml",
+      "version": "2.9.1",
+      "installations": [
+        {
+          "location": "node_modules/yaml",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "zod",
+      "version": "4.6.2",
+      "installations": [
+        {
+          "location": "node_modules/zod",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    },
+    {
+      "name": "zod-to-json-schema",
+      "version": "3.25.2",
+      "installations": [
+        {
+          "location": "node_modules/zod-to-json-schema",
+          "direct": false,
+          "optional": false,
+          "peer": false
+        }
+      ]
+    }
+  ]
+}

+ 0 - 650
docs/dependency-catalog.md

@@ -1,650 +0,0 @@
-<!-- Generated by scripts/gen-dependency-catalog.ts. Do not edit by hand. -->
-
-# Dependency catalog
-
-English | [中文](dependency-catalog.zh.md)
-
-## Summary
-
-Look up the direct and transitive dependencies of `@deepseek-ai/dsh` installed by the [README npm command](../README.md). The recorded npm `latest` release is **0.1.5-rc.1**; there are 581 dependency locations representing 561 distinct package/version pairs.
-
-## Table of Contents
-
-- [Scope](#scope)
-- [Direct dependencies](#direct-dependencies)
-- [Transitive dependencies](#transitive-dependencies)
-- [Regeneration](#regeneration)
-
-<a id="scope"></a>
-
-## Scope
-
-```sh
-npx @deepseek-ai/dsh web
-```
-
-Captured: `2026-09-12T08:31:20.812Z`. Resolver: npm `11.17.0`, Node.js `24.19.0`, `darwin/arm64`. Registry: https://registry.npmjs.org/
-
-This record resolves published packages in an empty npm consumer, including required dependencies, automatically installed peers, and optional dependency candidates. The `web` argument selects a launch mode; it does not narrow the CLI installation. Repository development dependencies and unreferenced workspace packages are outside this scope.
-
-Optional entries appear only when their platform matches and installation succeeds; dependencies reached through optional parents can also be omitted. The platform column shows each package’s own `os`, `cpu`, and `libc` declarations; `—` means no restriction declared by that package. Repeated rows retain identical package versions installed at different locations. This catalog comes from a lockfile-only resolution and does not verify install scripts or additional files they download.
-
-This is a dated resolution: npm tags, version ranges, npm/Node.js versions, platform, configuration, and existing local installations or caches can change the actual result. Normal generation and CI checks use the committed record; only the refresh command queries the registry. See the [npx documentation](https://docs.npmjs.com/cli/v11/commands/npx/) and [npm lockfile documentation](https://docs.npmjs.com/cli/v11/configuring-npm/package-lock-json/).
-
-<a id="direct-dependencies"></a>
-
-## Direct dependencies
-
-72 locations are referenced directly by the published CLI dependency fields.
-
-| Package | Resolved version | Installation | Declared platform restrictions |
-| --- | --- | --- | --- |
-| [`@deepseek-ai/cordis`](https://www.npmjs.com/package/@deepseek-ai/cordis/v/4.0.2) | `4.0.2` | Required | — |
-| [`@deepseek-ai/cordis-plugin-hmr`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-hmr/v/1.0.17) | `1.0.17` | Required | — |
-| [`@deepseek-ai/cordis-plugin-include`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-include/v/1.0.7) | `1.0.7` | Required | — |
-| [`@deepseek-ai/cordis-plugin-loader`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-loader/v/1.0.3) | `1.0.3` | Required | — |
-| [`@deepseek-ai/cordis-plugin-timer`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-timer/v/1.1.4) | `1.1.4` | Required | — |
-| [`@deepseek-ai/dsh-acp-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-acp-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-agent-instructions`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-instructions/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-agent-tool-presentation`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-tool-presentation/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-app-boot`](https://www.npmjs.com/package/@deepseek-ai/dsh-app-boot/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-base`](https://www.npmjs.com/package/@deepseek-ai/dsh-base/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-agent-preset`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-agent-preset/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-cordis`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-cordis/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-cmdline`](https://www.npmjs.com/package/@deepseek-ai/dsh-cmdline/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-command-compact`](https://www.npmjs.com/package/@deepseek-ai/dsh-command-compact/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-command-goal`](https://www.npmjs.com/package/@deepseek-ai/dsh-command-goal/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-compaction-basic`](https://www.npmjs.com/package/@deepseek-ai/dsh-compaction-basic/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-compaction-tool-result-pruner`](https://www.npmjs.com/package/@deepseek-ai/dsh-compaction-tool-result-pruner/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-cordis-client-runner`](https://www.npmjs.com/package/@deepseek-ai/dsh-cordis-client-runner/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-fs-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-fs-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-goal`](https://www.npmjs.com/package/@deepseek-ai/dsh-goal/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-goal-round-driver`](https://www.npmjs.com/package/@deepseek-ai/dsh-goal-round-driver/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-headless`](https://www.npmjs.com/package/@deepseek-ai/dsh-headless/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-home-paths`](https://www.npmjs.com/package/@deepseek-ai/dsh-home-paths/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-hooks-claude-code`](https://www.npmjs.com/package/@deepseek-ai/dsh-hooks-claude-code/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-hooks-codex`](https://www.npmjs.com/package/@deepseek-ai/dsh-hooks-codex/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-http-proxy`](https://www.npmjs.com/package/@deepseek-ai/dsh-http-proxy/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-jobs-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-jobs-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-launch-environment`](https://www.npmjs.com/package/@deepseek-ai/dsh-launch-environment/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-mcp-client`](https://www.npmjs.com/package/@deepseek-ai/dsh-mcp-client/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-persona`](https://www.npmjs.com/package/@deepseek-ai/dsh-persona/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-plan-mode`](https://www.npmjs.com/package/@deepseek-ai/dsh-plan-mode/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-pwsh-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-pwsh-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-pwsh-sandbox`](https://www.npmjs.com/package/@deepseek-ai/dsh-pwsh-sandbox/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-schedule`](https://www.npmjs.com/package/@deepseek-ai/dsh-schedule/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-sdk-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-sdk-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-sdk-minimal`](https://www.npmjs.com/package/@deepseek-ai/dsh-sdk-minimal/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-projection`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-projection/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-reference`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-reference/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-skill`](https://www.npmjs.com/package/@deepseek-ai/dsh-skill/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-skill-filesystem`](https://www.npmjs.com/package/@deepseek-ai/dsh-skill-filesystem/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-terminal`](https://www.npmjs.com/package/@deepseek-ai/dsh-terminal/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-terminal-bash`](https://www.npmjs.com/package/@deepseek-ai/dsh-terminal-bash/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-time-context`](https://www.npmjs.com/package/@deepseek-ai/dsh-time-context/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tmux-context`](https://www.npmjs.com/package/@deepseek-ai/dsh-tmux-context/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-token-meter`](https://www.npmjs.com/package/@deepseek-ai/dsh-token-meter/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-ask-user`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-ask-user/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-bash`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-bash/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-bash-persistent`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-bash-persistent/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-cordis`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-cordis/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-fs`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-fs/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-fs-search`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-fs-search/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-goal`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-goal/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-jobs`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-jobs/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-present`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-present/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-pwsh`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-pwsh/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-pwsh-persistent`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-pwsh-persistent/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-ralph`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-ralph/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-skill`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-skill/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-str-replace-editor`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-str-replace-editor/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-subagent`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-subagent/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-subagent-control`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-subagent-control/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-todo`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-todo/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-web`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-web/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-workflow`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-workflow/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-web-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-web-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-webhook`](https://www.npmjs.com/package/@deepseek-ai/dsh-webhook/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-webhook-github`](https://www.npmjs.com/package/@deepseek-ai/dsh-webhook-github/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-workflow-worker-thread`](https://www.npmjs.com/package/@deepseek-ai/dsh-workflow-worker-thread/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/schemastery`](https://www.npmjs.com/package/@deepseek-ai/schemastery/v/3.18.2) | `3.18.2` | Required | — |
-| [`commander`](https://www.npmjs.com/package/commander/v/15.0.0) | `15.0.0` | Required | — |
-| [`js-yaml`](https://www.npmjs.com/package/js-yaml/v/4.3.2) | `4.3.2` | Required | — |
-| [`node-addon-require-builtin`](https://www.npmjs.com/package/node-addon-require-builtin/v/0.1.5) | `0.1.5` | Required | — |
-
-<a id="transitive-dependencies"></a>
-
-## Transitive dependencies
-
-509 further locations are brought in by the dependency tree.
-
-| Package | Resolved version | Installation | Declared platform restrictions |
-| --- | --- | --- | --- |
-| [`@agentclientprotocol/sdk`](https://www.npmjs.com/package/@agentclientprotocol/sdk/v/1.4.0) | `1.4.0` | Required | — |
-| [`@anthropic-ai/sdk`](https://www.npmjs.com/package/@anthropic-ai/sdk/v/0.123.0) | `0.123.0` | Required | — |
-| [`@aws-crypto/sha256-browser`](https://www.npmjs.com/package/@aws-crypto/sha256-browser/v/5.2.0) | `5.2.0` | Required | — |
-| [`@aws-crypto/sha256-js`](https://www.npmjs.com/package/@aws-crypto/sha256-js/v/5.2.0) | `5.2.0` | Required | — |
-| [`@aws-crypto/supports-web-crypto`](https://www.npmjs.com/package/@aws-crypto/supports-web-crypto/v/5.2.0) | `5.2.0` | Required | — |
-| [`@aws-crypto/util`](https://www.npmjs.com/package/@aws-crypto/util/v/5.2.0) | `5.2.0` | Required | — |
-| [`@aws-sdk/client-bedrock-runtime`](https://www.npmjs.com/package/@aws-sdk/client-bedrock-runtime/v/3.1048.0) | `3.1048.0` | Required | — |
-| [`@aws-sdk/core`](https://www.npmjs.com/package/@aws-sdk/core/v/3.978.0) | `3.978.0` | Required | — |
-| [`@aws-sdk/credential-provider-env`](https://www.npmjs.com/package/@aws-sdk/credential-provider-env/v/3.972.71) | `3.972.71` | Required | — |
-| [`@aws-sdk/credential-provider-http`](https://www.npmjs.com/package/@aws-sdk/credential-provider-http/v/3.972.73) | `3.972.73` | Required | — |
-| [`@aws-sdk/credential-provider-ini`](https://www.npmjs.com/package/@aws-sdk/credential-provider-ini/v/3.973.16) | `3.973.16` | Required | — |
-| [`@aws-sdk/credential-provider-login`](https://www.npmjs.com/package/@aws-sdk/credential-provider-login/v/3.972.78) | `3.972.78` | Required | — |
-| [`@aws-sdk/credential-provider-node`](https://www.npmjs.com/package/@aws-sdk/credential-provider-node/v/3.972.83) | `3.972.83` | Required | — |
-| [`@aws-sdk/credential-provider-process`](https://www.npmjs.com/package/@aws-sdk/credential-provider-process/v/3.972.71) | `3.972.71` | Required | — |
-| [`@aws-sdk/credential-provider-sso`](https://www.npmjs.com/package/@aws-sdk/credential-provider-sso/v/3.973.15) | `3.973.15` | Required | — |
-| [`@aws-sdk/credential-provider-web-identity`](https://www.npmjs.com/package/@aws-sdk/credential-provider-web-identity/v/3.972.77) | `3.972.77` | Required | — |
-| [`@aws-sdk/eventstream-handler-node`](https://www.npmjs.com/package/@aws-sdk/eventstream-handler-node/v/3.972.34) | `3.972.34` | Required | — |
-| [`@aws-sdk/middleware-eventstream`](https://www.npmjs.com/package/@aws-sdk/middleware-eventstream/v/3.972.29) | `3.972.29` | Required | — |
-| [`@aws-sdk/middleware-websocket`](https://www.npmjs.com/package/@aws-sdk/middleware-websocket/v/3.972.53) | `3.972.53` | Required | — |
-| [`@aws-sdk/nested-clients`](https://www.npmjs.com/package/@aws-sdk/nested-clients/v/3.997.45) | `3.997.45` | Required | — |
-| [`@aws-sdk/signature-v4-multi-region`](https://www.npmjs.com/package/@aws-sdk/signature-v4-multi-region/v/3.996.46) | `3.996.46` | Required | — |
-| [`@aws-sdk/token-providers`](https://www.npmjs.com/package/@aws-sdk/token-providers/v/3.1048.0) | `3.1048.0` | Required | — |
-| [`@aws-sdk/token-providers`](https://www.npmjs.com/package/@aws-sdk/token-providers/v/3.1129.0) | `3.1129.0` | Required | — |
-| [`@aws-sdk/types`](https://www.npmjs.com/package/@aws-sdk/types/v/3.974.5) | `3.974.5` | Required | — |
-| [`@aws-sdk/util-locate-window`](https://www.npmjs.com/package/@aws-sdk/util-locate-window/v/3.965.10) | `3.965.10` | Required | — |
-| [`@aws-sdk/xml-builder`](https://www.npmjs.com/package/@aws-sdk/xml-builder/v/3.972.40) | `3.972.40` | Required | — |
-| [`@aws/lambda-invoke-store`](https://www.npmjs.com/package/@aws/lambda-invoke-store/v/0.3.0) | `0.3.0` | Required | — |
-| [`@babel/code-frame`](https://www.npmjs.com/package/@babel/code-frame/v/7.29.7) | `7.29.7` | Required | — |
-| [`@babel/helper-validator-identifier`](https://www.npmjs.com/package/@babel/helper-validator-identifier/v/7.29.7) | `7.29.7` | Required | — |
-| [`@babel/runtime`](https://www.npmjs.com/package/@babel/runtime/v/7.29.7) | `7.29.7` | Required | — |
-| [`@deepseek-ai/cordis-plugin-group`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-group/v/1.0.2) | `1.0.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/cosmokit`](https://www.npmjs.com/package/@deepseek-ai/cosmokit/v/1.8.3) | `1.8.3` | Required | — |
-| [`@deepseek-ai/dsh-acp`](https://www.npmjs.com/package/@deepseek-ai/dsh-acp/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-agent`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-agent-default-model`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-default-model/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-agent-loop`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-loop/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-agent-presets`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-presets/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-anonymous-user-id`](https://www.npmjs.com/package/@deepseek-ai/dsh-anonymous-user-id/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-api-gateway`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-gateway/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-api-remotes`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-remotes/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-api-session-controller`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-session-controller/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-api-settings-controller`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-settings-controller/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-api-workspace-controller`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-workspace-controller/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-api-workspace-files`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-workspace-files/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-atomic-write`](https://www.npmjs.com/package/@deepseek-ai/dsh-atomic-write/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-attachment`](https://www.npmjs.com/package/@deepseek-ai/dsh-attachment/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-attachment-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-attachment-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-authorization`](https://www.npmjs.com/package/@deepseek-ai/dsh-authorization/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-bash-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-bash-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-bash-sandbox`](https://www.npmjs.com/package/@deepseek-ai/dsh-bash-sandbox/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-brand`](https://www.npmjs.com/package/@deepseek-ai/dsh-brand/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-chunked-list`](https://www.npmjs.com/package/@deepseek-ai/dsh-chunked-list/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-connection`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-connection/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-file-upload`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-file-upload/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-hmr`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-hmr/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-locale`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-locale/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-modules`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-modules/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-resources`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-resources/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-approval`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-approval/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-attachment`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-attachment/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-brand-official`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-brand-official/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-chat`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-chat/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-commands`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-commands/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-conversation`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-conversation/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-deliverables`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-deliverables/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-directory-picker-browse`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-directory-picker-browse/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-directory-picker-native`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-directory-picker-native/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-goal`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-goal/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-input-trigger`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-input-trigger/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-jobs`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-jobs/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-layout`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-layout/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-message-feedback`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-message-feedback/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-model-selection`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-model-selection/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-open-in-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-open-in-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-permission-presets`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-permission-presets/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-plan`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-plan/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-reference`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-reference/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-renderer`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-renderer/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-schedule`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-schedule/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-session`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-session/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-settings`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-settings-general`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings-general/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-settings-models`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings-models/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-settings-plugin-inventory`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-settings-plugins`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings-plugins/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-sidebar`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-sidebar/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-sidebar-documentpreview`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-sidebar-files`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-sidebar-files/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-sidebar-right`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-sidebar-right/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-skill`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-skill/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-subagent`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-subagent/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-theme`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-theme/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-tool`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-tool/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-trajectory`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-trajectory/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-user-questions`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-user-questions/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-workflow-run`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-workflow-run/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-client-ui-workspace`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-workspace/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-code-runtime`](https://www.npmjs.com/package/@deepseek-ai/dsh-code-runtime/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-code-runtime-worker-thread`](https://www.npmjs.com/package/@deepseek-ai/dsh-code-runtime-worker-thread/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-command-feedback`](https://www.npmjs.com/package/@deepseek-ai/dsh-command-feedback/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-commands`](https://www.npmjs.com/package/@deepseek-ai/dsh-commands/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-compaction`](https://www.npmjs.com/package/@deepseek-ai/dsh-compaction/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-cordis-host-runner`](https://www.npmjs.com/package/@deepseek-ai/dsh-cordis-host-runner/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-credentials`](https://www.npmjs.com/package/@deepseek-ai/dsh-credentials/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-credentials-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-credentials-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-deepseek-llm-api-extensions`](https://www.npmjs.com/package/@deepseek-ai/dsh-deepseek-llm-api-extensions/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-deque`](https://www.npmjs.com/package/@deepseek-ai/dsh-deque/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-file-reference`](https://www.npmjs.com/package/@deepseek-ai/dsh-file-reference/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-file-reference-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-file-reference-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-fs`](https://www.npmjs.com/package/@deepseek-ai/dsh-fs/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-fs-observation-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-fs-observation-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-fs-sandbox`](https://www.npmjs.com/package/@deepseek-ai/dsh-fs-sandbox/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-hook-protocol`](https://www.npmjs.com/package/@deepseek-ai/dsh-hook-protocol/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-host-directory-picker`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-directory-picker/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-host-directory-picker-auto`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-directory-picker-auto/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-host-directory-picker-browse`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-directory-picker-browse/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-host-directory-picker-native`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-directory-picker-native/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-host-frontend-static`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-frontend-static/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-host-open-in-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-open-in-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-host-plugin-inventory`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-plugin-inventory/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-host-webserver`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-webserver/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-invariants`](https://www.npmjs.com/package/@deepseek-ai/dsh-invariants/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-jobs`](https://www.npmjs.com/package/@deepseek-ai/dsh-jobs/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-llm`](https://www.npmjs.com/package/@deepseek-ai/dsh-llm/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-llm-deepseek`](https://www.npmjs.com/package/@deepseek-ai/dsh-llm-deepseek/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-llm-pi-ai`](https://www.npmjs.com/package/@deepseek-ai/dsh-llm-pi-ai/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-llm-retry`](https://www.npmjs.com/package/@deepseek-ai/dsh-llm-retry/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-message-feedback`](https://www.npmjs.com/package/@deepseek-ai/dsh-message-feedback/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-native-command`](https://www.npmjs.com/package/@deepseek-ai/dsh-native-command/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-output-retention`](https://www.npmjs.com/package/@deepseek-ai/dsh-output-retention/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-package-manifest`](https://www.npmjs.com/package/@deepseek-ai/dsh-package-manifest/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-permission-presets`](https://www.npmjs.com/package/@deepseek-ai/dsh-permission-presets/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-plugin-package-inventory-deepseek`](https://www.npmjs.com/package/@deepseek-ai/dsh-plugin-package-inventory-deepseek/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-repeat-tool-reminder`](https://www.npmjs.com/package/@deepseek-ai/dsh-repeat-tool-reminder/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-sandbox`](https://www.npmjs.com/package/@deepseek-ai/dsh-sandbox/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-sandbox-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-sandbox-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-sandbox-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-sandbox-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-sandbox-windows-acl`](https://www.npmjs.com/package/@deepseek-ai/dsh-sandbox-windows-acl/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-scope`](https://www.npmjs.com/package/@deepseek-ai/dsh-scope/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-sdk-jsonrpc-server`](https://www.npmjs.com/package/@deepseek-ai/dsh-sdk-jsonrpc-server/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-sdk-protocol`](https://www.npmjs.com/package/@deepseek-ai/dsh-sdk-protocol/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-session`](https://www.npmjs.com/package/@deepseek-ai/dsh-session/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-checkpoint-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-checkpoint-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-format`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-format-catalog`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format-catalog/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-format-v0-to-v1`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format-v0-to-v1/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-format-v1-to-v2`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format-v1-to-v2/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-format-v2-to-v3`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format-v2-to-v3/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-log-deepseek`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-log-deepseek/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-log-export`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-log-export/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-persistence`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-persistence/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-session-persistence-jsonl`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-persistence-jsonl/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-projection-cache`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-projection-cache/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-query`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-query/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-session-query-sqlite`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-query-sqlite/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-stats`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-stats/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-telemetry`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-telemetry/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-session-telemetry-otel`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-telemetry-otel/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-title`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-title/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-title-first-prompt-llm`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-title-first-prompt-llm/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-session-title-llm`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-title-llm/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-session-turn-outline`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-turn-outline/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-settings`](https://www.npmjs.com/package/@deepseek-ai/dsh-settings/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-settings-file`](https://www.npmjs.com/package/@deepseek-ai/dsh-settings-file/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-shell`](https://www.npmjs.com/package/@deepseek-ai/dsh-shell/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-shell-env`](https://www.npmjs.com/package/@deepseek-ai/dsh-shell-env/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-skill-badge`](https://www.npmjs.com/package/@deepseek-ai/dsh-skill-badge/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-spill`](https://www.npmjs.com/package/@deepseek-ai/dsh-spill/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-spill-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-spill-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-spill-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-spill-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-storage`](https://www.npmjs.com/package/@deepseek-ai/dsh-storage/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-storage-domain`](https://www.npmjs.com/package/@deepseek-ai/dsh-storage-domain/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-storage-json`](https://www.npmjs.com/package/@deepseek-ai/dsh-storage-json/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-subagent`](https://www.npmjs.com/package/@deepseek-ai/dsh-subagent/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-subagent-fork-in-process`](https://www.npmjs.com/package/@deepseek-ai/dsh-subagent-fork-in-process/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-subagent-in-process-driver`](https://www.npmjs.com/package/@deepseek-ai/dsh-subagent-in-process-driver/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-subagent-spawn-in-process`](https://www.npmjs.com/package/@deepseek-ai/dsh-subagent-spawn-in-process/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-subprocess`](https://www.npmjs.com/package/@deepseek-ai/dsh-subprocess/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-subprocess-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-subprocess-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-system-prompt`](https://www.npmjs.com/package/@deepseek-ai/dsh-system-prompt/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-timeout`](https://www.npmjs.com/package/@deepseek-ai/dsh-timeout/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tool-call-timeout-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-call-timeout-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-tools`](https://www.npmjs.com/package/@deepseek-ai/dsh-tools/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-typert-loader`](https://www.npmjs.com/package/@deepseek-ai/dsh-typert-loader/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-typert-protocol`](https://www.npmjs.com/package/@deepseek-ai/dsh-typert-protocol/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-typert-registry`](https://www.npmjs.com/package/@deepseek-ai/dsh-typert-registry/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-user-approval`](https://www.npmjs.com/package/@deepseek-ai/dsh-user-approval/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-user-questions`](https://www.npmjs.com/package/@deepseek-ai/dsh-user-questions/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-util-crypto`](https://www.npmjs.com/package/@deepseek-ai/dsh-util-crypto/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-util-time`](https://www.npmjs.com/package/@deepseek-ai/dsh-util-time/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-util-values`](https://www.npmjs.com/package/@deepseek-ai/dsh-util-values/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-util-workspace-path`](https://www.npmjs.com/package/@deepseek-ai/dsh-util-workspace-path/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-web`](https://www.npmjs.com/package/@deepseek-ai/dsh-web/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-web-fetch-http`](https://www.npmjs.com/package/@deepseek-ai/dsh-web-fetch-http/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-web-frontend`](https://www.npmjs.com/package/@deepseek-ai/dsh-web-frontend/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-web-search-deepseek`](https://www.npmjs.com/package/@deepseek-ai/dsh-web-search-deepseek/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-win32-process`](https://www.npmjs.com/package/@deepseek-ai/dsh-win32-process/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/dsh-workflow`](https://www.npmjs.com/package/@deepseek-ai/dsh-workflow/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required; Auto-installed peer | — |
-| [`@deepseek-ai/dsh-workspace`](https://www.npmjs.com/package/@deepseek-ai/dsh-workspace/v/0.1.5-rc.2) | `0.1.5-rc.2` | Required | — |
-| [`@deepseek-ai/node-addon-system`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system/v/0.1.2) | `0.1.2` | Required | — |
-| [`@deepseek-ai/node-addon-system-darwin-arm64`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system-darwin-arm64/v/0.1.2) | `0.1.2` | Optional | os: darwin; cpu: arm64 |
-| [`@deepseek-ai/node-addon-system-darwin-x64`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system-darwin-x64/v/0.1.2) | `0.1.2` | Optional | os: darwin; cpu: x64 |
-| [`@deepseek-ai/node-addon-system-linux-arm64`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system-linux-arm64/v/0.1.2) | `0.1.2` | Optional | os: linux; cpu: arm64 |
-| [`@deepseek-ai/node-addon-system-linux-x64`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system-linux-x64/v/0.1.2) | `0.1.2` | Optional | os: linux; cpu: x64 |
-| [`@earendil-works/pi-ai`](https://www.npmjs.com/package/@earendil-works/pi-ai/v/0.85.1) | `0.85.1` | Required | — |
-| [`@earendil-works/pi-telemetry`](https://www.npmjs.com/package/@earendil-works/pi-telemetry/v/0.85.1) | `0.85.1` | Required | — |
-| [`@emnapi/runtime`](https://www.npmjs.com/package/@emnapi/runtime/v/1.11.3) | `1.11.3` | Optional | — |
-| [`@google/genai`](https://www.npmjs.com/package/@google/genai/v/1.52.0) | `1.52.0` | Required | — |
-| [`@hono/node-server`](https://www.npmjs.com/package/@hono/node-server/v/2.1.1) | `2.1.1` | Required | — |
-| [`@img/colour`](https://www.npmjs.com/package/@img/colour/v/1.1.0) | `1.1.0` | Required | — |
-| [`@img/sharp-darwin-arm64`](https://www.npmjs.com/package/@img/sharp-darwin-arm64/v/0.35.4) | `0.35.4` | Optional | os: darwin; cpu: arm64 |
-| [`@img/sharp-darwin-x64`](https://www.npmjs.com/package/@img/sharp-darwin-x64/v/0.35.4) | `0.35.4` | Optional | os: darwin; cpu: x64 |
-| [`@img/sharp-freebsd-wasm32`](https://www.npmjs.com/package/@img/sharp-freebsd-wasm32/v/0.35.4) | `0.35.4` | Optional | os: freebsd |
-| [`@img/sharp-libvips-darwin-arm64`](https://www.npmjs.com/package/@img/sharp-libvips-darwin-arm64/v/1.3.3) | `1.3.3` | Optional | os: darwin; cpu: arm64 |
-| [`@img/sharp-libvips-darwin-x64`](https://www.npmjs.com/package/@img/sharp-libvips-darwin-x64/v/1.3.3) | `1.3.3` | Optional | os: darwin; cpu: x64 |
-| [`@img/sharp-libvips-linux-arm`](https://www.npmjs.com/package/@img/sharp-libvips-linux-arm/v/1.3.3) | `1.3.3` | Optional | os: linux; cpu: arm; libc: glibc |
-| [`@img/sharp-libvips-linux-arm64`](https://www.npmjs.com/package/@img/sharp-libvips-linux-arm64/v/1.3.3) | `1.3.3` | Optional | os: linux; cpu: arm64; libc: glibc |
-| [`@img/sharp-libvips-linux-ppc64`](https://www.npmjs.com/package/@img/sharp-libvips-linux-ppc64/v/1.3.3) | `1.3.3` | Optional | os: linux; cpu: ppc64; libc: glibc |
-| [`@img/sharp-libvips-linux-riscv64`](https://www.npmjs.com/package/@img/sharp-libvips-linux-riscv64/v/1.3.3) | `1.3.3` | Optional | os: linux; cpu: riscv64; libc: glibc |
-| [`@img/sharp-libvips-linux-s390x`](https://www.npmjs.com/package/@img/sharp-libvips-linux-s390x/v/1.3.3) | `1.3.3` | Optional | os: linux; cpu: s390x; libc: glibc |
-| [`@img/sharp-libvips-linux-x64`](https://www.npmjs.com/package/@img/sharp-libvips-linux-x64/v/1.3.3) | `1.3.3` | Optional | os: linux; cpu: x64; libc: glibc |
-| [`@img/sharp-libvips-linuxmusl-arm64`](https://www.npmjs.com/package/@img/sharp-libvips-linuxmusl-arm64/v/1.3.3) | `1.3.3` | Optional | os: linux; cpu: arm64; libc: musl |
-| [`@img/sharp-libvips-linuxmusl-x64`](https://www.npmjs.com/package/@img/sharp-libvips-linuxmusl-x64/v/1.3.3) | `1.3.3` | Optional | os: linux; cpu: x64; libc: musl |
-| [`@img/sharp-linux-arm`](https://www.npmjs.com/package/@img/sharp-linux-arm/v/0.35.4) | `0.35.4` | Optional | os: linux; cpu: arm; libc: glibc |
-| [`@img/sharp-linux-arm64`](https://www.npmjs.com/package/@img/sharp-linux-arm64/v/0.35.4) | `0.35.4` | Optional | os: linux; cpu: arm64; libc: glibc |
-| [`@img/sharp-linux-ppc64`](https://www.npmjs.com/package/@img/sharp-linux-ppc64/v/0.35.4) | `0.35.4` | Optional | os: linux; cpu: ppc64; libc: glibc |
-| [`@img/sharp-linux-riscv64`](https://www.npmjs.com/package/@img/sharp-linux-riscv64/v/0.35.4) | `0.35.4` | Optional | os: linux; cpu: riscv64; libc: glibc |
-| [`@img/sharp-linux-s390x`](https://www.npmjs.com/package/@img/sharp-linux-s390x/v/0.35.4) | `0.35.4` | Optional | os: linux; cpu: s390x; libc: glibc |
-| [`@img/sharp-linux-x64`](https://www.npmjs.com/package/@img/sharp-linux-x64/v/0.35.4) | `0.35.4` | Optional | os: linux; cpu: x64; libc: glibc |
-| [`@img/sharp-linuxmusl-arm64`](https://www.npmjs.com/package/@img/sharp-linuxmusl-arm64/v/0.35.4) | `0.35.4` | Optional | os: linux; cpu: arm64; libc: musl |
-| [`@img/sharp-linuxmusl-x64`](https://www.npmjs.com/package/@img/sharp-linuxmusl-x64/v/0.35.4) | `0.35.4` | Optional | os: linux; cpu: x64; libc: musl |
-| [`@img/sharp-wasm32`](https://www.npmjs.com/package/@img/sharp-wasm32/v/0.35.4) | `0.35.4` | Optional | — |
-| [`@img/sharp-webcontainers-wasm32`](https://www.npmjs.com/package/@img/sharp-webcontainers-wasm32/v/0.35.4) | `0.35.4` | Optional | cpu: wasm32 |
-| [`@img/sharp-win32-arm64`](https://www.npmjs.com/package/@img/sharp-win32-arm64/v/0.35.4) | `0.35.4` | Optional | os: win32; cpu: arm64 |
-| [`@img/sharp-win32-ia32`](https://www.npmjs.com/package/@img/sharp-win32-ia32/v/0.35.4) | `0.35.4` | Optional | os: win32; cpu: ia32 |
-| [`@img/sharp-win32-x64`](https://www.npmjs.com/package/@img/sharp-win32-x64/v/0.35.4) | `0.35.4` | Optional | os: win32; cpu: x64 |
-| [`@joplin/turndown-plugin-gfm`](https://www.npmjs.com/package/@joplin/turndown-plugin-gfm/v/1.0.68) | `1.0.68` | Required | — |
-| [`@koromix/koffi-android-arm64`](https://www.npmjs.com/package/@koromix/koffi-android-arm64/v/3.2.1) | `3.2.1` | Optional | os: android; cpu: arm64 |
-| [`@koromix/koffi-android-x64`](https://www.npmjs.com/package/@koromix/koffi-android-x64/v/3.2.1) | `3.2.1` | Optional | os: android; cpu: x64 |
-| [`@koromix/koffi-darwin-arm64`](https://www.npmjs.com/package/@koromix/koffi-darwin-arm64/v/3.2.1) | `3.2.1` | Optional | os: darwin; cpu: arm64 |
-| [`@koromix/koffi-darwin-x64`](https://www.npmjs.com/package/@koromix/koffi-darwin-x64/v/3.2.1) | `3.2.1` | Optional | os: darwin; cpu: x64 |
-| [`@koromix/koffi-freebsd-arm64`](https://www.npmjs.com/package/@koromix/koffi-freebsd-arm64/v/3.2.1) | `3.2.1` | Optional | os: freebsd; cpu: arm64 |
-| [`@koromix/koffi-freebsd-ia32`](https://www.npmjs.com/package/@koromix/koffi-freebsd-ia32/v/3.2.1) | `3.2.1` | Optional | os: freebsd; cpu: ia32 |
-| [`@koromix/koffi-freebsd-x64`](https://www.npmjs.com/package/@koromix/koffi-freebsd-x64/v/3.2.1) | `3.2.1` | Optional | os: freebsd; cpu: x64 |
-| [`@koromix/koffi-linux-arm`](https://www.npmjs.com/package/@koromix/koffi-linux-arm/v/3.2.1) | `3.2.1` | Optional | os: linux; cpu: arm |
-| [`@koromix/koffi-linux-arm64`](https://www.npmjs.com/package/@koromix/koffi-linux-arm64/v/3.2.1) | `3.2.1` | Optional | os: linux; cpu: arm64 |
-| [`@koromix/koffi-linux-ia32`](https://www.npmjs.com/package/@koromix/koffi-linux-ia32/v/3.2.1) | `3.2.1` | Optional | os: linux; cpu: ia32 |
-| [`@koromix/koffi-linux-loong64`](https://www.npmjs.com/package/@koromix/koffi-linux-loong64/v/3.2.1) | `3.2.1` | Optional | os: linux; cpu: loong64 |
-| [`@koromix/koffi-linux-riscv64`](https://www.npmjs.com/package/@koromix/koffi-linux-riscv64/v/3.2.1) | `3.2.1` | Optional | os: linux; cpu: riscv64 |
-| [`@koromix/koffi-linux-x64`](https://www.npmjs.com/package/@koromix/koffi-linux-x64/v/3.2.1) | `3.2.1` | Optional | os: linux; cpu: x64 |
-| [`@koromix/koffi-openbsd-ia32`](https://www.npmjs.com/package/@koromix/koffi-openbsd-ia32/v/3.2.1) | `3.2.1` | Optional | os: openbsd; cpu: ia32 |
-| [`@koromix/koffi-openbsd-x64`](https://www.npmjs.com/package/@koromix/koffi-openbsd-x64/v/3.2.1) | `3.2.1` | Optional | os: openbsd; cpu: x64 |
-| [`@koromix/koffi-win32-arm64`](https://www.npmjs.com/package/@koromix/koffi-win32-arm64/v/3.2.1) | `3.2.1` | Optional | os: win32; cpu: arm64 |
-| [`@koromix/koffi-win32-ia32`](https://www.npmjs.com/package/@koromix/koffi-win32-ia32/v/3.2.1) | `3.2.1` | Optional | os: win32; cpu: ia32 |
-| [`@koromix/koffi-win32-x64`](https://www.npmjs.com/package/@koromix/koffi-win32-x64/v/3.2.1) | `3.2.1` | Optional | os: win32; cpu: x64 |
-| [`@mixmark-io/domino`](https://www.npmjs.com/package/@mixmark-io/domino/v/2.2.0) | `2.2.0` | Required | — |
-| [`@modelcontextprotocol/sdk`](https://www.npmjs.com/package/@modelcontextprotocol/sdk/v/1.30.0) | `1.30.0` | Required | — |
-| [`@octokit/openapi-types`](https://www.npmjs.com/package/@octokit/openapi-types/v/29.0.1) | `29.0.1` | Required | — |
-| [`@octokit/openapi-webhooks-types`](https://www.npmjs.com/package/@octokit/openapi-webhooks-types/v/12.1.0) | `12.1.0` | Required | — |
-| [`@octokit/request-error`](https://www.npmjs.com/package/@octokit/request-error/v/7.1.2) | `7.1.2` | Required | — |
-| [`@octokit/types`](https://www.npmjs.com/package/@octokit/types/v/18.0.0) | `18.0.0` | Required | — |
-| [`@octokit/webhooks`](https://www.npmjs.com/package/@octokit/webhooks/v/14.2.0) | `14.2.0` | Required | — |
-| [`@octokit/webhooks-methods`](https://www.npmjs.com/package/@octokit/webhooks-methods/v/6.0.0) | `6.0.0` | Required | — |
-| [`@opentelemetry/api`](https://www.npmjs.com/package/@opentelemetry/api/v/1.9.1) | `1.9.1` | Required | — |
-| [`@opentelemetry/api-logs`](https://www.npmjs.com/package/@opentelemetry/api-logs/v/0.220.0) | `0.220.0` | Required | — |
-| [`@opentelemetry/core`](https://www.npmjs.com/package/@opentelemetry/core/v/2.11.0) | `2.11.0` | Required | — |
-| [`@opentelemetry/core`](https://www.npmjs.com/package/@opentelemetry/core/v/2.9.0) | `2.9.0` | Required | — |
-| [`@opentelemetry/exporter-logs-otlp-http`](https://www.npmjs.com/package/@opentelemetry/exporter-logs-otlp-http/v/0.220.0) | `0.220.0` | Required | — |
-| [`@opentelemetry/otlp-exporter-base`](https://www.npmjs.com/package/@opentelemetry/otlp-exporter-base/v/0.220.0) | `0.220.0` | Required | — |
-| [`@opentelemetry/otlp-transformer`](https://www.npmjs.com/package/@opentelemetry/otlp-transformer/v/0.220.0) | `0.220.0` | Required | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.11.0) | `2.11.0` | Required | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.9.0) | `2.9.0` | Required | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.9.0) | `2.9.0` | Required | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.9.0) | `2.9.0` | Required | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.9.0) | `2.9.0` | Required | — |
-| [`@opentelemetry/sdk-logs`](https://www.npmjs.com/package/@opentelemetry/sdk-logs/v/0.220.0) | `0.220.0` | Required | — |
-| [`@opentelemetry/sdk-metrics`](https://www.npmjs.com/package/@opentelemetry/sdk-metrics/v/2.9.0) | `2.9.0` | Required | — |
-| [`@opentelemetry/sdk-trace`](https://www.npmjs.com/package/@opentelemetry/sdk-trace/v/2.9.0) | `2.9.0` | Required | — |
-| [`@opentelemetry/semantic-conventions`](https://www.npmjs.com/package/@opentelemetry/semantic-conventions/v/1.43.0) | `1.43.0` | Required | — |
-| [`@protobufjs/aspromise`](https://www.npmjs.com/package/@protobufjs/aspromise/v/1.1.2) | `1.1.2` | Required | — |
-| [`@protobufjs/base64`](https://www.npmjs.com/package/@protobufjs/base64/v/1.1.2) | `1.1.2` | Required | — |
-| [`@protobufjs/codegen`](https://www.npmjs.com/package/@protobufjs/codegen/v/2.0.5) | `2.0.5` | Required | — |
-| [`@protobufjs/eventemitter`](https://www.npmjs.com/package/@protobufjs/eventemitter/v/1.1.1) | `1.1.1` | Required | — |
-| [`@protobufjs/fetch`](https://www.npmjs.com/package/@protobufjs/fetch/v/1.1.1) | `1.1.1` | Required | — |
-| [`@protobufjs/float`](https://www.npmjs.com/package/@protobufjs/float/v/1.0.2) | `1.0.2` | Required | — |
-| [`@protobufjs/path`](https://www.npmjs.com/package/@protobufjs/path/v/1.1.2) | `1.1.2` | Required | — |
-| [`@protobufjs/pool`](https://www.npmjs.com/package/@protobufjs/pool/v/1.1.0) | `1.1.0` | Required | — |
-| [`@protobufjs/utf8`](https://www.npmjs.com/package/@protobufjs/utf8/v/1.1.2) | `1.1.2` | Required | — |
-| [`@smithy/core`](https://www.npmjs.com/package/@smithy/core/v/3.34.1) | `3.34.1` | Required | — |
-| [`@smithy/credential-provider-imds`](https://www.npmjs.com/package/@smithy/credential-provider-imds/v/4.5.2) | `4.5.2` | Required | — |
-| [`@smithy/fetch-http-handler`](https://www.npmjs.com/package/@smithy/fetch-http-handler/v/5.8.0) | `5.8.0` | Required | — |
-| [`@smithy/is-array-buffer`](https://www.npmjs.com/package/@smithy/is-array-buffer/v/2.2.0) | `2.2.0` | Required | — |
-| [`@smithy/node-http-handler`](https://www.npmjs.com/package/@smithy/node-http-handler/v/4.12.1) | `4.12.1` | Required | — |
-| [`@smithy/node-http-handler`](https://www.npmjs.com/package/@smithy/node-http-handler/v/4.12.1) | `4.12.1` | Required | — |
-| [`@smithy/node-http-handler`](https://www.npmjs.com/package/@smithy/node-http-handler/v/4.7.3) | `4.7.3` | Required | — |
-| [`@smithy/signature-v4`](https://www.npmjs.com/package/@smithy/signature-v4/v/5.7.3) | `5.7.3` | Required | — |
-| [`@smithy/types`](https://www.npmjs.com/package/@smithy/types/v/4.18.0) | `4.18.0` | Required | — |
-| [`@smithy/util-buffer-from`](https://www.npmjs.com/package/@smithy/util-buffer-from/v/2.2.0) | `2.2.0` | Required | — |
-| [`@smithy/util-utf8`](https://www.npmjs.com/package/@smithy/util-utf8/v/2.3.0) | `2.3.0` | Required | — |
-| [`@stablelib/base64`](https://www.npmjs.com/package/@stablelib/base64/v/1.0.1) | `1.0.1` | Required | — |
-| [`@standard-schema/spec`](https://www.npmjs.com/package/@standard-schema/spec/v/1.1.0) | `1.1.0` | Required | — |
-| [`@types/node`](https://www.npmjs.com/package/@types/node/v/22.20.2) | `22.20.2` | Required | — |
-| [`@types/retry`](https://www.npmjs.com/package/@types/retry/v/0.12.0) | `0.12.0` | Required | — |
-| [`@vscode/ripgrep`](https://www.npmjs.com/package/@vscode/ripgrep/v/1.18.0) | `1.18.0` | Required | — |
-| [`@vscode/ripgrep-darwin-arm64`](https://www.npmjs.com/package/@vscode/ripgrep-darwin-arm64/v/1.18.0) | `1.18.0` | Optional | os: darwin; cpu: arm64 |
-| [`@vscode/ripgrep-darwin-x64`](https://www.npmjs.com/package/@vscode/ripgrep-darwin-x64/v/1.18.0) | `1.18.0` | Optional | os: darwin; cpu: x64 |
-| [`@vscode/ripgrep-linux-arm`](https://www.npmjs.com/package/@vscode/ripgrep-linux-arm/v/1.18.0) | `1.18.0` | Optional | os: linux; cpu: arm |
-| [`@vscode/ripgrep-linux-arm64`](https://www.npmjs.com/package/@vscode/ripgrep-linux-arm64/v/1.18.0) | `1.18.0` | Optional | os: linux; cpu: arm64 |
-| [`@vscode/ripgrep-linux-ia32`](https://www.npmjs.com/package/@vscode/ripgrep-linux-ia32/v/1.18.0) | `1.18.0` | Optional | os: linux; cpu: ia32 |
-| [`@vscode/ripgrep-linux-ppc64`](https://www.npmjs.com/package/@vscode/ripgrep-linux-ppc64/v/1.18.0) | `1.18.0` | Optional | os: linux; cpu: ppc64 |
-| [`@vscode/ripgrep-linux-riscv64`](https://www.npmjs.com/package/@vscode/ripgrep-linux-riscv64/v/1.18.0) | `1.18.0` | Optional | os: linux; cpu: riscv64 |
-| [`@vscode/ripgrep-linux-s390x`](https://www.npmjs.com/package/@vscode/ripgrep-linux-s390x/v/1.18.0) | `1.18.0` | Optional | os: linux; cpu: s390x |
-| [`@vscode/ripgrep-linux-x64`](https://www.npmjs.com/package/@vscode/ripgrep-linux-x64/v/1.18.0) | `1.18.0` | Optional | os: linux; cpu: x64 |
-| [`@vscode/ripgrep-win32-arm64`](https://www.npmjs.com/package/@vscode/ripgrep-win32-arm64/v/1.18.0) | `1.18.0` | Optional | os: win32; cpu: arm64 |
-| [`@vscode/ripgrep-win32-ia32`](https://www.npmjs.com/package/@vscode/ripgrep-win32-ia32/v/1.18.0) | `1.18.0` | Optional | os: win32; cpu: ia32 |
-| [`@vscode/ripgrep-win32-x64`](https://www.npmjs.com/package/@vscode/ripgrep-win32-x64/v/1.18.0) | `1.18.0` | Optional | os: win32; cpu: x64 |
-| [`@xterm/headless`](https://www.npmjs.com/package/@xterm/headless/v/6.0.0) | `6.0.0` | Required | — |
-| [`accepts`](https://www.npmjs.com/package/accepts/v/2.0.0) | `2.0.0` | Required | — |
-| [`agent-base`](https://www.npmjs.com/package/agent-base/v/7.1.4) | `7.1.4` | Required | — |
-| [`ajv`](https://www.npmjs.com/package/ajv/v/8.20.0) | `8.20.0` | Required | — |
-| [`ajv-formats`](https://www.npmjs.com/package/ajv-formats/v/3.0.1) | `3.0.1` | Required | — |
-| [`argparse`](https://www.npmjs.com/package/argparse/v/2.0.1) | `2.0.1` | Required | — |
-| [`base64-js`](https://www.npmjs.com/package/base64-js/v/1.5.1) | `1.5.1` | Required | — |
-| [`bignumber.js`](https://www.npmjs.com/package/bignumber.js/v/9.3.1) | `9.3.1` | Required | — |
-| [`body-parser`](https://www.npmjs.com/package/body-parser/v/2.3.0) | `2.3.0` | Required | — |
-| [`bowser`](https://www.npmjs.com/package/bowser/v/2.14.1) | `2.14.1` | Required | — |
-| [`buffer-equal-constant-time`](https://www.npmjs.com/package/buffer-equal-constant-time/v/1.0.1) | `1.0.1` | Required | — |
-| [`bundle-name`](https://www.npmjs.com/package/bundle-name/v/4.1.0) | `4.1.0` | Required | — |
-| [`bytes`](https://www.npmjs.com/package/bytes/v/3.1.2) | `3.1.2` | Required | — |
-| [`call-bind-apply-helpers`](https://www.npmjs.com/package/call-bind-apply-helpers/v/1.0.2) | `1.0.2` | Required | — |
-| [`call-bound`](https://www.npmjs.com/package/call-bound/v/1.0.4) | `1.0.4` | Required | — |
-| [`chokidar`](https://www.npmjs.com/package/chokidar/v/4.0.3) | `4.0.3` | Required | — |
-| [`chokidar`](https://www.npmjs.com/package/chokidar/v/5.0.0) | `5.0.0` | Required | — |
-| [`compressible`](https://www.npmjs.com/package/compressible/v/2.0.18) | `2.0.18` | Required | — |
-| [`compression`](https://www.npmjs.com/package/compression/v/1.8.2) | `1.8.2` | Required | — |
-| [`content-disposition`](https://www.npmjs.com/package/content-disposition/v/1.1.0) | `1.1.0` | Required | — |
-| [`content-type`](https://www.npmjs.com/package/content-type/v/1.0.5) | `1.0.5` | Required | — |
-| [`content-type`](https://www.npmjs.com/package/content-type/v/2.1.0) | `2.1.0` | Required | — |
-| [`content-type`](https://www.npmjs.com/package/content-type/v/2.1.0) | `2.1.0` | Required | — |
-| [`content-type`](https://www.npmjs.com/package/content-type/v/2.1.0) | `2.1.0` | Required | — |
-| [`cookie`](https://www.npmjs.com/package/cookie/v/0.7.2) | `0.7.2` | Required | — |
-| [`cookie-signature`](https://www.npmjs.com/package/cookie-signature/v/1.2.2) | `1.2.2` | Required | — |
-| [`cors`](https://www.npmjs.com/package/cors/v/2.8.6) | `2.8.6` | Required | — |
-| [`cross-spawn`](https://www.npmjs.com/package/cross-spawn/v/7.0.6) | `7.0.6` | Required | — |
-| [`data-uri-to-buffer`](https://www.npmjs.com/package/data-uri-to-buffer/v/4.0.1) | `4.0.1` | Required | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/2.6.9) | `2.6.9` | Required | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | Required | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | Required | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | Required | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | Required | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | Required | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | Required | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | Required | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | Required | — |
-| [`default-browser`](https://www.npmjs.com/package/default-browser/v/5.5.1) | `5.5.1` | Required | — |
-| [`default-browser-id`](https://www.npmjs.com/package/default-browser-id/v/5.0.1) | `5.0.1` | Required | — |
-| [`define-lazy-prop`](https://www.npmjs.com/package/define-lazy-prop/v/3.0.0) | `3.0.0` | Required | — |
-| [`depd`](https://www.npmjs.com/package/depd/v/2.0.0) | `2.0.0` | Required | — |
-| [`destroy`](https://www.npmjs.com/package/destroy/v/1.2.0) | `1.2.0` | Required | — |
-| [`detect-libc`](https://www.npmjs.com/package/detect-libc/v/2.1.2) | `2.1.2` | Required | — |
-| [`diff`](https://www.npmjs.com/package/diff/v/9.0.0) | `9.0.0` | Required | — |
-| [`dunder-proto`](https://www.npmjs.com/package/dunder-proto/v/1.0.1) | `1.0.1` | Required | — |
-| [`ecdsa-sig-formatter`](https://www.npmjs.com/package/ecdsa-sig-formatter/v/1.0.11) | `1.0.11` | Required | — |
-| [`ee-first`](https://www.npmjs.com/package/ee-first/v/1.1.1) | `1.1.1` | Required | — |
-| [`encodeurl`](https://www.npmjs.com/package/encodeurl/v/2.0.0) | `2.0.0` | Required | — |
-| [`es-define-property`](https://www.npmjs.com/package/es-define-property/v/1.0.1) | `1.0.1` | Required | — |
-| [`es-errors`](https://www.npmjs.com/package/es-errors/v/1.3.0) | `1.3.0` | Required | — |
-| [`es-object-atoms`](https://www.npmjs.com/package/es-object-atoms/v/1.1.2) | `1.1.2` | Required | — |
-| [`escape-html`](https://www.npmjs.com/package/escape-html/v/1.0.3) | `1.0.3` | Required | — |
-| [`etag`](https://www.npmjs.com/package/etag/v/1.8.1) | `1.8.1` | Required | — |
-| [`eventsource`](https://www.npmjs.com/package/eventsource/v/3.0.7) | `3.0.7` | Required | — |
-| [`eventsource-parser`](https://www.npmjs.com/package/eventsource-parser/v/3.1.1) | `3.1.1` | Required | — |
-| [`express`](https://www.npmjs.com/package/express/v/5.2.1) | `5.2.1` | Required | — |
-| [`express-rate-limit`](https://www.npmjs.com/package/express-rate-limit/v/8.7.0) | `8.7.0` | Required | — |
-| [`extend`](https://www.npmjs.com/package/extend/v/3.0.2) | `3.0.2` | Required | — |
-| [`fast-deep-equal`](https://www.npmjs.com/package/fast-deep-equal/v/3.1.3) | `3.1.3` | Required | — |
-| [`fast-sha256`](https://www.npmjs.com/package/fast-sha256/v/1.3.0) | `1.3.0` | Required | — |
-| [`fast-uri`](https://www.npmjs.com/package/fast-uri/v/3.1.7) | `3.1.7` | Required | — |
-| [`fetch-blob`](https://www.npmjs.com/package/fetch-blob/v/3.2.0) | `3.2.0` | Required | — |
-| [`fflate`](https://www.npmjs.com/package/fflate/v/0.8.3) | `0.8.3` | Required | — |
-| [`finalhandler`](https://www.npmjs.com/package/finalhandler/v/2.1.1) | `2.1.1` | Required | — |
-| [`formdata-polyfill`](https://www.npmjs.com/package/formdata-polyfill/v/4.0.10) | `4.0.10` | Required | — |
-| [`forwarded`](https://www.npmjs.com/package/forwarded/v/0.2.0) | `0.2.0` | Required | — |
-| [`fresh`](https://www.npmjs.com/package/fresh/v/2.0.0) | `2.0.0` | Required | — |
-| [`function-bind`](https://www.npmjs.com/package/function-bind/v/1.1.2) | `1.1.2` | Required | — |
-| [`gaxios`](https://www.npmjs.com/package/gaxios/v/7.3.1) | `7.3.1` | Required | — |
-| [`gcp-metadata`](https://www.npmjs.com/package/gcp-metadata/v/8.1.2) | `8.1.2` | Required | — |
-| [`get-intrinsic`](https://www.npmjs.com/package/get-intrinsic/v/1.3.0) | `1.3.0` | Required | — |
-| [`get-proto`](https://www.npmjs.com/package/get-proto/v/1.0.1) | `1.0.1` | Required | — |
-| [`google-auth-library`](https://www.npmjs.com/package/google-auth-library/v/10.9.1) | `10.9.1` | Required | — |
-| [`google-logging-utils`](https://www.npmjs.com/package/google-logging-utils/v/1.1.3) | `1.1.3` | Required | — |
-| [`gopd`](https://www.npmjs.com/package/gopd/v/1.2.0) | `1.2.0` | Required | — |
-| [`has-symbols`](https://www.npmjs.com/package/has-symbols/v/1.1.0) | `1.1.0` | Required | — |
-| [`hasown`](https://www.npmjs.com/package/hasown/v/2.0.4) | `2.0.4` | Required | — |
-| [`hono`](https://www.npmjs.com/package/hono/v/4.13.7) | `4.13.7` | Required | — |
-| [`http-errors`](https://www.npmjs.com/package/http-errors/v/2.0.1) | `2.0.1` | Required | — |
-| [`http-proxy-agent`](https://www.npmjs.com/package/http-proxy-agent/v/7.0.2) | `7.0.2` | Required | — |
-| [`https-proxy-agent`](https://www.npmjs.com/package/https-proxy-agent/v/7.0.6) | `7.0.6` | Required | — |
-| [`iconv-lite`](https://www.npmjs.com/package/iconv-lite/v/0.7.3) | `0.7.3` | Required | — |
-| [`inherits`](https://www.npmjs.com/package/inherits/v/2.0.4) | `2.0.4` | Required | — |
-| [`ip-address`](https://www.npmjs.com/package/ip-address/v/10.7.0) | `10.7.0` | Required | — |
-| [`ipaddr.js`](https://www.npmjs.com/package/ipaddr.js/v/1.9.1) | `1.9.1` | Required | — |
-| [`ipaddr.js`](https://www.npmjs.com/package/ipaddr.js/v/2.5.0) | `2.5.0` | Required | — |
-| [`is-docker`](https://www.npmjs.com/package/is-docker/v/3.0.0) | `3.0.0` | Required | — |
-| [`is-in-ssh`](https://www.npmjs.com/package/is-in-ssh/v/1.0.0) | `1.0.0` | Required | — |
-| [`is-inside-container`](https://www.npmjs.com/package/is-inside-container/v/1.0.0) | `1.0.0` | Required | — |
-| [`is-promise`](https://www.npmjs.com/package/is-promise/v/4.0.0) | `4.0.0` | Required | — |
-| [`is-wsl`](https://www.npmjs.com/package/is-wsl/v/3.1.1) | `3.1.1` | Required | — |
-| [`isexe`](https://www.npmjs.com/package/isexe/v/2.0.0) | `2.0.0` | Required | — |
-| [`jose`](https://www.npmjs.com/package/jose/v/6.2.12) | `6.2.12` | Required | — |
-| [`js-tokens`](https://www.npmjs.com/package/js-tokens/v/4.0.0) | `4.0.0` | Required | — |
-| [`json-bigint`](https://www.npmjs.com/package/json-bigint/v/1.0.0) | `1.0.0` | Required | — |
-| [`json-schema-to-ts`](https://www.npmjs.com/package/json-schema-to-ts/v/3.1.1) | `3.1.1` | Required | — |
-| [`json-schema-traverse`](https://www.npmjs.com/package/json-schema-traverse/v/1.0.0) | `1.0.0` | Required | — |
-| [`json-schema-typed`](https://www.npmjs.com/package/json-schema-typed/v/8.0.2) | `8.0.2` | Required | — |
-| [`jwa`](https://www.npmjs.com/package/jwa/v/2.0.1) | `2.0.1` | Required | — |
-| [`jws`](https://www.npmjs.com/package/jws/v/4.0.1) | `4.0.1` | Required | — |
-| [`koffi`](https://www.npmjs.com/package/koffi/v/3.2.1) | `3.2.1` | Required | — |
-| [`long`](https://www.npmjs.com/package/long/v/5.3.2) | `5.3.2` | Required | — |
-| [`math-intrinsics`](https://www.npmjs.com/package/math-intrinsics/v/1.1.0) | `1.1.0` | Required | — |
-| [`media-typer`](https://www.npmjs.com/package/media-typer/v/1.1.1) | `1.1.1` | Required | — |
-| [`merge-descriptors`](https://www.npmjs.com/package/merge-descriptors/v/2.0.0) | `2.0.0` | Required | — |
-| [`mime-db`](https://www.npmjs.com/package/mime-db/v/1.54.0) | `1.54.0` | Required | — |
-| [`mime-types`](https://www.npmjs.com/package/mime-types/v/3.0.2) | `3.0.2` | Required | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.0.0) | `2.0.0` | Required | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | Required | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | Required | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | Required | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | Required | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | Required | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | Required | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | Required | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | Required | — |
-| [`negotiator`](https://www.npmjs.com/package/negotiator/v/0.6.4) | `0.6.4` | Required | — |
-| [`negotiator`](https://www.npmjs.com/package/negotiator/v/1.1.0) | `1.1.0` | Required | — |
-| [`node-addon-api`](https://www.npmjs.com/package/node-addon-api/v/7.1.1) | `7.1.1` | Required | — |
-| [`node-addon-native-custom-loader`](https://www.npmjs.com/package/node-addon-native-custom-loader/v/0.1.5) | `0.1.5` | Required | — |
-| [`node-addon-require-builtin-darwin-arm64`](https://www.npmjs.com/package/node-addon-require-builtin-darwin-arm64/v/0.1.5) | `0.1.5` | Optional | os: darwin; cpu: arm64 |
-| [`node-addon-require-builtin-darwin-x64`](https://www.npmjs.com/package/node-addon-require-builtin-darwin-x64/v/0.1.5) | `0.1.5` | Optional | os: darwin; cpu: x64 |
-| [`node-addon-require-builtin-linux-arm64-gnu`](https://www.npmjs.com/package/node-addon-require-builtin-linux-arm64-gnu/v/0.1.5) | `0.1.5` | Optional | os: linux; cpu: arm64; libc: glibc |
-| [`node-addon-require-builtin-linux-x64-gnu`](https://www.npmjs.com/package/node-addon-require-builtin-linux-x64-gnu/v/0.1.5) | `0.1.5` | Optional | os: linux; cpu: x64; libc: glibc |
-| [`node-addon-require-builtin-win32-arm64-msvc`](https://www.npmjs.com/package/node-addon-require-builtin-win32-arm64-msvc/v/0.1.5) | `0.1.5` | Optional | os: win32; cpu: arm64 |
-| [`node-addon-require-builtin-win32-ia32-msvc`](https://www.npmjs.com/package/node-addon-require-builtin-win32-ia32-msvc/v/0.1.5) | `0.1.5` | Optional | os: win32; cpu: ia32 |
-| [`node-addon-require-builtin-win32-x64-msvc`](https://www.npmjs.com/package/node-addon-require-builtin-win32-x64-msvc/v/0.1.5) | `0.1.5` | Optional | os: win32; cpu: x64 |
-| [`node-domexception`](https://www.npmjs.com/package/node-domexception/v/1.0.0) | `1.0.0` | Required | — |
-| [`node-fetch`](https://www.npmjs.com/package/node-fetch/v/3.3.2) | `3.3.2` | Required | — |
-| [`node-pty`](https://www.npmjs.com/package/node-pty/v/1.2.0-beta.15) | `1.2.0-beta.15` | Required | — |
-| [`object-assign`](https://www.npmjs.com/package/object-assign/v/4.1.1) | `4.1.1` | Required | — |
-| [`object-inspect`](https://www.npmjs.com/package/object-inspect/v/1.13.4) | `1.13.4` | Required | — |
-| [`on-finished`](https://www.npmjs.com/package/on-finished/v/2.4.1) | `2.4.1` | Required | — |
-| [`on-headers`](https://www.npmjs.com/package/on-headers/v/1.1.0) | `1.1.0` | Required | — |
-| [`once`](https://www.npmjs.com/package/once/v/1.4.0) | `1.4.0` | Required | — |
-| [`open`](https://www.npmjs.com/package/open/v/11.0.3) | `11.0.3` | Required | — |
-| [`openai`](https://www.npmjs.com/package/openai/v/6.40.0) | `6.40.0` | Required | — |
-| [`p-retry`](https://www.npmjs.com/package/p-retry/v/4.6.2) | `4.6.2` | Required | — |
-| [`parseurl`](https://www.npmjs.com/package/parseurl/v/1.3.3) | `1.3.3` | Required | — |
-| [`partial-json`](https://www.npmjs.com/package/partial-json/v/0.1.7) | `0.1.7` | Required | — |
-| [`path-key`](https://www.npmjs.com/package/path-key/v/3.1.1) | `3.1.1` | Required | — |
-| [`path-to-regexp`](https://www.npmjs.com/package/path-to-regexp/v/8.4.2) | `8.4.2` | Required | — |
-| [`picocolors`](https://www.npmjs.com/package/picocolors/v/1.1.1) | `1.1.1` | Required | — |
-| [`picomatch`](https://www.npmjs.com/package/picomatch/v/4.0.7) | `4.0.7` | Required | — |
-| [`pkce-challenge`](https://www.npmjs.com/package/pkce-challenge/v/5.0.1) | `5.0.1` | Required | — |
-| [`powershell-utils`](https://www.npmjs.com/package/powershell-utils/v/0.1.0) | `0.1.0` | Required | — |
-| [`powershell-utils`](https://www.npmjs.com/package/powershell-utils/v/0.2.1) | `0.2.1` | Required | — |
-| [`protobufjs`](https://www.npmjs.com/package/protobufjs/v/7.6.6) | `7.6.6` | Required | — |
-| [`proxy-addr`](https://www.npmjs.com/package/proxy-addr/v/2.0.7) | `2.0.7` | Required | — |
-| [`qs`](https://www.npmjs.com/package/qs/v/6.16.0) | `6.16.0` | Required | — |
-| [`range-parser`](https://www.npmjs.com/package/range-parser/v/1.3.0) | `1.3.0` | Required | — |
-| [`raw-body`](https://www.npmjs.com/package/raw-body/v/3.0.2) | `3.0.2` | Required | — |
-| [`readdirp`](https://www.npmjs.com/package/readdirp/v/4.1.2) | `4.1.2` | Required | — |
-| [`readdirp`](https://www.npmjs.com/package/readdirp/v/5.1.1) | `5.1.1` | Required | — |
-| [`require-from-string`](https://www.npmjs.com/package/require-from-string/v/2.0.2) | `2.0.2` | Required | — |
-| [`resolve.exports`](https://www.npmjs.com/package/resolve.exports/v/2.0.3) | `2.0.3` | Required | — |
-| [`retry`](https://www.npmjs.com/package/retry/v/0.13.1) | `0.13.1` | Required | — |
-| [`router`](https://www.npmjs.com/package/router/v/2.2.0) | `2.2.0` | Required | — |
-| [`run-applescript`](https://www.npmjs.com/package/run-applescript/v/7.1.0) | `7.1.0` | Required | — |
-| [`safe-buffer`](https://www.npmjs.com/package/safe-buffer/v/5.2.1) | `5.2.1` | Required | — |
-| [`safer-buffer`](https://www.npmjs.com/package/safer-buffer/v/2.1.2) | `2.1.2` | Required | — |
-| [`semver`](https://www.npmjs.com/package/semver/v/7.8.5) | `7.8.5` | Required | — |
-| [`send`](https://www.npmjs.com/package/send/v/1.2.1) | `1.2.1` | Required | — |
-| [`serve-static`](https://www.npmjs.com/package/serve-static/v/2.2.1) | `2.2.1` | Required | — |
-| [`setprototypeof`](https://www.npmjs.com/package/setprototypeof/v/1.2.0) | `1.2.0` | Required | — |
-| [`sharp`](https://www.npmjs.com/package/sharp/v/0.35.4) | `0.35.4` | Required | — |
-| [`shebang-command`](https://www.npmjs.com/package/shebang-command/v/2.0.0) | `2.0.0` | Required | — |
-| [`shebang-regex`](https://www.npmjs.com/package/shebang-regex/v/3.0.0) | `3.0.0` | Required | — |
-| [`side-channel`](https://www.npmjs.com/package/side-channel/v/1.1.1) | `1.1.1` | Required | — |
-| [`side-channel-list`](https://www.npmjs.com/package/side-channel-list/v/1.0.1) | `1.0.1` | Required | — |
-| [`side-channel-map`](https://www.npmjs.com/package/side-channel-map/v/1.0.1) | `1.0.1` | Required | — |
-| [`side-channel-weakmap`](https://www.npmjs.com/package/side-channel-weakmap/v/1.0.2) | `1.0.2` | Required | — |
-| [`standardwebhooks`](https://www.npmjs.com/package/standardwebhooks/v/1.1.1) | `1.1.1` | Required | — |
-| [`statuses`](https://www.npmjs.com/package/statuses/v/2.0.2) | `2.0.2` | Required | — |
-| [`toidentifier`](https://www.npmjs.com/package/toidentifier/v/1.0.1) | `1.0.1` | Required | — |
-| [`ts-algebra`](https://www.npmjs.com/package/ts-algebra/v/2.0.0) | `2.0.0` | Required | — |
-| [`tslib`](https://www.npmjs.com/package/tslib/v/2.8.1) | `2.8.1` | Required | — |
-| [`turndown`](https://www.npmjs.com/package/turndown/v/7.2.4) | `7.2.4` | Required | — |
-| [`type-is`](https://www.npmjs.com/package/type-is/v/2.1.0) | `2.1.0` | Required | — |
-| [`typebox`](https://www.npmjs.com/package/typebox/v/1.3.7) | `1.3.7` | Required | — |
-| [`undici`](https://www.npmjs.com/package/undici/v/8.10.2) | `8.10.2` | Required | — |
-| [`undici-types`](https://www.npmjs.com/package/undici-types/v/6.21.0) | `6.21.0` | Required | — |
-| [`unpipe`](https://www.npmjs.com/package/unpipe/v/1.0.0) | `1.0.0` | Required | — |
-| [`vary`](https://www.npmjs.com/package/vary/v/1.1.2) | `1.1.2` | Required | — |
-| [`web-streams-polyfill`](https://www.npmjs.com/package/web-streams-polyfill/v/3.3.3) | `3.3.3` | Required | — |
-| [`which`](https://www.npmjs.com/package/which/v/2.0.2) | `2.0.2` | Required | — |
-| [`wrappy`](https://www.npmjs.com/package/wrappy/v/1.0.2) | `1.0.2` | Required | — |
-| [`ws`](https://www.npmjs.com/package/ws/v/8.21.3) | `8.21.3` | Required | — |
-| [`wsl-utils`](https://www.npmjs.com/package/wsl-utils/v/1.0.0) | `1.0.0` | Required | — |
-| [`yaml`](https://www.npmjs.com/package/yaml/v/2.9.1) | `2.9.1` | Required | — |
-| [`zod`](https://www.npmjs.com/package/zod/v/4.6.2) | `4.6.2` | Required | — |
-| [`zod-to-json-schema`](https://www.npmjs.com/package/zod-to-json-schema/v/3.25.2) | `3.25.2` | Required | — |
-
-<a id="regeneration"></a>
-
-## Regeneration
-
-In an installed repository checkout, regenerate both languages and the pairing record from the committed npm resolution:
-
-```sh
-pnpm run gen-dependency-catalog
-pnpm run verify-dependency-catalog
-```
-
-Refresh `latest` and its complete dependency tree from the public npm registry, then regenerate the catalog:
-
-```sh
-pnpm run gen-dependency-catalog --refresh
-```
-
-Commit the [npm lockfile](../scripts/dependency-catalog/package-lock.json), [resolution metadata](../scripts/dependency-catalog/resolution.json), and all three catalog pair files. Refresh uses a temporary directory with install scripts disabled; a failed resolution leaves the committed record intact. `doc-sync` checks generated files against the record.

+ 0 - 650
docs/dependency-catalog.zh.md

@@ -1,650 +0,0 @@
-<!-- Generated by scripts/gen-dependency-catalog.ts. Do not edit by hand. -->
-
-# 依赖目录
-
-[English](dependency-catalog.md) | 中文
-
-## 摘要
-
-查看 [README 中的 npm 命令](../README.zh.md)所安装的 `@deepseek-ai/dsh` 的直接和传递依赖。此记录中的 npm `latest` 版本为 **0.1.5-rc.1**;共 581 个依赖安装位置,涉及 561 个不同的包与版本组合。
-
-## 目录
-
-- [范围](#scope)
-- [直接依赖](#direct-dependencies)
-- [传递依赖](#transitive-dependencies)
-- [重新生成](#regeneration)
-
-<a id="scope"></a>
-
-## 范围
-
-```sh
-npx @deepseek-ai/dsh web
-```
-
-采集时间:`2026-09-12T08:31:20.812Z`。解析工具:npm `11.17.0`,Node.js `24.19.0`,`darwin/arm64`。Registry:https://registry.npmjs.org/
-
-此记录使用空白 npm 消费项目解析公开发布包,包含必需依赖、自动安装的 Peer 依赖及可选依赖候选项。`web` 参数选择启动模式,不会缩小 CLI 的安装依赖。仓库的开发依赖和未被引用的 workspace 包不在此范围内。
-
-可选项仅在平台匹配且安装成功时出现;经可选父包引入的依赖也可能被省略。平台列显示包自身的 `os`、`cpu` 和 `libc` 声明,`—` 表示包自身未声明限制。表格中的重复行保留 npm 在不同位置安装的相同包版本。此目录由仅生成 lockfile 的解析过程产生,不验证安装脚本或其下载的额外文件。
-
-这是带时间的解析记录:npm 的 tag、版本范围、npm/Node.js 版本、平台、配置及现有本地安装或缓存均可能改变实际结果。普通生成和 CI 检查使用提交的记录;只有刷新命令查询 registry。参见 [npx 文档](https://docs.npmjs.com/cli/v11/commands/npx/)和 [npm lockfile 文档](https://docs.npmjs.com/cli/v11/configuring-npm/package-lock-json/)。
-
-<a id="direct-dependencies"></a>
-
-## 直接依赖
-
-72 个安装位置由已发布 CLI 的依赖字段直接引用。
-
-| 包 | 解析版本 | 安装条件 | 包声明的平台限制 |
-| --- | --- | --- | --- |
-| [`@deepseek-ai/cordis`](https://www.npmjs.com/package/@deepseek-ai/cordis/v/4.0.2) | `4.0.2` | 必需 | — |
-| [`@deepseek-ai/cordis-plugin-hmr`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-hmr/v/1.0.17) | `1.0.17` | 必需 | — |
-| [`@deepseek-ai/cordis-plugin-include`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-include/v/1.0.7) | `1.0.7` | 必需 | — |
-| [`@deepseek-ai/cordis-plugin-loader`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-loader/v/1.0.3) | `1.0.3` | 必需 | — |
-| [`@deepseek-ai/cordis-plugin-timer`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-timer/v/1.1.4) | `1.1.4` | 必需 | — |
-| [`@deepseek-ai/dsh-acp-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-acp-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-agent-instructions`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-instructions/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-agent-tool-presentation`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-tool-presentation/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-app-boot`](https://www.npmjs.com/package/@deepseek-ai/dsh-app-boot/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-base`](https://www.npmjs.com/package/@deepseek-ai/dsh-base/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-agent-preset`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-agent-preset/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-cordis`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-cordis/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-cmdline`](https://www.npmjs.com/package/@deepseek-ai/dsh-cmdline/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-command-compact`](https://www.npmjs.com/package/@deepseek-ai/dsh-command-compact/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-command-goal`](https://www.npmjs.com/package/@deepseek-ai/dsh-command-goal/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-compaction-basic`](https://www.npmjs.com/package/@deepseek-ai/dsh-compaction-basic/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-compaction-tool-result-pruner`](https://www.npmjs.com/package/@deepseek-ai/dsh-compaction-tool-result-pruner/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-cordis-client-runner`](https://www.npmjs.com/package/@deepseek-ai/dsh-cordis-client-runner/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-fs-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-fs-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-goal`](https://www.npmjs.com/package/@deepseek-ai/dsh-goal/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-goal-round-driver`](https://www.npmjs.com/package/@deepseek-ai/dsh-goal-round-driver/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-headless`](https://www.npmjs.com/package/@deepseek-ai/dsh-headless/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-home-paths`](https://www.npmjs.com/package/@deepseek-ai/dsh-home-paths/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-hooks-claude-code`](https://www.npmjs.com/package/@deepseek-ai/dsh-hooks-claude-code/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-hooks-codex`](https://www.npmjs.com/package/@deepseek-ai/dsh-hooks-codex/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-http-proxy`](https://www.npmjs.com/package/@deepseek-ai/dsh-http-proxy/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-jobs-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-jobs-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-launch-environment`](https://www.npmjs.com/package/@deepseek-ai/dsh-launch-environment/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-mcp-client`](https://www.npmjs.com/package/@deepseek-ai/dsh-mcp-client/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-persona`](https://www.npmjs.com/package/@deepseek-ai/dsh-persona/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-plan-mode`](https://www.npmjs.com/package/@deepseek-ai/dsh-plan-mode/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-pwsh-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-pwsh-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-pwsh-sandbox`](https://www.npmjs.com/package/@deepseek-ai/dsh-pwsh-sandbox/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-schedule`](https://www.npmjs.com/package/@deepseek-ai/dsh-schedule/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-sdk-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-sdk-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-sdk-minimal`](https://www.npmjs.com/package/@deepseek-ai/dsh-sdk-minimal/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-projection`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-projection/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-reference`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-reference/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-skill`](https://www.npmjs.com/package/@deepseek-ai/dsh-skill/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-skill-filesystem`](https://www.npmjs.com/package/@deepseek-ai/dsh-skill-filesystem/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-terminal`](https://www.npmjs.com/package/@deepseek-ai/dsh-terminal/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-terminal-bash`](https://www.npmjs.com/package/@deepseek-ai/dsh-terminal-bash/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-time-context`](https://www.npmjs.com/package/@deepseek-ai/dsh-time-context/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tmux-context`](https://www.npmjs.com/package/@deepseek-ai/dsh-tmux-context/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-token-meter`](https://www.npmjs.com/package/@deepseek-ai/dsh-token-meter/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-ask-user`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-ask-user/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-bash`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-bash/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-bash-persistent`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-bash-persistent/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-cordis`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-cordis/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-fs`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-fs/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-fs-search`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-fs-search/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-goal`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-goal/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-jobs`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-jobs/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-present`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-present/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-pwsh`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-pwsh/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-pwsh-persistent`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-pwsh-persistent/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-ralph`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-ralph/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-skill`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-skill/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-str-replace-editor`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-str-replace-editor/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-subagent`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-subagent/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-subagent-control`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-subagent-control/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-todo`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-todo/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-web`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-web/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-workflow`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-workflow/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-web-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-web-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-webhook`](https://www.npmjs.com/package/@deepseek-ai/dsh-webhook/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-webhook-github`](https://www.npmjs.com/package/@deepseek-ai/dsh-webhook-github/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-workflow-worker-thread`](https://www.npmjs.com/package/@deepseek-ai/dsh-workflow-worker-thread/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/schemastery`](https://www.npmjs.com/package/@deepseek-ai/schemastery/v/3.18.2) | `3.18.2` | 必需 | — |
-| [`commander`](https://www.npmjs.com/package/commander/v/15.0.0) | `15.0.0` | 必需 | — |
-| [`js-yaml`](https://www.npmjs.com/package/js-yaml/v/4.3.2) | `4.3.2` | 必需 | — |
-| [`node-addon-require-builtin`](https://www.npmjs.com/package/node-addon-require-builtin/v/0.1.5) | `0.1.5` | 必需 | — |
-
-<a id="transitive-dependencies"></a>
-
-## 传递依赖
-
-509 个其余安装位置由依赖树引入。
-
-| 包 | 解析版本 | 安装条件 | 包声明的平台限制 |
-| --- | --- | --- | --- |
-| [`@agentclientprotocol/sdk`](https://www.npmjs.com/package/@agentclientprotocol/sdk/v/1.4.0) | `1.4.0` | 必需 | — |
-| [`@anthropic-ai/sdk`](https://www.npmjs.com/package/@anthropic-ai/sdk/v/0.123.0) | `0.123.0` | 必需 | — |
-| [`@aws-crypto/sha256-browser`](https://www.npmjs.com/package/@aws-crypto/sha256-browser/v/5.2.0) | `5.2.0` | 必需 | — |
-| [`@aws-crypto/sha256-js`](https://www.npmjs.com/package/@aws-crypto/sha256-js/v/5.2.0) | `5.2.0` | 必需 | — |
-| [`@aws-crypto/supports-web-crypto`](https://www.npmjs.com/package/@aws-crypto/supports-web-crypto/v/5.2.0) | `5.2.0` | 必需 | — |
-| [`@aws-crypto/util`](https://www.npmjs.com/package/@aws-crypto/util/v/5.2.0) | `5.2.0` | 必需 | — |
-| [`@aws-sdk/client-bedrock-runtime`](https://www.npmjs.com/package/@aws-sdk/client-bedrock-runtime/v/3.1048.0) | `3.1048.0` | 必需 | — |
-| [`@aws-sdk/core`](https://www.npmjs.com/package/@aws-sdk/core/v/3.978.0) | `3.978.0` | 必需 | — |
-| [`@aws-sdk/credential-provider-env`](https://www.npmjs.com/package/@aws-sdk/credential-provider-env/v/3.972.71) | `3.972.71` | 必需 | — |
-| [`@aws-sdk/credential-provider-http`](https://www.npmjs.com/package/@aws-sdk/credential-provider-http/v/3.972.73) | `3.972.73` | 必需 | — |
-| [`@aws-sdk/credential-provider-ini`](https://www.npmjs.com/package/@aws-sdk/credential-provider-ini/v/3.973.16) | `3.973.16` | 必需 | — |
-| [`@aws-sdk/credential-provider-login`](https://www.npmjs.com/package/@aws-sdk/credential-provider-login/v/3.972.78) | `3.972.78` | 必需 | — |
-| [`@aws-sdk/credential-provider-node`](https://www.npmjs.com/package/@aws-sdk/credential-provider-node/v/3.972.83) | `3.972.83` | 必需 | — |
-| [`@aws-sdk/credential-provider-process`](https://www.npmjs.com/package/@aws-sdk/credential-provider-process/v/3.972.71) | `3.972.71` | 必需 | — |
-| [`@aws-sdk/credential-provider-sso`](https://www.npmjs.com/package/@aws-sdk/credential-provider-sso/v/3.973.15) | `3.973.15` | 必需 | — |
-| [`@aws-sdk/credential-provider-web-identity`](https://www.npmjs.com/package/@aws-sdk/credential-provider-web-identity/v/3.972.77) | `3.972.77` | 必需 | — |
-| [`@aws-sdk/eventstream-handler-node`](https://www.npmjs.com/package/@aws-sdk/eventstream-handler-node/v/3.972.34) | `3.972.34` | 必需 | — |
-| [`@aws-sdk/middleware-eventstream`](https://www.npmjs.com/package/@aws-sdk/middleware-eventstream/v/3.972.29) | `3.972.29` | 必需 | — |
-| [`@aws-sdk/middleware-websocket`](https://www.npmjs.com/package/@aws-sdk/middleware-websocket/v/3.972.53) | `3.972.53` | 必需 | — |
-| [`@aws-sdk/nested-clients`](https://www.npmjs.com/package/@aws-sdk/nested-clients/v/3.997.45) | `3.997.45` | 必需 | — |
-| [`@aws-sdk/signature-v4-multi-region`](https://www.npmjs.com/package/@aws-sdk/signature-v4-multi-region/v/3.996.46) | `3.996.46` | 必需 | — |
-| [`@aws-sdk/token-providers`](https://www.npmjs.com/package/@aws-sdk/token-providers/v/3.1048.0) | `3.1048.0` | 必需 | — |
-| [`@aws-sdk/token-providers`](https://www.npmjs.com/package/@aws-sdk/token-providers/v/3.1129.0) | `3.1129.0` | 必需 | — |
-| [`@aws-sdk/types`](https://www.npmjs.com/package/@aws-sdk/types/v/3.974.5) | `3.974.5` | 必需 | — |
-| [`@aws-sdk/util-locate-window`](https://www.npmjs.com/package/@aws-sdk/util-locate-window/v/3.965.10) | `3.965.10` | 必需 | — |
-| [`@aws-sdk/xml-builder`](https://www.npmjs.com/package/@aws-sdk/xml-builder/v/3.972.40) | `3.972.40` | 必需 | — |
-| [`@aws/lambda-invoke-store`](https://www.npmjs.com/package/@aws/lambda-invoke-store/v/0.3.0) | `0.3.0` | 必需 | — |
-| [`@babel/code-frame`](https://www.npmjs.com/package/@babel/code-frame/v/7.29.7) | `7.29.7` | 必需 | — |
-| [`@babel/helper-validator-identifier`](https://www.npmjs.com/package/@babel/helper-validator-identifier/v/7.29.7) | `7.29.7` | 必需 | — |
-| [`@babel/runtime`](https://www.npmjs.com/package/@babel/runtime/v/7.29.7) | `7.29.7` | 必需 | — |
-| [`@deepseek-ai/cordis-plugin-group`](https://www.npmjs.com/package/@deepseek-ai/cordis-plugin-group/v/1.0.2) | `1.0.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/cosmokit`](https://www.npmjs.com/package/@deepseek-ai/cosmokit/v/1.8.3) | `1.8.3` | 必需 | — |
-| [`@deepseek-ai/dsh-acp`](https://www.npmjs.com/package/@deepseek-ai/dsh-acp/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-agent`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-agent-default-model`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-default-model/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-agent-loop`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-loop/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-agent-presets`](https://www.npmjs.com/package/@deepseek-ai/dsh-agent-presets/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-anonymous-user-id`](https://www.npmjs.com/package/@deepseek-ai/dsh-anonymous-user-id/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-api-gateway`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-gateway/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-api-remotes`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-remotes/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-api-session-controller`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-session-controller/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-api-settings-controller`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-settings-controller/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-api-workspace-controller`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-workspace-controller/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-api-workspace-files`](https://www.npmjs.com/package/@deepseek-ai/dsh-api-workspace-files/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-atomic-write`](https://www.npmjs.com/package/@deepseek-ai/dsh-atomic-write/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-attachment`](https://www.npmjs.com/package/@deepseek-ai/dsh-attachment/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-attachment-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-attachment-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-authorization`](https://www.npmjs.com/package/@deepseek-ai/dsh-authorization/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-bash-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-bash-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-bash-sandbox`](https://www.npmjs.com/package/@deepseek-ai/dsh-bash-sandbox/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-brand`](https://www.npmjs.com/package/@deepseek-ai/dsh-brand/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-chunked-list`](https://www.npmjs.com/package/@deepseek-ai/dsh-chunked-list/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-connection`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-connection/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-file-upload`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-file-upload/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-hmr`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-hmr/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-locale`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-locale/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-modules`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-modules/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-resources`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-resources/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-approval`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-approval/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-attachment`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-attachment/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-brand-official`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-brand-official/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-chat`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-chat/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-commands`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-commands/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-conversation`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-conversation/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-deliverables`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-deliverables/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-directory-picker-browse`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-directory-picker-browse/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-directory-picker-native`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-directory-picker-native/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-goal`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-goal/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-input-trigger`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-input-trigger/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-jobs`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-jobs/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-layout`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-layout/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-message-feedback`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-message-feedback/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-model-selection`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-model-selection/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-open-in-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-open-in-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-permission-presets`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-permission-presets/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-plan`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-plan/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-reference`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-reference/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-renderer`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-renderer/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-schedule`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-schedule/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-session`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-session/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-settings`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-settings-general`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings-general/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-settings-models`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings-models/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-settings-plugin-inventory`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-settings-plugins`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-settings-plugins/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-sidebar`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-sidebar/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-sidebar-documentpreview`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-sidebar-files`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-sidebar-files/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-sidebar-right`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-sidebar-right/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-skill`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-skill/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-subagent`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-subagent/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-theme`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-theme/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-tool`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-tool/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-trajectory`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-trajectory/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-user-questions`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-user-questions/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-workflow-run`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-workflow-run/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-client-ui-workspace`](https://www.npmjs.com/package/@deepseek-ai/dsh-client-ui-workspace/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-code-runtime`](https://www.npmjs.com/package/@deepseek-ai/dsh-code-runtime/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-code-runtime-worker-thread`](https://www.npmjs.com/package/@deepseek-ai/dsh-code-runtime-worker-thread/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-command-feedback`](https://www.npmjs.com/package/@deepseek-ai/dsh-command-feedback/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-commands`](https://www.npmjs.com/package/@deepseek-ai/dsh-commands/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-compaction`](https://www.npmjs.com/package/@deepseek-ai/dsh-compaction/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-cordis-host-runner`](https://www.npmjs.com/package/@deepseek-ai/dsh-cordis-host-runner/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-credentials`](https://www.npmjs.com/package/@deepseek-ai/dsh-credentials/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-credentials-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-credentials-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-deepseek-llm-api-extensions`](https://www.npmjs.com/package/@deepseek-ai/dsh-deepseek-llm-api-extensions/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-deque`](https://www.npmjs.com/package/@deepseek-ai/dsh-deque/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-file-reference`](https://www.npmjs.com/package/@deepseek-ai/dsh-file-reference/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-file-reference-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-file-reference-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-fs`](https://www.npmjs.com/package/@deepseek-ai/dsh-fs/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-fs-observation-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-fs-observation-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-fs-sandbox`](https://www.npmjs.com/package/@deepseek-ai/dsh-fs-sandbox/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-hook-protocol`](https://www.npmjs.com/package/@deepseek-ai/dsh-hook-protocol/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-host-directory-picker`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-directory-picker/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-host-directory-picker-auto`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-directory-picker-auto/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-host-directory-picker-browse`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-directory-picker-browse/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-host-directory-picker-native`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-directory-picker-native/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-host-frontend-static`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-frontend-static/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-host-open-in-app`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-open-in-app/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-host-plugin-inventory`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-plugin-inventory/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-host-webserver`](https://www.npmjs.com/package/@deepseek-ai/dsh-host-webserver/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-invariants`](https://www.npmjs.com/package/@deepseek-ai/dsh-invariants/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-jobs`](https://www.npmjs.com/package/@deepseek-ai/dsh-jobs/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-llm`](https://www.npmjs.com/package/@deepseek-ai/dsh-llm/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-llm-deepseek`](https://www.npmjs.com/package/@deepseek-ai/dsh-llm-deepseek/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-llm-pi-ai`](https://www.npmjs.com/package/@deepseek-ai/dsh-llm-pi-ai/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-llm-retry`](https://www.npmjs.com/package/@deepseek-ai/dsh-llm-retry/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-message-feedback`](https://www.npmjs.com/package/@deepseek-ai/dsh-message-feedback/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-native-command`](https://www.npmjs.com/package/@deepseek-ai/dsh-native-command/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-output-retention`](https://www.npmjs.com/package/@deepseek-ai/dsh-output-retention/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-package-manifest`](https://www.npmjs.com/package/@deepseek-ai/dsh-package-manifest/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-permission-presets`](https://www.npmjs.com/package/@deepseek-ai/dsh-permission-presets/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-plugin-package-inventory-deepseek`](https://www.npmjs.com/package/@deepseek-ai/dsh-plugin-package-inventory-deepseek/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-repeat-tool-reminder`](https://www.npmjs.com/package/@deepseek-ai/dsh-repeat-tool-reminder/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-sandbox`](https://www.npmjs.com/package/@deepseek-ai/dsh-sandbox/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-sandbox-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-sandbox-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-sandbox-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-sandbox-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-sandbox-windows-acl`](https://www.npmjs.com/package/@deepseek-ai/dsh-sandbox-windows-acl/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-scope`](https://www.npmjs.com/package/@deepseek-ai/dsh-scope/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-sdk-jsonrpc-server`](https://www.npmjs.com/package/@deepseek-ai/dsh-sdk-jsonrpc-server/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-sdk-protocol`](https://www.npmjs.com/package/@deepseek-ai/dsh-sdk-protocol/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-session`](https://www.npmjs.com/package/@deepseek-ai/dsh-session/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-checkpoint-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-checkpoint-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-format`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-format-catalog`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format-catalog/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-format-v0-to-v1`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format-v0-to-v1/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-format-v1-to-v2`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format-v1-to-v2/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-format-v2-to-v3`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-format-v2-to-v3/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-log-deepseek`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-log-deepseek/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-log-export`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-log-export/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-persistence`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-persistence/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-session-persistence-jsonl`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-persistence-jsonl/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-projection-cache`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-projection-cache/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-query`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-query/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-session-query-sqlite`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-query-sqlite/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-stats`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-stats/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-telemetry`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-telemetry/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-session-telemetry-otel`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-telemetry-otel/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-title`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-title/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-title-first-prompt-llm`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-title-first-prompt-llm/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-session-title-llm`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-title-llm/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-session-turn-outline`](https://www.npmjs.com/package/@deepseek-ai/dsh-session-turn-outline/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-settings`](https://www.npmjs.com/package/@deepseek-ai/dsh-settings/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-settings-file`](https://www.npmjs.com/package/@deepseek-ai/dsh-settings-file/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-shell`](https://www.npmjs.com/package/@deepseek-ai/dsh-shell/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-shell-env`](https://www.npmjs.com/package/@deepseek-ai/dsh-shell-env/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-skill-badge`](https://www.npmjs.com/package/@deepseek-ai/dsh-skill-badge/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-spill`](https://www.npmjs.com/package/@deepseek-ai/dsh-spill/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-spill-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-spill-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-spill-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-spill-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-storage`](https://www.npmjs.com/package/@deepseek-ai/dsh-storage/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-storage-domain`](https://www.npmjs.com/package/@deepseek-ai/dsh-storage-domain/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-storage-json`](https://www.npmjs.com/package/@deepseek-ai/dsh-storage-json/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-subagent`](https://www.npmjs.com/package/@deepseek-ai/dsh-subagent/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-subagent-fork-in-process`](https://www.npmjs.com/package/@deepseek-ai/dsh-subagent-fork-in-process/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-subagent-in-process-driver`](https://www.npmjs.com/package/@deepseek-ai/dsh-subagent-in-process-driver/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-subagent-spawn-in-process`](https://www.npmjs.com/package/@deepseek-ai/dsh-subagent-spawn-in-process/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-subprocess`](https://www.npmjs.com/package/@deepseek-ai/dsh-subprocess/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-subprocess-local`](https://www.npmjs.com/package/@deepseek-ai/dsh-subprocess-local/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-system-prompt`](https://www.npmjs.com/package/@deepseek-ai/dsh-system-prompt/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-timeout`](https://www.npmjs.com/package/@deepseek-ai/dsh-timeout/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tool-call-timeout-policy`](https://www.npmjs.com/package/@deepseek-ai/dsh-tool-call-timeout-policy/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-tools`](https://www.npmjs.com/package/@deepseek-ai/dsh-tools/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-typert-loader`](https://www.npmjs.com/package/@deepseek-ai/dsh-typert-loader/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-typert-protocol`](https://www.npmjs.com/package/@deepseek-ai/dsh-typert-protocol/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-typert-registry`](https://www.npmjs.com/package/@deepseek-ai/dsh-typert-registry/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-user-approval`](https://www.npmjs.com/package/@deepseek-ai/dsh-user-approval/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-user-questions`](https://www.npmjs.com/package/@deepseek-ai/dsh-user-questions/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-util-crypto`](https://www.npmjs.com/package/@deepseek-ai/dsh-util-crypto/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-util-time`](https://www.npmjs.com/package/@deepseek-ai/dsh-util-time/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-util-values`](https://www.npmjs.com/package/@deepseek-ai/dsh-util-values/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-util-workspace-path`](https://www.npmjs.com/package/@deepseek-ai/dsh-util-workspace-path/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-web`](https://www.npmjs.com/package/@deepseek-ai/dsh-web/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-web-fetch-http`](https://www.npmjs.com/package/@deepseek-ai/dsh-web-fetch-http/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-web-frontend`](https://www.npmjs.com/package/@deepseek-ai/dsh-web-frontend/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-web-search-deepseek`](https://www.npmjs.com/package/@deepseek-ai/dsh-web-search-deepseek/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-win32-process`](https://www.npmjs.com/package/@deepseek-ai/dsh-win32-process/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/dsh-workflow`](https://www.npmjs.com/package/@deepseek-ai/dsh-workflow/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需; Peer 自动安装 | — |
-| [`@deepseek-ai/dsh-workspace`](https://www.npmjs.com/package/@deepseek-ai/dsh-workspace/v/0.1.5-rc.2) | `0.1.5-rc.2` | 必需 | — |
-| [`@deepseek-ai/node-addon-system`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system/v/0.1.2) | `0.1.2` | 必需 | — |
-| [`@deepseek-ai/node-addon-system-darwin-arm64`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system-darwin-arm64/v/0.1.2) | `0.1.2` | 可选 | os: darwin; cpu: arm64 |
-| [`@deepseek-ai/node-addon-system-darwin-x64`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system-darwin-x64/v/0.1.2) | `0.1.2` | 可选 | os: darwin; cpu: x64 |
-| [`@deepseek-ai/node-addon-system-linux-arm64`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system-linux-arm64/v/0.1.2) | `0.1.2` | 可选 | os: linux; cpu: arm64 |
-| [`@deepseek-ai/node-addon-system-linux-x64`](https://www.npmjs.com/package/@deepseek-ai/node-addon-system-linux-x64/v/0.1.2) | `0.1.2` | 可选 | os: linux; cpu: x64 |
-| [`@earendil-works/pi-ai`](https://www.npmjs.com/package/@earendil-works/pi-ai/v/0.85.1) | `0.85.1` | 必需 | — |
-| [`@earendil-works/pi-telemetry`](https://www.npmjs.com/package/@earendil-works/pi-telemetry/v/0.85.1) | `0.85.1` | 必需 | — |
-| [`@emnapi/runtime`](https://www.npmjs.com/package/@emnapi/runtime/v/1.11.3) | `1.11.3` | 可选 | — |
-| [`@google/genai`](https://www.npmjs.com/package/@google/genai/v/1.52.0) | `1.52.0` | 必需 | — |
-| [`@hono/node-server`](https://www.npmjs.com/package/@hono/node-server/v/2.1.1) | `2.1.1` | 必需 | — |
-| [`@img/colour`](https://www.npmjs.com/package/@img/colour/v/1.1.0) | `1.1.0` | 必需 | — |
-| [`@img/sharp-darwin-arm64`](https://www.npmjs.com/package/@img/sharp-darwin-arm64/v/0.35.4) | `0.35.4` | 可选 | os: darwin; cpu: arm64 |
-| [`@img/sharp-darwin-x64`](https://www.npmjs.com/package/@img/sharp-darwin-x64/v/0.35.4) | `0.35.4` | 可选 | os: darwin; cpu: x64 |
-| [`@img/sharp-freebsd-wasm32`](https://www.npmjs.com/package/@img/sharp-freebsd-wasm32/v/0.35.4) | `0.35.4` | 可选 | os: freebsd |
-| [`@img/sharp-libvips-darwin-arm64`](https://www.npmjs.com/package/@img/sharp-libvips-darwin-arm64/v/1.3.3) | `1.3.3` | 可选 | os: darwin; cpu: arm64 |
-| [`@img/sharp-libvips-darwin-x64`](https://www.npmjs.com/package/@img/sharp-libvips-darwin-x64/v/1.3.3) | `1.3.3` | 可选 | os: darwin; cpu: x64 |
-| [`@img/sharp-libvips-linux-arm`](https://www.npmjs.com/package/@img/sharp-libvips-linux-arm/v/1.3.3) | `1.3.3` | 可选 | os: linux; cpu: arm; libc: glibc |
-| [`@img/sharp-libvips-linux-arm64`](https://www.npmjs.com/package/@img/sharp-libvips-linux-arm64/v/1.3.3) | `1.3.3` | 可选 | os: linux; cpu: arm64; libc: glibc |
-| [`@img/sharp-libvips-linux-ppc64`](https://www.npmjs.com/package/@img/sharp-libvips-linux-ppc64/v/1.3.3) | `1.3.3` | 可选 | os: linux; cpu: ppc64; libc: glibc |
-| [`@img/sharp-libvips-linux-riscv64`](https://www.npmjs.com/package/@img/sharp-libvips-linux-riscv64/v/1.3.3) | `1.3.3` | 可选 | os: linux; cpu: riscv64; libc: glibc |
-| [`@img/sharp-libvips-linux-s390x`](https://www.npmjs.com/package/@img/sharp-libvips-linux-s390x/v/1.3.3) | `1.3.3` | 可选 | os: linux; cpu: s390x; libc: glibc |
-| [`@img/sharp-libvips-linux-x64`](https://www.npmjs.com/package/@img/sharp-libvips-linux-x64/v/1.3.3) | `1.3.3` | 可选 | os: linux; cpu: x64; libc: glibc |
-| [`@img/sharp-libvips-linuxmusl-arm64`](https://www.npmjs.com/package/@img/sharp-libvips-linuxmusl-arm64/v/1.3.3) | `1.3.3` | 可选 | os: linux; cpu: arm64; libc: musl |
-| [`@img/sharp-libvips-linuxmusl-x64`](https://www.npmjs.com/package/@img/sharp-libvips-linuxmusl-x64/v/1.3.3) | `1.3.3` | 可选 | os: linux; cpu: x64; libc: musl |
-| [`@img/sharp-linux-arm`](https://www.npmjs.com/package/@img/sharp-linux-arm/v/0.35.4) | `0.35.4` | 可选 | os: linux; cpu: arm; libc: glibc |
-| [`@img/sharp-linux-arm64`](https://www.npmjs.com/package/@img/sharp-linux-arm64/v/0.35.4) | `0.35.4` | 可选 | os: linux; cpu: arm64; libc: glibc |
-| [`@img/sharp-linux-ppc64`](https://www.npmjs.com/package/@img/sharp-linux-ppc64/v/0.35.4) | `0.35.4` | 可选 | os: linux; cpu: ppc64; libc: glibc |
-| [`@img/sharp-linux-riscv64`](https://www.npmjs.com/package/@img/sharp-linux-riscv64/v/0.35.4) | `0.35.4` | 可选 | os: linux; cpu: riscv64; libc: glibc |
-| [`@img/sharp-linux-s390x`](https://www.npmjs.com/package/@img/sharp-linux-s390x/v/0.35.4) | `0.35.4` | 可选 | os: linux; cpu: s390x; libc: glibc |
-| [`@img/sharp-linux-x64`](https://www.npmjs.com/package/@img/sharp-linux-x64/v/0.35.4) | `0.35.4` | 可选 | os: linux; cpu: x64; libc: glibc |
-| [`@img/sharp-linuxmusl-arm64`](https://www.npmjs.com/package/@img/sharp-linuxmusl-arm64/v/0.35.4) | `0.35.4` | 可选 | os: linux; cpu: arm64; libc: musl |
-| [`@img/sharp-linuxmusl-x64`](https://www.npmjs.com/package/@img/sharp-linuxmusl-x64/v/0.35.4) | `0.35.4` | 可选 | os: linux; cpu: x64; libc: musl |
-| [`@img/sharp-wasm32`](https://www.npmjs.com/package/@img/sharp-wasm32/v/0.35.4) | `0.35.4` | 可选 | — |
-| [`@img/sharp-webcontainers-wasm32`](https://www.npmjs.com/package/@img/sharp-webcontainers-wasm32/v/0.35.4) | `0.35.4` | 可选 | cpu: wasm32 |
-| [`@img/sharp-win32-arm64`](https://www.npmjs.com/package/@img/sharp-win32-arm64/v/0.35.4) | `0.35.4` | 可选 | os: win32; cpu: arm64 |
-| [`@img/sharp-win32-ia32`](https://www.npmjs.com/package/@img/sharp-win32-ia32/v/0.35.4) | `0.35.4` | 可选 | os: win32; cpu: ia32 |
-| [`@img/sharp-win32-x64`](https://www.npmjs.com/package/@img/sharp-win32-x64/v/0.35.4) | `0.35.4` | 可选 | os: win32; cpu: x64 |
-| [`@joplin/turndown-plugin-gfm`](https://www.npmjs.com/package/@joplin/turndown-plugin-gfm/v/1.0.68) | `1.0.68` | 必需 | — |
-| [`@koromix/koffi-android-arm64`](https://www.npmjs.com/package/@koromix/koffi-android-arm64/v/3.2.1) | `3.2.1` | 可选 | os: android; cpu: arm64 |
-| [`@koromix/koffi-android-x64`](https://www.npmjs.com/package/@koromix/koffi-android-x64/v/3.2.1) | `3.2.1` | 可选 | os: android; cpu: x64 |
-| [`@koromix/koffi-darwin-arm64`](https://www.npmjs.com/package/@koromix/koffi-darwin-arm64/v/3.2.1) | `3.2.1` | 可选 | os: darwin; cpu: arm64 |
-| [`@koromix/koffi-darwin-x64`](https://www.npmjs.com/package/@koromix/koffi-darwin-x64/v/3.2.1) | `3.2.1` | 可选 | os: darwin; cpu: x64 |
-| [`@koromix/koffi-freebsd-arm64`](https://www.npmjs.com/package/@koromix/koffi-freebsd-arm64/v/3.2.1) | `3.2.1` | 可选 | os: freebsd; cpu: arm64 |
-| [`@koromix/koffi-freebsd-ia32`](https://www.npmjs.com/package/@koromix/koffi-freebsd-ia32/v/3.2.1) | `3.2.1` | 可选 | os: freebsd; cpu: ia32 |
-| [`@koromix/koffi-freebsd-x64`](https://www.npmjs.com/package/@koromix/koffi-freebsd-x64/v/3.2.1) | `3.2.1` | 可选 | os: freebsd; cpu: x64 |
-| [`@koromix/koffi-linux-arm`](https://www.npmjs.com/package/@koromix/koffi-linux-arm/v/3.2.1) | `3.2.1` | 可选 | os: linux; cpu: arm |
-| [`@koromix/koffi-linux-arm64`](https://www.npmjs.com/package/@koromix/koffi-linux-arm64/v/3.2.1) | `3.2.1` | 可选 | os: linux; cpu: arm64 |
-| [`@koromix/koffi-linux-ia32`](https://www.npmjs.com/package/@koromix/koffi-linux-ia32/v/3.2.1) | `3.2.1` | 可选 | os: linux; cpu: ia32 |
-| [`@koromix/koffi-linux-loong64`](https://www.npmjs.com/package/@koromix/koffi-linux-loong64/v/3.2.1) | `3.2.1` | 可选 | os: linux; cpu: loong64 |
-| [`@koromix/koffi-linux-riscv64`](https://www.npmjs.com/package/@koromix/koffi-linux-riscv64/v/3.2.1) | `3.2.1` | 可选 | os: linux; cpu: riscv64 |
-| [`@koromix/koffi-linux-x64`](https://www.npmjs.com/package/@koromix/koffi-linux-x64/v/3.2.1) | `3.2.1` | 可选 | os: linux; cpu: x64 |
-| [`@koromix/koffi-openbsd-ia32`](https://www.npmjs.com/package/@koromix/koffi-openbsd-ia32/v/3.2.1) | `3.2.1` | 可选 | os: openbsd; cpu: ia32 |
-| [`@koromix/koffi-openbsd-x64`](https://www.npmjs.com/package/@koromix/koffi-openbsd-x64/v/3.2.1) | `3.2.1` | 可选 | os: openbsd; cpu: x64 |
-| [`@koromix/koffi-win32-arm64`](https://www.npmjs.com/package/@koromix/koffi-win32-arm64/v/3.2.1) | `3.2.1` | 可选 | os: win32; cpu: arm64 |
-| [`@koromix/koffi-win32-ia32`](https://www.npmjs.com/package/@koromix/koffi-win32-ia32/v/3.2.1) | `3.2.1` | 可选 | os: win32; cpu: ia32 |
-| [`@koromix/koffi-win32-x64`](https://www.npmjs.com/package/@koromix/koffi-win32-x64/v/3.2.1) | `3.2.1` | 可选 | os: win32; cpu: x64 |
-| [`@mixmark-io/domino`](https://www.npmjs.com/package/@mixmark-io/domino/v/2.2.0) | `2.2.0` | 必需 | — |
-| [`@modelcontextprotocol/sdk`](https://www.npmjs.com/package/@modelcontextprotocol/sdk/v/1.30.0) | `1.30.0` | 必需 | — |
-| [`@octokit/openapi-types`](https://www.npmjs.com/package/@octokit/openapi-types/v/29.0.1) | `29.0.1` | 必需 | — |
-| [`@octokit/openapi-webhooks-types`](https://www.npmjs.com/package/@octokit/openapi-webhooks-types/v/12.1.0) | `12.1.0` | 必需 | — |
-| [`@octokit/request-error`](https://www.npmjs.com/package/@octokit/request-error/v/7.1.2) | `7.1.2` | 必需 | — |
-| [`@octokit/types`](https://www.npmjs.com/package/@octokit/types/v/18.0.0) | `18.0.0` | 必需 | — |
-| [`@octokit/webhooks`](https://www.npmjs.com/package/@octokit/webhooks/v/14.2.0) | `14.2.0` | 必需 | — |
-| [`@octokit/webhooks-methods`](https://www.npmjs.com/package/@octokit/webhooks-methods/v/6.0.0) | `6.0.0` | 必需 | — |
-| [`@opentelemetry/api`](https://www.npmjs.com/package/@opentelemetry/api/v/1.9.1) | `1.9.1` | 必需 | — |
-| [`@opentelemetry/api-logs`](https://www.npmjs.com/package/@opentelemetry/api-logs/v/0.220.0) | `0.220.0` | 必需 | — |
-| [`@opentelemetry/core`](https://www.npmjs.com/package/@opentelemetry/core/v/2.11.0) | `2.11.0` | 必需 | — |
-| [`@opentelemetry/core`](https://www.npmjs.com/package/@opentelemetry/core/v/2.9.0) | `2.9.0` | 必需 | — |
-| [`@opentelemetry/exporter-logs-otlp-http`](https://www.npmjs.com/package/@opentelemetry/exporter-logs-otlp-http/v/0.220.0) | `0.220.0` | 必需 | — |
-| [`@opentelemetry/otlp-exporter-base`](https://www.npmjs.com/package/@opentelemetry/otlp-exporter-base/v/0.220.0) | `0.220.0` | 必需 | — |
-| [`@opentelemetry/otlp-transformer`](https://www.npmjs.com/package/@opentelemetry/otlp-transformer/v/0.220.0) | `0.220.0` | 必需 | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.11.0) | `2.11.0` | 必需 | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.9.0) | `2.9.0` | 必需 | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.9.0) | `2.9.0` | 必需 | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.9.0) | `2.9.0` | 必需 | — |
-| [`@opentelemetry/resources`](https://www.npmjs.com/package/@opentelemetry/resources/v/2.9.0) | `2.9.0` | 必需 | — |
-| [`@opentelemetry/sdk-logs`](https://www.npmjs.com/package/@opentelemetry/sdk-logs/v/0.220.0) | `0.220.0` | 必需 | — |
-| [`@opentelemetry/sdk-metrics`](https://www.npmjs.com/package/@opentelemetry/sdk-metrics/v/2.9.0) | `2.9.0` | 必需 | — |
-| [`@opentelemetry/sdk-trace`](https://www.npmjs.com/package/@opentelemetry/sdk-trace/v/2.9.0) | `2.9.0` | 必需 | — |
-| [`@opentelemetry/semantic-conventions`](https://www.npmjs.com/package/@opentelemetry/semantic-conventions/v/1.43.0) | `1.43.0` | 必需 | — |
-| [`@protobufjs/aspromise`](https://www.npmjs.com/package/@protobufjs/aspromise/v/1.1.2) | `1.1.2` | 必需 | — |
-| [`@protobufjs/base64`](https://www.npmjs.com/package/@protobufjs/base64/v/1.1.2) | `1.1.2` | 必需 | — |
-| [`@protobufjs/codegen`](https://www.npmjs.com/package/@protobufjs/codegen/v/2.0.5) | `2.0.5` | 必需 | — |
-| [`@protobufjs/eventemitter`](https://www.npmjs.com/package/@protobufjs/eventemitter/v/1.1.1) | `1.1.1` | 必需 | — |
-| [`@protobufjs/fetch`](https://www.npmjs.com/package/@protobufjs/fetch/v/1.1.1) | `1.1.1` | 必需 | — |
-| [`@protobufjs/float`](https://www.npmjs.com/package/@protobufjs/float/v/1.0.2) | `1.0.2` | 必需 | — |
-| [`@protobufjs/path`](https://www.npmjs.com/package/@protobufjs/path/v/1.1.2) | `1.1.2` | 必需 | — |
-| [`@protobufjs/pool`](https://www.npmjs.com/package/@protobufjs/pool/v/1.1.0) | `1.1.0` | 必需 | — |
-| [`@protobufjs/utf8`](https://www.npmjs.com/package/@protobufjs/utf8/v/1.1.2) | `1.1.2` | 必需 | — |
-| [`@smithy/core`](https://www.npmjs.com/package/@smithy/core/v/3.34.1) | `3.34.1` | 必需 | — |
-| [`@smithy/credential-provider-imds`](https://www.npmjs.com/package/@smithy/credential-provider-imds/v/4.5.2) | `4.5.2` | 必需 | — |
-| [`@smithy/fetch-http-handler`](https://www.npmjs.com/package/@smithy/fetch-http-handler/v/5.8.0) | `5.8.0` | 必需 | — |
-| [`@smithy/is-array-buffer`](https://www.npmjs.com/package/@smithy/is-array-buffer/v/2.2.0) | `2.2.0` | 必需 | — |
-| [`@smithy/node-http-handler`](https://www.npmjs.com/package/@smithy/node-http-handler/v/4.12.1) | `4.12.1` | 必需 | — |
-| [`@smithy/node-http-handler`](https://www.npmjs.com/package/@smithy/node-http-handler/v/4.12.1) | `4.12.1` | 必需 | — |
-| [`@smithy/node-http-handler`](https://www.npmjs.com/package/@smithy/node-http-handler/v/4.7.3) | `4.7.3` | 必需 | — |
-| [`@smithy/signature-v4`](https://www.npmjs.com/package/@smithy/signature-v4/v/5.7.3) | `5.7.3` | 必需 | — |
-| [`@smithy/types`](https://www.npmjs.com/package/@smithy/types/v/4.18.0) | `4.18.0` | 必需 | — |
-| [`@smithy/util-buffer-from`](https://www.npmjs.com/package/@smithy/util-buffer-from/v/2.2.0) | `2.2.0` | 必需 | — |
-| [`@smithy/util-utf8`](https://www.npmjs.com/package/@smithy/util-utf8/v/2.3.0) | `2.3.0` | 必需 | — |
-| [`@stablelib/base64`](https://www.npmjs.com/package/@stablelib/base64/v/1.0.1) | `1.0.1` | 必需 | — |
-| [`@standard-schema/spec`](https://www.npmjs.com/package/@standard-schema/spec/v/1.1.0) | `1.1.0` | 必需 | — |
-| [`@types/node`](https://www.npmjs.com/package/@types/node/v/22.20.2) | `22.20.2` | 必需 | — |
-| [`@types/retry`](https://www.npmjs.com/package/@types/retry/v/0.12.0) | `0.12.0` | 必需 | — |
-| [`@vscode/ripgrep`](https://www.npmjs.com/package/@vscode/ripgrep/v/1.18.0) | `1.18.0` | 必需 | — |
-| [`@vscode/ripgrep-darwin-arm64`](https://www.npmjs.com/package/@vscode/ripgrep-darwin-arm64/v/1.18.0) | `1.18.0` | 可选 | os: darwin; cpu: arm64 |
-| [`@vscode/ripgrep-darwin-x64`](https://www.npmjs.com/package/@vscode/ripgrep-darwin-x64/v/1.18.0) | `1.18.0` | 可选 | os: darwin; cpu: x64 |
-| [`@vscode/ripgrep-linux-arm`](https://www.npmjs.com/package/@vscode/ripgrep-linux-arm/v/1.18.0) | `1.18.0` | 可选 | os: linux; cpu: arm |
-| [`@vscode/ripgrep-linux-arm64`](https://www.npmjs.com/package/@vscode/ripgrep-linux-arm64/v/1.18.0) | `1.18.0` | 可选 | os: linux; cpu: arm64 |
-| [`@vscode/ripgrep-linux-ia32`](https://www.npmjs.com/package/@vscode/ripgrep-linux-ia32/v/1.18.0) | `1.18.0` | 可选 | os: linux; cpu: ia32 |
-| [`@vscode/ripgrep-linux-ppc64`](https://www.npmjs.com/package/@vscode/ripgrep-linux-ppc64/v/1.18.0) | `1.18.0` | 可选 | os: linux; cpu: ppc64 |
-| [`@vscode/ripgrep-linux-riscv64`](https://www.npmjs.com/package/@vscode/ripgrep-linux-riscv64/v/1.18.0) | `1.18.0` | 可选 | os: linux; cpu: riscv64 |
-| [`@vscode/ripgrep-linux-s390x`](https://www.npmjs.com/package/@vscode/ripgrep-linux-s390x/v/1.18.0) | `1.18.0` | 可选 | os: linux; cpu: s390x |
-| [`@vscode/ripgrep-linux-x64`](https://www.npmjs.com/package/@vscode/ripgrep-linux-x64/v/1.18.0) | `1.18.0` | 可选 | os: linux; cpu: x64 |
-| [`@vscode/ripgrep-win32-arm64`](https://www.npmjs.com/package/@vscode/ripgrep-win32-arm64/v/1.18.0) | `1.18.0` | 可选 | os: win32; cpu: arm64 |
-| [`@vscode/ripgrep-win32-ia32`](https://www.npmjs.com/package/@vscode/ripgrep-win32-ia32/v/1.18.0) | `1.18.0` | 可选 | os: win32; cpu: ia32 |
-| [`@vscode/ripgrep-win32-x64`](https://www.npmjs.com/package/@vscode/ripgrep-win32-x64/v/1.18.0) | `1.18.0` | 可选 | os: win32; cpu: x64 |
-| [`@xterm/headless`](https://www.npmjs.com/package/@xterm/headless/v/6.0.0) | `6.0.0` | 必需 | — |
-| [`accepts`](https://www.npmjs.com/package/accepts/v/2.0.0) | `2.0.0` | 必需 | — |
-| [`agent-base`](https://www.npmjs.com/package/agent-base/v/7.1.4) | `7.1.4` | 必需 | — |
-| [`ajv`](https://www.npmjs.com/package/ajv/v/8.20.0) | `8.20.0` | 必需 | — |
-| [`ajv-formats`](https://www.npmjs.com/package/ajv-formats/v/3.0.1) | `3.0.1` | 必需 | — |
-| [`argparse`](https://www.npmjs.com/package/argparse/v/2.0.1) | `2.0.1` | 必需 | — |
-| [`base64-js`](https://www.npmjs.com/package/base64-js/v/1.5.1) | `1.5.1` | 必需 | — |
-| [`bignumber.js`](https://www.npmjs.com/package/bignumber.js/v/9.3.1) | `9.3.1` | 必需 | — |
-| [`body-parser`](https://www.npmjs.com/package/body-parser/v/2.3.0) | `2.3.0` | 必需 | — |
-| [`bowser`](https://www.npmjs.com/package/bowser/v/2.14.1) | `2.14.1` | 必需 | — |
-| [`buffer-equal-constant-time`](https://www.npmjs.com/package/buffer-equal-constant-time/v/1.0.1) | `1.0.1` | 必需 | — |
-| [`bundle-name`](https://www.npmjs.com/package/bundle-name/v/4.1.0) | `4.1.0` | 必需 | — |
-| [`bytes`](https://www.npmjs.com/package/bytes/v/3.1.2) | `3.1.2` | 必需 | — |
-| [`call-bind-apply-helpers`](https://www.npmjs.com/package/call-bind-apply-helpers/v/1.0.2) | `1.0.2` | 必需 | — |
-| [`call-bound`](https://www.npmjs.com/package/call-bound/v/1.0.4) | `1.0.4` | 必需 | — |
-| [`chokidar`](https://www.npmjs.com/package/chokidar/v/4.0.3) | `4.0.3` | 必需 | — |
-| [`chokidar`](https://www.npmjs.com/package/chokidar/v/5.0.0) | `5.0.0` | 必需 | — |
-| [`compressible`](https://www.npmjs.com/package/compressible/v/2.0.18) | `2.0.18` | 必需 | — |
-| [`compression`](https://www.npmjs.com/package/compression/v/1.8.2) | `1.8.2` | 必需 | — |
-| [`content-disposition`](https://www.npmjs.com/package/content-disposition/v/1.1.0) | `1.1.0` | 必需 | — |
-| [`content-type`](https://www.npmjs.com/package/content-type/v/1.0.5) | `1.0.5` | 必需 | — |
-| [`content-type`](https://www.npmjs.com/package/content-type/v/2.1.0) | `2.1.0` | 必需 | — |
-| [`content-type`](https://www.npmjs.com/package/content-type/v/2.1.0) | `2.1.0` | 必需 | — |
-| [`content-type`](https://www.npmjs.com/package/content-type/v/2.1.0) | `2.1.0` | 必需 | — |
-| [`cookie`](https://www.npmjs.com/package/cookie/v/0.7.2) | `0.7.2` | 必需 | — |
-| [`cookie-signature`](https://www.npmjs.com/package/cookie-signature/v/1.2.2) | `1.2.2` | 必需 | — |
-| [`cors`](https://www.npmjs.com/package/cors/v/2.8.6) | `2.8.6` | 必需 | — |
-| [`cross-spawn`](https://www.npmjs.com/package/cross-spawn/v/7.0.6) | `7.0.6` | 必需 | — |
-| [`data-uri-to-buffer`](https://www.npmjs.com/package/data-uri-to-buffer/v/4.0.1) | `4.0.1` | 必需 | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/2.6.9) | `2.6.9` | 必需 | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | 必需 | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | 必需 | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | 必需 | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | 必需 | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | 必需 | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | 必需 | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | 必需 | — |
-| [`debug`](https://www.npmjs.com/package/debug/v/4.4.3) | `4.4.3` | 必需 | — |
-| [`default-browser`](https://www.npmjs.com/package/default-browser/v/5.5.1) | `5.5.1` | 必需 | — |
-| [`default-browser-id`](https://www.npmjs.com/package/default-browser-id/v/5.0.1) | `5.0.1` | 必需 | — |
-| [`define-lazy-prop`](https://www.npmjs.com/package/define-lazy-prop/v/3.0.0) | `3.0.0` | 必需 | — |
-| [`depd`](https://www.npmjs.com/package/depd/v/2.0.0) | `2.0.0` | 必需 | — |
-| [`destroy`](https://www.npmjs.com/package/destroy/v/1.2.0) | `1.2.0` | 必需 | — |
-| [`detect-libc`](https://www.npmjs.com/package/detect-libc/v/2.1.2) | `2.1.2` | 必需 | — |
-| [`diff`](https://www.npmjs.com/package/diff/v/9.0.0) | `9.0.0` | 必需 | — |
-| [`dunder-proto`](https://www.npmjs.com/package/dunder-proto/v/1.0.1) | `1.0.1` | 必需 | — |
-| [`ecdsa-sig-formatter`](https://www.npmjs.com/package/ecdsa-sig-formatter/v/1.0.11) | `1.0.11` | 必需 | — |
-| [`ee-first`](https://www.npmjs.com/package/ee-first/v/1.1.1) | `1.1.1` | 必需 | — |
-| [`encodeurl`](https://www.npmjs.com/package/encodeurl/v/2.0.0) | `2.0.0` | 必需 | — |
-| [`es-define-property`](https://www.npmjs.com/package/es-define-property/v/1.0.1) | `1.0.1` | 必需 | — |
-| [`es-errors`](https://www.npmjs.com/package/es-errors/v/1.3.0) | `1.3.0` | 必需 | — |
-| [`es-object-atoms`](https://www.npmjs.com/package/es-object-atoms/v/1.1.2) | `1.1.2` | 必需 | — |
-| [`escape-html`](https://www.npmjs.com/package/escape-html/v/1.0.3) | `1.0.3` | 必需 | — |
-| [`etag`](https://www.npmjs.com/package/etag/v/1.8.1) | `1.8.1` | 必需 | — |
-| [`eventsource`](https://www.npmjs.com/package/eventsource/v/3.0.7) | `3.0.7` | 必需 | — |
-| [`eventsource-parser`](https://www.npmjs.com/package/eventsource-parser/v/3.1.1) | `3.1.1` | 必需 | — |
-| [`express`](https://www.npmjs.com/package/express/v/5.2.1) | `5.2.1` | 必需 | — |
-| [`express-rate-limit`](https://www.npmjs.com/package/express-rate-limit/v/8.7.0) | `8.7.0` | 必需 | — |
-| [`extend`](https://www.npmjs.com/package/extend/v/3.0.2) | `3.0.2` | 必需 | — |
-| [`fast-deep-equal`](https://www.npmjs.com/package/fast-deep-equal/v/3.1.3) | `3.1.3` | 必需 | — |
-| [`fast-sha256`](https://www.npmjs.com/package/fast-sha256/v/1.3.0) | `1.3.0` | 必需 | — |
-| [`fast-uri`](https://www.npmjs.com/package/fast-uri/v/3.1.7) | `3.1.7` | 必需 | — |
-| [`fetch-blob`](https://www.npmjs.com/package/fetch-blob/v/3.2.0) | `3.2.0` | 必需 | — |
-| [`fflate`](https://www.npmjs.com/package/fflate/v/0.8.3) | `0.8.3` | 必需 | — |
-| [`finalhandler`](https://www.npmjs.com/package/finalhandler/v/2.1.1) | `2.1.1` | 必需 | — |
-| [`formdata-polyfill`](https://www.npmjs.com/package/formdata-polyfill/v/4.0.10) | `4.0.10` | 必需 | — |
-| [`forwarded`](https://www.npmjs.com/package/forwarded/v/0.2.0) | `0.2.0` | 必需 | — |
-| [`fresh`](https://www.npmjs.com/package/fresh/v/2.0.0) | `2.0.0` | 必需 | — |
-| [`function-bind`](https://www.npmjs.com/package/function-bind/v/1.1.2) | `1.1.2` | 必需 | — |
-| [`gaxios`](https://www.npmjs.com/package/gaxios/v/7.3.1) | `7.3.1` | 必需 | — |
-| [`gcp-metadata`](https://www.npmjs.com/package/gcp-metadata/v/8.1.2) | `8.1.2` | 必需 | — |
-| [`get-intrinsic`](https://www.npmjs.com/package/get-intrinsic/v/1.3.0) | `1.3.0` | 必需 | — |
-| [`get-proto`](https://www.npmjs.com/package/get-proto/v/1.0.1) | `1.0.1` | 必需 | — |
-| [`google-auth-library`](https://www.npmjs.com/package/google-auth-library/v/10.9.1) | `10.9.1` | 必需 | — |
-| [`google-logging-utils`](https://www.npmjs.com/package/google-logging-utils/v/1.1.3) | `1.1.3` | 必需 | — |
-| [`gopd`](https://www.npmjs.com/package/gopd/v/1.2.0) | `1.2.0` | 必需 | — |
-| [`has-symbols`](https://www.npmjs.com/package/has-symbols/v/1.1.0) | `1.1.0` | 必需 | — |
-| [`hasown`](https://www.npmjs.com/package/hasown/v/2.0.4) | `2.0.4` | 必需 | — |
-| [`hono`](https://www.npmjs.com/package/hono/v/4.13.7) | `4.13.7` | 必需 | — |
-| [`http-errors`](https://www.npmjs.com/package/http-errors/v/2.0.1) | `2.0.1` | 必需 | — |
-| [`http-proxy-agent`](https://www.npmjs.com/package/http-proxy-agent/v/7.0.2) | `7.0.2` | 必需 | — |
-| [`https-proxy-agent`](https://www.npmjs.com/package/https-proxy-agent/v/7.0.6) | `7.0.6` | 必需 | — |
-| [`iconv-lite`](https://www.npmjs.com/package/iconv-lite/v/0.7.3) | `0.7.3` | 必需 | — |
-| [`inherits`](https://www.npmjs.com/package/inherits/v/2.0.4) | `2.0.4` | 必需 | — |
-| [`ip-address`](https://www.npmjs.com/package/ip-address/v/10.7.0) | `10.7.0` | 必需 | — |
-| [`ipaddr.js`](https://www.npmjs.com/package/ipaddr.js/v/1.9.1) | `1.9.1` | 必需 | — |
-| [`ipaddr.js`](https://www.npmjs.com/package/ipaddr.js/v/2.5.0) | `2.5.0` | 必需 | — |
-| [`is-docker`](https://www.npmjs.com/package/is-docker/v/3.0.0) | `3.0.0` | 必需 | — |
-| [`is-in-ssh`](https://www.npmjs.com/package/is-in-ssh/v/1.0.0) | `1.0.0` | 必需 | — |
-| [`is-inside-container`](https://www.npmjs.com/package/is-inside-container/v/1.0.0) | `1.0.0` | 必需 | — |
-| [`is-promise`](https://www.npmjs.com/package/is-promise/v/4.0.0) | `4.0.0` | 必需 | — |
-| [`is-wsl`](https://www.npmjs.com/package/is-wsl/v/3.1.1) | `3.1.1` | 必需 | — |
-| [`isexe`](https://www.npmjs.com/package/isexe/v/2.0.0) | `2.0.0` | 必需 | — |
-| [`jose`](https://www.npmjs.com/package/jose/v/6.2.12) | `6.2.12` | 必需 | — |
-| [`js-tokens`](https://www.npmjs.com/package/js-tokens/v/4.0.0) | `4.0.0` | 必需 | — |
-| [`json-bigint`](https://www.npmjs.com/package/json-bigint/v/1.0.0) | `1.0.0` | 必需 | — |
-| [`json-schema-to-ts`](https://www.npmjs.com/package/json-schema-to-ts/v/3.1.1) | `3.1.1` | 必需 | — |
-| [`json-schema-traverse`](https://www.npmjs.com/package/json-schema-traverse/v/1.0.0) | `1.0.0` | 必需 | — |
-| [`json-schema-typed`](https://www.npmjs.com/package/json-schema-typed/v/8.0.2) | `8.0.2` | 必需 | — |
-| [`jwa`](https://www.npmjs.com/package/jwa/v/2.0.1) | `2.0.1` | 必需 | — |
-| [`jws`](https://www.npmjs.com/package/jws/v/4.0.1) | `4.0.1` | 必需 | — |
-| [`koffi`](https://www.npmjs.com/package/koffi/v/3.2.1) | `3.2.1` | 必需 | — |
-| [`long`](https://www.npmjs.com/package/long/v/5.3.2) | `5.3.2` | 必需 | — |
-| [`math-intrinsics`](https://www.npmjs.com/package/math-intrinsics/v/1.1.0) | `1.1.0` | 必需 | — |
-| [`media-typer`](https://www.npmjs.com/package/media-typer/v/1.1.1) | `1.1.1` | 必需 | — |
-| [`merge-descriptors`](https://www.npmjs.com/package/merge-descriptors/v/2.0.0) | `2.0.0` | 必需 | — |
-| [`mime-db`](https://www.npmjs.com/package/mime-db/v/1.54.0) | `1.54.0` | 必需 | — |
-| [`mime-types`](https://www.npmjs.com/package/mime-types/v/3.0.2) | `3.0.2` | 必需 | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.0.0) | `2.0.0` | 必需 | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | 必需 | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | 必需 | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | 必需 | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | 必需 | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | 必需 | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | 必需 | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | 必需 | — |
-| [`ms`](https://www.npmjs.com/package/ms/v/2.1.3) | `2.1.3` | 必需 | — |
-| [`negotiator`](https://www.npmjs.com/package/negotiator/v/0.6.4) | `0.6.4` | 必需 | — |
-| [`negotiator`](https://www.npmjs.com/package/negotiator/v/1.1.0) | `1.1.0` | 必需 | — |
-| [`node-addon-api`](https://www.npmjs.com/package/node-addon-api/v/7.1.1) | `7.1.1` | 必需 | — |
-| [`node-addon-native-custom-loader`](https://www.npmjs.com/package/node-addon-native-custom-loader/v/0.1.5) | `0.1.5` | 必需 | — |
-| [`node-addon-require-builtin-darwin-arm64`](https://www.npmjs.com/package/node-addon-require-builtin-darwin-arm64/v/0.1.5) | `0.1.5` | 可选 | os: darwin; cpu: arm64 |
-| [`node-addon-require-builtin-darwin-x64`](https://www.npmjs.com/package/node-addon-require-builtin-darwin-x64/v/0.1.5) | `0.1.5` | 可选 | os: darwin; cpu: x64 |
-| [`node-addon-require-builtin-linux-arm64-gnu`](https://www.npmjs.com/package/node-addon-require-builtin-linux-arm64-gnu/v/0.1.5) | `0.1.5` | 可选 | os: linux; cpu: arm64; libc: glibc |
-| [`node-addon-require-builtin-linux-x64-gnu`](https://www.npmjs.com/package/node-addon-require-builtin-linux-x64-gnu/v/0.1.5) | `0.1.5` | 可选 | os: linux; cpu: x64; libc: glibc |
-| [`node-addon-require-builtin-win32-arm64-msvc`](https://www.npmjs.com/package/node-addon-require-builtin-win32-arm64-msvc/v/0.1.5) | `0.1.5` | 可选 | os: win32; cpu: arm64 |
-| [`node-addon-require-builtin-win32-ia32-msvc`](https://www.npmjs.com/package/node-addon-require-builtin-win32-ia32-msvc/v/0.1.5) | `0.1.5` | 可选 | os: win32; cpu: ia32 |
-| [`node-addon-require-builtin-win32-x64-msvc`](https://www.npmjs.com/package/node-addon-require-builtin-win32-x64-msvc/v/0.1.5) | `0.1.5` | 可选 | os: win32; cpu: x64 |
-| [`node-domexception`](https://www.npmjs.com/package/node-domexception/v/1.0.0) | `1.0.0` | 必需 | — |
-| [`node-fetch`](https://www.npmjs.com/package/node-fetch/v/3.3.2) | `3.3.2` | 必需 | — |
-| [`node-pty`](https://www.npmjs.com/package/node-pty/v/1.2.0-beta.15) | `1.2.0-beta.15` | 必需 | — |
-| [`object-assign`](https://www.npmjs.com/package/object-assign/v/4.1.1) | `4.1.1` | 必需 | — |
-| [`object-inspect`](https://www.npmjs.com/package/object-inspect/v/1.13.4) | `1.13.4` | 必需 | — |
-| [`on-finished`](https://www.npmjs.com/package/on-finished/v/2.4.1) | `2.4.1` | 必需 | — |
-| [`on-headers`](https://www.npmjs.com/package/on-headers/v/1.1.0) | `1.1.0` | 必需 | — |
-| [`once`](https://www.npmjs.com/package/once/v/1.4.0) | `1.4.0` | 必需 | — |
-| [`open`](https://www.npmjs.com/package/open/v/11.0.3) | `11.0.3` | 必需 | — |
-| [`openai`](https://www.npmjs.com/package/openai/v/6.40.0) | `6.40.0` | 必需 | — |
-| [`p-retry`](https://www.npmjs.com/package/p-retry/v/4.6.2) | `4.6.2` | 必需 | — |
-| [`parseurl`](https://www.npmjs.com/package/parseurl/v/1.3.3) | `1.3.3` | 必需 | — |
-| [`partial-json`](https://www.npmjs.com/package/partial-json/v/0.1.7) | `0.1.7` | 必需 | — |
-| [`path-key`](https://www.npmjs.com/package/path-key/v/3.1.1) | `3.1.1` | 必需 | — |
-| [`path-to-regexp`](https://www.npmjs.com/package/path-to-regexp/v/8.4.2) | `8.4.2` | 必需 | — |
-| [`picocolors`](https://www.npmjs.com/package/picocolors/v/1.1.1) | `1.1.1` | 必需 | — |
-| [`picomatch`](https://www.npmjs.com/package/picomatch/v/4.0.7) | `4.0.7` | 必需 | — |
-| [`pkce-challenge`](https://www.npmjs.com/package/pkce-challenge/v/5.0.1) | `5.0.1` | 必需 | — |
-| [`powershell-utils`](https://www.npmjs.com/package/powershell-utils/v/0.1.0) | `0.1.0` | 必需 | — |
-| [`powershell-utils`](https://www.npmjs.com/package/powershell-utils/v/0.2.1) | `0.2.1` | 必需 | — |
-| [`protobufjs`](https://www.npmjs.com/package/protobufjs/v/7.6.6) | `7.6.6` | 必需 | — |
-| [`proxy-addr`](https://www.npmjs.com/package/proxy-addr/v/2.0.7) | `2.0.7` | 必需 | — |
-| [`qs`](https://www.npmjs.com/package/qs/v/6.16.0) | `6.16.0` | 必需 | — |
-| [`range-parser`](https://www.npmjs.com/package/range-parser/v/1.3.0) | `1.3.0` | 必需 | — |
-| [`raw-body`](https://www.npmjs.com/package/raw-body/v/3.0.2) | `3.0.2` | 必需 | — |
-| [`readdirp`](https://www.npmjs.com/package/readdirp/v/4.1.2) | `4.1.2` | 必需 | — |
-| [`readdirp`](https://www.npmjs.com/package/readdirp/v/5.1.1) | `5.1.1` | 必需 | — |
-| [`require-from-string`](https://www.npmjs.com/package/require-from-string/v/2.0.2) | `2.0.2` | 必需 | — |
-| [`resolve.exports`](https://www.npmjs.com/package/resolve.exports/v/2.0.3) | `2.0.3` | 必需 | — |
-| [`retry`](https://www.npmjs.com/package/retry/v/0.13.1) | `0.13.1` | 必需 | — |
-| [`router`](https://www.npmjs.com/package/router/v/2.2.0) | `2.2.0` | 必需 | — |
-| [`run-applescript`](https://www.npmjs.com/package/run-applescript/v/7.1.0) | `7.1.0` | 必需 | — |
-| [`safe-buffer`](https://www.npmjs.com/package/safe-buffer/v/5.2.1) | `5.2.1` | 必需 | — |
-| [`safer-buffer`](https://www.npmjs.com/package/safer-buffer/v/2.1.2) | `2.1.2` | 必需 | — |
-| [`semver`](https://www.npmjs.com/package/semver/v/7.8.5) | `7.8.5` | 必需 | — |
-| [`send`](https://www.npmjs.com/package/send/v/1.2.1) | `1.2.1` | 必需 | — |
-| [`serve-static`](https://www.npmjs.com/package/serve-static/v/2.2.1) | `2.2.1` | 必需 | — |
-| [`setprototypeof`](https://www.npmjs.com/package/setprototypeof/v/1.2.0) | `1.2.0` | 必需 | — |
-| [`sharp`](https://www.npmjs.com/package/sharp/v/0.35.4) | `0.35.4` | 必需 | — |
-| [`shebang-command`](https://www.npmjs.com/package/shebang-command/v/2.0.0) | `2.0.0` | 必需 | — |
-| [`shebang-regex`](https://www.npmjs.com/package/shebang-regex/v/3.0.0) | `3.0.0` | 必需 | — |
-| [`side-channel`](https://www.npmjs.com/package/side-channel/v/1.1.1) | `1.1.1` | 必需 | — |
-| [`side-channel-list`](https://www.npmjs.com/package/side-channel-list/v/1.0.1) | `1.0.1` | 必需 | — |
-| [`side-channel-map`](https://www.npmjs.com/package/side-channel-map/v/1.0.1) | `1.0.1` | 必需 | — |
-| [`side-channel-weakmap`](https://www.npmjs.com/package/side-channel-weakmap/v/1.0.2) | `1.0.2` | 必需 | — |
-| [`standardwebhooks`](https://www.npmjs.com/package/standardwebhooks/v/1.1.1) | `1.1.1` | 必需 | — |
-| [`statuses`](https://www.npmjs.com/package/statuses/v/2.0.2) | `2.0.2` | 必需 | — |
-| [`toidentifier`](https://www.npmjs.com/package/toidentifier/v/1.0.1) | `1.0.1` | 必需 | — |
-| [`ts-algebra`](https://www.npmjs.com/package/ts-algebra/v/2.0.0) | `2.0.0` | 必需 | — |
-| [`tslib`](https://www.npmjs.com/package/tslib/v/2.8.1) | `2.8.1` | 必需 | — |
-| [`turndown`](https://www.npmjs.com/package/turndown/v/7.2.4) | `7.2.4` | 必需 | — |
-| [`type-is`](https://www.npmjs.com/package/type-is/v/2.1.0) | `2.1.0` | 必需 | — |
-| [`typebox`](https://www.npmjs.com/package/typebox/v/1.3.7) | `1.3.7` | 必需 | — |
-| [`undici`](https://www.npmjs.com/package/undici/v/8.10.2) | `8.10.2` | 必需 | — |
-| [`undici-types`](https://www.npmjs.com/package/undici-types/v/6.21.0) | `6.21.0` | 必需 | — |
-| [`unpipe`](https://www.npmjs.com/package/unpipe/v/1.0.0) | `1.0.0` | 必需 | — |
-| [`vary`](https://www.npmjs.com/package/vary/v/1.1.2) | `1.1.2` | 必需 | — |
-| [`web-streams-polyfill`](https://www.npmjs.com/package/web-streams-polyfill/v/3.3.3) | `3.3.3` | 必需 | — |
-| [`which`](https://www.npmjs.com/package/which/v/2.0.2) | `2.0.2` | 必需 | — |
-| [`wrappy`](https://www.npmjs.com/package/wrappy/v/1.0.2) | `1.0.2` | 必需 | — |
-| [`ws`](https://www.npmjs.com/package/ws/v/8.21.3) | `8.21.3` | 必需 | — |
-| [`wsl-utils`](https://www.npmjs.com/package/wsl-utils/v/1.0.0) | `1.0.0` | 必需 | — |
-| [`yaml`](https://www.npmjs.com/package/yaml/v/2.9.1) | `2.9.1` | 必需 | — |
-| [`zod`](https://www.npmjs.com/package/zod/v/4.6.2) | `4.6.2` | 必需 | — |
-| [`zod-to-json-schema`](https://www.npmjs.com/package/zod-to-json-schema/v/3.25.2) | `3.25.2` | 必需 | — |
-
-<a id="regeneration"></a>
-
-## 重新生成
-
-在已安装依赖的仓库中,从提交的 npm 记录重新生成两种语言的目录和配对记录:
-
-```sh
-pnpm run gen-dependency-catalog
-pnpm run verify-dependency-catalog
-```
-
-从公开 npm registry 刷新 `latest` 及其完整依赖树,然后重新生成目录:
-
-```sh
-pnpm run gen-dependency-catalog --refresh
-```
-
-提交 [npm lockfile](../scripts/dependency-catalog/package-lock.json)、[解析元数据](../scripts/dependency-catalog/resolution.json)和三个目录配对文件。刷新使用临时目录并禁用安装脚本;失败时不替换已提交的解析记录。`doc-sync` 检查生成文件是否与记录一致。

+ 3 - 2
scripts/dependency-catalog/resolution.json

@@ -1,8 +1,9 @@
 {
-  "capturedAt": "2026-09-12T08:31:20.812Z",
+  "capturedAt": "2026-09-12T08:56:20.434Z",
   "npm": "11.17.0",
   "node": "24.19.0",
   "platform": "darwin",
   "arch": "arm64",
-  "registry": "https://registry.npmjs.org/"
+  "registry": "https://registry.npmjs.org/",
+  "installStrategy": "hoisted"
 }

+ 103 - 25
scripts/gen-dependency-catalog.spec.ts

@@ -2,9 +2,13 @@
 
 import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
 import { tmpdir } from 'node:os'
-import { dirname, join, resolve } from 'node:path'
+import { join, resolve } from 'node:path'
 import { afterEach, describe, expect, it } from 'vitest'
-import { collectDependencies, computeDependencyCatalogOutputs, staleDependencyCatalogPaths } from './gen-dependency-catalog.ts'
+import { runCommandWithTimeout } from './benchmark-npm-resolution.ts'
+import {
+  collectDependencies, computeDependencyCatalog, createNpmResolutionEnvironment,
+  deduplicateDependencies, isDependencyCatalogCurrent,
+} from './gen-dependency-catalog.ts'
 
 const roots: string[] = []
 afterEach(() => {
@@ -12,7 +16,7 @@ afterEach(() => {
 })
 
 function lockfile() {
-  return {
+  const lock = {
     lockfileVersion: 3,
     packages: {
       '': { dependencies: { '@deepseek-ai/dsh': 'latest' } },
@@ -21,15 +25,22 @@ function lockfile() {
         optionalDependencies: { unavailable: '1.0.0' },
       },
       'node_modules/library': { version: '1.0.0' },
-      'node_modules/@deepseek-ai/dsh/node_modules/library': { version: '2.0.0' },
+      'node_modules/@deepseek-ai/dsh/node_modules/library': { version: '2.0.0', dependencies: { plugin: '*' } },
       'node_modules/alias': { name: 'original', version: '1.0.0' },
-      'node_modules/plugin': { version: '1.0.0', peerDependencies: { peer: '*' } },
+      'node_modules/plugin': {
+        version: '1.0.0', dependencies: { library: '^1.0.0' }, peerDependencies: { peer: '*' },
+        optionalDependencies: { 'native-linux': '*', 'native-helper': '*' },
+      },
       'node_modules/peer': { version: '3.0.0', peer: true },
       'node_modules/native-linux': { version: '1.0.0', optional: true, os: ['linux'], cpu: ['arm64'], libc: ['glibc'] },
       'node_modules/native-helper': { version: '1.0.0', optional: true, devOptional: true },
       'node_modules/test-only': { version: '1.0.0', dev: true },
     },
   }
+  for (const [location, entry] of Object.entries(lock.packages)) {
+    if (location !== '') Object.assign(entry, { resolved: `https://registry.npmjs.org/${location}/package.tgz` })
+  }
+  return lock
 }
 
 function fixture(): string {
@@ -39,7 +50,7 @@ function fixture(): string {
   writeFileSync(join(root, 'scripts/dependency-catalog/package-lock.json'), JSON.stringify(lockfile()))
   writeFileSync(join(root, 'scripts/dependency-catalog/resolution.json'), JSON.stringify({
     capturedAt: '2026-09-12T00:00:00.000Z', npm: '11.17.0', node: '24.19.0',
-    platform: 'darwin', arch: 'arm64', registry: 'https://registry.npmjs.org/',
+    platform: 'darwin', arch: 'arm64', registry: 'https://registry.npmjs.org/', installStrategy: 'hoisted',
   }))
   return root
 }
@@ -54,7 +65,7 @@ describe('published npm dependency catalog', () => {
     ])
     expect(rows.find(row => row.name === 'peer')).toMatchObject({ peer: true, optional: false })
     expect(rows.find(row => row.name === 'native-linux')).toMatchObject({
-      optional: true, platforms: 'os: linux; cpu: arm64; libc: glibc',
+      optional: true, os: ['linux'], cpu: ['arm64'], libc: ['glibc'],
     })
     expect(rows.find(row => row.name === 'native-helper')).toMatchObject({ optional: true })
     expect(rows.map(row => row.name)).not.toContain('test-only')
@@ -79,32 +90,99 @@ describe('published npm dependency catalog', () => {
     const input = lockfile()
     const reordered = { ...input, packages: Object.fromEntries(Object.entries(input.packages).reverse()) }
     expect(collectDependencies(reordered)).toEqual(collectDependencies(input))
-    Object.assign(input.packages, { 'node_modules/plugin/node_modules/library': { version: '1.0.0' } })
+    Object.assign(input.packages, {
+      'node_modules/plugin/node_modules/library': {
+        version: '1.0.0', resolved: 'https://registry.npmjs.org/library/-/library-1.0.0.tgz',
+      },
+    })
     expect(collectDependencies(input).rows.filter(row => row.name === 'library' && row.version === '1.0.0')).toHaveLength(2)
   })
 
-  it('rejects missing, edited, or stale translations and pairing records without rewriting them', () => {
+  it('deduplicates identical versions without losing installation locations or optional flags', () => {
+    const input = lockfile()
+    Object.assign(input.packages, {
+      'node_modules/plugin/node_modules/library': {
+        version: '1.0.0', optional: true, resolved: 'https://registry.npmjs.org/library/-/library-1.0.0.tgz',
+      },
+    })
+    const rows = collectDependencies(input).rows
+    const packages = deduplicateDependencies(rows)
+    const repeated = packages.filter(entry => entry.name === 'library' && entry.version === '1.0.0')
+    expect(repeated).toHaveLength(1)
+    expect(repeated[0]?.installations).toEqual([
+      { location: 'node_modules/library', direct: false, optional: false, peer: false },
+      { location: 'node_modules/plugin/node_modules/library', direct: false, optional: true, peer: false },
+    ])
+    expect(packages.filter(entry => entry.name === 'library').map(entry => entry.version)).toEqual(['1.0.0', '2.0.0'])
+    expect(deduplicateDependencies([...rows].reverse())).toEqual(packages)
+    expect(packages.flatMap(entry => entry.installations)).toHaveLength(rows.length)
+  })
+
+  it('rejects missing, edited, or stale JSON without rewriting it', () => {
     const root = fixture()
-    const outputs = computeDependencyCatalogOutputs(root)
-    expect(staleDependencyCatalogPaths(root)).toEqual([...outputs.keys()])
-    for (const [path, content] of outputs) {
-      mkdirSync(dirname(join(root, path)), { recursive: true })
-      writeFileSync(join(root, path), content)
-    }
-    expect(staleDependencyCatalogPaths(root)).toEqual([])
-    for (const [path, content] of outputs) {
-      writeFileSync(join(root, path), `${content}stale\n`)
-      expect(staleDependencyCatalogPaths(root)).toEqual([path])
-      expect(readFileSync(join(root, path), 'utf8')).toBe(`${content}stale\n`)
-      writeFileSync(join(root, path), content)
-    }
+    const output = computeDependencyCatalog(root)
+    const path = join(root, 'docs/dependency-catalog.json')
+    expect(isDependencyCatalogCurrent(root)).toBe(false)
+    mkdirSync(join(root, 'docs'))
+    writeFileSync(path, output)
+    expect(isDependencyCatalogCurrent(root)).toBe(true)
+    writeFileSync(path, `${output}stale\n`)
+    expect(isDependencyCatalogCurrent(root)).toBe(false)
+    expect(readFileSync(path, 'utf8')).toBe(`${output}stale\n`)
+    writeFileSync(path, output)
     const updated = lockfile()
     updated.packages['node_modules/peer'].version = '3.1.0'
     writeFileSync(join(root, 'scripts/dependency-catalog/package-lock.json'), JSON.stringify(updated))
-    expect(staleDependencyCatalogPaths(root)).toEqual([...outputs.keys()])
+    expect(isDependencyCatalogCurrent(root)).toBe(false)
+  })
+
+  it('rejects non-public package sources and incorrect registry metadata', () => {
+    const input = lockfile()
+    Object.assign(input.packages['node_modules/library'], { resolved: 'https://private.invalid/library.tgz' })
+    expect(() => collectDependencies(input)).toThrow('not resolved from the public npm registry')
+    const root = fixture()
+    const metadataPath = join(root, 'scripts/dependency-catalog/resolution.json')
+    writeFileSync(metadataPath, JSON.stringify({ registry: 'https://private.invalid/', installStrategy: 'hoisted' }))
+    expect(() => computeDependencyCatalog(root)).toThrow('expected the public npm registry and hoisted install strategy')
+  })
+
+  it('isolates scoped registries, resolver settings, and caches from user, global, and environment configuration', async () => {
+    const root = fixture()
+    const userConfig = join(root, 'user.npmrc')
+    const globalConfig = join(root, 'global.npmrc')
+    writeFileSync(userConfig, '@deepseek-ai:registry=https://user-override.invalid/\nstrict-peer-deps=true\n')
+    writeFileSync(globalConfig, '@other:registry=https://global-override.invalid/\nprefer-dedupe=true\n')
+    const inherited: NodeJS.ProcessEnv = {
+      ...Object.fromEntries(Object.entries(process.env).filter(([name]) => !name.toLowerCase().startsWith('npm_config_'))),
+      npm_config_userconfig: userConfig,
+      NPM_CONFIG_GLOBALCONFIG: globalConfig,
+      NPM_CONFIG_INSTALL_STRATEGY: 'nested',
+      NPM_CONFIG_OFFLINE: 'true',
+      NPM_CONFIG_CACHE: join(root, 'inherited-cache'),
+      NPM_CONFIG_USER_AGENT: 'inherited-agent',
+    }
+    const npm = process.platform === 'win32' ? 'npm.cmd' : 'npm'
+    const args = ['config', 'list', '--json', '--registry=https://registry.npmjs.org/', '--loglevel=error']
+    const before = await runCommandWithTimeout(npm, args, { cwd: root, env: inherited, timeoutMs: 30_000 })
+    expect(before).toMatchObject({ status: 0, signal: null, timedOut: false })
+    expect(JSON.parse(before.output)).toMatchObject({
+      '@deepseek-ai:registry': 'https://user-override.invalid/', 'install-strategy': 'nested',
+    })
+    const isolated = createNpmResolutionEnvironment(root, inherited)
+    const after = await runCommandWithTimeout(npm, args, { cwd: root, env: isolated, timeoutMs: 30_000 })
+    expect(after).toMatchObject({ status: 0, signal: null, timedOut: false })
+    const settings = JSON.parse(after.output) as Record<string, unknown>
+    expect(settings).toMatchObject({
+      registry: 'https://registry.npmjs.org/', '@deepseek-ai:registry': 'https://registry.npmjs.org/',
+      'install-strategy': 'hoisted', 'strict-peer-deps': false, 'prefer-dedupe': false, offline: false,
+      cache: join(root, '.npm-cache'), userconfig: join(root, '.npmrc-user'), globalconfig: join(root, '.npmrc-global'),
+    })
+    expect(settings['@other:registry']).toBeUndefined()
+    expect(isolated['NPM_CONFIG_USER_AGENT']).toBeUndefined()
+    expect(inherited['npm_config_userconfig']).toBe(userConfig)
   })
 
-  it('keeps the checked-in catalog synchronized with its recorded npm resolution', () => {
-    expect(staleDependencyCatalogPaths(resolve(import.meta.dirname, '..'))).toEqual([])
+  it('keeps the checked-in JSON synchronized with its recorded npm resolution', () => {
+    expect(isDependencyCatalogCurrent(resolve(import.meta.dirname, '..'))).toBe(true)
   })
 })

+ 118 - 146
scripts/gen-dependency-catalog.ts

@@ -5,9 +5,7 @@ import { mkdtemp, rm } from 'node:fs/promises'
 import { tmpdir } from 'node:os'
 import { dirname, join, resolve } from 'node:path'
 import { parseArgs } from 'node:util'
-import { execa } from 'execa'
-import { gitBlobHash, storeGitBlob } from './translation-pairing-git.ts'
-import { renderTranslationPairingRecord, translationPairPaths } from './translation-pairing-record.ts'
+import { runCommandWithTimeout } from './benchmark-npm-resolution.ts'
 
 const ROOT = resolve(import.meta.dirname, '..')
 const PACKAGE = '@deepseek-ai/dsh'
@@ -15,8 +13,7 @@ const ENTRY = `node_modules/${PACKAGE}`
 const REGISTRY = 'https://registry.npmjs.org/'
 const LOCK = 'scripts/dependency-catalog/package-lock.json'
 const METADATA = 'scripts/dependency-catalog/resolution.json'
-const PATHS = translationPairPaths('docs/dependency-catalog.md')
-type Locale = 'en' | 'zh'
+const OUT = 'docs/dependency-catalog.json'
 
 /** npm lockfile fields used to describe an installed package or optional candidate. */
 interface PackageEntry {
@@ -40,7 +37,9 @@ export interface DependencyRow {
   readonly direct: boolean
   readonly optional: boolean
   readonly peer: boolean
-  readonly platforms: string
+  readonly os?: readonly string[]
+  readonly cpu?: readonly string[]
+  readonly libc?: readonly string[]
 }
 
 interface ResolutionMetadata {
@@ -50,6 +49,7 @@ interface ResolutionMetadata {
   platform: string
   arch: string
   registry: string
+  installStrategy: string
 }
 
 function record(value: unknown, label: string): Record<string, unknown> {
@@ -71,6 +71,10 @@ function parseEntry(value: unknown, location: string): PackageEntry {
   const entry: PackageEntry = { version: string(raw['version'], `${location} version`) }
   if (raw['name'] !== undefined) entry.name = string(raw['name'], `${location} name`)
   if (raw['link'] === true) throw new Error(`dependency-catalog: ${location} is a local link`)
+  const source = new URL(string(raw['resolved'], `${location} resolved`))
+  if (source.origin !== new URL(REGISTRY).origin || source.username !== '' || source.password !== '') {
+    throw new Error(`dependency-catalog: ${location} is not resolved from the public npm registry`)
+  }
   for (const key of ['dev', 'optional', 'peer'] as const) {
     if (raw[key] === undefined) continue
     if (typeof raw[key] !== 'boolean') throw new Error(`dependency-catalog: ${location} ${key} must be boolean`)
@@ -132,8 +136,9 @@ export function collectDependencies(input: unknown): { version: string; rows: De
       direct: direct.has(location),
       optional: entry.optional === true,
       peer: entry.peer === true,
-      platforms: (['os', 'cpu', 'libc'] as const)
-        .flatMap(key => entry[key] === undefined ? [] : [`${key}: ${entry[key].join(', ')}`]).join('; '),
+      ...(entry.os === undefined ? {} : { os: entry.os }),
+      ...(entry.cpu === undefined ? {} : { cpu: entry.cpu }),
+      ...(entry.libc === undefined ? {} : { libc: entry.libc }),
     })
   }
   if (rows.length === 0) throw new Error('dependency-catalog: empty dependency tree')
@@ -144,144 +149,111 @@ export function collectDependencies(input: unknown): { version: string; rows: De
 
 function readMetadata(scanRoot: string): ResolutionMetadata {
   const value = record(JSON.parse(readFileSync(resolve(scanRoot, METADATA), 'utf8')), 'resolution metadata')
+  if (value['registry'] !== REGISTRY || value['installStrategy'] !== 'hoisted') {
+    throw new Error('dependency-catalog: expected the public npm registry and hoisted install strategy')
+  }
   return {
     capturedAt: string(value['capturedAt'], 'capturedAt'),
     npm: string(value['npm'], 'npm'),
     node: string(value['node'], 'node'),
     platform: string(value['platform'], 'platform'),
     arch: string(value['arch'], 'arch'),
-    registry: string(value['registry'], 'registry'),
+    registry: value['registry'],
+    installStrategy: value['installStrategy'],
+  }
+}
+
+/**
+ * Combine identical package versions while retaining each installation's npm flags and platform constraints.
+ * @param rows - Resolved package locations, excluding the consumer and CLI.
+ * @returns One sorted record per package name and version, with sorted installation locations.
+ */
+export function deduplicateDependencies(rows: readonly DependencyRow[]): {
+  name: string
+  version: string
+  installations: Omit<DependencyRow, 'name' | 'version'>[]
+}[] {
+  const packages = new Map<string, {
+    name: string
+    version: string
+    installations: Omit<DependencyRow, 'name' | 'version'>[]
+  }>()
+  for (const { name, version, ...installation } of rows) {
+    const key = JSON.stringify([name, version])
+    const dependency = packages.get(key) ?? { name, version, installations: [] }
+    dependency.installations.push(installation)
+    packages.set(key, dependency)
   }
+  const sorted = [...packages.values()].sort((a, b) => a.name.localeCompare(b.name, 'en')
+    || a.version.localeCompare(b.version, 'en'))
+  for (const dependency of sorted) {
+    dependency.installations.sort((a, b) => a.location.localeCompare(b.location, 'en'))
+  }
+  return sorted
 }
 
-function renderCatalog(version: string, rows: readonly DependencyRow[], meta: ResolutionMetadata, locale: Locale): string {
-  const zh = locale === 'zh'
-  const unique = new Set(rows.map(row => `${row.name}@${row.version}`)).size
-  const direct = rows.filter(row => row.direct)
-  const transitive = rows.filter(row => !row.direct)
-  const table = (selected: readonly DependencyRow[]): string[] => [
-    zh ? '| 包 | 解析版本 | 安装条件 | 包声明的平台限制 |' : '| Package | Resolved version | Installation | Declared platform restrictions |',
-    '| --- | --- | --- | --- |',
-    ...selected.map((row) => {
-      const flags = [row.optional ? (zh ? '可选' : 'Optional') : (zh ? '必需' : 'Required')]
-      if (row.peer) flags.push(zh ? 'Peer 自动安装' : 'Auto-installed peer')
-      return `| [\`${row.name}\`](https://www.npmjs.com/package/${row.name}/v/${row.version}) | \`${row.version}\` | ${flags.join('; ')} | ${row.platforms || '—'} |`
-    }),
-    '',
-  ]
-  return [
-    '<!-- Generated by scripts/gen-dependency-catalog.ts. Do not edit by hand. -->',
-    '',
-    zh ? '# 依赖目录' : '# Dependency catalog',
-    '',
-    zh ? '[English](dependency-catalog.md) | 中文' : 'English | [中文](dependency-catalog.zh.md)',
-    '',
-    zh ? '## 摘要' : '## Summary',
-    '',
-    zh
-      ? `查看 [README 中的 npm 命令](../README.zh.md)所安装的 \`${PACKAGE}\` 的直接和传递依赖。此记录中的 npm \`latest\` 版本为 **${version}**;共 ${rows.length} 个依赖安装位置,涉及 ${unique} 个不同的包与版本组合。`
-      : `Look up the direct and transitive dependencies of \`${PACKAGE}\` installed by the [README npm command](../README.md). The recorded npm \`latest\` release is **${version}**; there are ${rows.length} dependency locations representing ${unique} distinct package/version pairs.`,
-    '',
-    zh ? '## 目录' : '## Table of Contents',
-    '',
-    zh ? '- [范围](#scope)' : '- [Scope](#scope)',
-    zh ? '- [直接依赖](#direct-dependencies)' : '- [Direct dependencies](#direct-dependencies)',
-    zh ? '- [传递依赖](#transitive-dependencies)' : '- [Transitive dependencies](#transitive-dependencies)',
-    zh ? '- [重新生成](#regeneration)' : '- [Regeneration](#regeneration)',
-    '',
-    '<a id="scope"></a>',
-    '',
-    zh ? '## 范围' : '## Scope',
-    '',
-    '```sh',
-    'npx @deepseek-ai/dsh web',
-    '```',
-    '',
-    zh
-      ? `采集时间:\`${meta.capturedAt}\`。解析工具:npm \`${meta.npm}\`,Node.js \`${meta.node}\`,\`${meta.platform}/${meta.arch}\`。Registry:${meta.registry}`
-      : `Captured: \`${meta.capturedAt}\`. Resolver: npm \`${meta.npm}\`, Node.js \`${meta.node}\`, \`${meta.platform}/${meta.arch}\`. Registry: ${meta.registry}`,
-    '',
-    zh
-      ? '此记录使用空白 npm 消费项目解析公开发布包,包含必需依赖、自动安装的 Peer 依赖及可选依赖候选项。`web` 参数选择启动模式,不会缩小 CLI 的安装依赖。仓库的开发依赖和未被引用的 workspace 包不在此范围内。'
-      : 'This record resolves published packages in an empty npm consumer, including required dependencies, automatically installed peers, and optional dependency candidates. The `web` argument selects a launch mode; it does not narrow the CLI installation. Repository development dependencies and unreferenced workspace packages are outside this scope.',
-    '',
-    zh
-      ? '可选项仅在平台匹配且安装成功时出现;经可选父包引入的依赖也可能被省略。平台列显示包自身的 `os`、`cpu` 和 `libc` 声明,`—` 表示包自身未声明限制。表格中的重复行保留 npm 在不同位置安装的相同包版本。此目录由仅生成 lockfile 的解析过程产生,不验证安装脚本或其下载的额外文件。'
-      : 'Optional entries appear only when their platform matches and installation succeeds; dependencies reached through optional parents can also be omitted. The platform column shows each package’s own `os`, `cpu`, and `libc` declarations; `—` means no restriction declared by that package. Repeated rows retain identical package versions installed at different locations. This catalog comes from a lockfile-only resolution and does not verify install scripts or additional files they download.',
-    '',
-    zh
-      ? '这是带时间的解析记录:npm 的 tag、版本范围、npm/Node.js 版本、平台、配置及现有本地安装或缓存均可能改变实际结果。普通生成和 CI 检查使用提交的记录;只有刷新命令查询 registry。参见 [npx 文档](https://docs.npmjs.com/cli/v11/commands/npx/)和 [npm lockfile 文档](https://docs.npmjs.com/cli/v11/configuring-npm/package-lock-json/)。'
-      : 'This is a dated resolution: npm tags, version ranges, npm/Node.js versions, platform, configuration, and existing local installations or caches can change the actual result. Normal generation and CI checks use the committed record; only the refresh command queries the registry. See the [npx documentation](https://docs.npmjs.com/cli/v11/commands/npx/) and [npm lockfile documentation](https://docs.npmjs.com/cli/v11/configuring-npm/package-lock-json/).',
-    '',
-    '<a id="direct-dependencies"></a>',
-    '',
-    zh ? '## 直接依赖' : '## Direct dependencies',
-    '',
-    zh ? `${direct.length} 个安装位置由已发布 CLI 的依赖字段直接引用。` : `${direct.length} locations are referenced directly by the published CLI dependency fields.`,
-    '',
-    ...table(direct),
-    '<a id="transitive-dependencies"></a>',
-    '',
-    zh ? '## 传递依赖' : '## Transitive dependencies',
-    '',
-    zh ? `${transitive.length} 个其余安装位置由依赖树引入。` : `${transitive.length} further locations are brought in by the dependency tree.`,
-    '',
-    ...table(transitive),
-    '<a id="regeneration"></a>',
-    '',
-    zh ? '## 重新生成' : '## Regeneration',
-    '',
-    zh
-      ? '在已安装依赖的仓库中,从提交的 npm 记录重新生成两种语言的目录和配对记录:'
-      : 'In an installed repository checkout, regenerate both languages and the pairing record from the committed npm resolution:',
-    '',
-    '```sh',
-    'pnpm run gen-dependency-catalog',
-    'pnpm run verify-dependency-catalog',
-    '```',
-    '',
-    zh ? '从公开 npm registry 刷新 `latest` 及其完整依赖树,然后重新生成目录:' : 'Refresh `latest` and its complete dependency tree from the public npm registry, then regenerate the catalog:',
-    '',
-    '```sh',
-    'pnpm run gen-dependency-catalog --refresh',
-    '```',
-    '',
-    zh
-      ? `提交 [npm lockfile](../${LOCK})、[解析元数据](../${METADATA})和三个目录配对文件。刷新使用临时目录并禁用安装脚本;失败时不替换已提交的解析记录。\`doc-sync\` 检查生成文件是否与记录一致。`
-      : `Commit the [npm lockfile](../${LOCK}), [resolution metadata](../${METADATA}), and all three catalog pair files. Refresh uses a temporary directory with install scripts disabled; a failed resolution leaves the committed record intact. \`doc-sync\` checks generated files against the record.`,
-    '',
-  ].join('\n')
+function renderCatalog(lock: unknown, metadata: ResolutionMetadata): string {
+  const { version, rows } = collectDependencies(lock)
+  return `${JSON.stringify({
+    package: PACKAGE,
+    version,
+    requested: `${PACKAGE}@latest`,
+    resolution: metadata,
+    dependencies: deduplicateDependencies(rows),
+  }, null, 2)}\n`
 }
 
 /**
- * Compute all catalog artifacts without network access or writes.
+ * Compute the JSON catalog without network access or writes.
  * @param scanRoot - Repository root containing the recorded npm resolution.
- * @returns Repository-relative paths and their deterministic contents.
+ * @returns Deterministic JSON with one trailing newline.
  */
-export function computeDependencyCatalogOutputs(scanRoot: string = ROOT): ReadonlyMap<string, string> {
-  const { version, rows } = collectDependencies(JSON.parse(readFileSync(resolve(scanRoot, LOCK), 'utf8')))
-  const metadata = readMetadata(scanRoot)
-  const en = renderCatalog(version, rows, metadata, 'en')
-  const zh = renderCatalog(version, rows, metadata, 'zh')
-  return new Map([
-    [PATHS.source, en],
-    [PATHS.zh, zh],
-    [PATHS.meta, renderTranslationPairingRecord(PATHS, {
-      sourceHash: gitBlobHash(Buffer.from(en)),
-      zhHash: gitBlobHash(Buffer.from(zh)),
-    })],
-  ])
+export function computeDependencyCatalog(scanRoot: string = ROOT): string {
+  return renderCatalog(JSON.parse(readFileSync(resolve(scanRoot, LOCK), 'utf8')), readMetadata(scanRoot))
 }
 
 /**
- * Check every generated document and pairing record against the npm resolution.
- * @param scanRoot - Repository root containing the resolution and generated files.
- * @returns Paths with missing or stale generated contents.
+ * Check the generated JSON against the recorded npm resolution.
+ * @param scanRoot - Repository root containing the resolution and catalog.
+ * @returns Whether the catalog exists and matches its inputs byte for byte.
  */
-export function staleDependencyCatalogPaths(scanRoot: string = ROOT): string[] {
-  return [...computeDependencyCatalogOutputs(scanRoot)]
-    .filter(([path, content]) => !existsSync(resolve(scanRoot, path)) || readFileSync(resolve(scanRoot, path), 'utf8') !== content)
-    .map(([path]) => path)
+export function isDependencyCatalogCurrent(scanRoot: string = ROOT): boolean {
+  return existsSync(resolve(scanRoot, OUT))
+    && readFileSync(resolve(scanRoot, OUT), 'utf8') === computeDependencyCatalog(scanRoot)
+}
+
+/**
+ * Isolate npm configuration and cache from the maintainer and invoking package manager.
+ * @param temporary - Private consumer directory owned by the caller.
+ * @param inherited - Environment whose non-npm settings remain available to the child.
+ * @returns Complete child environment, including isolated user/global configuration and cache paths.
+ */
+export function createNpmResolutionEnvironment(
+  temporary: string,
+  inherited: NodeJS.ProcessEnv = process.env,
+): NodeJS.ProcessEnv {
+  const userConfig = join(temporary, '.npmrc-user')
+  const globalConfig = join(temporary, '.npmrc-global')
+  writeFileSync(userConfig, '')
+  writeFileSync(globalConfig, '')
+  writeFileSync(join(temporary, '.npmrc'), `registry=${REGISTRY}\n@deepseek-ai:registry=${REGISTRY}\ninstall-strategy=hoisted\n`)
+  return {
+    ...Object.fromEntries(Object.entries(inherited).filter(([name]) => !name.toLowerCase().startsWith('npm_config_'))),
+    npm_config_userconfig: userConfig,
+    npm_config_globalconfig: globalConfig,
+    npm_config_cache: join(temporary, '.npm-cache'),
+    npm_config_update_notifier: 'false',
+  }
+}
+
+async function runNpm(args: readonly string[], cwd: string, env: NodeJS.ProcessEnv): Promise<string> {
+  const result = await runCommandWithTimeout(process.platform === 'win32' ? 'npm.cmd' : 'npm', args, {
+    cwd, env, timeoutMs: 300_000,
+  })
+  if (result.timedOut || result.status !== 0) {
+    throw new Error(`dependency-catalog: npm failed (timedOut=${result.timedOut}, status=${String(result.status)}): ${result.output}`)
+  }
+  return result.output.trim()
 }
 
 async function refreshResolution(): Promise<void> {
@@ -290,21 +262,23 @@ async function refreshResolution(): Promise<void> {
     writeFileSync(join(temporary, 'package.json'), `${JSON.stringify({
       name: 'dsh-dependency-catalog', version: '0.0.0', private: true, dependencies: { [PACKAGE]: 'latest' },
     }, null, 2)}\n`)
-    const options = { cwd: temporary, env: { npm_config_user_agent: undefined }, timeout: 300_000 }
-    const { stdout: npm } = await execa('npm', ['--version'], options)
-    await execa('npm', [
+    const environment = createNpmResolutionEnvironment(temporary)
+    const npm = await runNpm(['--version'], temporary, environment)
+    await runNpm([
       'install', '--package-lock-only', '--lockfile-version=3', '--ignore-scripts', '--no-audit', '--no-fund',
-      '--include=prod', '--include=optional', '--include=peer', '--legacy-peer-deps=false', `--registry=${REGISTRY}`,
-    ], options)
+      '--include=prod', '--include=optional', '--include=peer', '--legacy-peer-deps=false',
+      '--install-strategy=hoisted', '--loglevel=error', `--registry=${REGISTRY}`,
+    ], temporary, environment)
     const lock = readFileSync(join(temporary, 'package-lock.json'), 'utf8')
-    collectDependencies(JSON.parse(lock))
     const metadata: ResolutionMetadata = {
       capturedAt: new Date().toISOString(), npm, node: process.versions.node,
-      platform: process.platform, arch: process.arch, registry: REGISTRY,
+      platform: process.platform, arch: process.arch, registry: REGISTRY, installStrategy: 'hoisted',
     }
+    const catalog = renderCatalog(JSON.parse(lock), metadata)
     mkdirSync(resolve(ROOT, dirname(LOCK)), { recursive: true })
     writeFileSync(resolve(ROOT, LOCK), lock)
     writeFileSync(resolve(ROOT, METADATA), `${JSON.stringify(metadata, null, 2)}\n`)
+    writeFileSync(resolve(ROOT, OUT), catalog)
   } finally {
     await rm(temporary, { recursive: true, force: true, maxRetries: 3 })
   }
@@ -313,20 +287,18 @@ async function refreshResolution(): Promise<void> {
 async function main(): Promise<void> {
   const { values } = parseArgs({ options: { check: { type: 'boolean' }, refresh: { type: 'boolean' } } })
   if (values.check && values.refresh) throw new Error('dependency-catalog: --check cannot refresh the registry record')
-  if (values.refresh) await refreshResolution()
-  if (values.check) {
-    const stale = staleDependencyCatalogPaths()
-    if (stale.length > 0) {
-      throw new Error(`dependency-catalog: stale ${stale.join(', ')}; run pnpm run gen-dependency-catalog`)
+  if (values.refresh) {
+    await refreshResolution()
+  } else if (values.check) {
+    if (!isDependencyCatalogCurrent()) {
+      throw new Error(`dependency-catalog: stale ${OUT}; run pnpm run gen-dependency-catalog`)
     }
-    console.log('dependency-catalog: all 3 artifacts match the recorded npm resolution')
+    console.log('dependency-catalog: JSON matches the recorded npm resolution')
     return
+  } else {
+    writeFileSync(resolve(ROOT, OUT), computeDependencyCatalog())
   }
-  for (const [path, content] of computeDependencyCatalogOutputs()) {
-    if (path.endsWith('.md')) storeGitBlob(ROOT, Buffer.from(content))
-    writeFileSync(resolve(ROOT, path), content)
-  }
-  console.log('dependency-catalog: generated both languages and the pairing record')
+  console.log(`dependency-catalog: generated ${OUT}`)
 }
 
 if (process.argv[1] !== undefined && import.meta.filename === resolve(process.argv[1])) await main()