diff --git a/.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.i18n.yaml b/.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.i18n.yaml deleted file mode 100644 index 09f30e09c7..0000000000 --- a/.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.i18n.yaml +++ /dev/null @@ -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 diff --git a/.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.md b/.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.md deleted file mode 100644 index abae1bdbef..0000000000 --- a/.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.md +++ /dev/null @@ -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. diff --git a/.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.zh.md b/.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.zh.md deleted file mode 100644 index c11c588532..0000000000 --- a/.agents/notes/implemented/process/2026-09-12-published-npm-dependency-catalog.zh.md +++ /dev/null @@ -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 依赖、可选平台条目,以及过期的生成文件或译文。 diff --git a/README.i18n.yaml b/README.i18n.yaml index f1298683db..904c7928d2 100644 --- a/README.i18n.yaml +++ b/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 diff --git a/README.md b/README.md index bc449f85ac..36adfe9139 100644 --- a/README.md +++ b/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 diff --git a/README.zh.md b/README.zh.md index e86d7f1595..f6861b4c94 100644 --- a/README.zh.md +++ b/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)。 diff --git a/docs/dependency-catalog.i18n.yaml b/docs/dependency-catalog.i18n.yaml deleted file mode 100644 index 4c5ab075fe..0000000000 --- a/docs/dependency-catalog.i18n.yaml +++ /dev/null @@ -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 diff --git a/docs/dependency-catalog.json b/docs/dependency-catalog.json new file mode 100644 index 0000000000..dda5e77f28 --- /dev/null +++ b/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 + } + ] + } + ] +} diff --git a/docs/dependency-catalog.md b/docs/dependency-catalog.md deleted file mode 100644 index bbf3c122ef..0000000000 --- a/docs/dependency-catalog.md +++ /dev/null @@ -1,650 +0,0 @@ - - -# 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) - - - -## 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/). - - - -## 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 | — | - - - -## 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 | — | - - - -## 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. diff --git a/docs/dependency-catalog.zh.md b/docs/dependency-catalog.zh.md deleted file mode 100644 index 21526914f3..0000000000 --- a/docs/dependency-catalog.zh.md +++ /dev/null @@ -1,650 +0,0 @@ - - -# 依赖目录 - -[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) - - - -## 范围 - -```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/)。 - - - -## 直接依赖 - -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` | 必需 | — | - - - -## 传递依赖 - -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` | 必需 | — | - - - -## 重新生成 - -在已安装依赖的仓库中,从提交的 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` 检查生成文件是否与记录一致。 diff --git a/scripts/dependency-catalog/resolution.json b/scripts/dependency-catalog/resolution.json index a952d7b12d..8eac55875b 100644 --- a/scripts/dependency-catalog/resolution.json +++ b/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" } diff --git a/scripts/gen-dependency-catalog.spec.ts b/scripts/gen-dependency-catalog.spec.ts index 378e8dbc35..d28ca37b89 100644 --- a/scripts/gen-dependency-catalog.spec.ts +++ b/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('keeps the checked-in catalog synchronized with its recorded npm resolution', () => { - expect(staleDependencyCatalogPaths(resolve(import.meta.dirname, '..'))).toEqual([]) + 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 + 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 JSON synchronized with its recorded npm resolution', () => { + expect(isDependencyCatalogCurrent(resolve(import.meta.dirname, '..'))).toBe(true) }) }) diff --git a/scripts/gen-dependency-catalog.ts b/scripts/gen-dependency-catalog.ts index 74728553df..f734291f0c 100644 --- a/scripts/gen-dependency-catalog.ts +++ b/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 { @@ -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'], } } -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 [ - '', - '', - 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)', - '', - '', - '', - 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/).', - '', - '', - '', - zh ? '## 直接依赖' : '## Direct dependencies', - '', - zh ? `${direct.length} 个安装位置由已发布 CLI 的依赖字段直接引用。` : `${direct.length} locations are referenced directly by the published CLI dependency fields.`, - '', - ...table(direct), - '', - '', - zh ? '## 传递依赖' : '## Transitive dependencies', - '', - zh ? `${transitive.length} 个其余安装位置由依赖树引入。` : `${transitive.length} further locations are brought in by the dependency tree.`, - '', - ...table(transitive), - '', - '', - 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') +/** + * 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[] +}[] { + const packages = new Map[] + }>() + 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(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 { - 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 { + 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 { @@ -290,21 +262,23 @@ async function refreshResolution(): Promise { 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 { async function main(): Promise { 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()