ソースを参照

docs: generate published npm dependency catalog

Tianyi Cui 1 週間 前
コミット
313768f520

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

@@ -0,0 +1,6 @@
+# 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

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

@@ -0,0 +1,29 @@
+# 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.

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

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

+ 2 - 2
README.i18n.yaml

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

+ 2 - 0
README.md

@@ -24,6 +24,8 @@ 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

+ 2 - 0
README.zh.md

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

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

@@ -0,0 +1,6 @@
+# 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

+ 650 - 0
docs/dependency-catalog.md

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

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

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

+ 2 - 0
package.json

@@ -154,6 +154,8 @@
     "verify-tool-catalog": "tsx scripts/gen-tool-catalog.ts --check",
     "gen-config-catalog": "tsx scripts/gen-config-catalog.ts",
     "verify-config-catalog": "tsx scripts/gen-config-catalog.ts --check",
+    "gen-dependency-catalog": "tsx scripts/gen-dependency-catalog.ts",
+    "verify-dependency-catalog": "tsx scripts/gen-dependency-catalog.ts --check",
     "gen-doc-graphs": "tsx scripts/gen-doc-graphs.ts",
     "verify-doc-graphs": "tsx scripts/gen-doc-graphs.ts --check",
     "gen-persistence-catalog": "tsx scripts/gen-persistence-catalog.ts",

+ 8539 - 0
scripts/dependency-catalog/package-lock.json

@@ -0,0 +1,8539 @@
+{
+  "name": "dsh-dependency-catalog",
+  "version": "0.0.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "dsh-dependency-catalog",
+      "version": "0.0.0",
+      "dependencies": {
+        "@deepseek-ai/dsh": "latest"
+      }
+    },
+    "node_modules/@agentclientprotocol/sdk": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.4.0.tgz",
+      "integrity": "sha512-/eufudw+aFY1LKLolT6yFE6UMmYRl7fMJ/DEONSIyR6wI3slHWITBsANRGqXEY8FRzqUxwh7QEaGiZHcJPVThg==",
+      "license": "Apache-2.0",
+      "peerDependencies": {
+        "zod": "^3.25.0 || ^4.0.0"
+      }
+    },
+    "node_modules/@anthropic-ai/sdk": {
+      "version": "0.123.0",
+      "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.123.0.tgz",
+      "integrity": "sha512-Y9oX9mPNGZClHQOFqrWRk43Srcu/UHuPq3rfxxOq7JgW0gi+lJA2MAOK4Ul3k/+AUrwRWFJvd0tK3oC0Pw25dw==",
+      "license": "MIT",
+      "dependencies": {
+        "json-schema-to-ts": "^3.1.1",
+        "standardwebhooks": "^1.0.0"
+      },
+      "bin": {
+        "anthropic-ai-sdk": "bin/cli"
+      },
+      "peerDependencies": {
+        "zod": "^3.25.0 || ^4.0.0"
+      },
+      "peerDependenciesMeta": {
+        "zod": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@aws-crypto/sha256-browser": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
+      "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-crypto/sha256-js": "^5.2.0",
+        "@aws-crypto/supports-web-crypto": "^5.2.0",
+        "@aws-crypto/util": "^5.2.0",
+        "@aws-sdk/types": "^3.222.0",
+        "@aws-sdk/util-locate-window": "^3.0.0",
+        "@smithy/util-utf8": "^2.0.0",
+        "tslib": "^2.6.2"
+      }
+    },
+    "node_modules/@aws-crypto/sha256-js": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
+      "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-crypto/util": "^5.2.0",
+        "@aws-sdk/types": "^3.222.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@aws-crypto/supports-web-crypto": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
+      "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "tslib": "^2.6.2"
+      }
+    },
+    "node_modules/@aws-crypto/util": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz",
+      "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/types": "^3.222.0",
+        "@smithy/util-utf8": "^2.0.0",
+        "tslib": "^2.6.2"
+      }
+    },
+    "node_modules/@aws-sdk/client-bedrock-runtime": {
+      "version": "3.1048.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-bedrock-runtime/-/client-bedrock-runtime-3.1048.0.tgz",
+      "integrity": "sha512-u+NT61JZEkRFtpL0CAw1N1dwxnaLgwVXQl/zjJxTGgLyS/jTIdg2SdoEoCTHxgDyCnqa1HEi9QOoE9/pYRNpOQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-crypto/sha256-browser": "5.2.0",
+        "@aws-crypto/sha256-js": "5.2.0",
+        "@aws-sdk/core": "^3.974.11",
+        "@aws-sdk/credential-provider-node": "^3.972.42",
+        "@aws-sdk/eventstream-handler-node": "^3.972.16",
+        "@aws-sdk/middleware-eventstream": "^3.972.12",
+        "@aws-sdk/middleware-websocket": "^3.972.19",
+        "@aws-sdk/token-providers": "3.1048.0",
+        "@aws-sdk/types": "^3.973.8",
+        "@smithy/core": "^3.24.2",
+        "@smithy/fetch-http-handler": "^5.4.2",
+        "@smithy/node-http-handler": "^4.7.2",
+        "@smithy/types": "^4.14.1",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/core": {
+      "version": "3.978.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.978.0.tgz",
+      "integrity": "sha512-2yX9LUmxPklVjSGTb8dfnWRJSiFQ3TeH2nn7G1mdKHTfnabzF0+gfrS8rYfLWmZrQ8A3mEcxMJjRc51dL5KWaA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/types": "^3.974.5",
+        "@aws-sdk/xml-builder": "^3.972.40",
+        "@aws/lambda-invoke-store": "^0.3.0",
+        "@smithy/core": "^3.33.3",
+        "@smithy/signature-v4": "^5.6.12",
+        "@smithy/types": "^4.17.2",
+        "bowser": "^2.11.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-env": {
+      "version": "3.972.71",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.71.tgz",
+      "integrity": "sha512-JN+JHruYZw3GUZB8YGAlDk4wTDPOEAEEdEzj5nS0xodWR4smzHsN7PnK2j6IeOsDIj2aqua5DSbhXl9Gtf90FQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-http": {
+      "version": "3.972.73",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.73.tgz",
+      "integrity": "sha512-uyYYnJOnlis8uQzaYGPd7N1JoioCoNpXgnkXYixsWJXHXgXyYi8WXJSDfofxJeWfQIGWLe2Nwyq60Uc7MZdVOg==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/fetch-http-handler": "^5.7.2",
+        "@smithy/node-http-handler": "^4.11.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler": {
+      "version": "4.12.1",
+      "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.12.1.tgz",
+      "integrity": "sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.18.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-ini": {
+      "version": "3.973.16",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.16.tgz",
+      "integrity": "sha512-i++ly+0Uxa+u3ebSSyr0S/3CFhFJDxCXT3+Zj+mW2bXenEx5bKGCdTIKFu39SgXBNhWDjex/8cXUx9MUTMCrTw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/credential-provider-env": "^3.972.71",
+        "@aws-sdk/credential-provider-http": "^3.972.73",
+        "@aws-sdk/credential-provider-login": "^3.972.78",
+        "@aws-sdk/credential-provider-process": "^3.972.71",
+        "@aws-sdk/credential-provider-sso": "^3.973.15",
+        "@aws-sdk/credential-provider-web-identity": "^3.972.77",
+        "@aws-sdk/nested-clients": "^3.997.45",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/credential-provider-imds": "^4.4.16",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-login": {
+      "version": "3.972.78",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.78.tgz",
+      "integrity": "sha512-eUtswnXu0+Ii9ieRK+0L7aPFV3Z/dnW2VntJzjBP9xs8s+8p5nBNuymIXtXwZ+5r5+XJP3e32nMkuZ/r0HozEA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/nested-clients": "^3.997.45",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-node": {
+      "version": "3.972.83",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.83.tgz",
+      "integrity": "sha512-jdso7ejzfRnatxMUZK4S/U6KbaDPCvfIV4XL+IQAPFDBt5rj5Fq595euqlK8Le4lNCMFR9oUpt+1l0aMgaayOQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/credential-provider-env": "^3.972.71",
+        "@aws-sdk/credential-provider-http": "^3.972.73",
+        "@aws-sdk/credential-provider-ini": "^3.973.16",
+        "@aws-sdk/credential-provider-process": "^3.972.71",
+        "@aws-sdk/credential-provider-sso": "^3.973.15",
+        "@aws-sdk/credential-provider-web-identity": "^3.972.77",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/credential-provider-imds": "^4.4.16",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-process": {
+      "version": "3.972.71",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.71.tgz",
+      "integrity": "sha512-lYmXJa4gvq4xN1lrT5NiP5vIYYKcGWAdj8y+8o6dlcateB5eF3Dn8DtmjjHKfMBrTPAMr2pebIiX/UOj8c1/UA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-sso": {
+      "version": "3.973.15",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.15.tgz",
+      "integrity": "sha512-6Jhcf4v0pSFdjk1EW2kvzuEBKD+UZ2uNcHUIglKKLndD20YhvkL2kdmDOV5/j4mYuWWwe/a1FQ1aomU86/Cg5Q==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/nested-clients": "^3.997.45",
+        "@aws-sdk/token-providers": "3.1129.0",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers": {
+      "version": "3.1129.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1129.0.tgz",
+      "integrity": "sha512-Sbl3rpzQdsG4ZK2zh0JWUYyZPKKorJlVOddA2T0DVbKJFrsW8J6wgnslxxUH04+WaBMr4A1HzJZvZX0xUvkniA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/nested-clients": "^3.997.45",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/credential-provider-web-identity": {
+      "version": "3.972.77",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.77.tgz",
+      "integrity": "sha512-uylIQSUWpfLuH2LovxEEfwzJGM/SabLOfLMg6YXu/E8jJEKUdpdILCVCQCdFvHyu/7dLJOHPMfrSwduxO56NkQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/nested-clients": "^3.997.45",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/eventstream-handler-node": {
+      "version": "3.972.34",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.972.34.tgz",
+      "integrity": "sha512-cTeVzpu1xEAkryTZBYhGwnQ6gOGyp8ZYZvmn0Sg/nI/ABmy/CRHHxPDJDUi9PxwxUtGGaatvfRUB3FCgT/rSWw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/middleware-eventstream": {
+      "version": "3.972.29",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.972.29.tgz",
+      "integrity": "sha512-dlRzHCgyB8W6hLuDC5pcT5q+ziPt00n4QGgGBE17ucLVU4zMa6lsbuUdQ2Pm75Z5VA8GF+R/+SgrRcaTdIzSIQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/middleware-websocket": {
+      "version": "3.972.53",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.53.tgz",
+      "integrity": "sha512-bIrDaMENQmYRBHntOiOheqkiw5+fhKW4Lqb+mS1uqF0VwvdWI22fW2HFgWrng66CmYd+4k8ePlpj38sEfTuMLQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/fetch-http-handler": "^5.7.2",
+        "@smithy/signature-v4": "^5.6.12",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/nested-clients": {
+      "version": "3.997.45",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.45.tgz",
+      "integrity": "sha512-mooq9Q+jLa18VoM7HouczmslZU60iiB0aKc/Ztnq/luIL1ud0z4DnYprLR/ZO1gp331S9tJctM1HZr7u6YKBXQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.978.0",
+        "@aws-sdk/signature-v4-multi-region": "^3.996.46",
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/core": "^3.33.3",
+        "@smithy/fetch-http-handler": "^5.7.2",
+        "@smithy/node-http-handler": "^4.11.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler": {
+      "version": "4.12.1",
+      "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.12.1.tgz",
+      "integrity": "sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.18.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/signature-v4-multi-region": {
+      "version": "3.996.46",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.46.tgz",
+      "integrity": "sha512-L+2xZTye/2T96f3lwCws0Zw6GG2JHZW9e8FpVgGBeeExSKyeoZ6CWRpBml/7DNiK/O26jrgPM9F+Ay8VkgzUWQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/types": "^3.974.5",
+        "@smithy/signature-v4": "^5.6.12",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/token-providers": {
+      "version": "3.1048.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1048.0.tgz",
+      "integrity": "sha512-k0y/GcuesuSfWyUM0WamrGyeZmltRYaPbHO82UDA6mZ/doB+FOHKutikPAtSXMn/hDz970cF+iRuuiYO9VEbAA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@aws-sdk/core": "^3.974.11",
+        "@aws-sdk/nested-clients": "^3.997.9",
+        "@aws-sdk/types": "^3.973.8",
+        "@smithy/core": "^3.24.2",
+        "@smithy/types": "^4.14.1",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/types": {
+      "version": "3.974.5",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.5.tgz",
+      "integrity": "sha512-LkwLL2BLbC6wNNm4JaH9mbEqBMdOZCct6VAYqhdN4U1xrWM+fUJQEfbHwQgDypapOWTRtlk25akb5afM0P8CIQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/util-locate-window": {
+      "version": "3.965.10",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.10.tgz",
+      "integrity": "sha512-ycwH6Zd2GhuSqdXX9ihbCjeGTB6xOJs+O3+Jb8/zDG9978XU80qs75dfkPJRMNKe5MvBZPuNeFpd4JZKPoUF4g==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws-sdk/xml-builder": {
+      "version": "3.972.40",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.40.tgz",
+      "integrity": "sha512-wlFmCIGUlwF4zx/kncw+bmxTQh1HeSJq4mYV/V5cZUSJadDP3kXvGW8Rn21cimj/7y9ju+47oYWXi97vF7czaA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/@aws/lambda-invoke-store": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz",
+      "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==",
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@babel/code-frame": {
+      "version": "7.29.7",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
+      "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-validator-identifier": "^7.29.7",
+        "js-tokens": "^4.0.0",
+        "picocolors": "^1.1.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-validator-identifier": {
+      "version": "7.29.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
+      "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/runtime": {
+      "version": "7.29.7",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz",
+      "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@deepseek-ai/cordis": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis/-/cordis-4.0.2.tgz",
+      "integrity": "sha512-asOnXP1TzFSFQlHb1iegDZp0z/8WD1c7YNrwJR/Tx2bzNuMXfcekE/I67Iv6SQXeLB4csxqCngzQKANP7gdw0g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/cosmokit": "^1.8.3",
+        "@standard-schema/spec": "^1.1.0"
+      },
+      "bin": {
+        "cordis": "bin.js"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis-plugin-include": "^1.0.7",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/cordis-plugin-include": {
+          "optional": true
+        },
+        "@deepseek-ai/cordis-plugin-loader": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/cordis-plugin-group": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-group/-/cordis-plugin-group-1.0.2.tgz",
+      "integrity": "sha512-OeGiPD793Mhma9+rGIox95neuufwOFTqQ5jooFgrMK/Mn7Fp7Hkv/d7VKMXZz40iks2fZCbiFE6p9WjTVTQRdg==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3"
+      }
+    },
+    "node_modules/@deepseek-ai/cordis-plugin-hmr": {
+      "version": "1.0.17",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-hmr/-/cordis-plugin-hmr-1.0.17.tgz",
+      "integrity": "sha512-o1BooaJpwd+C80Tn5+B48MGqrfNZydlfRVQjmCrrULA4nCmlMqBKjDF2FmcZoNP+L2uX9m/6DdGKVtFpQRQVUQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@babel/code-frame": "^7.29.0",
+        "@deepseek-ai/cosmokit": "^1.8.3",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "chokidar": "^4.0.3",
+        "picomatch": "^4.0.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-timer": "^1.1.4"
+      }
+    },
+    "node_modules/@deepseek-ai/cordis-plugin-include": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-include/-/cordis-plugin-include-1.0.7.tgz",
+      "integrity": "sha512-bZ4S1YuOmwOeE97HnslQ6ggVQbaWz4GejJ8OcY4P/DIyc1Qhu/3Szt1XSw6c/pd37kRkxxJXGwt4cmCxWSBBuw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/cosmokit": "^1.8.3",
+        "js-yaml": "^4.1.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3"
+      }
+    },
+    "node_modules/@deepseek-ai/cordis-plugin-loader": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-loader/-/cordis-plugin-loader-1.0.3.tgz",
+      "integrity": "sha512-YNcHiH7TRFrgnRbQU7qdS1spABUFFHg04QpB9DdboPEjgKLTFfeEAvr6Y7qll3/nGgqywDQdk1tYshqKO0p1WQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/cosmokit": "^1.8.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "node-addon-require-builtin": "^0.1.4"
+      },
+      "peerDependenciesMeta": {
+        "node-addon-require-builtin": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/cordis-plugin-timer": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-timer/-/cordis-plugin-timer-1.1.4.tgz",
+      "integrity": "sha512-GhxOiU+TF2BbNBKlV2N24zvfv2Kh7RxkFW1hjML6s+DOb+y2zomzbeC5zHIIjsc/rpRwbKpDNucPGSwkH0ChXw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/cosmokit": "^1.8.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/cosmokit": {
+      "version": "1.8.3",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/cosmokit/-/cosmokit-1.8.3.tgz",
+      "integrity": "sha512-qBo+ronVM6Eu2WNVJXi8JcMiqZ19T9BRIpV+5qJUFPXjGH/Z0QKcQMC/IZJ7L394YTOtJgcovbk9qP0w2GsBXQ==",
+      "license": "MIT"
+    },
+    "node_modules/@deepseek-ai/dsh": {
+      "version": "0.1.5-rc.1",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh/-/dsh-0.1.5-rc.1.tgz",
+      "integrity": "sha512-rmNmzQCg3oIc1z8xH7izRSOuy1TNzq+/NILyfM+7e8DKOyV+yBtg47WEsqR2SiIe1ATec3L/rUa1YhIcfQ2XEg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-hmr": "^1.0.17",
+        "@deepseek-ai/cordis-plugin-include": "^1.0.7",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
+        "@deepseek-ai/cordis-plugin-timer": "^1.1.4",
+        "@deepseek-ai/dsh-acp-app": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-agent-instructions": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-agent-tool-presentation": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-app-boot": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-base": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-client-ui-cordis": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-cmdline": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-command-compact": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-command-goal": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-compaction-basic": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-cordis-client-runner": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-fs-local": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-goal": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-goal-round-driver": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-headless": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-hooks-claude-code": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-hooks-codex": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-http-proxy": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-jobs-local": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-mcp-client": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-persona": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-plan-mode": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-pwsh-local": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-schedule": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-sdk-app": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-sdk-minimal": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-session-reference": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-skill": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-skill-filesystem": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-terminal": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-terminal-bash": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-time-context": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tmux-context": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-token-meter": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-ask-user": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-bash": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-bash-persistent": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-cordis": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-fs": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-fs-search": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-goal": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-jobs": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-present": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-pwsh": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-pwsh-persistent": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-ralph": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-skill": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-subagent": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-subagent-control": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-todo": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-web": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-tool-workflow": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-web-app": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-webhook": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-webhook-github": "^0.1.5-rc.1",
+        "@deepseek-ai/dsh-workflow-worker-thread": "^0.1.5-rc.1",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "commander": "^15.0.0",
+        "js-yaml": "^4.2.0",
+        "node-addon-require-builtin": "^0.1.4"
+      },
+      "bin": {
+        "dsh": "lib/bin.js"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-acp": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-acp/-/dsh-acp-0.1.5-rc.2.tgz",
+      "integrity": "sha512-0lmDF2qyy136fTFN7jowBVBRVQ00YASi1umgnFSVpHQ0rDKh32tpl7xWaoOTlh6mmKh04A93qt92QhPLIzkcSg==",
+      "license": "MIT",
+      "dependencies": {
+        "@agentclientprotocol/sdk": "1.4.0",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-mcp-client": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-token-meter": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-approval": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-token-meter": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-acp-app": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-acp-app/-/dsh-acp-app-0.1.5-rc.2.tgz",
+      "integrity": "sha512-90SRAmF6haHARulVllv6uh88n+zubdrgDfxvTzmi9+p3ktt7o6oZ6+yKO7I7e04bSskT+Pz/1J0FLugi9l39dw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-acp": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-cmdline": "^0.1.5-rc.2",
+        "commander": "^15.0.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-agent": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent/-/dsh-agent-0.1.5-rc.2.tgz",
+      "integrity": "sha512-SlUL1riZmVLwMUR3jo9CP/R1cxov9dHkCJDh6JQW3fSZJVCIdPygBRlAweCUDvHxAEmPpFHxE/U3NmSUbX+vQQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-agent-default-model": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-default-model/-/dsh-agent-default-model-0.1.5-rc.2.tgz",
+      "integrity": "sha512-B2e3e1iT+iSE2Pf7bnrKmsbOPiD+ZXplVhL98K35y0IGX7yUdqATsyKVPEHjgfCGooNKjGlSBB42kUk3s7Iv/A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-agent-instructions": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-instructions/-/dsh-agent-instructions-0.1.5-rc.2.tgz",
+      "integrity": "sha512-735wmeuRDr/fB9vCnBALEHE7z04Lmhx6WX3KJLE3DjWMGbmTudU5i0iYSYst2mZh7C/igV5wXBveIGKLPIrL+A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-agent-loop": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-loop/-/dsh-agent-loop-0.1.5-rc.2.tgz",
+      "integrity": "sha512-24wvqVlqFmdqJ2Bhcku/vKeNy+qWSmeEeN7lvcUB+WkhcF0/Ra2G3WwcVmnahJA4+w0AKdW3W7v+YYcO/jKJpg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-agent-presets": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-presets/-/dsh-agent-presets-0.1.5-rc.2.tgz",
+      "integrity": "sha512-h0j7IfuHPYh/oJR7SDxh6pzSgUeaHwaaAIg5X0RNL6Z2oQrq0oUmjtArCVVw7nkgt48DjdBwx4EwJ9IdNrHxug==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "js-yaml": "^4.1.0",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-include": "^1.0.7",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-atomic-write": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-agent-tool-presentation": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-tool-presentation/-/dsh-agent-tool-presentation-0.1.5-rc.2.tgz",
+      "integrity": "sha512-XA4Z3zm73SQw4VmWdo2Z/HdRr3YCWL7SseO70wIuYbcjfar1BdMC0S6/KXTgvshn1lCuCqf7I47B1e5oxoHKhg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-anonymous-user-id": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-anonymous-user-id/-/dsh-anonymous-user-id-0.1.5-rc.2.tgz",
+      "integrity": "sha512-YIpZoi8mY/d+BjnPOryDYR7lkwr2uWh5KJWjIqm2sGN+C6imc66lDiSi5wy91JMRzefFWJf26fCiYXAF7ErQAw==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-api-gateway": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-gateway/-/dsh-api-gateway-0.1.5-rc.2.tgz",
+      "integrity": "sha512-jYDsxVyRnRI++f+hXqBJemOk6ASTvly1sO8ZRuoI77RR22r0nfTFiifxevbmUcavl6j9fgB/LL3X7BpXMy5QQg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-deque": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "ws": "^8.21.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-api-remotes": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-remotes/-/dsh-api-remotes-0.1.5-rc.2.tgz",
+      "integrity": "sha512-O8t/aJiHatgzlQIgXx6xdmpy+iAXJ/Zab1xMHIx7Noo6mzSYUIxwfJkoYgPv9G0Yfx06FPoRTUtLiZ8IADqUOA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-deque": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-api-session-controller": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-session-controller/-/dsh-api-session-controller-0.1.5-rc.2.tgz",
+      "integrity": "sha512-rwOxS6piZ9EuLgE/pbq4cUlRCGv98IKgdFnK5v8WNwZYKug3rUpvYODDU9vE42ydmClgjFd/KIAaEDFPatcDpA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-deque": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "mime-types": "^3.0.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-default-model": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-api-gateway": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-connection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-file-upload": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-file-reference": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-jobs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-native-command": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection-cache": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-query": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-skill": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-registry": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-time": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-workspace-path": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-workspace": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-jobs": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-session-persistence": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-session-projection-cache": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-api-settings-controller": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-settings-controller/-/dsh-api-settings-controller-0.1.5-rc.2.tgz",
+      "integrity": "sha512-HcnffXfBLi8Xaq3i8DZDDMZHkekW3RjRvA1XqnG/1SLR2w9OEt5P3oY2VzO0UuhyBlYCjS61BwGxDa5zWLCPlw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-credentials": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-native-command": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-api-workspace-controller": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-workspace-controller/-/dsh-api-workspace-controller-0.1.5-rc.2.tgz",
+      "integrity": "sha512-95USICv+Ds+BS4Bjf27gVneXc/ZuhlYvTsdfjx/S+MMSutjgV2eZDKkQOxVn8u8KMZw3FG0X5Era47qa3kg01Q==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-deque": "^0.1.5-rc.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-api-gateway": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-connection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-directory-picker": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-storage-domain": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-workspace": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-api-workspace-files": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-workspace-files/-/dsh-api-workspace-files-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Kx4ksBWQhN2Sbj48TPwC9cM0cxltIKzjyzanYog0d1WRnzxtqPDHthi6fx1I6RYA+k6257/xLi/Vx/ThYJ1ppQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-deque": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-app-boot": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-app-boot/-/dsh-app-boot-0.1.5-rc.2.tgz",
+      "integrity": "sha512-beM+ULhjr2mGoyrWta3F6HOQ9OD+i5tKG8BU0RtgVGmXDjA57cVEAiEkkgPLMTxbbzU+xsFP61I5SApna4Cz5A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-atomic-write": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-package-manifest": "^0.1.5-rc.2",
+        "js-yaml": "^4.2.0",
+        "resolve.exports": "^2.0.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-group": "^1.0.2",
+        "@deepseek-ai/cordis-plugin-hmr": "^1.0.17",
+        "@deepseek-ai/cordis-plugin-include": "^1.0.7",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/cordis-plugin-hmr": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-atomic-write": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-atomic-write/-/dsh-atomic-write-0.1.5-rc.2.tgz",
+      "integrity": "sha512-9bCOLkug83IGuoEBPHUxgfJ/IxsHg/UigGi8Oj0agibcGVq2WdL/fbU8KA3KU5H49KDOxq2/AA3XUI3RiAEtYA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-attachment": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-attachment/-/dsh-attachment-0.1.5-rc.2.tgz",
+      "integrity": "sha512-S6b8/WjqzGw+dMDLRXnq+tbijDGkQh38yE+zpQytX2/w/mPR3VzGj5r6McS01WwD76vXR8WFoheSCLyCAro8WQ==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-attachment-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-attachment-local/-/dsh-attachment-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-UN9Zw6oBqHl/SQxFQCGUp8OcARQkPzZo4BGNkSQHqSsEo3d59Mv7H5mSFHmKl4NogSMwksjN3SF0FocN7xyF2A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "sharp": "^0.35.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-authorization": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-authorization/-/dsh-authorization-0.1.5-rc.2.tgz",
+      "integrity": "sha512-1AtUlo72eYUwiiYL728E4oLgGfP3Kq1yiftiKv0hZ9AYzwZRMIGxv1659UymViNQ/m3BIEPlfiv+vWIDHkqMgQ==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-credentials": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-base": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-base/-/dsh-base-0.1.5-rc.2.tgz",
+      "integrity": "sha512-a4QqqqnN/qmWmIvFdCsXXlPerI3IhyIXh0UdLX1Wo1Q6P+blCIkQDG4LLLNS4RoWjhDURoKm2t51NBjotD6BVg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/cordis-plugin-hmr": "^1.0.17",
+        "@deepseek-ai/cordis-plugin-timer": "^1.1.4",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-default-model": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-instructions": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-loop": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-api-gateway": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-attachment-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-bash-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-command-compact": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-command-feedback": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-command-goal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-compaction-basic": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-credentials-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-deepseek-llm-api-extensions": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs-observation-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-goal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-goal-round-driver": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-jobs-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm-deepseek": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm-pi-ai": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm-retry": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-permission-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-plan-mode": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-repeat-tool-reminder": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-log-deepseek": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection-cache": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-query-sqlite": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-telemetry-otel": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title-first-prompt-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings-file": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell-env": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-skill": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-skill-badge": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-skill-filesystem": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-spill-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-spill-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-storage": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-storage-domain": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-storage-json": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-token-meter": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-bash": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-call-timeout-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-fs-search": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-goal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-jobs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-present": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-pwsh": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-ralph": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-skill": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-subagent-control": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-todo": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-web": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-workflow": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-loader": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-registry": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-approval": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-questions": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-web": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-web-fetch-http": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-web-search-deepseek": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-workflow-worker-thread": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-bash-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-bash-local/-/dsh-bash-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-a/FTpYUKY0Sorn4GlY2HjuQh7+gjU8XQ2+HRDN0tuqMQyO1RIzJi62FjtZSZ6+qV4EJJ8o8h0+8URHsVrzro+Q==",
+      "license": "MIT",
+      "peer": true,
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-bash-sandbox": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-bash-sandbox/-/dsh-bash-sandbox-0.1.5-rc.2.tgz",
+      "integrity": "sha512-y8vwK6jf4gPq8mG71zWure803NjfqJ66Nvzr1FTB8An+IF68hT2eU+hHJCByvP0u6FuiLPRptuX/im2CxcNo1g==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-bash-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-brand": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-brand/-/dsh-brand-0.1.5-rc.2.tgz",
+      "integrity": "sha512-/+3TzQRYT4M8NINZ9OrsL5VWNyQSXof8mFLx3txiosWA7Bt0H6UcxUdKGXVwj6gCXhsQ74mzEHm2ucsflG0mYA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-chunked-list": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-chunked-list/-/dsh-chunked-list-0.1.5-rc.2.tgz",
+      "integrity": "sha512-XPr311bleMyOh9SzhTMmc1mC6qx2Tty8315MNYYyzIOLAns0h27PReFa9axy8I0soBaE7gfp6eQI1ZriVkI68g==",
+      "license": "MIT",
+      "dependencies": {
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-connection": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-connection/-/dsh-client-connection-0.1.5-rc.2.tgz",
+      "integrity": "sha512-W0GAZX01hAfrfjoZbtwEJ5ik3dG20Hy/0TFYJ6dnvwxtcacGYNIwi3f2oHpZgLcEw+PWwq1Y9IV1iKG+yDOytg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-credentials": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-file-upload": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-file-upload/-/dsh-client-file-upload-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Y0v4pr1btn1fY8ox1cxIuxDhm2RKHrztfIDMhzj2Z1xRCdSdfbZYtkYvOdWS4uAbpZWQKs5gDMGgASvwTCJ+lg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-hmr": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-hmr/-/dsh-client-hmr-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Ra1JziRbpV5CiIaYUT4FbBKko1m+PONCGJjmKM7PyHSAv00v53/xKREHVB1SNqu/QT9cGs688ID2KHuwFxbHSA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-locale": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-locale/-/dsh-client-locale-0.1.5-rc.2.tgz",
+      "integrity": "sha512-kv56ki/WQWagsHt94wJAPzsiKnxa8KlmM33bZGgl2SgF4atlQ3iRCdkwJ3fQARXF4Ocnfutivoj5fu5usks1Sw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-modules": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-modules/-/dsh-client-modules-0.1.5-rc.2.tgz",
+      "integrity": "sha512-034DxLlGvX4GgkqqFN2SGcQx8hKdicj5IrgENclBXXbyMDlpF9xADiWi5DxPms+iOBcL/5LLe84q/GCTWOrA2g==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-resources": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-resources/-/dsh-client-resources-0.1.5-rc.2.tgz",
+      "integrity": "sha512-fl0saN8LKcAZ/YUSqxBeAbzVj6ZSBWnWrKGFUqhuq5N0XHWu4CpswFIruKxkvgl7lwAsdTtbL3wMtsKIupSmNQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-agent-preset": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-agent-preset/-/dsh-client-ui-agent-preset-0.1.5-rc.2.tgz",
+      "integrity": "sha512-BMhRU54q7/8E/JoksXm9TW1rCBBg2V64XsDwltYWmCLcZuLCVBc3GX7t/11WMERNi8Do+0ZM6khslwrhbT5QLw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-approval": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-approval/-/dsh-client-ui-approval-0.1.5-rc.2.tgz",
+      "integrity": "sha512-jrlEBEYfYq04HuKYBxD1yI5Z9btJ4fnuWbz3xtK8M/gvsTye8PrhCMxaNARMznGiUFoXmwv9CRhl/KAqbbfE/g==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-attachment": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-attachment/-/dsh-client-ui-attachment-0.1.5-rc.2.tgz",
+      "integrity": "sha512-+i98BXfTpz9HX0G7m7k9ka1R5Tekd0tBIljFtKMmiXWju5MW1u+dngpmGCwoSHenEuZGZDC8K/qgw7MIOcbRnw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-brand-official": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-brand-official/-/dsh-client-ui-brand-official-0.1.5-rc.2.tgz",
+      "integrity": "sha512-VESOQ7N8MmUNyy5H1A099Zx3NW1DTTcFIdN/zYVTXWKukmSR6xanShJMai6e69ibDmUfh0YmRgwOvHOVd2K0Uw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-chat": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-chat/-/dsh-client-ui-chat-0.1.5-rc.2.tgz",
+      "integrity": "sha512-ywvtoJUgd/vkfETuFDIgqrvdR5yzfvBDqpuyw0pFDHaHwLzRtk/xPjraI9blNoLWQ8x/Sp42aS4Pr7XQPfjIvQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-commands": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-commands/-/dsh-client-ui-commands-0.1.5-rc.2.tgz",
+      "integrity": "sha512-wXSTOM4DHogdXZp8tp5RhEvpRJbNey/lN7yjCNN5Qg+BjSu6BAVwKLRKiriCmKIKJcEEpq4BFQb9Di4c1GMm1w==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-conversation": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-conversation/-/dsh-client-ui-conversation-0.1.5-rc.2.tgz",
+      "integrity": "sha512-VnZ0VrmI7+1JH/iMYV6+FaxCsZrVk4CZIuG+k1HkeevHgUPHe3ghLo8u1Qt9cx00MEH5i3bLOY5Nka3w4mbA6g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-cordis": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-cordis/-/dsh-client-ui-cordis-0.1.5-rc.2.tgz",
+      "integrity": "sha512-wLolxQURdqIXNLcoGmiXb6tE7dPD5v5eBBu7WtUn/w7FNlp4QambxpCfX/ytGy8LtKO42LwhYk9uPPr51COorQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-deliverables": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-deliverables/-/dsh-client-ui-deliverables-0.1.5-rc.2.tgz",
+      "integrity": "sha512-RO2XqjCOZfCSkMzlZf1rgg1ZYhLO6Uy2FUsTwkPContjKCGnGWUMtcaRS8LTs1lYgH8+hP50LIf67o/6z8FJxA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-directory-picker-browse/-/dsh-client-ui-directory-picker-browse-0.1.5-rc.2.tgz",
+      "integrity": "sha512-DrrcPERnA50Il/1Roc6T3goodqANi0u+nVtQShw2P3FHBwVqdlfUURMQgZgKdHO4JFv2dGnikwf+XhiE41icWw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-directory-picker-native/-/dsh-client-ui-directory-picker-native-0.1.5-rc.2.tgz",
+      "integrity": "sha512-bH3VBqhlXcmkEcnPrnRLecDW9uOdvsaTzfZ8zTUh5ZtexwNhBs6Wv3lN6gZNw457jbP4BnQoEar5fq+rIC5RTw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-goal": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-goal/-/dsh-client-ui-goal-0.1.5-rc.2.tgz",
+      "integrity": "sha512-38+k8tQq61nQjHYLwYfrwOoju+Jlg2hB0xWJrMvPfcZlB5Shjtthm50lW362tK6iJ9GMSfOGIPGuC+nooBD/Yw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-input-trigger": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-input-trigger/-/dsh-client-ui-input-trigger-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Am7qlXQX+Kf3IddzoJDy2/kgtHm3R5hcUFjDQ8tespSWXswPEX+9wsPFugUvjHJkqdpfeE9OTI3jnd8K6sT/BA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-jobs": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-jobs/-/dsh-client-ui-jobs-0.1.5-rc.2.tgz",
+      "integrity": "sha512-/ygltqocItoM+Jh+tnyYJwIpAPTSu6bAWfEkyBunHpHllCjONuFmnpPcLPZTOxKwkjTdQT6XTRdMhmxU7Sageg==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-layout": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-layout/-/dsh-client-ui-layout-0.1.5-rc.2.tgz",
+      "integrity": "sha512-N5+kH1W6UjzOuagJEKDenm/Gbs8Y2sz6btdmVKW5dypEEUgVWsQGV0auTC37gsWKWDaWGpfYOpeAa3Ybk6DYbQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-message-feedback": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-message-feedback/-/dsh-client-ui-message-feedback-0.1.5-rc.2.tgz",
+      "integrity": "sha512-LSp6c87DLMiO4B0JCpp00QEHI6VEKSLWydAx7DBjWTma397HLGLwKoaOT7kHZ8ZSkei970LmdBCUxcwo2Mc4tQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-model-selection": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-model-selection/-/dsh-client-ui-model-selection-0.1.5-rc.2.tgz",
+      "integrity": "sha512-AlYjgwb40OOe5InaAFsQEu/KZr5+vYTItXMkFhkP5myzo5fOea0H0xdF29UV12BZ0SaRItacs8GE1kbDB9n5Ew==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-open-in-app": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-open-in-app/-/dsh-client-ui-open-in-app-0.1.5-rc.2.tgz",
+      "integrity": "sha512-UqLrgiNa48kTGJuMHo/f1er8ti3vcktkseUgFVW2WfWiV3ES1CQTyKF3+4gH3ub7RYFN8VteTQ5QKuOZe5WgPg==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-permission-presets": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-permission-presets/-/dsh-client-ui-permission-presets-0.1.5-rc.2.tgz",
+      "integrity": "sha512-2iDWBqr8bfhvzuxNW03JptdPtqQs6kHjh4GdBfgudUhFszaJZOBETx83+PfazYqV4daT4N0cE696l8tqqsS5Ow==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-plan": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-plan/-/dsh-client-ui-plan-0.1.5-rc.2.tgz",
+      "integrity": "sha512-3lbKHZA+9gPSXlMpEFA9xVbn7FOTCgP78Tf3buAjTmOnwSF3PRwBQoMeaANro2SoTn4ZuJZjJkpxqe3YDEOc/w==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-reference": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-reference/-/dsh-client-ui-reference-0.1.5-rc.2.tgz",
+      "integrity": "sha512-9zNSMWIhG0txbpwbUdHfkPTHYR44rBVl2aKPIcqr8JSUhI+8y8+QZwoykYTnbZXCKo2Ircdm5IXYbMXTbrGCGQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-renderer": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-renderer/-/dsh-client-ui-renderer-0.1.5-rc.2.tgz",
+      "integrity": "sha512-otUJ72f1UfL8b/UL+tMdSE+FHqJWErPmHs2AWbad9nHXghNoZjL2bxumOhI3b+Hb1eezhhM+KanlWzIulTIkvw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-schedule": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-schedule/-/dsh-client-ui-schedule-0.1.5-rc.2.tgz",
+      "integrity": "sha512-DjBRHytIkcntXs93cpDSiDCiA6eEegc26ht+ZuE9sdCHNh3eu2GxLihMoKBiVFbepwIsdfuWO2mf40iFH/w82A==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-session": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-session/-/dsh-client-ui-session-0.1.5-rc.2.tgz",
+      "integrity": "sha512-EGCG4Ik95obEM1MA3ZVSsPuK7nknQyhfV/qgNg035jn6gtZJxAguuck9qBNuSOC0upx1xTbh+gSJ6bAmS4ugcQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-settings": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings/-/dsh-client-ui-settings-0.1.5-rc.2.tgz",
+      "integrity": "sha512-NsnZLRI2ZDzJJylx9KATuDwrTdJ0FSP93dU5SL5k2G2W4FLUspNvlAmk7bha5Miopfzmfd+h5/NvMdWe8PVVjQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-settings-general": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-general/-/dsh-client-ui-settings-general-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Y/UNa3iwrqLesUVSPLts1xZotenWyybnpU0/oABUt6rkvhDuxVz2w8HltnrVD3ytKzPBSrmlK2vP2YyUaK4z2g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-settings-models": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-models/-/dsh-client-ui-settings-models-0.1.5-rc.2.tgz",
+      "integrity": "sha512-L1vxfbVZEDmGlVuEaJcQb60E36l7BMZoICLJf+D7r8Gwcy8kFckGWKS0fbxsz+3Jvm2L0+lINJESzSMC9pMGNA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/-/dsh-client-ui-settings-plugin-inventory-0.1.5-rc.2.tgz",
+      "integrity": "sha512-lpa6KZA/wqYRNi0zHQVrdUEbt4UGHKfughUSpew4sWvd4HymGGyuKF1ksVrioRUdRGAM+f8/VYpXd0ySk4wQ5A==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-settings-plugins": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-plugins/-/dsh-client-ui-settings-plugins-0.1.5-rc.2.tgz",
+      "integrity": "sha512-MRErIAbG1GjrIDN/ULFEMrBA5rHUfg55+uY2P51UVmLdI5UC3B6I5QQYNo9pPcqHSVnT8EZFz7ZWz4Yi5DTAuQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-sidebar": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar/-/dsh-client-ui-sidebar-0.1.5-rc.2.tgz",
+      "integrity": "sha512-52PGlC4e9zkD6MQOjDo2TakxsWi4f5QigmdNsHluhDMBUfwMYl8ppWGD3uuHyAkK95yh0D1eKI5UPdQ5kikn+A==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/-/dsh-client-ui-sidebar-documentpreview-0.1.5-rc.2.tgz",
+      "integrity": "sha512-HeaqHwOyCg6/3ppFP7///G8C4vmVrhRBP8R0w31PLWIv9dcpnULKuFLFO7UemeBsi8K7uQ5zwN7V25DoT05X7w==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-sidebar-files": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-files/-/dsh-client-ui-sidebar-files-0.1.5-rc.2.tgz",
+      "integrity": "sha512-ZJCpQNruk1Sm29wce30+ATjFkvnuhd55yB3wb+9WpeN+hW6jPmBnAmvUGbS4JsWqpimHLL4y8xYUd5AzAe7+sQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-sidebar-right": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-right/-/dsh-client-ui-sidebar-right-0.1.5-rc.2.tgz",
+      "integrity": "sha512-EqKZ5JuyM+yCd6TVe7NwTmZf9y7dyhcLczpnu5rG87RuwVufEz1ARqO9TBXf32ApXCeYOJQGVeJjR/VsYzVMgA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-skill": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-skill/-/dsh-client-ui-skill-0.1.5-rc.2.tgz",
+      "integrity": "sha512-aVBAA4cp79MRE98yVyFjosz8BAn4W5U2DFGF7BxmDYKNmFEp7Ae0THGNn9VXZg5wfmTH6fTAzQKw1THSv+EVWA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-subagent": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-subagent/-/dsh-client-ui-subagent-0.1.5-rc.2.tgz",
+      "integrity": "sha512-/SWymLiSOzYswhikUo+VAuTc4dYkTecw+8vtex0H5IsCsRHlDaTnHgcxXnlvgeqFFifjanr4JzVhwzg9Ope2dA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-theme": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-theme/-/dsh-client-ui-theme-0.1.5-rc.2.tgz",
+      "integrity": "sha512-qLR/6E/AzHUpTgKn8P0TiHiWg69qXYFfbpfHWM+HpQ66K7lyRQUXC+WKEJf2ZStCF4/enkx/rhMdXzRDlPVO3A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-tool": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-tool/-/dsh-client-ui-tool-0.1.5-rc.2.tgz",
+      "integrity": "sha512-ncGDBvf7EpuDkq8KteGqQoUCcYkLWlGWNHPZScF8B92zdftYjlnsiQJZCkFbDiyRju3z7PAV3qdY0WO9hOTs3Q==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-trajectory": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-trajectory/-/dsh-client-ui-trajectory-0.1.5-rc.2.tgz",
+      "integrity": "sha512-QiCP1h1bgHG05vlJL5hde3hZPfTuSdwRrszgfY7Jy2NfkuIX6wqv8TI5zsZsEkS2/ha3Ebp3nhjDfkXsGZpgbQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-user-questions": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-user-questions/-/dsh-client-ui-user-questions-0.1.5-rc.2.tgz",
+      "integrity": "sha512-vJzqgAIAlGX7oth3a4qVq3pyyBRc4paL7ENOnt1kfmY+XoPTGF+/CUXwe/Lep5Xjo+95K2HPq7tMxeryKJj72g==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-workflow-run": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-workflow-run/-/dsh-client-ui-workflow-run-0.1.5-rc.2.tgz",
+      "integrity": "sha512-dFpAilctrJhwwZY/XXVvTy73v9UhAPqbuEMIK3sMBFtoAg+S/gCQsiVX/WV5/WCADWdjHLtBoEVAsZgrnImbHQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-client-ui-workspace": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-workspace/-/dsh-client-ui-workspace-0.1.5-rc.2.tgz",
+      "integrity": "sha512-BRe/RDIJJblCECYLwVroy8h4+cXrf3eXSfLjJ6BdpnW2fI3CBJuEKlFaBPGtKAFTTain0rQ+dP6SscZNrXm5Gw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-cmdline": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-cmdline/-/dsh-cmdline-0.1.5-rc.2.tgz",
+      "integrity": "sha512-sfjqgFojZRprFx0oKCI2J1GX2BZ+mgWq8bYX9CktFt3OGlLgmFE5JJ/nNSLKtCjRoXok7KXhsYFcH0dZGlkUsQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-code-runtime": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-code-runtime/-/dsh-code-runtime-0.1.5-rc.2.tgz",
+      "integrity": "sha512-qex3bvQNBkv1eapi8iTyNq+c52q1kxfdv5+8Nkswv4/kwrkvcDa4n4iiCbEgKS+K5U4DiVIprnyIv8Nx7il7Nw==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-code-runtime-worker-thread": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-code-runtime-worker-thread/-/dsh-code-runtime-worker-thread-0.1.5-rc.2.tgz",
+      "integrity": "sha512-eXrkDTWlc/ZH2A6S1bP1An2AgfQjmaMRmCKJU1mUzvENO7sLTo++GFR6L1CRLRkFxB8VGZo1TYFKtBxNKsdbaA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-code-runtime": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-command-compact": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-command-compact/-/dsh-command-compact-0.1.5-rc.2.tgz",
+      "integrity": "sha512-TBvpsgCLLXvnyuVYV+eiAyL/xkl0dG2j1GUVC2mxwPov1jLiKgLqneZClJpo9gT192HAkGIs8a7wXCoID2ryag==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-compaction": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-command-feedback": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-command-feedback/-/dsh-command-feedback-0.1.5-rc.2.tgz",
+      "integrity": "sha512-7bXJ5IiSzaCbNUffWboAvMXze4N/GTID7O8loSsKBbeAo4CIS6lOWxyx8ZSrcQv/Gnd4onxizN6WqIMxW6i5Qw==",
+      "license": "MIT",
+      "dependencies": {
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-anonymous-user-id": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-command-goal": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-command-goal/-/dsh-command-goal-0.1.5-rc.2.tgz",
+      "integrity": "sha512-wNxZKEBC6bAHd92fzKJjyPnYsZJ7yq13p+5wLufNPZrty7y1nlJ8lm7SwxuPZyXYJ9+/5njYlMnZNNZFmitJCA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-goal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-commands": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-commands/-/dsh-commands-0.1.5-rc.2.tgz",
+      "integrity": "sha512-ODc9h2Jig+Lo4XLdxqHpHjSXsBFeUCth6Y/rToor4KVRWQMedUARlq5otPyB1lYHyQh2DonNs2uf7g3mvag57A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-crypto": "^0.1.5-rc.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-compaction": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction/-/dsh-compaction-0.1.5-rc.2.tgz",
+      "integrity": "sha512-aYCBBcmodNycKjaX9hWChxi2+YYMKlfiIfrNaL9QwtXs0BLvsv2/ttZqGxCebLGv6XdHWozNadC+opFpUCeZAA==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-compaction-basic": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction-basic/-/dsh-compaction-basic-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Tz6aEvPunsp+SXQruXTldxnZIMLPwXL3ZkWWiWnCM+83r1PglVBWABrxjaRkMaIEype/R16OjxodzR4k7GNA1A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-compaction": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-token-meter": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-compaction-tool-result-pruner": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-compaction-tool-result-pruner": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction-tool-result-pruner/-/dsh-compaction-tool-result-pruner-0.1.5-rc.2.tgz",
+      "integrity": "sha512-JsCZrbStt2EehHSLXU4CFKJW8idc0xefqCOh101bW4El26JShEKoJKTUwIMvRPq7AQh9RBWk25Pf9N1yAjKuDw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-compaction": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-token-meter": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-cordis-client-runner": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-cordis-client-runner/-/dsh-cordis-client-runner-0.1.5-rc.2.tgz",
+      "integrity": "sha512-RFzivtNX2Zx5wTR+9XnawzoxDViti44QoGEamhLP5+Jc0X8BMPVemYB9755UL3YRqgASNQ2x0IrJgBoc813jAg==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-cordis-host-runner": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-cordis-host-runner/-/dsh-cordis-host-runner-0.1.5-rc.2.tgz",
+      "integrity": "sha512-VUvOt3L7D7EJEMO2Cetlv0UMY1haIzI401W5kO1AKgOHktGr5SC+wFk83SHX7v2/CS0g1N3PbQ3D+RslutqPjg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-credentials": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-credentials/-/dsh-credentials-0.1.5-rc.2.tgz",
+      "integrity": "sha512-TfX5MYLlyw0BFERj3dGxVfP9QGcKZUE5eXDSaY7ZfJbfQgK51VfxV5tP899OxIDRD3Bw94K5Rzx+dbUTSWJBtA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-credentials-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-credentials-local/-/dsh-credentials-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Xaz/giXBtfwWP/jd/o1QwKDCurGjZVfVXEfFZvXfzGJ1pdQiMFdt/1nfCnIkktHO2fHhtxEE4MBg10PBLtmp7A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "chokidar": "^4.0.3",
+        "yaml": "^2.9.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-atomic-write": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-credentials": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-deepseek-llm-api-extensions": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deepseek-llm-api-extensions/-/dsh-deepseek-llm-api-extensions-0.1.5-rc.2.tgz",
+      "integrity": "sha512-zue4FWkj7Srg8mAwA6XNqT560NkraILiYtAwIcpT4mmt1Nlim+m55x7ACNkwA5Es0uCkEFAU1H6wHSnR7l2EfQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-deque": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deque/-/dsh-deque-0.1.5-rc.2.tgz",
+      "integrity": "sha512-j1dINwK5XU8f+GPdzx22o2GvsAEhCvnLxqZfEqaLGYImbvdLkToVuU7M2nVcNSU+B7v+kl39lWf3E5u6tzG8RQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-file-reference": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-file-reference/-/dsh-file-reference-0.1.5-rc.2.tgz",
+      "integrity": "sha512-vJIHFFn3YmipM5X9SgPglnUO4jpvlCh3Yr3JQYITRtpBkL4hBbleayICP8cCmrfN0prstJ8dtIuXkUANu7decw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-file-reference-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-file-reference-local/-/dsh-file-reference-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-WYTbwUD5TFWExRttqeNRPBk0EF6xfngevyQyNMRu3fgWYVrHHW9vtR7iGAs/mxAqCgTwZw4vAhCnw1HxaYYLqw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-file-reference": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-fs": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs/-/dsh-fs-0.1.5-rc.2.tgz",
+      "integrity": "sha512-6DHTquXPbpYdykGayqYaXSI9t668tDCoswH/bDezV+nwj4LxjrfY/smEtgp7nC4ubyoKf1hmjpNfUonGC9e7aA==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-fs-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs-local/-/dsh-fs-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-akUTz9D/N0ruSOzytZ8SZ330SdzG75fd7DzHsJ7KJzSif/QM0Y+RpOmGMnjlJzit4HDV2A4Etn80wSzstyp82A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "koffi": "^3.1.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-fs-observation-policy": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs-observation-policy/-/dsh-fs-observation-policy-0.1.5-rc.2.tgz",
+      "integrity": "sha512-AntY5dfkTL8WugNGHkJxCEffaTFHqdXaYm7ZrerexnLiZQscDRRjf9zI00JwOmlFM/IrioCuLf5cERfhZN5GYw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-fs-sandbox": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs-sandbox/-/dsh-fs-sandbox-0.1.5-rc.2.tgz",
+      "integrity": "sha512-eUxNsnM+TsjGw5OleOIcAhMnFhmQ4OAZoBYeiRMSeOMuCKWEjhxUGN8S8Hg1HxPaZVeIrUV7qFsNQzhehKj7wg==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-goal": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-goal/-/dsh-goal-0.1.5-rc.2.tgz",
+      "integrity": "sha512-atFJaoijwAz5yZ119f82I7jMx3tGCwXOz6qoY0Likb2c5DpumWZTJgs5L19OhKbhvEW+r2MAC4MYKaUxtrbb0Q==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-goal-round-driver": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-goal-round-driver/-/dsh-goal-round-driver-0.1.5-rc.2.tgz",
+      "integrity": "sha512-9uEhBTqIVxJklNkxCvDDD9upyEa6mIYlB5kfan37zixGDfKSgj83VSwXjJhVqN0b/2CLQDuPxtXgFuSdItoR0g==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-goal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-headless": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-headless/-/dsh-headless-0.1.5-rc.2.tgz",
+      "integrity": "sha512-EJ0QCWo+0WCTq2SFFRZpbMcGwkSh/uBRNJmE6nx9Eh1Qlt4y3I4G3k+p2mn276ujPbGfEadaI5KLciLOHsZQXQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-cmdline": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-code-runtime-worker-thread": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "commander": "^15.0.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-default-model": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-home-paths": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-home-paths/-/dsh-home-paths-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Ek+DH9+MTiulfWDMKo5r335k4I9XIItk+jq8YaPihpK3klSeiKLW/SpKJhFodRnW1CwEyjIlt2XriycRvceIiw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-hook-protocol": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hook-protocol/-/dsh-hook-protocol-0.1.5-rc.2.tgz",
+      "integrity": "sha512-qJ0AlRhLsj31tro0vzubhXarigq8EDi3PwyOxxhoSxZUbGqOBWx+QLNEOC5E5tuob6DYA64Qbmgh7Cbz8vYgiA==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-hooks-claude-code": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hooks-claude-code/-/dsh-hooks-claude-code-0.1.5-rc.2.tgz",
+      "integrity": "sha512-wdsl+A8tvAk66N5ozqyxmJ5t30AQQ5byBaKYL60Vx1jFoWXaD83piPcD1BAPZ+hVoWI1a9PCUDowFzAzq/PnwQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-hook-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-hooks-codex": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hooks-codex/-/dsh-hooks-codex-0.1.5-rc.2.tgz",
+      "integrity": "sha512-WVmZIWJJ04A7rpe80wcd4+O4MfJbBJdtiPwM99B2DASpm/Igyz3t0mNzNfbWe3zmznRKTHFz1imqhaPdceY1Ng==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-hook-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-host-directory-picker": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker/-/dsh-host-directory-picker-0.1.5-rc.2.tgz",
+      "integrity": "sha512-a0fVQTX0tM7Zl+1WWkCO3Pd+64CW1CwfOJrNxpTuz7EOp6wOtsYDRHlDyJUSKAOMJArS4xN2qkkt8n3eIkNkbQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-host-directory-picker-auto": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker-auto/-/dsh-host-directory-picker-auto-0.1.5-rc.2.tgz",
+      "integrity": "sha512-R6nl8L/xAd1kmlCZc8xOl4jxp69HMmZ75vWdRswM3MXrM3GIgNiF7AKwK0JlNIKPc6M4vsC3sGMR4yR0XtdhrA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
+        "@deepseek-ai/dsh-client-ui-directory-picker-browse": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-directory-picker-native": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-directory-picker-native": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-webserver": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-host-directory-picker-browse": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker-browse/-/dsh-host-directory-picker-browse-0.1.5-rc.2.tgz",
+      "integrity": "sha512-8xnMfNt5XcO81qshrC/zzD2NYfLKYEQjVzcu7r+u/ymro7jLypRAp7DQFGuRZiQV4jIF9bdTTT2gcCYaXkWi5A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-host-directory-picker": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-host-directory-picker-native": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker-native/-/dsh-host-directory-picker-native-0.1.5-rc.2.tgz",
+      "integrity": "sha512-bBsGBR+tE/w9Dw9rM2Lh/4umjYtGnEmQ9YEss7vrKzo/KFuMfgNPkXHKb6A+AoCfSVd7L7PqkocoA5qVRQND2g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-host-directory-picker": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-native-command": "^0.1.5-rc.2",
+        "koffi": "^3.1.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-host-frontend-static": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-frontend-static/-/dsh-host-frontend-static-0.1.5-rc.2.tgz",
+      "integrity": "sha512-cTc0vTyejoYBE0XWOXw/nEDTcveAF9ucYEcaUVintvoo4b4WGG8fuTZSJX9EVkvXggAvxvFjSiYAQ8o2zP7qrA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-client-connection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-webserver": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-host-open-in-app": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-open-in-app/-/dsh-host-open-in-app-0.1.5-rc.2.tgz",
+      "integrity": "sha512-8CBzeDQYMmz4IG7xp7a8mp0xeQ9v6FS9qcN2pOdfRBTXmMk8zHroBpiuW+26yEQmP4HsAi1BECgcWQ03eNoOCg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-native-command": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-host-plugin-inventory": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-plugin-inventory/-/dsh-host-plugin-inventory-0.1.5-rc.2.tgz",
+      "integrity": "sha512-U7RTRLRs+O18ru6KzUy7LvMk/IgXnkWSalogg0abfA+QU020XZi+UpwZqM567RzC7MtpxijQk8bulGunu0lifw==",
+      "license": "MIT",
+      "dependencies": {
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
+        "@deepseek-ai/dsh-agent-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-agent-presets": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-host-webserver": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-webserver/-/dsh-host-webserver-0.1.5-rc.2.tgz",
+      "integrity": "sha512-lFgGm9wDrHiTBANzsdoWzdfPSjWYuDFwCoNQ4Uko57Fo5XASL2unfRHGm1xZ828rwEYuGwRvJHMOuoP/17VmlA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "compression": "^1.8.1",
+        "negotiator": "^1.0.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-http-proxy": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-http-proxy/-/dsh-http-proxy-0.1.5-rc.2.tgz",
+      "integrity": "sha512-dRK8SMoxyY1F1ulzfnslI++9RDvXLGkPxahUwrnSQl8gTL9R69ZEh6P9dtcIVWMbstaYcq4CqWvo2/qUHSYRhA==",
+      "license": "MIT",
+      "dependencies": {
+        "undici": "^8.10.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-invariants": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-invariants/-/dsh-invariants-0.1.5-rc.2.tgz",
+      "integrity": "sha512-oUxttB2yjAgkk47AiXOCxk9GwnfGvIEGsQfnMD7fukwIdD3KLJObU7+nz63tbFN80rjwMI8rg+p9QBQ10KU5+g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-jobs": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-jobs/-/dsh-jobs-0.1.5-rc.2.tgz",
+      "integrity": "sha512-C3rBEuWhtDBlxMeKykFvSfBwjSPxkLsvKCFq8BrFdjDmZC1lI9GooMjPZkPxXVbogVrcOBaYVtJdOYJ4+rIpQg==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-jobs-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-jobs-local/-/dsh-jobs-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-PCDLSktONJ+If3QCcPlRskVLXIa8hG/l0pBIgKNllz4mb7CmYlJ5w1H9pWyrFZllMO0Wm94ZS9aP3SnUcJ8R1g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-jobs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-launch-environment": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-launch-environment/-/dsh-launch-environment-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Cr35kPA3W7skJsPLJhUExLDAjVKCmvJgkog0m8EZ+XdK8RlBDsWiH2peRWFtFOjt8QOOeEkupPs1VDpWORIRyw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-llm": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm/-/dsh-llm-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Z7BVsBkK24SE4EItQeow8PHms/9GP0DSTi337vTAa/RY7tNg2Snz3INcXUj6CPZfvntQr1in9op9wLI+rfNsqA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-crypto": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-llm-deepseek": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-deepseek/-/dsh-llm-deepseek-0.1.5-rc.2.tgz",
+      "integrity": "sha512-qNRbLsE2ro+AfD7NgJwTukQLG82gIkbAISjDHgv0au7TocfPkNkUWSu20mTaBcuLGXzfSgBVn4oYx5N3ws6KVg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "eventsource-parser": "^3.1.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-anonymous-user-id": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-atomic-write": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-credentials": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-deepseek-llm-api-extensions": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-llm-pi-ai": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-pi-ai/-/dsh-llm-pi-ai-0.1.5-rc.2.tgz",
+      "integrity": "sha512-56/TRc857HqapiAia0OyWsKtWPaPOfivx1OMzWYsexhTsIvxIOetrj5IMF+tW6geeSm38vfOffn18gOb97NgEg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "@earendil-works/pi-ai": "^0.85.1"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-authorization": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-credentials": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-llm-retry": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-retry/-/dsh-llm-retry-0.1.5-rc.2.tgz",
+      "integrity": "sha512-6jyxD9tdzePZMdA4BdvrbdnqSkNYv2M1Nac84urkOcc3D8Jc+QYMnXrpeDB4fZRWg/l7FoKXtfUdn4Mj3kY5ow==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-mcp-client": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-mcp-client/-/dsh-mcp-client-0.1.5-rc.2.tgz",
+      "integrity": "sha512-L1uhXptzs63bne3fpe8By30xUu2KzC9bbo8t1RdasnRNxhevNJA/5/Z9ZenuMRh26XZh9THF+DVuudEH8PFIsQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "@modelcontextprotocol/sdk": "^1.12.0",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-message-feedback": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-message-feedback/-/dsh-message-feedback-0.1.5-rc.2.tgz",
+      "integrity": "sha512-oNLajqBpv5bkebQrzByUpNTlQPcCoLoreMKzYN0s6STwtHpTzOqj9vSzwk964TfFAYutcmfQoCHNY7j9jmw6iw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-command-feedback": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-native-command": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-native-command/-/dsh-native-command-0.1.5-rc.2.tgz",
+      "integrity": "sha512-FFkiS4Izm5VC1l0bHuw3yExNDmqW0/ypSLt+RtH24GG/W5ofpFvwjGclYDUzSDa0MP5uPzhTMN6qgM76BAA40g==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-output-retention": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-output-retention/-/dsh-output-retention-0.1.5-rc.2.tgz",
+      "integrity": "sha512-3eOx7EmMkttMcJfF/BT6e8A8b0SzWuLCxU+AdY9jBcU8ffZFspIPtMgJ86yNCMLdoZctbrmeSVwEdweMJWRhLA==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-package-manifest": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-package-manifest/-/dsh-package-manifest-0.1.5-rc.2.tgz",
+      "integrity": "sha512-PTieT+tXdV8TNK718JZCd9dpVZR52UMYu5i1nXPDPBpoq1fTP7lLSlgHvDEs6SpoJtdFPGNTe8+7KjELyUDDvw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-permission-presets": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-permission-presets/-/dsh-permission-presets-0.1.5-rc.2.tgz",
+      "integrity": "sha512-WeQ3a+mcWfGjv6PLJGvMIgIZNBiR9mCA+wsjFZvxjtuPdu8p8uILxnaodlXhWpSDQ+8oimRO3eBxNVuJdtX1eQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-approval": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-persona": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-persona/-/dsh-persona-0.1.5-rc.2.tgz",
+      "integrity": "sha512-VYAoj8tmSmwBr8SzDfjoG+t0v4Y/clu7BIWjZB5rnyNXLl5RNiY8kVTttnYRBQE+2jLLXlcR7PBJlYkfig3Kiw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-plan-mode": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-plan-mode/-/dsh-plan-mode-0.1.5-rc.2.tgz",
+      "integrity": "sha512-veJCNJ8qL1vTG5F1GBpBa+lmtBVm+P3kgXpHBCJbYGmZKyrmHj3kbkiVgqxDdxTwnOoQiVco1OcBQUIO/ofGxA==",
+      "license": "MIT",
+      "dependencies": {
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-questions": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-commands": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-plugin-package-inventory-deepseek": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-plugin-package-inventory-deepseek/-/dsh-plugin-package-inventory-deepseek-0.1.5-rc.2.tgz",
+      "integrity": "sha512-X/6mHIXFoFj6KSj0NBA2RC1xQaHtKnj1QS703AypNaq9+rxn3su3oFnZeWulLx0Tex4URfSmIo8SD1pkJkgUeg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-deepseek-llm-api-extensions": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-agent-presets": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-pwsh-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-pwsh-local/-/dsh-pwsh-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-TwH/xwDRtgk3LyQraG4VoaIaItFSuorTTqyJ3nzuyLOsXq0I8nNYQr/wuaoRjkiDyzFTDeEVMCKq6zEEoLLz1Q==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-pwsh-sandbox": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-pwsh-sandbox/-/dsh-pwsh-sandbox-0.1.5-rc.2.tgz",
+      "integrity": "sha512-AYTAiy8wQwVoHO47e+hnG73GvHdmg+bKy3bFnrPDANCqnRZh9TJIbkxHxtJnfpBnNCcs2fhhCo6yHtGFYl7KHg==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-pwsh-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-repeat-tool-reminder": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-repeat-tool-reminder/-/dsh-repeat-tool-reminder-0.1.5-rc.2.tgz",
+      "integrity": "sha512-ZDK8AJOP/hdpCKLfbKbfwgj/flICKEPdJbtdoYsTR5A+BGfq8RIy0BWux0IczDenzNSNa8FXq3gbnwQGTPAJ1Q==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-sandbox": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox/-/dsh-sandbox-0.1.5-rc.2.tgz",
+      "integrity": "sha512-OTOR6Jj9cey5YkhALG0TBwZ/Z3t986aczH6fLbzoIIegix+gwNaEBOqCWs+exVJ0Z2QuN/ItXzn+xHxW8Y0dcA==",
+      "license": "MIT",
+      "peer": true,
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-sandbox-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox-local/-/dsh-sandbox-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-qlbg0X7sR9BE90sfHMuOl0t29XG859jJK8xwf5x8yI9Du0zcmviTlQtvlsT7MgDC9OOw8TEDfRTgbm3VDSXCdg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-sandbox-windows-acl": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/node-addon-system": "^0.1.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-sandbox-policy": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox-policy/-/dsh-sandbox-policy-0.1.5-rc.2.tgz",
+      "integrity": "sha512-QyQSCyLFxljkvmsVWJG0xUrYTiXr1DVOxHWURf7EHnbmvYZgg2B+nFcI58+IeUB2qbB35B1ClW5NQsKjOgDm2g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-sandbox-windows-acl": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox-windows-acl/-/dsh-sandbox-windows-acl-0.1.5-rc.2.tgz",
+      "integrity": "sha512-GPig5OcIBSYtE5YwVzXqV+ICG68FMI1Fo+ZgyH4Jc73Qlze6A4uZqtCyH/xsmiZfzOZiOLyFB9+gc8lu4tZv3g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-win32-process": "^0.1.5-rc.2",
+        "koffi": "^3.1.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-schedule": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-schedule/-/dsh-schedule-0.1.5-rc.2.tgz",
+      "integrity": "sha512-SjVt6miSlSX1WQdAyvLf0KyQULIds+bLihr3nIvUAhrVSmoRDzbu2jNrNA5jGCo923+dgjGfLn6iUT6aNDJO3w==",
+      "license": "MIT",
+      "dependencies": {
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-scope": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-scope/-/dsh-scope-0.1.5-rc.2.tgz",
+      "integrity": "sha512-JwItISje52iVIjlGMNayRVMZrvZU/0i3Gr0s+coND5nBp5lS+pOj9Zf1RQzA5cWjHYCWKmDuQc+m6zGlwmtAeQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-sdk-app": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-app/-/dsh-sdk-app-0.1.5-rc.2.tgz",
+      "integrity": "sha512-WamfPr7CctpoICsT32UpnLlAZavaEno2zwa3icqqpGdSHY0H+BL8yx/4mmRROIX1/ovMyxTcC5urjptDKy34KQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-cmdline": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sdk-jsonrpc-server": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "commander": "^15.0.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-sdk-jsonrpc-server": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-jsonrpc-server/-/dsh-sdk-jsonrpc-server-0.1.5-rc.2.tgz",
+      "integrity": "sha512-TRVkUngQPKlpHvqS5AZi63zwa+5eG0zp1NwZXzJjdiYhjV2LPICiWVM6EuSbmIRB6tUZMB1MXf4ZSj2OFQWn/Q==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm-deepseek": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sdk-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-sdk-minimal": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-minimal/-/dsh-sdk-minimal-0.1.5-rc.2.tgz",
+      "integrity": "sha512-mWdnFnz+MGU1+xgg4GExF+OkkYxEdaNQdAPFq30m0oP67cWQV0Om+pNBHDeGeguf8MVGLNLJB+iRP3/63LQV/Q==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/cordis-plugin-timer": "^1.1.4",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-loop": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-deepseek-llm-api-extensions": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-jobs-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm-deepseek": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm-retry": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sdk-app": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sdk-jsonrpc-server": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-log-deepseek": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-terminal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-terminal-bash": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-bash-persistent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-pwsh-persistent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-sdk-protocol": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-protocol/-/dsh-sdk-protocol-0.1.5-rc.2.tgz",
+      "integrity": "sha512-ewWYU+2tkcm5rTQtM5F6pYP5S6ox/7j/Gc/xCpXBtVOfUNchI8IUYbVNuea/lGX6XYGCBxpdG1jxV51W1YyWkg==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session/-/dsh-session-0.1.5-rc.2.tgz",
+      "integrity": "sha512-y+klWiGAWR4m4cc4ylurA0cW63673B4N8cr2ANMimweDZAfxL4XVBC7WiD/5DT2DtIhYmVZhz/niyS/WbniUTA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-checkpoint-policy": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-checkpoint-policy/-/dsh-session-checkpoint-policy-0.1.5-rc.2.tgz",
+      "integrity": "sha512-RDaGTq4c49nFfVNq0AiL71z07OhtxoxfXESWppyegxotcdZTpdJTk4wIUto56SuaXi+kNCAP2PEjHC+VM0Z30A==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-format": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format/-/dsh-session-format-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Bih+d4wQ8ea+sZ1+Hws+ZBG3XpExrSQAtNMJRueFVzfTALhbnzpS5uLYw9qDapdfYYyHURlotQPRImBEpIVGFQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-format-catalog": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-catalog/-/dsh-session-format-catalog-0.1.5-rc.2.tgz",
+      "integrity": "sha512-UKKVXS551VuTA5hH0cz9s9GjBb8HKdQcM+8Xa4uiviavTy4SOkVO3zmo2Wx43jzgdmChtNiUhc+w9RDOZLc7gQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-session-format": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format-v0-to-v1": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format-v1-to-v2": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format-v2-to-v3": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-format-v0-to-v1": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v0-to-v1/-/dsh-session-format-v0-to-v1-0.1.5-rc.2.tgz",
+      "integrity": "sha512-0ff7Rl5JsUHGv223XMRFv0adfy7nV2mUQSRf3N1MZviblnp2c65dArq+ieRGISw6JQL4FAz4LSt6A6zV/D6o0A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-session-format": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-format-v1-to-v2": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v1-to-v2/-/dsh-session-format-v1-to-v2-0.1.5-rc.2.tgz",
+      "integrity": "sha512-VI15vcRCFfzmPpUg+BXSqgB9Kd99sVVXbfxGXo/gYRgjCY3JqClRh1CYhj1BDUvL91l7LsLv9Oa63kYXXbCaIw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format-v0-to-v1": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-format-v2-to-v3": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v2-to-v3/-/dsh-session-format-v2-to-v3-0.1.5-rc.2.tgz",
+      "integrity": "sha512-BO9N4O3HhBrUhyO1ucuk1xa5r1+wYCUPnMTryIrasVnOHI3ndb9ITnPhTEc2m6OXJa3c+wuEWrxc7DJHM1Cx6g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-session-format": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format-v0-to-v1": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format-v1-to-v2": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-log-deepseek": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-log-deepseek/-/dsh-session-log-deepseek-0.1.5-rc.2.tgz",
+      "integrity": "sha512-d/PJ5/vsJcbv6ZOOD3pBXH58rBWhhSmWHlfLqH7wDq2wA25e1va290OVKv1wwR05/mZBBQZZXxc7qwT4xnsiyg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-deepseek-llm-api-extensions": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-log-export": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-log-export/-/dsh-session-log-export-0.1.5-rc.2.tgz",
+      "integrity": "sha512-eoJWiv/oZQA2S61PpDpkU6kovoN5rQ1ZvOmp3HfKLKqfWzi6La1YP5VyiXi/g0qFjZ3ttZC0N+ckmWjNcGUjzw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "fflate": "^0.8.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-persistence": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence/-/dsh-session-persistence-0.1.5-rc.2.tgz",
+      "integrity": "sha512-0nDeM+H+3YR0CH/IVlhjNL9bDx2G4QbliaLekVxY0jdZHM7RqdN/fWPKjeCKbXcRq6qdn9QcmvXU3uWZdErlIw==",
+      "license": "MIT",
+      "peer": true,
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-persistence-jsonl": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence-jsonl/-/dsh-session-persistence-jsonl-0.1.5-rc.2.tgz",
+      "integrity": "sha512-nkIXdb5oOV6a05Of+3Wywe3gEB77uQOH1U0M+/SRVziSLX4JkE+us7dbWczOOloZjuUsEV7Il8kZ3R9JLsGqjA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format-catalog": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-format-v2-to-v3": "^0.1.5-rc.2",
+        "@deepseek-ai/node-addon-system": "^0.1.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "koffi": "^3.1.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-projection": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection/-/dsh-session-projection-0.1.5-rc.2.tgz",
+      "integrity": "sha512-WMXGBdbxD1FO1Eu7Qs2FKDXq/kl+z+5b7zGLHdra66eEnShSnQmdF9bXSFQu1sJwba2yF7ueMcBJpWy76gtgQQ==",
+      "license": "MIT",
+      "dependencies": {
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-projection-cache": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection-cache/-/dsh-session-projection-cache-0.1.5-rc.2.tgz",
+      "integrity": "sha512-dS4GGlgZBBHv0U7C4+pQssApxao8Jbt3tMSGQeRU3xpmR5wP8PucR20wTiFThNrsUjdIs2Q/2IKw5bcnkaHwCw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-storage-domain": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-query": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-query/-/dsh-session-query-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Ntv/yYwhRhhXO3UkRKc1RIIk4RMLVR6jR8mdphRILEZoxPGjZxMJR95RuZg8TuLERbmGH8AkPAEKD6HWHqWh1g==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection-cache": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-todo": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-session-persistence": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-session-projection": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-session-projection-cache": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-query-sqlite": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-query-sqlite/-/dsh-session-query-sqlite-0.1.5-rc.2.tgz",
+      "integrity": "sha512-7xqyRvcaXfPzK6T96QFTdfEVbYIOz69qcghBoDMwSo66MQ+3DSdH3yTPlvrf3a8Nd9Jek375Upz1h12//FB5Ew==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-query": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-session-persistence": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-reference": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-reference/-/dsh-session-reference-0.1.5-rc.2.tgz",
+      "integrity": "sha512-SpkwyQp0o28bxc01xwid+s+nVCo1Xs8OGsOqyuPRky4WhZtbuI3HN0q/M7+8EcH+kN/SbUzrDD45Q4FAiiHzbQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-compaction": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-output-retention": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection-cache": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-query": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-spill": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-session-projection-cache": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-spill": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-stats": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-stats/-/dsh-session-stats-0.1.5-rc.2.tgz",
+      "integrity": "sha512-p0C+g31Xcq5w4FWxS+V2hMfLtb97sHpaHNTaAT1UeVTqpSVHt21qC0PnqfFfOe/OsVkMkWDKWDbLb1cA9SnQ5Q==",
+      "license": "MIT",
+      "dependencies": {
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-telemetry": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-telemetry/-/dsh-session-telemetry-0.1.5-rc.2.tgz",
+      "integrity": "sha512-HCTlVFiyWHNqewD1wLow3kf6dbDBU8GqjHlLO6Es9viYW4GCAALO8FXxdqbWMSLOkwMNMM5xqWrXedjfSmRehA==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-telemetry-otel": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-telemetry-otel/-/dsh-session-telemetry-otel-0.1.5-rc.2.tgz",
+      "integrity": "sha512-T2gH6xJ9NNTnEjQG3od1vVIieT3htMShlqTTfOzxIR8YoGf/92KpCq6xVtYx3URm6aJysRpIbtRmoYzVq8Ln7w==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "@opentelemetry/api": "^1.9.1",
+        "@opentelemetry/api-logs": "^0.220.0",
+        "@opentelemetry/exporter-logs-otlp-http": "^0.220.0",
+        "@opentelemetry/otlp-exporter-base": "^0.220.0",
+        "@opentelemetry/resources": "^2.9.0",
+        "@opentelemetry/sdk-logs": "^0.220.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-anonymous-user-id": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-command-feedback": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-message-feedback": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-telemetry": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-title": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-title/-/dsh-session-title-0.1.5-rc.2.tgz",
+      "integrity": "sha512-lQ1PzIdySxANbhVM9blxCSlqR0iF2GVCiE9R1Qm0VJJue/G9ZUasz+jGQJeAVZi7PHjVWCALljtqpcnaOZq+6g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-title-first-prompt-llm": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-title-first-prompt-llm/-/dsh-session-title-first-prompt-llm-0.1.5-rc.2.tgz",
+      "integrity": "sha512-D+eMbKUadK/9QTkk00TItqvE0ealZek8Tc17HJgdGP7Ya0pSYL3hI03q0U6m7SXJQAAFjENMof3xHS+HmyPhdQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title-llm": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-title-llm": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-title-llm/-/dsh-session-title-llm-0.1.5-rc.2.tgz",
+      "integrity": "sha512-IO80OEJ88AUX6S3c5hgjmrrOAgqvTwg9S/4o40H2btAFPCefj+ioHg9qa6KyMZaaZBe8dGjjdngpsaOvC/QPIQ==",
+      "license": "MIT",
+      "peer": true,
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-session-turn-outline": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-turn-outline/-/dsh-session-turn-outline-0.1.5-rc.2.tgz",
+      "integrity": "sha512-z3kVLSv/dqwtOM4ii8FfzmmLuEvp9NJORMvm2MQPkYzBxLrQvfxIRPm5Q6uqmTowFrEcYWu1bQCdg6EdnZJDgg==",
+      "license": "MIT",
+      "dependencies": {
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-settings": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-settings/-/dsh-settings-0.1.5-rc.2.tgz",
+      "integrity": "sha512-LI2Y6GkEs9ALMW+7S9jHPeEZDXHtG5X6cix1HdJ1rRxTEO5427QlYhMiz45rk7hqZ8ca2O4XFMW8IWXFZQLxmw==",
+      "license": "MIT",
+      "peer": true,
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-settings-file": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-settings-file/-/dsh-settings-file-0.1.5-rc.2.tgz",
+      "integrity": "sha512-5bdcCyDLMQyo4sm1g8l4mNjIrsyfn1mu3+9tvGYrDWIw0f1n1YEIWuHp2reyoZpRCMAco9S5N4mDoKF2mc9T/Q==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "chokidar": "^4.0.3",
+        "yaml": "^2.9.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-atomic-write": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-shell": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-shell/-/dsh-shell-0.1.5-rc.2.tgz",
+      "integrity": "sha512-BfmNN6X0NHN2XleW0fCbtFXedXEppeDQ2oa3WsOTuhvnBftl6QWMWWMM59weE4xXker5fzqOnoJdeBR8D9qR9Q==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-shell-env": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-shell-env/-/dsh-shell-env-0.1.5-rc.2.tgz",
+      "integrity": "sha512-fFSrfhxfvVYfDxsOuV0cjAeC/PWweW+86uOJWT+2paHXOSgM6MSDe3eTd5DHRDYnjb5XutTYu32pR49cVBHMug==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-skill": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill/-/dsh-skill-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Z1mouW3vTzmYk9OAGUp7S9oOB4k9+qr8BpD7KPAR0nAPX1XOxyKA7zQA/6P0tMS69/aS7UsyLZNz9+RG8ZZ8Wg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-skill-badge": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill-badge/-/dsh-skill-badge-0.1.5-rc.2.tgz",
+      "integrity": "sha512-piOjH/WNjv0If4P3IQLuAsOh0WWbmWBv/06IXd1x7emet/d62nnnAp2gl75pqpYDR6qyavvRLNCqhqBJIudKTw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-skill": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-skill-filesystem": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill-filesystem/-/dsh-skill-filesystem-0.1.5-rc.2.tgz",
+      "integrity": "sha512-lEZ9KojaIc24vKCa5mp8LBHUDoXpNRSR/vlMsWONc9Tc1wwfn9kEotIjj0HD4PjIRcnc+Lma1nk4G/oNED8A9Q==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "chokidar": "^5.0.0",
+        "yaml": "^2.4.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-skill": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-skill-filesystem/node_modules/chokidar": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
+      "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
+      "license": "MIT",
+      "dependencies": {
+        "readdirp": "^5.0.0"
+      },
+      "engines": {
+        "node": ">= 20.19.0"
+      },
+      "funding": {
+        "url": "https://paulmillr.com/funding/"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-skill-filesystem/node_modules/readdirp": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz",
+      "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 20.19.0"
+      },
+      "funding": {
+        "type": "individual",
+        "url": "https://paulmillr.com/funding/"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-spill": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-spill/-/dsh-spill-0.1.5-rc.2.tgz",
+      "integrity": "sha512-djiz5HH1xtuxiBAPT6ODlwEPUQz/SR/Q6SCUiEud7x90nmTsfLLxGUQmNETdiRC3juBLZeoDV1Xgmjf54P4y+A==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-spill-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-spill-local/-/dsh-spill-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-HrTEyP/KJh9YudGYmXBZvu54x022JWIlVX96d2UkHKICSB1NJy3AUIO0zyYCOk1PX+4iC77oD6zdOAyyxX21QA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-spill": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-spill-policy": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-spill-policy/-/dsh-spill-policy-0.1.5-rc.2.tgz",
+      "integrity": "sha512-XDtIEF7eeErjf0HS6ASkquXZIorv96+A3kuSZs9ZoWqI6eHVxUBrTebHhNc59P9Cp6LeumLUhPIb+SEP3ITgYA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-output-retention": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-spill": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-storage": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-storage/-/dsh-storage-0.1.5-rc.2.tgz",
+      "integrity": "sha512-mYt6+JSRxA5fSUcYnI3JFvYw9/TKUyykz5JWoZZ3MxWudItfhw+CV6T3kn3/bpTbWIQnGesSeY+0pJJVz0xBAA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-storage-domain": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-domain/-/dsh-storage-domain-0.1.5-rc.2.tgz",
+      "integrity": "sha512-NZ9U14kqcCnF4F+ynrTlBLb+S9FEOwSLkfdjDgdfrFdHh4c2WsRKWxyeYbL8AME1rB+XxLp4YQBx8LQ0Kiy62A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-storage": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-storage-json": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-json/-/dsh-storage-json-0.1.5-rc.2.tgz",
+      "integrity": "sha512-vIdKeI6BUQpqneD/+oTZ2YNotNSGXZX0VbFbhdvgMSgamOrExIjl4cRsEJttcNr8zSvB8PjmuX2wPFvkMoeAlQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-storage": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-subagent": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent/-/dsh-subagent-0.1.5-rc.2.tgz",
+      "integrity": "sha512-f2wbfB1M2P8RpcApp5eDpDQR4V5ElvEkeK6su7tor1U06uJadJ+JuIVXP3MrCnT7yjg/IM2tTacYFMOg62BOfg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-chunked-list": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-jobs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection-cache": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-query": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-approval": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-time": "^0.1.5-rc.2"
+      },
+      "peerDependenciesMeta": {
+        "@deepseek-ai/dsh-agent-presets": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-jobs": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-sandbox": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-sandbox-policy": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-session-persistence": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-session-projection": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-session-projection-cache": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-session-query": {
+          "optional": true
+        },
+        "@deepseek-ai/dsh-user-approval": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-subagent-fork-in-process": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent-fork-in-process/-/dsh-subagent-fork-in-process-0.1.5-rc.2.tgz",
+      "integrity": "sha512-9VHI9pA1FX7mEOUx8Iw7Q6Sqk76rJGsOCQ0jwsaE+7YvQxV8YhOFe9gBzkmk+ChRNag5ToBVLFuUFROpboo+Xw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent-in-process-driver": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-subagent-in-process-driver": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent-in-process-driver/-/dsh-subagent-in-process-driver-0.1.5-rc.2.tgz",
+      "integrity": "sha512-IBwRQHVX4hi3YO2vUYmTtDxKM2B0lIwAuiAG3hsvljmaF66z2snyLYezKszLZeTPphr2QHgt2CJNxNP1LlhUJg==",
+      "license": "MIT",
+      "peer": true,
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-subagent-spawn-in-process": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent-spawn-in-process/-/dsh-subagent-spawn-in-process-0.1.5-rc.2.tgz",
+      "integrity": "sha512-/FJxY+dBc8AVWFmSYcQPWapuTd3ATGQpAb9Z2cQEZjFRXy8ySuZnh2MrnAa/r00FX6Lz0G8BfvUurr4K+uKHSw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent-in-process-driver": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-subprocess": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subprocess/-/dsh-subprocess-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Bbxg5/dlbK09qNu4/BVuicUAYnC+b/YGhtkUBsxa9/+KRfvloeJcJ9Ug6dKAeJeluzEXnFIh08+MNweO7hn7ig==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-http-proxy": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-subprocess-local": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subprocess-local/-/dsh-subprocess-local-0.1.5-rc.2.tgz",
+      "integrity": "sha512-DmG3lcQlAh8bTKfeyYM44cfRyJktbLL8drXrVfOvGrFk0zSs5eTSLcfhIKLT3jFJ5CKFriHYZPLdRT6Alvyy4w==",
+      "hasInstallScript": true,
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-win32-process": "^0.1.5-rc.2",
+        "koffi": "^3.1.0",
+        "node-pty": "1.2.0-beta.15"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-subprocess": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-system-prompt": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-system-prompt/-/dsh-system-prompt-0.1.5-rc.2.tgz",
+      "integrity": "sha512-VtmZVKqBMJ7kzskHu0jY+Jth7jSuKMG8QB3MBPzJe9M0LL4YPMWsGKt9gGky9RXolk/ugAy4YZEv1gUqouVofA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-terminal": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-terminal/-/dsh-terminal-0.1.5-rc.2.tgz",
+      "integrity": "sha512-ALDjWfRMWvRmk/HfM7z5sXfQ1DSarJcjkzL8bT1KV01WlJB1KHVbXKlLI29tQH1Zu92uXk9g0JaFQKNycqT9yQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-terminal-bash": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-terminal-bash/-/dsh-terminal-bash-0.1.5-rc.2.tgz",
+      "integrity": "sha512-UJVx058VgMNjwptwlGPBsMCmAs/ljgQwW9RNDZCpxvKxtc6D4RqEm675/f4uMPnGEKhPCJFKCGZy3ltqHvUPdg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-pwsh-local": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "@xterm/headless": "^6.0.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-terminal": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-time-context": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-time-context/-/dsh-time-context-0.1.5-rc.2.tgz",
+      "integrity": "sha512-XClt8a3ijmELHrMuPG8F+P7uLbi+ZBcjulTdeMq7UB4yRSmTHNcQ1rJLyPjPajSDsR6F81x6z6xT842PC4u1kQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-timeout": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-timeout/-/dsh-timeout-0.1.5-rc.2.tgz",
+      "integrity": "sha512-FgfaAw8Zt5X4Y6Ljh833B8Hy7h96FeR+yjNKI3iSyZSqREqOBgvDGXFfQlSu6V3Buvw/cbI/CJUQJvfRBKXOiA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tmux-context": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tmux-context/-/dsh-tmux-context-0.1.5-rc.2.tgz",
+      "integrity": "sha512-gocDAjUDx80DkbS92/WZJqx+NJkTfuGnSBglDXdUZRFj5O38Ggl9ywSKxTISk/Yhj3SbjRab9UfNjBZ1M8Nlxg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-token-meter": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-token-meter/-/dsh-token-meter-0.1.5-rc.2.tgz",
+      "integrity": "sha512-GS13T/USWa8pFBsahLGQCTQ31ktIa5iBqUYyFFrDPKhvUZFk7dTgltqIo9BxpsU5op0Lwj1LFyCnhNnuYbzvaw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-compaction": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm-retry": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-ask-user": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-ask-user/-/dsh-tool-ask-user-0.1.5-rc.2.tgz",
+      "integrity": "sha512-M+ha4uty4SM/nEfkOeIMw7vxj3Ez6lZin6oQqgw5hWXNrmf5C9SfF8VH6KZYuPhsmxPiyTUr5SyULxgn2eTUGA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-questions": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-bash": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-bash/-/dsh-tool-bash-0.1.5-rc.2.tgz",
+      "integrity": "sha512-f4LmiZkZSfJfvBcEzV4q5J83VL79l/+ncLkwnJyHzsjvJbW5qFxzCy4p5FXfY/CflG0taG14/p42UJzb9qEhrQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-jobs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell-env": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-approval": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-bash-persistent": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-bash-persistent/-/dsh-tool-bash-persistent-0.1.5-rc.2.tgz",
+      "integrity": "sha512-OCfqQijK/eo+ILLatQntWnKJ7hFwUUOLpxdbkgmN8zjvD3o3LPRnnt9IerCid4YjGwc69jSTBX0Zk2jW2n/rhQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-terminal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-call-timeout-policy": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-call-timeout-policy/-/dsh-tool-call-timeout-policy-0.1.5-rc.2.tgz",
+      "integrity": "sha512-B8lBJ6FHT3eqfQupHANU6JGwSvqp4EGYSGgOiNh1EVwXNn5MeX1AztQO+sNqWl69nof9d7/7vxXmTeS7rmIFXw==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-cordis": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-cordis/-/dsh-tool-cordis-0.1.5-rc.2.tgz",
+      "integrity": "sha512-bm1p2cRmXvO5b4oj2YHvF6OFh8EcHJQREcD52SEkSWtdkeakHbwMEOeCLfSWSNMUiNeOa7tMutUQrepdCS37EA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-cordis-host-runner": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-fs": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-fs/-/dsh-tool-fs-0.1.5-rc.2.tgz",
+      "integrity": "sha512-/3AUx+V1UxVfl24fm10hwRbJnHwpBkRDHniOeocGknMvASheRiKnHpnnj9EszFRLYSpe2PRFSMuyuhXgYyd3MQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "diff": "^9.0.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-approval": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-fs-search": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-fs-search/-/dsh-tool-fs-search-0.1.5-rc.2.tgz",
+      "integrity": "sha512-B4UrzbrigYiD8IKweuVzOHHLrhKfBPWTxscPDy0WmaYJ+aYQ/qaix9RgxnmJRoF8aVo4lw/Fzlz6hq30ahwUIw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "@vscode/ripgrep": "^1.18.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-output-retention": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-spill": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-goal": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-goal/-/dsh-tool-goal-0.1.5-rc.2.tgz",
+      "integrity": "sha512-nZ0NkUxvtAsrPAd9NMXt+4kS7WPn8xIvXCwVunKfBwbrnGnFCNmIsTQoHF44J6q9VbMeSCN2eyj07w6ej3Hf+g==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-goal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-jobs": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-jobs/-/dsh-tool-jobs-0.1.5-rc.2.tgz",
+      "integrity": "sha512-v4y56H3FsVBF2jUJLGLHdPeKaKJxLT4Zx/oii45UmJv5t8Bp3uCTVUoq/mfSFVuFY66q6rHJwgIOKWc4ZO3ySw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-jobs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-output-retention": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-present": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-present/-/dsh-tool-present-0.1.5-rc.2.tgz",
+      "integrity": "sha512-WWxjEgh/nPsATfofNc0Qi+Eshy9LPNAYM+UWWisuKcT6smtv7+pR8Bk79RJu5BiFog8Nq17mwEh5XnFlDIg8FQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-pwsh": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-pwsh/-/dsh-tool-pwsh-0.1.5-rc.2.tgz",
+      "integrity": "sha512-rnHM3Jqlr7rthwfPYysXPq6zH+K8JTDqbE+xzjkbo1WIBKBZeSGr8kPjqdCZa7eUtWhmV/RFBP1qmBgDjEZaWg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-jobs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-shell-env": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-approval": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-pwsh-persistent": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-pwsh-persistent/-/dsh-tool-pwsh-persistent-0.1.5-rc.2.tgz",
+      "integrity": "sha512-NToI2tXkbAZS6Cxjnn7VjgCF7o68vMquvmpVh6RjTXAsawNY0TMmAVo67bREDw07+1j/bTq8EPywrJSmBbS2Fw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-terminal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-ralph": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-ralph/-/dsh-tool-ralph-0.1.5-rc.2.tgz",
+      "integrity": "sha512-qP7KoVUBPLvvPSiJBXJtQt6c5ChnJRs5ZJnW/VU2DbBjYn4lkN6BiSfpRsSfjRGKO9fmldn2BYR0OnSLXi57xw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-workflow": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-skill": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-skill/-/dsh-tool-skill-0.1.5-rc.2.tgz",
+      "integrity": "sha512-J0AshOq06tVWFbESolUP+9TEYXymASMULsWsqTBAgaIjzbZjhJ3x2CPMP54gM8uROh/y0qGBhVUErJeamP9AhQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-skill": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-str-replace-editor": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-str-replace-editor/-/dsh-tool-str-replace-editor-0.1.5-rc.2.tgz",
+      "integrity": "sha512-SqxB7jgmAURwttFMQ9CmM4l1n5pdMA1ofPOd0Fp2OqYRdo8C0NCO0YN06PtX3CvmjI6vjDUT3grXqETzhmN3gg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-fs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-subagent": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-subagent/-/dsh-tool-subagent-0.1.5-rc.2.tgz",
+      "integrity": "sha512-6H7iL1UMcPrQTZrmp/olatipQzg6z5b3xqqPpW26qhgX9tDttJJGAspObePM8Zj02EO9ibz7QLg/VIehPuu+sg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-jobs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-subagent-control": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-subagent-control/-/dsh-tool-subagent-control-0.1.5-rc.2.tgz",
+      "integrity": "sha512-kuSx9UGDBUSrffTPnNetKj7mUmH1+24BQT+589vaN5epO8GKZ1STzIR3IINn+kMP0t9MAGIhEsa39b30OQu9nA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-todo": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.1.5-rc.2.tgz",
+      "integrity": "sha512-TmyoAthal1pOCQ/XwlohcxDXdI5pq5GlZiQpLaI7e+rAruqneBPz/0Zjv6/rlOMrseoENMx+H0sazwoL9LufTQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-web": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-web/-/dsh-tool-web-0.1.5-rc.2.tgz",
+      "integrity": "sha512-FPHiDBHjyO/2ayVcUL8tmcBqc+Fi8Y0zcQuzsFw6/K8pOJvP/pBSN8mXi4tBVmmqXg25ZXVo1vDDo4T1mBIlFw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "@joplin/turndown-plugin-gfm": "^1.0.67",
+        "turndown": "^7.2.4"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-web": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tool-workflow": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-workflow/-/dsh-tool-workflow-0.1.5-rc.2.tgz",
+      "integrity": "sha512-co/4mEKOC5MYXM/x2sdTiIwPfUtK3Bhst7HMwmgcz3PNZG4DEkaqLlzsZyisLn4iQvKChtvdyS5fWwNeC8ws1w==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-workflow": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-tools": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tools/-/dsh-tools-0.1.5-rc.2.tgz",
+      "integrity": "sha512-k2yZuJJtszaU9lzr2aBtdeFMINrkdlk4ellbtrMokA2oySVqJmAM8dv+u9RtzduD3aRRqyr2i2hWrTACz0qOrA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-code-runtime": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-user-approval": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-typert-loader": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-loader/-/dsh-typert-loader-0.1.5-rc.2.tgz",
+      "integrity": "sha512-5kNw5jLJ1PBGqL9Ma/ym+Uz8pbFhMe2Ci0QypPtE71ViUC8K0usgypqmn3+2vXtBk5E5mI/n3UGu9gyTPdHIYA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
+        "@deepseek-ai/dsh-typert-registry": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-typert-protocol": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-protocol/-/dsh-typert-protocol-0.1.5-rc.2.tgz",
+      "integrity": "sha512-zP8J20rBXa1AFjKL2i83JBeQcePZx8yal3pNojj4t7CCokMcoFMUbr50woa6fY1tRJ7qHxgypO3rH8Q6YWgmiA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-typert-registry": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-registry/-/dsh-typert-registry-0.1.5-rc.2.tgz",
+      "integrity": "sha512-GBHGD8T4goY8kKA0U1jD2YRPAgkESdVuSNXn7KpYeb3SLtVntt2ND+FMSwNqcMN/zuBm9Yvo5x/nuK+yxFqvBw==",
+      "license": "MIT",
+      "dependencies": {
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-user-approval": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-user-approval/-/dsh-user-approval-0.1.5-rc.2.tgz",
+      "integrity": "sha512-8UpMEnEyMo6mYEVELBo0DC2iG7aJJfFMTNkU+DKD3c5Ut7ySRDzt1iRr1qni/CzqlTIpQBAkGaG77qk4q/v1bg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-user-questions": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-user-questions/-/dsh-user-questions-0.1.5-rc.2.tgz",
+      "integrity": "sha512-0cRRE9nc9pMxxyC8G8C3859EtPyZR/27FRgRMRe/wDWL30S6JoWWgaw7IFN9FogvaoEp62XV7wQ6ub/eoTqggg==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-scope": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-util-crypto": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-crypto/-/dsh-util-crypto-0.1.5-rc.2.tgz",
+      "integrity": "sha512-JR0aJEUL35RE8FVT89wMZMbPwMrbkjNcy+gE9pq70d/m2Zxw3a0iNer+BAxPAKYPbmy0xDDXReTwXiecKVy4sQ==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-util-time": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-time/-/dsh-util-time-0.1.5-rc.2.tgz",
+      "integrity": "sha512-nWJrNCaEBANFUX+Rp2cE1+hA2CGCmktXOo2Nsh524aV2VaLumFFS501IsmI9ghUmUE77qZxvayGGO7w3LLIECQ==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-util-values": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-values/-/dsh-util-values-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Cr0TkM6dFAD+Iy4sNXH/afJVMHwJXoOztivj+RflkYoACsOq+Ix0vdHn36hwW7mayU8OK3ZKIZUQ6BPo1fHvUg==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-util-workspace-path": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-workspace-path/-/dsh-util-workspace-path-0.1.5-rc.2.tgz",
+      "integrity": "sha512-RCBz+6BpdPDNsRk2ukIdIIuLdf6u+cS8sLiViFg/8/x/kxc+LEXRKJMy2xv+YA9hYOGFK109rjUFgx9JVtZf2w==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-web": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web/-/dsh-web-0.1.5-rc.2.tgz",
+      "integrity": "sha512-3qt/Fh+uCghOy2wZPjwQ6xIMU3t1NW4D5yRvTXOyvadwaDwosqXOzCteYUhnuWzWN66adrFLeRrymhSDS4PMeg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-web-app": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-app/-/dsh-web-app-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Ng7YVDt9txh2BlLmu6B+V677c1bihbh/rq3EOtZK4b0JWtgdNgYb1KPIED8+aK2i+FghrCrIy6X60AyJ45eOvw==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-agent-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-api-remotes": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-api-session-controller": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-api-settings-controller": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-api-workspace-controller": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-api-workspace-files": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-app-boot": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-connection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-file-upload": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-hmr": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-locale": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-modules": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-resources": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-approval": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-attachment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-brand-official": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-chat": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-commands": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-conversation": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-cordis": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-deliverables": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-directory-picker-browse": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-directory-picker-native": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-goal": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-input-trigger": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-jobs": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-layout": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-message-feedback": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-open-in-app": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-permission-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-plan": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-reference": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-schedule": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-settings-general": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-settings-models": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-sidebar": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-sidebar-files": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-sidebar-right": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-skill": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-theme": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-tool": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-trajectory": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-user-questions": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-workflow-run": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-client-ui-workspace": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-cmdline": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-code-runtime-worker-thread": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-cordis-client-runner": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-cordis-host-runner": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-file-reference": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-file-reference-local": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-directory-picker-auto": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-directory-picker-native": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-frontend-static": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-open-in-app": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-plugin-inventory": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-webserver": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-message-feedback": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-log-export": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-reference": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-stats": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-turn-outline": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subprocess": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tool-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-web-frontend": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-workspace": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "commander": "^15.0.0",
+        "open": "^11.0.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
+        "@deepseek-ai/dsh-shell-env": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-web-fetch-http": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-fetch-http/-/dsh-web-fetch-http-0.1.5-rc.2.tgz",
+      "integrity": "sha512-K3us2mU0L1sgnW4FFtDI6UYcL+JZvIbdRLEAO+8oq9lHAuwKuCcb4RPPuyXMI35ue97PkfBgt6A6Sl0utiIF3A==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "ipaddr.js": "^2.5.0",
+        "undici": "^8.10.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-http-proxy": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-timeout": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-web": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-web-frontend": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-frontend/-/dsh-web-frontend-0.1.5-rc.2.tgz",
+      "integrity": "sha512-o0+dEbtEzchPnNFkKQ4o3/OekEi+PG8CTEwp1eWWg15TRiZbG2OeUKMsQjPpAVCMDnpEwMQ9skdKcwKj4TXAzQ==",
+      "license": "MIT"
+    },
+    "node_modules/@deepseek-ai/dsh-web-search-deepseek": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-search-deepseek/-/dsh-web-search-deepseek-0.1.5-rc.2.tgz",
+      "integrity": "sha512-0r9KqkjnOd7VLwWEAYHOEGLctRwhGLOJ9xnnGuL3nd3uFcrA5Wb1MYbJhGKxx+9XRpTJZyi7Aiex9QRAr8c0Ag==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-credentials": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-web": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-webhook": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-webhook/-/dsh-webhook-0.1.5-rc.2.tgz",
+      "integrity": "sha512-Tv4aR5JYxq9ODe9lYoFaQWjFUf644tPaSVSgfBMPrynN9X94rcY7HAkYxt3qLggvK/cGrtNOFwyqyOIDTjqyJQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-default-model": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-agent-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-permission-presets": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-title": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-workspace": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-webhook-github": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-webhook-github/-/dsh-webhook-github-0.1.5-rc.2.tgz",
+      "integrity": "sha512-esocwn22CYbOAo7WzwWl/E3jsHKOAXFS5e1dnW9b5VNPujnbHdvhXyyNQzUW0nNnxt1QTsIARyhqpDKWuanCcA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2",
+        "@octokit/webhooks": "^14.2.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-credentials": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-host-webserver": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-webhook": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-win32-process": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-win32-process/-/dsh-win32-process-0.1.5-rc.2.tgz",
+      "integrity": "sha512-KWF9pldnznDE1XiD7vjxg+P2cDQHOCJtz8ZQ/P0bLorDog/peQwqxYNgc/nrHxEZ1vWl/vbdd8Nvoen6FJ/Orw==",
+      "license": "MIT",
+      "dependencies": {
+        "koffi": "^3.1.0"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-workflow": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workflow/-/dsh-workflow-0.1.5-rc.2.tgz",
+      "integrity": "sha512-eGOBiC4RA89zZTTG6hBpTchau55lZ67P/dyqg4kJq8K1FwummTg3xed4Ecy9KQFaSX8rWQP9RMJnaWg1fBgXTA==",
+      "license": "MIT",
+      "peer": true,
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-workflow-worker-thread": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workflow-worker-thread/-/dsh-workflow-worker-thread-0.1.5-rc.2.tgz",
+      "integrity": "sha512-y8twj+FNYoxaaLWYkr/tQauCHymlY3AUgS5lHEi4tZW1PgYD2mEz7VPHu1nUWX7W6m78gCQvg/6KcDCLrTgvcA==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
+        "@deepseek-ai/schemastery": "^3.18.2"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-workflow": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/dsh-workspace": {
+      "version": "0.1.5-rc.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workspace/-/dsh-workspace-0.1.5-rc.2.tgz",
+      "integrity": "sha512-J2RIjHk2RNTtQNZ1Dpy1ItdhOmXDsWXLvMNv/MMdvv3NzCjKMYQ8le18lpzboqAZY3I2cOfX0cxu6wHIC96SIg==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
+        "zod": "^4.4.3"
+      },
+      "peerDependencies": {
+        "@deepseek-ai/cordis": "^4.0.2",
+        "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-storage": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-storage-domain": "^0.1.5-rc.2",
+        "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2"
+      }
+    },
+    "node_modules/@deepseek-ai/node-addon-system": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system/-/node-addon-system-0.1.2.tgz",
+      "integrity": "sha512-EFn8K+mXIXiw6s3rxX+cgp2hZTEAQdVIsURhrXnBxycSXvtQ1EQpsSVzoNKtKAQI0I0VqkEcVEjHzS/PeaGsvw==",
+      "license": "BSD-3-Clause",
+      "engines": {
+        "node": ">=20"
+      },
+      "optionalDependencies": {
+        "@deepseek-ai/node-addon-system-darwin-arm64": "0.1.2",
+        "@deepseek-ai/node-addon-system-darwin-x64": "0.1.2",
+        "@deepseek-ai/node-addon-system-linux-arm64": "0.1.2",
+        "@deepseek-ai/node-addon-system-linux-x64": "0.1.2"
+      }
+    },
+    "node_modules/@deepseek-ai/node-addon-system-darwin-arm64": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-darwin-arm64/-/node-addon-system-darwin-arm64-0.1.2.tgz",
+      "integrity": "sha512-IR0cx8um19mLCZaJ+H5PLblKr6Eg3PWvVo8eTQBr/SwH2nh5tM9CD9/5fHweNS9Pjt15UdFlGqnvLSd/w+O6Rw==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "BSD-3-Clause",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/@deepseek-ai/node-addon-system-darwin-x64": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-darwin-x64/-/node-addon-system-darwin-x64-0.1.2.tgz",
+      "integrity": "sha512-XDbmquNapk9aT28y4EKn9lbONVr9YNs1NM/GKH1Gi5gUhjOT9wgRaTv72FJdNaVIInbPAYbPoyn7/y+MzQMNNg==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "BSD-3-Clause",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/@deepseek-ai/node-addon-system-linux-arm64": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-linux-arm64/-/node-addon-system-linux-arm64-0.1.2.tgz",
+      "integrity": "sha512-Z/DQtqgEYzjBzb2ocHGjMzx51W7xDILkJKKj89nyErr8gZMNiLs+JNL1uKzJqc3VLZB+vYCPaHGyQ3oX6EzEmA==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "BSD-3-Clause",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/@deepseek-ai/node-addon-system-linux-x64": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-linux-x64/-/node-addon-system-linux-x64-0.1.2.tgz",
+      "integrity": "sha512-S2aPVHvYCpNCppCFyNlooMYuTB7ucK5lvD9oXQQ42v5Z2s5AoaiCdjz9r2l+ED2rI5oS1x0cUZmKjJH2dxV0pg==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "BSD-3-Clause",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/@deepseek-ai/schemastery": {
+      "version": "3.18.2",
+      "resolved": "https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.2.tgz",
+      "integrity": "sha512-njDtZsznjYxok7KLLlHOPyuv2efdWVbSflAHgztSfbMsg+CVraEoRe2DjOCgClYv3ZCSm7WXoaUkbB/+RY7tWQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@deepseek-ai/cosmokit": "^1.8.3",
+        "@standard-schema/spec": "^1.1.0"
+      }
+    },
+    "node_modules/@earendil-works/pi-ai": {
+      "version": "0.85.1",
+      "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.85.1.tgz",
+      "integrity": "sha512-+VgVIJDkDO2efYJKEEqvPTH4zmnIaXdAppGbO+vKFA9qy5PdhFiAenuFAkU+oiCSfOC4dMHDyrjdQeL4ZoC5CQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@anthropic-ai/sdk": "0.123.0",
+        "@aws-sdk/client-bedrock-runtime": "3.1048.0",
+        "@earendil-works/pi-telemetry": "^0.85.1",
+        "@google/genai": "1.52.0",
+        "@smithy/node-http-handler": "4.7.3",
+        "http-proxy-agent": "7.0.2",
+        "https-proxy-agent": "7.0.6",
+        "openai": "6.40.0",
+        "partial-json": "0.1.7",
+        "typebox": "1.3.7"
+      },
+      "bin": {
+        "pi-ai": "dist/cli.js"
+      },
+      "engines": {
+        "node": ">=22.19.0"
+      }
+    },
+    "node_modules/@earendil-works/pi-telemetry": {
+      "version": "0.85.1",
+      "resolved": "https://registry.npmjs.org/@earendil-works/pi-telemetry/-/pi-telemetry-0.85.1.tgz",
+      "integrity": "sha512-Bg/YN6kA7Swja/NQxka8xFdecb4E/auIEGF2G5A25EaQXhRnPj300/7/KpgsDDMYUzHTDAv4RyUxaQPJKW81Rw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=22.19.0"
+      }
+    },
+    "node_modules/@emnapi/runtime": {
+      "version": "1.11.3",
+      "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz",
+      "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==",
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "tslib": "^2.4.0"
+      }
+    },
+    "node_modules/@google/genai": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmjs.org/@google/genai/-/genai-1.52.0.tgz",
+      "integrity": "sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==",
+      "hasInstallScript": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "google-auth-library": "^10.3.0",
+        "p-retry": "^4.6.2",
+        "protobufjs": "^7.5.4",
+        "ws": "^8.18.0"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      },
+      "peerDependencies": {
+        "@modelcontextprotocol/sdk": "^1.25.2"
+      },
+      "peerDependenciesMeta": {
+        "@modelcontextprotocol/sdk": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@hono/node-server": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.1.tgz",
+      "integrity": "sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=20"
+      },
+      "peerDependencies": {
+        "hono": "^4"
+      }
+    },
+    "node_modules/@img/colour": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
+      "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@img/sharp-darwin-arm64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz",
+      "integrity": "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-darwin-arm64": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-darwin-x64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz",
+      "integrity": "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-darwin-x64": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-freebsd-wasm32": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz",
+      "integrity": "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==",
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "dependencies": {
+        "@img/sharp-wasm32": "0.35.4"
+      },
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-darwin-arm64": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz",
+      "integrity": "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-darwin-x64": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz",
+      "integrity": "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-linux-arm": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz",
+      "integrity": "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==",
+      "cpu": [
+        "arm"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-linux-arm64": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz",
+      "integrity": "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==",
+      "cpu": [
+        "arm64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-linux-ppc64": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz",
+      "integrity": "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==",
+      "cpu": [
+        "ppc64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-linux-riscv64": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz",
+      "integrity": "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==",
+      "cpu": [
+        "riscv64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-linux-s390x": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz",
+      "integrity": "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==",
+      "cpu": [
+        "s390x"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-linux-x64": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz",
+      "integrity": "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==",
+      "cpu": [
+        "x64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz",
+      "integrity": "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==",
+      "cpu": [
+        "arm64"
+      ],
+      "libc": [
+        "musl"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-libvips-linuxmusl-x64": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz",
+      "integrity": "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==",
+      "cpu": [
+        "x64"
+      ],
+      "libc": [
+        "musl"
+      ],
+      "license": "LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-linux-arm": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz",
+      "integrity": "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==",
+      "cpu": [
+        "arm"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-linux-arm": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-linux-arm64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz",
+      "integrity": "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-linux-arm64": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-linux-ppc64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz",
+      "integrity": "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==",
+      "cpu": [
+        "ppc64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-linux-ppc64": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-linux-riscv64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz",
+      "integrity": "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==",
+      "cpu": [
+        "riscv64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-linux-riscv64": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-linux-s390x": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz",
+      "integrity": "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==",
+      "cpu": [
+        "s390x"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-linux-s390x": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-linux-x64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz",
+      "integrity": "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==",
+      "cpu": [
+        "x64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-linux-x64": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-linuxmusl-arm64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz",
+      "integrity": "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==",
+      "cpu": [
+        "arm64"
+      ],
+      "libc": [
+        "musl"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-linuxmusl-arm64": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-linuxmusl-x64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz",
+      "integrity": "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==",
+      "cpu": [
+        "x64"
+      ],
+      "libc": [
+        "musl"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-libvips-linuxmusl-x64": "1.3.3"
+      }
+    },
+    "node_modules/@img/sharp-wasm32": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz",
+      "integrity": "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==",
+      "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
+      "optional": true,
+      "dependencies": {
+        "@emnapi/runtime": "^1.11.3"
+      },
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-webcontainers-wasm32": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz",
+      "integrity": "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==",
+      "cpu": [
+        "wasm32"
+      ],
+      "license": "Apache-2.0",
+      "optional": true,
+      "dependencies": {
+        "@img/sharp-wasm32": "0.35.4"
+      },
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-win32-arm64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz",
+      "integrity": "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "Apache-2.0 AND LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-win32-ia32": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz",
+      "integrity": "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==",
+      "cpu": [
+        "ia32"
+      ],
+      "license": "Apache-2.0 AND LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": "^20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@img/sharp-win32-x64": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz",
+      "integrity": "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "Apache-2.0 AND LGPL-3.0-or-later",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      }
+    },
+    "node_modules/@joplin/turndown-plugin-gfm": {
+      "version": "1.0.68",
+      "resolved": "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.68.tgz",
+      "integrity": "sha512-m8DfAQNC/V7g0j5H6Jv60WhekBBjodD+zTPGrU+g2m+ux/z8ZX07KQIl6kaAmbKwfvsQhC04op52g63I78sVgg==",
+      "license": "MIT"
+    },
+    "node_modules/@koromix/koffi-android-arm64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-android-arm64/-/koffi-android-arm64-3.2.1.tgz",
+      "integrity": "sha512-1pJQ4jnZlUJduK9u9DC5CGy3aOgDUPvIXpNb6syV3+Dh5Q/ugezAIGCqvY+w+1mgXsve0pd0NVvJRjdZNHQ6MA==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-android-x64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-android-x64/-/koffi-android-x64-3.2.1.tgz",
+      "integrity": "sha512-HH40xGh3gVQifjOBnhwT2tECC0lL1lYe+nxHvWNSzxDIyQNcVPXg38ta7vuONRFpD+uIrw7fqGYLzbZIagkVcg==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-darwin-arm64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-darwin-arm64/-/koffi-darwin-arm64-3.2.1.tgz",
+      "integrity": "sha512-Vj4h+xcjc5+Cn0DhPHjgRX4omKAv96Kehtcd+1YgYuY2W7FvQn9vS+3SmzVwhC5Qmg9bIwUZObYQ8T/4hBqQqA==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-darwin-x64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-darwin-x64/-/koffi-darwin-x64-3.2.1.tgz",
+      "integrity": "sha512-gFCWxNBTZIvxo1p+PURWfsy2Ctj5FGnVVs1f03lTLhBvmxEto70pdIiFztdFLDFkAJ1pmtQmruRKapeK+E8YPA==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-freebsd-arm64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-freebsd-arm64/-/koffi-freebsd-arm64-3.2.1.tgz",
+      "integrity": "sha512-qj+f1s2e6vULaUG1cdlTcCXmunCq2t+rjxku1+esaMIqVnHpOwj0QzPuInG0AFdXjwBNQhyVR/HpDj8daEwwsQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-freebsd-ia32": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-freebsd-ia32/-/koffi-freebsd-ia32-3.2.1.tgz",
+      "integrity": "sha512-6olHb1Qfgai0jjs6ddlDDD0ZfsCxy7SPi8rMRpuYQWH0qhgtyQu82hw5b1p7z+TJ0zZP3ZeQQ6l+U/MlM1ICHQ==",
+      "cpu": [
+        "ia32"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-freebsd-x64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-freebsd-x64/-/koffi-freebsd-x64-3.2.1.tgz",
+      "integrity": "sha512-Dikhw1ySYNVMkmeFvFVjnU5Wdk6mffNoOjJxm9bTG96vg7OlemylxqdEven47R1YJ3yzNVJn/MlQ207ORWfi2w==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-linux-arm": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-arm/-/koffi-linux-arm-3.2.1.tgz",
+      "integrity": "sha512-OfwUwZylidq95wQKp6ClInULrfB2giu7dqM6Rhe0zAe6lES5I2SXNw15T9+GnRHk3/9hKT2XZ37OZLaKSyWNLA==",
+      "cpu": [
+        "arm"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-linux-arm64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-arm64/-/koffi-linux-arm64-3.2.1.tgz",
+      "integrity": "sha512-K+cGUL5iBcDqxmsocrjmlASqDf24gc7artbVW3PewG2c9AqwC63lezgwvB85Nx4lZAQjB6zIFHh9A7t1yGbwhw==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-linux-ia32": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-ia32/-/koffi-linux-ia32-3.2.1.tgz",
+      "integrity": "sha512-rxj6UYjU1qd98gxNQOSCdLpc5cPRi5Giq9rNd3jnGuSNIyMkwa6Dxw4cUjmhIBCYESMJtmNt5NWnJp5u9wTfYQ==",
+      "cpu": [
+        "ia32"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-linux-loong64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-loong64/-/koffi-linux-loong64-3.2.1.tgz",
+      "integrity": "sha512-aHhnHzkPRmT/IHDlGvESJ/Bs32m8N6UE6Ab6kMeJzgk74IN8af2m/81/wZJtybR1M2UxCV4NmlVNUYQQvSAO3Q==",
+      "cpu": [
+        "loong64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-linux-riscv64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-riscv64/-/koffi-linux-riscv64-3.2.1.tgz",
+      "integrity": "sha512-qtQBsjbm3LiirLJvajWmKkNb7ARk7fvJVXdftJ7NtAnF3Xw8EbDvrtvmvtNI1yLPlYcBmlzCCD71hwhWYk0SIA==",
+      "cpu": [
+        "riscv64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-linux-x64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-x64/-/koffi-linux-x64-3.2.1.tgz",
+      "integrity": "sha512-c7hw7Qs/r5gnFRTQLcbifBwRU7wiocj+2pVuDQ5Ahb3r36SZmupmgYbTWcLvTW+hul1jd7SKRV0d14ZJq/tvSw==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-openbsd-ia32": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-openbsd-ia32/-/koffi-openbsd-ia32-3.2.1.tgz",
+      "integrity": "sha512-mmY8fY8LQ/CB52+h3yrMYmVyoxzW3x08S0yI6VNfHWdfU6yJtZkKCbhjmQCYMrWbYKC4gMvwZwCywIGPAkLyeA==",
+      "cpu": [
+        "ia32"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "openbsd"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-openbsd-x64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-openbsd-x64/-/koffi-openbsd-x64-3.2.1.tgz",
+      "integrity": "sha512-k4ig6aAPbFSRATOIIOfdf/KtlOGH4SVls6L9fy0QnTxRJYvY2oSltTsQtBDANgEQldlq8Kl5WnpRa1VSibP4Lw==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "openbsd"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-win32-arm64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-win32-arm64/-/koffi-win32-arm64-3.2.1.tgz",
+      "integrity": "sha512-cTWBJGK//pDMeKQJE/79Aq9MiOAF4H8QyLZHSQ9IWm8czOfwjG4J1AhsQ9DjI9KFOykH77hhnpmQTGVMIubGig==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-win32-ia32": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-win32-ia32/-/koffi-win32-ia32-3.2.1.tgz",
+      "integrity": "sha512-Z50EM6TAZ7CFyMmyX6thv8eNpJchqe9eenhibSIy2Eq/FQYF76gU2VK/LEoaF46L8hfC7TpTp9b10MvReHEyFA==",
+      "cpu": [
+        "ia32"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@koromix/koffi-win32-x64": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@koromix/koffi-win32-x64/-/koffi-win32-x64-3.2.1.tgz",
+      "integrity": "sha512-ZmZNiBO6bkOSh3QNzgfvb1cMY0yMobn6ZQrSMqbAce21qyYL8niIbyipz9N/PIRDciGhsV0wUxnZsxIO+yWsHQ==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      }
+    },
+    "node_modules/@mixmark-io/domino": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz",
+      "integrity": "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==",
+      "license": "BSD-2-Clause"
+    },
+    "node_modules/@modelcontextprotocol/sdk": {
+      "version": "1.30.0",
+      "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz",
+      "integrity": "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==",
+      "license": "MIT",
+      "dependencies": {
+        "@hono/node-server": "^1.19.9 || ^2.0.5",
+        "ajv": "^8.17.1",
+        "ajv-formats": "^3.0.1",
+        "content-type": "^1.0.5",
+        "cors": "^2.8.5",
+        "cross-spawn": "^7.0.5",
+        "eventsource": "^3.0.2",
+        "eventsource-parser": "^3.0.0",
+        "express": "^5.2.1",
+        "express-rate-limit": "^8.2.1",
+        "hono": "^4.11.4",
+        "jose": "^6.1.3",
+        "json-schema-typed": "^8.0.2",
+        "pkce-challenge": "^5.0.0",
+        "raw-body": "^3.0.0",
+        "zod": "^3.25 || ^4.0",
+        "zod-to-json-schema": "^3.25.1"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@cfworker/json-schema": "^4.1.1",
+        "zod": "^3.25 || ^4.0"
+      },
+      "peerDependenciesMeta": {
+        "@cfworker/json-schema": {
+          "optional": true
+        },
+        "zod": {
+          "optional": false
+        }
+      }
+    },
+    "node_modules/@octokit/openapi-types": {
+      "version": "29.0.1",
+      "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-29.0.1.tgz",
+      "integrity": "sha512-9qWOMFNxxLokERcms42rU0PTLqQmVs7g5E41TI4mCOxmpFayD1rfC7XxOL55cG9MBZLFlC31BrR37myMKardwg==",
+      "license": "MIT"
+    },
+    "node_modules/@octokit/openapi-webhooks-types": {
+      "version": "12.1.0",
+      "resolved": "https://registry.npmjs.org/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-12.1.0.tgz",
+      "integrity": "sha512-WiuzhOsiOvb7W3Pvmhf8d2C6qaLHXrWiLBP4nJ/4kydu+wpagV5Fkz9RfQwV2afYzv3PB+3xYgp4mAdNGjDprA==",
+      "license": "MIT"
+    },
+    "node_modules/@octokit/request-error": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.1.2.tgz",
+      "integrity": "sha512-XZRuT3xZ84D3gYErI1DZvhJ33dCWVV6uzBtWkaBB4TvA/L6eOeTZodxLFVB44bBEEo3vEx7y00UfX1tBLrtLRg==",
+      "license": "MIT",
+      "dependencies": {
+        "@octokit/types": "^18.0.0"
+      },
+      "engines": {
+        "node": ">= 20"
+      }
+    },
+    "node_modules/@octokit/types": {
+      "version": "18.0.0",
+      "resolved": "https://registry.npmjs.org/@octokit/types/-/types-18.0.0.tgz",
+      "integrity": "sha512-l6bAF43PNxkJp6g+W4PjoUSSkxHomXw2nOum5CTftJz1NlV3vu93NImgOYtLf6CbBUb5j+fiuzW0PPQ5JTSvZA==",
+      "license": "MIT",
+      "dependencies": {
+        "@octokit/openapi-types": "^29.0.1"
+      }
+    },
+    "node_modules/@octokit/webhooks": {
+      "version": "14.2.0",
+      "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-14.2.0.tgz",
+      "integrity": "sha512-da6KbdNCV5sr1/txD896V+6W0iamFWrvVl8cHkBSPT+YlvmT3DwXa4jxZnQc+gnuTEqSWbBeoSZYTayXH9wXcw==",
+      "license": "MIT",
+      "dependencies": {
+        "@octokit/openapi-webhooks-types": "12.1.0",
+        "@octokit/request-error": "^7.0.0",
+        "@octokit/webhooks-methods": "^6.0.0"
+      },
+      "engines": {
+        "node": ">= 20"
+      }
+    },
+    "node_modules/@octokit/webhooks-methods": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-6.0.0.tgz",
+      "integrity": "sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 20"
+      }
+    },
+    "node_modules/@opentelemetry/api": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz",
+      "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==",
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
+    "node_modules/@opentelemetry/api-logs": {
+      "version": "0.220.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.220.0.tgz",
+      "integrity": "sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/api": "^1.3.0"
+      },
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
+    "node_modules/@opentelemetry/core": {
+      "version": "2.9.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.9.0.tgz",
+      "integrity": "sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/semantic-conventions": "^1.29.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.0.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/exporter-logs-otlp-http": {
+      "version": "0.220.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.220.0.tgz",
+      "integrity": "sha512-8186thl+pTw64iz/qEEen5oJZoZ/gO73XruChdaGlYdWOdBIQ42r+vHLf6a7vIDqTD4b8ZOoMlyxptanECaI9A==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/api-logs": "0.220.0",
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/otlp-exporter-base": "0.220.0",
+        "@opentelemetry/otlp-transformer": "0.220.0",
+        "@opentelemetry/sdk-logs": "0.220.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": "^1.3.0"
+      }
+    },
+    "node_modules/@opentelemetry/otlp-exporter-base": {
+      "version": "0.220.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.220.0.tgz",
+      "integrity": "sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/otlp-transformer": "0.220.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": "^1.3.0"
+      }
+    },
+    "node_modules/@opentelemetry/otlp-transformer": {
+      "version": "0.220.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.220.0.tgz",
+      "integrity": "sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/api-logs": "0.220.0",
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/resources": "2.9.0",
+        "@opentelemetry/sdk-logs": "0.220.0",
+        "@opentelemetry/sdk-metrics": "2.9.0",
+        "@opentelemetry/sdk-trace": "2.9.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": "^1.3.0"
+      }
+    },
+    "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": {
+      "version": "2.9.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz",
+      "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/semantic-conventions": "^1.29.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.3.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/resources": {
+      "version": "2.11.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.11.0.tgz",
+      "integrity": "sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/core": "2.11.0",
+        "@opentelemetry/semantic-conventions": "^1.29.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.3.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": {
+      "version": "2.11.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.11.0.tgz",
+      "integrity": "sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/semantic-conventions": "^1.29.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.0.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/sdk-logs": {
+      "version": "0.220.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.220.0.tgz",
+      "integrity": "sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/api-logs": "0.220.0",
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/resources": "2.9.0",
+        "@opentelemetry/semantic-conventions": "^1.29.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.4.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": {
+      "version": "2.9.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz",
+      "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/semantic-conventions": "^1.29.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.3.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/sdk-metrics": {
+      "version": "2.9.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-2.9.0.tgz",
+      "integrity": "sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/resources": "2.9.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.9.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": {
+      "version": "2.9.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz",
+      "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/semantic-conventions": "^1.29.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.3.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/sdk-trace": {
+      "version": "2.9.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace/-/sdk-trace-2.9.0.tgz",
+      "integrity": "sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/resources": "2.9.0",
+        "@opentelemetry/semantic-conventions": "^1.29.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.3.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/sdk-trace/node_modules/@opentelemetry/resources": {
+      "version": "2.9.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz",
+      "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@opentelemetry/core": "2.9.0",
+        "@opentelemetry/semantic-conventions": "^1.29.0"
+      },
+      "engines": {
+        "node": "^18.19.0 || >=20.6.0"
+      },
+      "peerDependencies": {
+        "@opentelemetry/api": ">=1.3.0 <1.10.0"
+      }
+    },
+    "node_modules/@opentelemetry/semantic-conventions": {
+      "version": "1.43.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz",
+      "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==",
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/@protobufjs/aspromise": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+      "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/base64": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+      "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/codegen": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz",
+      "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/eventemitter": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz",
+      "integrity": "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/fetch": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.1.tgz",
+      "integrity": "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==",
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "@protobufjs/aspromise": "^1.1.1"
+      }
+    },
+    "node_modules/@protobufjs/float": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+      "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/path": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+      "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/pool": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+      "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/utf8": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.2.tgz",
+      "integrity": "sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@smithy/core": {
+      "version": "3.34.1",
+      "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.34.1.tgz",
+      "integrity": "sha512-dLcOUxz8YCv1RZUMKq6GbyUf95pLbrqh34bPvpCZ1+CByFF31BEAFewZjsGCnVsZTKdThNENfGyAgk2TJqVwSw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/types": "^4.18.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@smithy/credential-provider-imds": {
+      "version": "4.5.2",
+      "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.5.2.tgz",
+      "integrity": "sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/core": "^3.33.2",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@smithy/fetch-http-handler": {
+      "version": "5.8.0",
+      "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.8.0.tgz",
+      "integrity": "sha512-ycSJu3tFAQ4v04CBB0agqFMVsSQ1iG3yw+SpgxRqKfaURpQD4CZ8Wn0zPMmSnOuTpTh65Vz+EA0rMrw089wvkA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.18.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@smithy/is-array-buffer": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+      "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/@smithy/node-http-handler": {
+      "version": "4.7.3",
+      "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.3.tgz",
+      "integrity": "sha512-/jPhevcTFPMVl6KNjbaI47iOg1zxC7IsnX4PQDGVZKMFceOXtB8IEYaB7a9VvkP/3oC60WzTeKocvSI7vLT0vA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/core": "^3.24.3",
+        "@smithy/types": "^4.14.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@smithy/signature-v4": {
+      "version": "5.7.3",
+      "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.7.3.tgz",
+      "integrity": "sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/core": "^3.33.3",
+        "@smithy/types": "^4.17.2",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@smithy/types": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.18.0.tgz",
+      "integrity": "sha512-CgB6HHWer/vrKps24ulRIbpcpb7K4xAU7SkZ7YHzBPlwHsvsrCJFEXK421s+cJzX+ZrqtA/TuU5w1HzI7k9N8A==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@smithy/util-buffer-from": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+      "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/is-array-buffer": "^2.2.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/@smithy/util-utf8": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+      "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/util-buffer-from": "^2.2.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/@stablelib/base64": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@stablelib/base64/-/base64-1.0.1.tgz",
+      "integrity": "sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==",
+      "license": "MIT"
+    },
+    "node_modules/@standard-schema/spec": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
+      "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
+      "license": "MIT"
+    },
+    "node_modules/@types/node": {
+      "version": "22.20.2",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.2.tgz",
+      "integrity": "sha512-xlvWf4Vs9n1PEVYwP1n4vvG07M6y8WgvJ2t0vbrWTmijsIHp1cS+uJ2kMIRdY3nHZK0nCYKrPeD171+SzF4/zw==",
+      "license": "MIT",
+      "dependencies": {
+        "undici-types": "~6.21.0"
+      }
+    },
+    "node_modules/@types/retry": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
+      "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
+      "license": "MIT"
+    },
+    "node_modules/@vscode/ripgrep": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep/-/ripgrep-1.18.0.tgz",
+      "integrity": "sha512-ns5lWe44tSfbTMbVUsyB+I1819PVSw4AdpgK0RNkzfWfwy6+3IUNSxwSrfTno1/oWaS/hERNz+XLWVyga2aJBQ==",
+      "license": "MIT",
+      "optionalDependencies": {
+        "@vscode/ripgrep-darwin-arm64": "1.18.0",
+        "@vscode/ripgrep-darwin-x64": "1.18.0",
+        "@vscode/ripgrep-linux-arm": "1.18.0",
+        "@vscode/ripgrep-linux-arm64": "1.18.0",
+        "@vscode/ripgrep-linux-ia32": "1.18.0",
+        "@vscode/ripgrep-linux-ppc64": "1.18.0",
+        "@vscode/ripgrep-linux-riscv64": "1.18.0",
+        "@vscode/ripgrep-linux-s390x": "1.18.0",
+        "@vscode/ripgrep-linux-x64": "1.18.0",
+        "@vscode/ripgrep-win32-arm64": "1.18.0",
+        "@vscode/ripgrep-win32-ia32": "1.18.0",
+        "@vscode/ripgrep-win32-x64": "1.18.0"
+      }
+    },
+    "node_modules/@vscode/ripgrep-darwin-arm64": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-darwin-arm64/-/ripgrep-darwin-arm64-1.18.0.tgz",
+      "integrity": "sha512-r3ktHSvbFycQNF6sl7sNDPocpsI7J+mEzh1IaZFkY0spm3k2Z9t8hPAeOK7+p0l6p6/swkQC14XWX01low+94Q==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-darwin-x64": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-darwin-x64/-/ripgrep-darwin-x64-1.18.0.tgz",
+      "integrity": "sha512-25b4gWbL138dGuQU244ebCKKc0q05ULBMoFSz9oAEUHNeqK/lOJViDS7DRvbDazzAzSEdan391Znks/R5mkaTQ==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-linux-arm": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-arm/-/ripgrep-linux-arm-1.18.0.tgz",
+      "integrity": "sha512-GDAvufNDHu8zqLEmXstalQF0Wh6wQvdsBi/Vg3Yi3CK4a8XoFXqqXVEHEZ9xQz3t0NfoSEc9JbvK9DDS6FxyxQ==",
+      "cpu": [
+        "arm"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-linux-arm64": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-arm64/-/ripgrep-linux-arm64-1.18.0.tgz",
+      "integrity": "sha512-lQ/5zTG++U0E3IhVgS4EPTTn/U4okncaRMM5GOFfOYZywS4nuD31GhkHbNYlDk5CuDC68+hYJ0/eQeyCKJDA+g==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-linux-ia32": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-ia32/-/ripgrep-linux-ia32-1.18.0.tgz",
+      "integrity": "sha512-YWLkSUtFd4Jh5EepIhA9RJSfv3uMAVMo+2rBIGHPBnvgLrZciIs2cDKei1/p6Wc/aCzUoHyMAg2R6tw4ZCBKGg==",
+      "cpu": [
+        "ia32"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-linux-ppc64": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-ppc64/-/ripgrep-linux-ppc64-1.18.0.tgz",
+      "integrity": "sha512-quXVY8fwQ8O/lvU1yrSqSl3jlUzysRSb+AfUfCL/tRtphxsKlFvPAejryZ6vg4Bgvn8XL74xb4qMCDmWgYrT5w==",
+      "cpu": [
+        "ppc64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-linux-riscv64": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-riscv64/-/ripgrep-linux-riscv64-1.18.0.tgz",
+      "integrity": "sha512-f5kBQBrWfQt8Q7OhSORuNDei5dkYagBj3y4jImSUXGMy8B/Ke7SltSRcUtjPv166FAFfHCAmWuZp3+cWnX2/Vw==",
+      "cpu": [
+        "riscv64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-linux-s390x": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-s390x/-/ripgrep-linux-s390x-1.18.0.tgz",
+      "integrity": "sha512-rTOcJFGGcl2c07RUOWUo4U1ndnemKhY6A9hnMB18uk7jSgJc0d/QLBGWMWpumdtoJtpizn/wIv5mXIisJukusQ==",
+      "cpu": [
+        "s390x"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-linux-x64": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-x64/-/ripgrep-linux-x64-1.18.0.tgz",
+      "integrity": "sha512-mQ3bVrUpnD2vs7QT0vX90Lt0cnUq467uFtEktIdsJJmW296RoSULRGqWgzG1AKxyBpNDD6l4ZO4qKf6SgyC23Q==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-win32-arm64": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-win32-arm64/-/ripgrep-win32-arm64-1.18.0.tgz",
+      "integrity": "sha512-vfTIjq1OHnzUjxZcHVQAMbnggp8dpGf+0QKFOZHwWPqFwXxQC8eCWM+5NUdoJ6yrElCeMzoUTXoK/LdZaniB+Q==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-win32-ia32": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-win32-ia32/-/ripgrep-win32-ia32-1.18.0.tgz",
+      "integrity": "sha512-//rfAE+BOw5AC2EMmepmiE36jUuevtQYNQqqlw1s3m9FlRxjxEut97RkRPHAu9BG4mSojatZx+kXZXNdyI9caQ==",
+      "cpu": [
+        "ia32"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@vscode/ripgrep-win32-x64": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/@vscode/ripgrep-win32-x64/-/ripgrep-win32-x64-1.18.0.tgz",
+      "integrity": "sha512-KNPvtElldqILHdnAetujPaowkNbpqJy3ssIGGN6F6Kve9Qi+nNLI2DN01O83JjCEVQbCzl8Ov3QZ9Eov3BR8Dg==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@xterm/headless": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/@xterm/headless/-/headless-6.0.0.tgz",
+      "integrity": "sha512-5Yj1QINYCyzrZtf8OFIHi47iQtI+0qYFPHmouEfG8dHNxbZ9Tb9YGSuLcsEwj9Z+OL75GJqPyJbyoFer80a2Hw==",
+      "license": "MIT",
+      "workspaces": [
+        "addons/*"
+      ]
+    },
+    "node_modules/accepts": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
+      "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
+      "license": "MIT",
+      "dependencies": {
+        "mime-types": "^3.0.0",
+        "negotiator": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/agent-base": {
+      "version": "7.1.4",
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+      "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/ajv": {
+      "version": "8.20.0",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
+      "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
+      "license": "MIT",
+      "dependencies": {
+        "fast-deep-equal": "^3.1.3",
+        "fast-uri": "^3.0.1",
+        "json-schema-traverse": "^1.0.0",
+        "require-from-string": "^2.0.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/ajv-formats": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
+      "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
+      "license": "MIT",
+      "dependencies": {
+        "ajv": "^8.0.0"
+      },
+      "peerDependencies": {
+        "ajv": "^8.0.0"
+      },
+      "peerDependenciesMeta": {
+        "ajv": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "license": "Python-2.0"
+    },
+    "node_modules/base64-js": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT"
+    },
+    "node_modules/bignumber.js": {
+      "version": "9.3.1",
+      "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
+      "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
+      "license": "MIT",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/body-parser": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz",
+      "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==",
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "^3.1.2",
+        "content-type": "^2.0.0",
+        "debug": "^4.4.3",
+        "http-errors": "^2.0.1",
+        "iconv-lite": "^0.7.2",
+        "on-finished": "^2.4.1",
+        "qs": "^6.15.2",
+        "raw-body": "^3.0.2",
+        "type-is": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/body-parser/node_modules/content-type": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz",
+      "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/body-parser/node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/body-parser/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "license": "MIT"
+    },
+    "node_modules/bowser": {
+      "version": "2.14.1",
+      "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz",
+      "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==",
+      "license": "MIT"
+    },
+    "node_modules/buffer-equal-constant-time": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+      "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/bundle-name": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
+      "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+      "license": "MIT",
+      "dependencies": {
+        "run-applescript": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/bytes": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+      "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/call-bind-apply-helpers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/call-bound": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+      "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.2",
+        "get-intrinsic": "^1.3.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/chokidar": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+      "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+      "license": "MIT",
+      "dependencies": {
+        "readdirp": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 14.16.0"
+      },
+      "funding": {
+        "url": "https://paulmillr.com/funding/"
+      }
+    },
+    "node_modules/commander": {
+      "version": "15.0.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz",
+      "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=22.12.0"
+      }
+    },
+    "node_modules/compressible": {
+      "version": "2.0.18",
+      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+      "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": ">= 1.43.0 < 2"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/compression": {
+      "version": "1.8.2",
+      "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.2.tgz",
+      "integrity": "sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==",
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "3.1.2",
+        "compressible": "~2.0.18",
+        "debug": "2.6.9",
+        "destroy": "1.2.0",
+        "negotiator": "~0.6.4",
+        "on-headers": "~1.1.0",
+        "safe-buffer": "5.2.1",
+        "vary": "~1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/compression/node_modules/negotiator": {
+      "version": "0.6.4",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+      "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/content-disposition": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",
+      "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/content-type": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+      "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/cookie": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+      "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/cookie-signature": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
+      "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.6.0"
+      }
+    },
+    "node_modules/cors": {
+      "version": "2.8.6",
+      "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
+      "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
+      "license": "MIT",
+      "dependencies": {
+        "object-assign": "^4",
+        "vary": "^1"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/cross-spawn": {
+      "version": "7.0.6",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+      "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+      "license": "MIT",
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/data-uri-to-buffer": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+      "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 12"
+      }
+    },
+    "node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/default-browser": {
+      "version": "5.5.1",
+      "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz",
+      "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==",
+      "license": "MIT",
+      "dependencies": {
+        "bundle-name": "^4.1.0",
+        "default-browser-id": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/default-browser-id": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
+      "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/define-lazy-prop": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+      "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/depd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+      "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/destroy": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+      "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8",
+        "npm": "1.2.8000 || >= 1.4.16"
+      }
+    },
+    "node_modules/detect-libc": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+      "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/diff": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz",
+      "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==",
+      "license": "BSD-3-Clause",
+      "engines": {
+        "node": ">=0.3.1"
+      }
+    },
+    "node_modules/dunder-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.2.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/ecdsa-sig-formatter": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+      "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "node_modules/ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+      "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+      "license": "MIT"
+    },
+    "node_modules/encodeurl": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+      "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/es-define-property": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-object-atoms": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz",
+      "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==",
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+      "license": "MIT"
+    },
+    "node_modules/etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+      "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/eventsource": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz",
+      "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==",
+      "license": "MIT",
+      "dependencies": {
+        "eventsource-parser": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/eventsource-parser": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz",
+      "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/express": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
+      "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
+      "license": "MIT",
+      "dependencies": {
+        "accepts": "^2.0.0",
+        "body-parser": "^2.2.1",
+        "content-disposition": "^1.0.0",
+        "content-type": "^1.0.5",
+        "cookie": "^0.7.1",
+        "cookie-signature": "^1.2.1",
+        "debug": "^4.4.0",
+        "depd": "^2.0.0",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "etag": "^1.8.1",
+        "finalhandler": "^2.1.0",
+        "fresh": "^2.0.0",
+        "http-errors": "^2.0.0",
+        "merge-descriptors": "^2.0.0",
+        "mime-types": "^3.0.0",
+        "on-finished": "^2.4.1",
+        "once": "^1.4.0",
+        "parseurl": "^1.3.3",
+        "proxy-addr": "^2.0.7",
+        "qs": "^6.14.0",
+        "range-parser": "^1.2.1",
+        "router": "^2.2.0",
+        "send": "^1.1.0",
+        "serve-static": "^2.2.0",
+        "statuses": "^2.0.1",
+        "type-is": "^2.0.1",
+        "vary": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/express-rate-limit": {
+      "version": "8.7.0",
+      "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.7.0.tgz",
+      "integrity": "sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.3",
+        "ip-address": "^10.2.0"
+      },
+      "engines": {
+        "node": ">= 16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/express-rate-limit"
+      },
+      "peerDependencies": {
+        "express": ">= 4.11"
+      }
+    },
+    "node_modules/express-rate-limit/node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/express-rate-limit/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "license": "MIT"
+    },
+    "node_modules/express/node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/express/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "license": "MIT"
+    },
+    "node_modules/extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+      "license": "MIT"
+    },
+    "node_modules/fast-deep-equal": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+      "license": "MIT"
+    },
+    "node_modules/fast-sha256": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/fast-sha256/-/fast-sha256-1.3.0.tgz",
+      "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==",
+      "license": "Unlicense"
+    },
+    "node_modules/fast-uri": {
+      "version": "3.1.7",
+      "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz",
+      "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/fastify"
+        },
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/fastify"
+        }
+      ],
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/fetch-blob": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+      "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/jimmywarting"
+        },
+        {
+          "type": "paypal",
+          "url": "https://paypal.me/jimmywarting"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "node-domexception": "^1.0.0",
+        "web-streams-polyfill": "^3.0.3"
+      },
+      "engines": {
+        "node": "^12.20 || >= 14.13"
+      }
+    },
+    "node_modules/fflate": {
+      "version": "0.8.3",
+      "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz",
+      "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==",
+      "license": "MIT"
+    },
+    "node_modules/finalhandler": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
+      "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.0",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "on-finished": "^2.4.1",
+        "parseurl": "^1.3.3",
+        "statuses": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/finalhandler/node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/finalhandler/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "license": "MIT"
+    },
+    "node_modules/formdata-polyfill": {
+      "version": "4.0.10",
+      "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+      "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+      "license": "MIT",
+      "dependencies": {
+        "fetch-blob": "^3.1.2"
+      },
+      "engines": {
+        "node": ">=12.20.0"
+      }
+    },
+    "node_modules/forwarded": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+      "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/fresh": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
+      "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/gaxios": {
+      "version": "7.3.1",
+      "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.3.1.tgz",
+      "integrity": "sha512-kB3rzJV7d9juLZh8/56QTXCwQfxyhdOMdyYk1HdQKFtF8TJTDTZQJtixWIwXdE9Jji91mC41DUNpjleo4L4eAQ==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "extend": "^3.0.2",
+        "https-proxy-agent": "^7.0.1",
+        "node-fetch": "^3.3.2"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/gcp-metadata": {
+      "version": "8.1.2",
+      "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz",
+      "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "gaxios": "^7.0.0",
+        "google-logging-utils": "^1.0.0",
+        "json-bigint": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/get-intrinsic": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.2",
+        "es-define-property": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.1.1",
+        "function-bind": "^1.1.2",
+        "get-proto": "^1.0.1",
+        "gopd": "^1.2.0",
+        "has-symbols": "^1.1.0",
+        "hasown": "^2.0.2",
+        "math-intrinsics": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+      "license": "MIT",
+      "dependencies": {
+        "dunder-proto": "^1.0.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/google-auth-library": {
+      "version": "10.9.1",
+      "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.9.1.tgz",
+      "integrity": "sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "base64-js": "^1.3.0",
+        "ecdsa-sig-formatter": "^1.0.11",
+        "gaxios": "^7.1.4",
+        "gcp-metadata": "8.1.2",
+        "google-logging-utils": "1.1.3",
+        "jws": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/google-logging-utils": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz",
+      "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==",
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/gopd": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/hasown": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
+      "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
+      "license": "MIT",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/hono": {
+      "version": "4.13.7",
+      "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.7.tgz",
+      "integrity": "sha512-c8/gF9ac8Y78/agExVocyLevgR+JlpNB444Py0FSX8pJoPdYUfUzRcXtYEYGwt6l19qIlVZPN5Mfsw9jFShmQQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=16.9.0"
+      }
+    },
+    "node_modules/http-errors": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+      "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+      "license": "MIT",
+      "dependencies": {
+        "depd": "~2.0.0",
+        "inherits": "~2.0.4",
+        "setprototypeof": "~1.2.0",
+        "statuses": "~2.0.2",
+        "toidentifier": "~1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/http-proxy-agent": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+      "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+      "license": "MIT",
+      "dependencies": {
+        "agent-base": "^7.1.0",
+        "debug": "^4.3.4"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/http-proxy-agent/node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/http-proxy-agent/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "license": "MIT"
+    },
+    "node_modules/https-proxy-agent": {
+      "version": "7.0.6",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+      "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+      "license": "MIT",
+      "dependencies": {
+        "agent-base": "^7.1.2",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/https-proxy-agent/node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/https-proxy-agent/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "license": "MIT"
+    },
+    "node_modules/iconv-lite": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz",
+      "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==",
+      "license": "MIT",
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "license": "ISC"
+    },
+    "node_modules/ip-address": {
+      "version": "10.7.0",
+      "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.0.tgz",
+      "integrity": "sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 12"
+      }
+    },
+    "node_modules/ipaddr.js": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz",
+      "integrity": "sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/is-docker": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+      "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+      "license": "MIT",
+      "bin": {
+        "is-docker": "cli.js"
+      },
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-in-ssh": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz",
+      "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=20"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-inside-container": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+      "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+      "license": "MIT",
+      "dependencies": {
+        "is-docker": "^3.0.0"
+      },
+      "bin": {
+        "is-inside-container": "cli.js"
+      },
+      "engines": {
+        "node": ">=14.16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-promise": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+      "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
+      "license": "MIT"
+    },
+    "node_modules/is-wsl": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
+      "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
+      "license": "MIT",
+      "dependencies": {
+        "is-inside-container": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+      "license": "ISC"
+    },
+    "node_modules/jose": {
+      "version": "6.2.12",
+      "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.12.tgz",
+      "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==",
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/panva"
+      }
+    },
+    "node_modules/js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+      "license": "MIT"
+    },
+    "node_modules/js-yaml": {
+      "version": "4.3.2",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz",
+      "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/puzrin"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/nodeca"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/json-bigint": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
+      "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
+      "license": "MIT",
+      "dependencies": {
+        "bignumber.js": "^9.0.0"
+      }
+    },
+    "node_modules/json-schema-to-ts": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-3.1.1.tgz",
+      "integrity": "sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==",
+      "license": "MIT",
+      "dependencies": {
+        "@babel/runtime": "^7.18.3",
+        "ts-algebra": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/json-schema-traverse": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+      "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+      "license": "MIT"
+    },
+    "node_modules/json-schema-typed": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz",
+      "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==",
+      "license": "BSD-2-Clause"
+    },
+    "node_modules/jwa": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
+      "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
+      "license": "MIT",
+      "dependencies": {
+        "buffer-equal-constant-time": "^1.0.1",
+        "ecdsa-sig-formatter": "1.0.11",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "node_modules/jws": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
+      "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
+      "license": "MIT",
+      "dependencies": {
+        "jwa": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "node_modules/koffi": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/koffi/-/koffi-3.2.1.tgz",
+      "integrity": "sha512-0qE3lZ8jllRqPN4Ob6Ajl7c2bJSJDhQWuKLGP5hIEpHLllJWv1ydHFMhHmHc5p/W9GticKVDbYzZd7TBoQ4CZg==",
+      "hasInstallScript": true,
+      "license": "MIT",
+      "funding": {
+        "url": "https://liberapay.com/Koromix"
+      },
+      "optionalDependencies": {
+        "@koromix/koffi-android-arm64": "3.2.1",
+        "@koromix/koffi-android-x64": "3.2.1",
+        "@koromix/koffi-darwin-arm64": "3.2.1",
+        "@koromix/koffi-darwin-x64": "3.2.1",
+        "@koromix/koffi-freebsd-arm64": "3.2.1",
+        "@koromix/koffi-freebsd-ia32": "3.2.1",
+        "@koromix/koffi-freebsd-x64": "3.2.1",
+        "@koromix/koffi-linux-arm": "3.2.1",
+        "@koromix/koffi-linux-arm64": "3.2.1",
+        "@koromix/koffi-linux-ia32": "3.2.1",
+        "@koromix/koffi-linux-loong64": "3.2.1",
+        "@koromix/koffi-linux-riscv64": "3.2.1",
+        "@koromix/koffi-linux-x64": "3.2.1",
+        "@koromix/koffi-openbsd-ia32": "3.2.1",
+        "@koromix/koffi-openbsd-x64": "3.2.1",
+        "@koromix/koffi-win32-arm64": "3.2.1",
+        "@koromix/koffi-win32-ia32": "3.2.1",
+        "@koromix/koffi-win32-x64": "3.2.1"
+      }
+    },
+    "node_modules/long": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
+      "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
+      "license": "Apache-2.0"
+    },
+    "node_modules/math-intrinsics": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/media-typer": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz",
+      "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/merge-descriptors": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
+      "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/mime-db": {
+      "version": "1.54.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+      "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mime-types": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+      "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "^1.54.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "license": "MIT"
+    },
+    "node_modules/negotiator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz",
+      "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==",
+      "license": "MIT",
+      "dependencies": {
+        "content-type": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/negotiator/node_modules/content-type": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz",
+      "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/node-addon-api": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+      "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+      "license": "MIT"
+    },
+    "node_modules/node-addon-native-custom-loader": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/node-addon-native-custom-loader/-/node-addon-native-custom-loader-0.1.5.tgz",
+      "integrity": "sha512-rL0XXRytayIChYf1xaG9/1NzGBRTyFkQTIpn+MDz/hpr0PZw1a9PZIoH9HlYfagNawhXU+jfN650EvoSIvR7Vw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/node-addon-require-builtin": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/node-addon-require-builtin/-/node-addon-require-builtin-0.1.5.tgz",
+      "integrity": "sha512-isaquiStlp7qdFpaffy+2ssJPUR/kLPRE5gqfeWbb0Ahph9H7O3BOFwThqkVaTrxfpnjrQauxlOEgvzD+snhUg==",
+      "license": "MIT",
+      "dependencies": {
+        "node-addon-native-custom-loader": "0.1.5"
+      },
+      "engines": {
+        "node": ">=20"
+      },
+      "optionalDependencies": {
+        "node-addon-require-builtin-darwin-arm64": "0.1.5",
+        "node-addon-require-builtin-darwin-x64": "0.1.5",
+        "node-addon-require-builtin-linux-arm64-gnu": "0.1.5",
+        "node-addon-require-builtin-linux-x64-gnu": "0.1.5",
+        "node-addon-require-builtin-win32-arm64-msvc": "0.1.5",
+        "node-addon-require-builtin-win32-ia32-msvc": "0.1.5",
+        "node-addon-require-builtin-win32-x64-msvc": "0.1.5"
+      }
+    },
+    "node_modules/node-addon-require-builtin-darwin-arm64": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/node-addon-require-builtin-darwin-arm64/-/node-addon-require-builtin-darwin-arm64-0.1.5.tgz",
+      "integrity": "sha512-MZ5RyGhuU7DTbwuNpOQW81/ep8n5Yd5YlZa6dWiEfJEh+01Dl4cCKGmMCWNgb0VtqAImRtAOtmZIPtwngiemKQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "dependencies": {
+        "node-addon-native-custom-loader": "0.1.5"
+      },
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/node-addon-require-builtin-darwin-x64": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/node-addon-require-builtin-darwin-x64/-/node-addon-require-builtin-darwin-x64-0.1.5.tgz",
+      "integrity": "sha512-wdCSPn49AdNZ2EXHQqswiXk1cROFe9zSRaAX8PwQLxmjdLt+xZF7vZP6VlqgXm+VAOHv98q8kp9m7mO9jY3OgQ==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "dependencies": {
+        "node-addon-native-custom-loader": "0.1.5"
+      },
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/node-addon-require-builtin-linux-arm64-gnu": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/node-addon-require-builtin-linux-arm64-gnu/-/node-addon-require-builtin-linux-arm64-gnu-0.1.5.tgz",
+      "integrity": "sha512-hCqzKpQiknDDv6rUdZqrxCBXROg/uUruO0geUuZsdM9M/Lds45gSb4bDE958HlPaCvrDyR0wTHl3II8A7yQeew==",
+      "cpu": [
+        "arm64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "dependencies": {
+        "node-addon-native-custom-loader": "0.1.5"
+      },
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/node-addon-require-builtin-linux-x64-gnu": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/node-addon-require-builtin-linux-x64-gnu/-/node-addon-require-builtin-linux-x64-gnu-0.1.5.tgz",
+      "integrity": "sha512-lgP+ruwWXbcXDslhp5uIc+dFgzITEGPZ4E50WdHGt/OzcoVhN6y5z72pRRvxy8DE661//QxqmCLe72rS3SVg+w==",
+      "cpu": [
+        "x64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "dependencies": {
+        "node-addon-native-custom-loader": "0.1.5"
+      },
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/node-addon-require-builtin-win32-arm64-msvc": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/node-addon-require-builtin-win32-arm64-msvc/-/node-addon-require-builtin-win32-arm64-msvc-0.1.5.tgz",
+      "integrity": "sha512-KEO2eWS4lvZg6JmPPz04OdI4Ojrc7YzOs++4r6VnvwsqYN2r6mjGSGpouQkk8J2eLXBzC7X/D9wYTbUuQS8u1Q==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "dependencies": {
+        "node-addon-native-custom-loader": "0.1.5"
+      },
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/node-addon-require-builtin-win32-ia32-msvc": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/node-addon-require-builtin-win32-ia32-msvc/-/node-addon-require-builtin-win32-ia32-msvc-0.1.5.tgz",
+      "integrity": "sha512-iSC988EqZm5XbKWp/giW6K6EBRTrHt/YQbAkKsZLglt7PplmvvrZ7C3tUsyh1wVxUTYAaxFdE2xbqSdpw0rb6g==",
+      "cpu": [
+        "ia32"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "dependencies": {
+        "node-addon-native-custom-loader": "0.1.5"
+      },
+      "engines": {
+        "node": ">=20 <23"
+      }
+    },
+    "node_modules/node-addon-require-builtin-win32-x64-msvc": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/node-addon-require-builtin-win32-x64-msvc/-/node-addon-require-builtin-win32-x64-msvc-0.1.5.tgz",
+      "integrity": "sha512-pjuco/ESU3ChIp7WwacWfY2ENu2K5rGAgqjcXedoiFcTrjTf5Ln/miKSuNfE6IiuJ7tfMTJH6VH5hq+C1Y8JMQ==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "dependencies": {
+        "node-addon-native-custom-loader": "0.1.5"
+      },
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/node-domexception": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+      "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+      "deprecated": "Use your platform's native DOMException instead",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/jimmywarting"
+        },
+        {
+          "type": "github",
+          "url": "https://paypal.me/jimmywarting"
+        }
+      ],
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.5.0"
+      }
+    },
+    "node_modules/node-fetch": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
+      "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
+      "license": "MIT",
+      "dependencies": {
+        "data-uri-to-buffer": "^4.0.0",
+        "fetch-blob": "^3.1.4",
+        "formdata-polyfill": "^4.0.10"
+      },
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/node-fetch"
+      }
+    },
+    "node_modules/node-pty": {
+      "version": "1.2.0-beta.15",
+      "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.2.0-beta.15.tgz",
+      "integrity": "sha512-vORSzHXi4Ofl7HemVWpuudLqCPdaQb4LfpRCUpE5HPxhp4JYscl8zZwxh11p26v2wvW24WMwnMfLjhRLixrfxA==",
+      "hasInstallScript": true,
+      "license": "MIT",
+      "dependencies": {
+        "node-addon-api": "^7.1.0"
+      }
+    },
+    "node_modules/object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-inspect": {
+      "version": "1.13.4",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+      "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/on-finished": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+      "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+      "license": "MIT",
+      "dependencies": {
+        "ee-first": "1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/on-headers": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
+      "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "license": "ISC",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/open": {
+      "version": "11.0.3",
+      "resolved": "https://registry.npmjs.org/open/-/open-11.0.3.tgz",
+      "integrity": "sha512-b3souUgU0VaAvMmzA4+9cRgrOgMdE0vc9H9VhQ0FYnjjcyZ8R/f9DiwMU9V8rl+vjf05On9UJhbgb06fsTs87Q==",
+      "license": "MIT",
+      "dependencies": {
+        "default-browser": "^5.5.1",
+        "define-lazy-prop": "^3.0.0",
+        "is-in-ssh": "^1.0.0",
+        "is-inside-container": "^1.0.0",
+        "powershell-utils": "^0.2.1",
+        "wsl-utils": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=20"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/openai": {
+      "version": "6.40.0",
+      "resolved": "https://registry.npmjs.org/openai/-/openai-6.40.0.tgz",
+      "integrity": "sha512-MWtTjd/gQt4jpbji61NTgFWJLoY/PdRJ6wG9/ZDRMYNMlBKrCrSlkLI+KgHP1vR1qT6LKSAyAqIxno6lcK9JiA==",
+      "license": "Apache-2.0",
+      "peerDependencies": {
+        "ws": "^8.18.0",
+        "zod": "^3.25 || ^4.0"
+      },
+      "peerDependenciesMeta": {
+        "ws": {
+          "optional": true
+        },
+        "zod": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/p-retry": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
+      "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@types/retry": "0.12.0",
+        "retry": "^0.13.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/parseurl": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/partial-json": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/partial-json/-/partial-json-0.1.7.tgz",
+      "integrity": "sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==",
+      "license": "MIT"
+    },
+    "node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-to-regexp": {
+      "version": "8.4.2",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz",
+      "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==",
+      "license": "MIT",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/picocolors": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+      "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+      "license": "ISC"
+    },
+    "node_modules/picomatch": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
+      "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/pkce-challenge": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz",
+      "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=16.20.0"
+      }
+    },
+    "node_modules/powershell-utils": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.1.tgz",
+      "integrity": "sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=20"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/protobufjs": {
+      "version": "7.6.6",
+      "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.6.6.tgz",
+      "integrity": "sha512-dYDWdjSl5RNb7SgPxGQcRU+GtvP7s2fpkrY0r432PcOIaZ0/rBcxEZnQN67iJhFuQiVw754JDoPruPCNdGsbjg==",
+      "hasInstallScript": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "@protobufjs/aspromise": "^1.1.2",
+        "@protobufjs/base64": "^1.1.2",
+        "@protobufjs/codegen": "^2.0.5",
+        "@protobufjs/eventemitter": "^1.1.1",
+        "@protobufjs/fetch": "^1.1.1",
+        "@protobufjs/float": "^1.0.2",
+        "@protobufjs/path": "^1.1.2",
+        "@protobufjs/pool": "^1.1.0",
+        "@protobufjs/utf8": "^1.1.1",
+        "@types/node": ">=13.7.0",
+        "long": "^5.3.2"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      }
+    },
+    "node_modules/proxy-addr": {
+      "version": "2.0.7",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+      "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+      "license": "MIT",
+      "dependencies": {
+        "forwarded": "0.2.0",
+        "ipaddr.js": "1.9.1"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/proxy-addr/node_modules/ipaddr.js": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/qs": {
+      "version": "6.16.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz",
+      "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==",
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "es-define-property": "^1.0.1",
+        "side-channel": "^1.1.1"
+      },
+      "engines": {
+        "node": ">=0.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/range-parser": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz",
+      "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/raw-body": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
+      "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "~3.1.2",
+        "http-errors": "~2.0.1",
+        "iconv-lite": "~0.7.0",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/readdirp": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+      "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 14.18.0"
+      },
+      "funding": {
+        "type": "individual",
+        "url": "https://paulmillr.com/funding/"
+      }
+    },
+    "node_modules/require-from-string": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+      "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/resolve.exports": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
+      "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/retry": {
+      "version": "0.13.1",
+      "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
+      "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/router": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
+      "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.0",
+        "depd": "^2.0.0",
+        "is-promise": "^4.0.0",
+        "parseurl": "^1.3.3",
+        "path-to-regexp": "^8.0.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
+    "node_modules/router/node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/router/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "license": "MIT"
+    },
+    "node_modules/run-applescript": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
+      "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT"
+    },
+    "node_modules/safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+      "license": "MIT"
+    },
+    "node_modules/semver": {
+      "version": "7.8.5",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
+      "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/send": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
+      "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.3",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "etag": "^1.8.1",
+        "fresh": "^2.0.0",
+        "http-errors": "^2.0.1",
+        "mime-types": "^3.0.2",
+        "ms": "^2.1.3",
+        "on-finished": "^2.4.1",
+        "range-parser": "^1.2.1",
+        "statuses": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/send/node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/send/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "license": "MIT"
+    },
+    "node_modules/serve-static": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
+      "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
+      "license": "MIT",
+      "dependencies": {
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "parseurl": "^1.3.3",
+        "send": "^1.2.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/setprototypeof": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+      "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+      "license": "ISC"
+    },
+    "node_modules/sharp": {
+      "version": "0.35.4",
+      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz",
+      "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@img/colour": "^1.1.0",
+        "detect-libc": "^2.1.2",
+        "semver": "^7.8.5"
+      },
+      "engines": {
+        "node": ">=20.9.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/libvips"
+      },
+      "optionalDependencies": {
+        "@img/sharp-darwin-arm64": "0.35.4",
+        "@img/sharp-darwin-x64": "0.35.4",
+        "@img/sharp-freebsd-wasm32": "0.35.4",
+        "@img/sharp-libvips-darwin-arm64": "1.3.3",
+        "@img/sharp-libvips-darwin-x64": "1.3.3",
+        "@img/sharp-libvips-linux-arm": "1.3.3",
+        "@img/sharp-libvips-linux-arm64": "1.3.3",
+        "@img/sharp-libvips-linux-ppc64": "1.3.3",
+        "@img/sharp-libvips-linux-riscv64": "1.3.3",
+        "@img/sharp-libvips-linux-s390x": "1.3.3",
+        "@img/sharp-libvips-linux-x64": "1.3.3",
+        "@img/sharp-libvips-linuxmusl-arm64": "1.3.3",
+        "@img/sharp-libvips-linuxmusl-x64": "1.3.3",
+        "@img/sharp-linux-arm": "0.35.4",
+        "@img/sharp-linux-arm64": "0.35.4",
+        "@img/sharp-linux-ppc64": "0.35.4",
+        "@img/sharp-linux-riscv64": "0.35.4",
+        "@img/sharp-linux-s390x": "0.35.4",
+        "@img/sharp-linux-x64": "0.35.4",
+        "@img/sharp-linuxmusl-arm64": "0.35.4",
+        "@img/sharp-linuxmusl-x64": "0.35.4",
+        "@img/sharp-webcontainers-wasm32": "0.35.4",
+        "@img/sharp-win32-arm64": "0.35.4",
+        "@img/sharp-win32-ia32": "0.35.4",
+        "@img/sharp-win32-x64": "0.35.4"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "license": "MIT",
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/side-channel": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz",
+      "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==",
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "object-inspect": "^1.13.4",
+        "side-channel-list": "^1.0.1",
+        "side-channel-map": "^1.0.1",
+        "side-channel-weakmap": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel-list": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
+      "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "object-inspect": "^1.13.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel-map": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+      "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.5",
+        "object-inspect": "^1.13.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel-weakmap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+      "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.5",
+        "object-inspect": "^1.13.3",
+        "side-channel-map": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/standardwebhooks": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/standardwebhooks/-/standardwebhooks-1.1.1.tgz",
+      "integrity": "sha512-bCbX9ZEyFkWPsRz7Bl3NuQUJohmwGSev/yhr7vhaGPlc4AfIrspIRa6cPTBuI1ItmrTDJ4d/S2hCsfe4+vQGnQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@stablelib/base64": "^1.0.0",
+        "fast-sha256": "^1.3.0"
+      }
+    },
+    "node_modules/statuses": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+      "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/toidentifier": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+      "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.6"
+      }
+    },
+    "node_modules/ts-algebra": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-2.0.0.tgz",
+      "integrity": "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==",
+      "license": "MIT"
+    },
+    "node_modules/tslib": {
+      "version": "2.8.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+      "license": "0BSD"
+    },
+    "node_modules/turndown": {
+      "version": "7.2.4",
+      "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.4.tgz",
+      "integrity": "sha512-I8yFsfRzmzK0WV1pNNOA4A7y4RDfFxPRxb3t+e3ui14qSGOxGtiSP6GjeX+Y6CHb7HYaFj7ECUD7VE5kQMZWGQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@mixmark-io/domino": "^2.2.0"
+      },
+      "engines": {
+        "node": ">=18",
+        "npm": ">=9"
+      }
+    },
+    "node_modules/type-is": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz",
+      "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==",
+      "license": "MIT",
+      "dependencies": {
+        "content-type": "^2.0.0",
+        "media-typer": "^1.1.0",
+        "mime-types": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/type-is/node_modules/content-type": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz",
+      "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/typebox": {
+      "version": "1.3.7",
+      "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.3.7.tgz",
+      "integrity": "sha512-meKuifc33Pccx0O6PdIzYMq3Og8zvP4TIi/a+Bw3AEMZMxOD0+RHGQvpglEe6Zdy3wZ8nqn/j95h8LUZLk/6Hg==",
+      "license": "MIT"
+    },
+    "node_modules/undici": {
+      "version": "8.10.2",
+      "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.2.tgz",
+      "integrity": "sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=22.19.0"
+      }
+    },
+    "node_modules/undici-types": {
+      "version": "6.21.0",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+      "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+      "license": "MIT"
+    },
+    "node_modules/unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+      "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+      "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/web-streams-polyfill": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+      "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "license": "ISC",
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+      "license": "ISC"
+    },
+    "node_modules/ws": {
+      "version": "8.21.3",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz",
+      "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.0.0"
+      },
+      "peerDependencies": {
+        "bufferutil": "^4.0.1",
+        "utf-8-validate": ">=5.0.2"
+      },
+      "peerDependenciesMeta": {
+        "bufferutil": {
+          "optional": true
+        },
+        "utf-8-validate": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/wsl-utils": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-1.0.0.tgz",
+      "integrity": "sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==",
+      "license": "MIT",
+      "dependencies": {
+        "is-wsl": "^3.1.0",
+        "powershell-utils": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=20"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/wsl-utils/node_modules/powershell-utils": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz",
+      "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=20"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/yaml": {
+      "version": "2.9.1",
+      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz",
+      "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==",
+      "license": "ISC",
+      "bin": {
+        "yaml": "bin.mjs"
+      },
+      "engines": {
+        "node": ">= 14.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/eemeli"
+      }
+    },
+    "node_modules/zod": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.2.tgz",
+      "integrity": "sha512-lh5RCAGFa1Cm2hjtNwLQhSs/AsqdWnTQaBER9fEwN/88pSh7KOtJavtBx/0VlkN/uFd61SwYmljLMDAsHlvzBQ==",
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/colinhacks"
+      }
+    },
+    "node_modules/zod-to-json-schema": {
+      "version": "3.25.2",
+      "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz",
+      "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==",
+      "license": "ISC",
+      "peerDependencies": {
+        "zod": "^3.25.28 || ^4"
+      }
+    }
+  }
+}

+ 8 - 0
scripts/dependency-catalog/resolution.json

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

+ 110 - 0
scripts/gen-dependency-catalog.spec.ts

@@ -0,0 +1,110 @@
+/** Production dependency selection and offline catalog freshness regressions. */
+
+import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
+import { tmpdir } from 'node:os'
+import { dirname, join, resolve } from 'node:path'
+import { afterEach, describe, expect, it } from 'vitest'
+import { collectDependencies, computeDependencyCatalogOutputs, staleDependencyCatalogPaths } from './gen-dependency-catalog.ts'
+
+const roots: string[] = []
+afterEach(() => {
+  for (const root of roots.splice(0)) rmSync(root, { recursive: true, force: true, maxRetries: 3 })
+})
+
+function lockfile() {
+  return {
+    lockfileVersion: 3,
+    packages: {
+      '': { dependencies: { '@deepseek-ai/dsh': 'latest' } },
+      'node_modules/@deepseek-ai/dsh': {
+        version: '1.0.0', dependencies: { library: '^2.0.0', alias: 'npm:original@1.0.0' },
+        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/alias': { name: 'original', version: '1.0.0' },
+      'node_modules/plugin': { version: '1.0.0', peerDependencies: { peer: '*' } },
+      '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 },
+    },
+  }
+}
+
+function fixture(): string {
+  const root = mkdtempSync(join(tmpdir(), 'dsh-dependency-catalog-test-'))
+  roots.push(root)
+  mkdirSync(join(root, 'scripts/dependency-catalog'), { recursive: true })
+  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/',
+  }))
+  return root
+}
+
+describe('published npm dependency catalog', () => {
+  it('retains nested versions, aliases, peers, and optional candidates while excluding development-only packages', () => {
+    const { version, rows } = collectDependencies(lockfile())
+    expect(version).toBe('1.0.0')
+    expect(rows).toHaveLength(7)
+    expect(rows.filter(row => row.direct).map(row => [row.name, row.version])).toEqual([
+      ['library', '2.0.0'], ['original', '1.0.0'],
+    ])
+    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',
+    })
+    expect(rows.find(row => row.name === 'native-helper')).toMatchObject({ optional: true })
+    expect(rows.map(row => row.name)).not.toContain('test-only')
+    expect(rows.map(row => row.name)).not.toContain('unavailable')
+  })
+
+  it('does not silently produce an incomplete catalog from invalid or unrelated resolutions', () => {
+    expect(() => collectDependencies({ lockfileVersion: 2 })).toThrow('lockfileVersion 3')
+    expect(() => collectDependencies({ lockfileVersion: 3, packages: {} })).toThrow('consumer must be an object')
+    const input = lockfile()
+    input.packages[''].dependencies['@deepseek-ai/dsh'] = 'next'
+    expect(() => collectDependencies(input)).toThrow('must request only @deepseek-ai/dsh@latest')
+    const missing = lockfile()
+    Reflect.deleteProperty(missing.packages, 'node_modules/alias')
+    expect(() => collectDependencies(missing)).toThrow('missing direct dependency alias')
+    const linked = lockfile()
+    Object.assign(linked.packages['node_modules/library'], { link: true })
+    expect(() => collectDependencies(linked)).toThrow('is a local link')
+  })
+
+  it('sorts packages independently of lockfile object order and keeps duplicate installation locations', () => {
+    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' } })
+    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', () => {
+    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 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()])
+  })
+
+  it('keeps the checked-in catalog synchronized with its recorded npm resolution', () => {
+    expect(staleDependencyCatalogPaths(resolve(import.meta.dirname, '..'))).toEqual([])
+  })
+})

+ 332 - 0
scripts/gen-dependency-catalog.ts

@@ -0,0 +1,332 @@
+/** Generate the README npx dependency catalog from a recorded public npm resolution. */
+
+import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs'
+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'
+
+const ROOT = resolve(import.meta.dirname, '..')
+const PACKAGE = '@deepseek-ai/dsh'
+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'
+
+/** npm lockfile fields used to describe an installed package or optional candidate. */
+interface PackageEntry {
+  name?: string
+  version: string
+  dependencies?: Record<string, string>
+  optionalDependencies?: Record<string, string>
+  dev?: boolean
+  optional?: boolean
+  peer?: boolean
+  os?: string[]
+  cpu?: string[]
+  libc?: string[]
+}
+
+/** One package location in npm's resolved tree; duplicate versions retain their locations. */
+export interface DependencyRow {
+  readonly location: string
+  readonly name: string
+  readonly version: string
+  readonly direct: boolean
+  readonly optional: boolean
+  readonly peer: boolean
+  readonly platforms: string
+}
+
+interface ResolutionMetadata {
+  capturedAt: string
+  npm: string
+  node: string
+  platform: string
+  arch: string
+  registry: string
+}
+
+function record(value: unknown, label: string): Record<string, unknown> {
+  if (typeof value !== 'object' || value === null || Array.isArray(value)) {
+    throw new Error(`dependency-catalog: ${label} must be an object`)
+  }
+  return value as Record<string, unknown>
+}
+
+function string(value: unknown, label: string): string {
+  if (typeof value !== 'string' || value.length === 0 || /[\r\n]/.test(value)) {
+    throw new Error(`dependency-catalog: ${label} must be a nonempty single-line value`)
+  }
+  return value
+}
+
+function parseEntry(value: unknown, location: string): PackageEntry {
+  const raw = record(value, location)
+  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`)
+  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`)
+    entry[key] = raw[key]
+  }
+  for (const key of ['dependencies', 'optionalDependencies'] as const) {
+    if (raw[key] === undefined) continue
+    entry[key] = Object.fromEntries(Object.entries(record(raw[key], `${location} ${key}`))
+      .map(([name, spec]) => [string(name, 'dependency name'), string(spec, `${location} ${name}`)]))
+  }
+  for (const key of ['os', 'cpu', 'libc'] as const) {
+    const values = raw[key]
+    if (values === undefined) continue
+    if (!Array.isArray(values)) throw new Error(`dependency-catalog: ${location} ${key} must be an array`)
+    entry[key] = values.map(value => string(value, `${location} ${key}`))
+  }
+  return entry
+}
+
+/**
+ * Read npm's resolved production tree without substituting workspace or development dependencies.
+ * @param input - Parsed npm lockfile v3 from a consumer with only dsh as its dependency.
+ * @returns The CLI version and sorted package locations, excluding the synthetic consumer and CLI itself.
+ */
+export function collectDependencies(input: unknown): { version: string; rows: DependencyRow[] } {
+  const lock = record(input, 'lockfile')
+  if (lock['lockfileVersion'] !== 3) throw new Error('dependency-catalog: expected npm lockfileVersion 3')
+  const packages = record(lock['packages'], 'packages')
+  const consumer = record(packages[''], 'consumer')
+  const requested = record(consumer['dependencies'], 'consumer dependencies')
+  if (Object.keys(requested).length !== 1 || requested[PACKAGE] !== 'latest') {
+    throw new Error(`dependency-catalog: consumer must request only ${PACKAGE}@latest`)
+  }
+  const entries = new Map(Object.entries(packages).filter(([location]) => location !== '')
+    .map(([location, entry]) => [location, parseEntry(entry, location)]))
+  const cli = entries.get(ENTRY)
+  if (cli === undefined || cli.dev) throw new Error(`dependency-catalog: missing production ${PACKAGE}`)
+  const direct = new Set<string>()
+  for (const name of Object.keys({ ...cli.dependencies, ...cli.optionalDependencies })) {
+    const location = [`${ENTRY}/node_modules/${name}`, `node_modules/${name}`]
+      .find(candidate => entries.has(candidate))
+    if (location === undefined) {
+      if (cli.optionalDependencies?.[name] !== undefined) continue
+      throw new Error(`dependency-catalog: missing direct dependency ${name}`)
+    }
+    direct.add(location)
+  }
+  const rows: DependencyRow[] = []
+  for (const [location, entry] of entries) {
+    if (location === ENTRY || entry.dev) continue
+    const name = location.split('node_modules/').at(-1)
+    if (name === undefined || !/^(@[^/]+\/)?[^/]+$/.test(name)) {
+      throw new Error(`dependency-catalog: invalid npm package location ${location}`)
+    }
+    rows.push({
+      location,
+      name: entry.name ?? name,
+      version: entry.version,
+      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('; '),
+    })
+  }
+  if (rows.length === 0) throw new Error('dependency-catalog: empty dependency tree')
+  rows.sort((a, b) => a.name.localeCompare(b.name, 'en')
+    || a.version.localeCompare(b.version, 'en') || a.location.localeCompare(b.location, 'en'))
+  return { version: cli.version, rows }
+}
+
+function readMetadata(scanRoot: string): ResolutionMetadata {
+  const value = record(JSON.parse(readFileSync(resolve(scanRoot, METADATA), 'utf8')), 'resolution metadata')
+  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'),
+  }
+}
+
+function renderCatalog(version: string, rows: readonly DependencyRow[], meta: ResolutionMetadata, locale: Locale): string {
+  const zh = locale === 'zh'
+  const unique = new Set(rows.map(row => `${row.name}@${row.version}`)).size
+  const direct = rows.filter(row => row.direct)
+  const transitive = rows.filter(row => !row.direct)
+  const table = (selected: readonly DependencyRow[]): string[] => [
+    zh ? '| 包 | 解析版本 | 安装条件 | 包声明的平台限制 |' : '| Package | Resolved version | Installation | Declared platform restrictions |',
+    '| --- | --- | --- | --- |',
+    ...selected.map((row) => {
+      const flags = [row.optional ? (zh ? '可选' : 'Optional') : (zh ? '必需' : 'Required')]
+      if (row.peer) flags.push(zh ? 'Peer 自动安装' : 'Auto-installed peer')
+      return `| [\`${row.name}\`](https://www.npmjs.com/package/${row.name}/v/${row.version}) | \`${row.version}\` | ${flags.join('; ')} | ${row.platforms || '—'} |`
+    }),
+    '',
+  ]
+  return [
+    '<!-- Generated by scripts/gen-dependency-catalog.ts. Do not edit by hand. -->',
+    '',
+    zh ? '# 依赖目录' : '# Dependency catalog',
+    '',
+    zh ? '[English](dependency-catalog.md) | 中文' : 'English | [中文](dependency-catalog.zh.md)',
+    '',
+    zh ? '## 摘要' : '## Summary',
+    '',
+    zh
+      ? `查看 [README 中的 npm 命令](../README.zh.md)所安装的 \`${PACKAGE}\` 的直接和传递依赖。此记录中的 npm \`latest\` 版本为 **${version}**;共 ${rows.length} 个依赖安装位置,涉及 ${unique} 个不同的包与版本组合。`
+      : `Look up the direct and transitive dependencies of \`${PACKAGE}\` installed by the [README npm command](../README.md). The recorded npm \`latest\` release is **${version}**; there are ${rows.length} dependency locations representing ${unique} distinct package/version pairs.`,
+    '',
+    zh ? '## 目录' : '## Table of Contents',
+    '',
+    zh ? '- [范围](#scope)' : '- [Scope](#scope)',
+    zh ? '- [直接依赖](#direct-dependencies)' : '- [Direct dependencies](#direct-dependencies)',
+    zh ? '- [传递依赖](#transitive-dependencies)' : '- [Transitive dependencies](#transitive-dependencies)',
+    zh ? '- [重新生成](#regeneration)' : '- [Regeneration](#regeneration)',
+    '',
+    '<a id="scope"></a>',
+    '',
+    zh ? '## 范围' : '## Scope',
+    '',
+    '```sh',
+    'npx @deepseek-ai/dsh web',
+    '```',
+    '',
+    zh
+      ? `采集时间:\`${meta.capturedAt}\`。解析工具:npm \`${meta.npm}\`,Node.js \`${meta.node}\`,\`${meta.platform}/${meta.arch}\`。Registry:${meta.registry}`
+      : `Captured: \`${meta.capturedAt}\`. Resolver: npm \`${meta.npm}\`, Node.js \`${meta.node}\`, \`${meta.platform}/${meta.arch}\`. Registry: ${meta.registry}`,
+    '',
+    zh
+      ? '此记录使用空白 npm 消费项目解析公开发布包,包含必需依赖、自动安装的 Peer 依赖及可选依赖候选项。`web` 参数选择启动模式,不会缩小 CLI 的安装依赖。仓库的开发依赖和未被引用的 workspace 包不在此范围内。'
+      : 'This record resolves published packages in an empty npm consumer, including required dependencies, automatically installed peers, and optional dependency candidates. The `web` argument selects a launch mode; it does not narrow the CLI installation. Repository development dependencies and unreferenced workspace packages are outside this scope.',
+    '',
+    zh
+      ? '可选项仅在平台匹配且安装成功时出现;经可选父包引入的依赖也可能被省略。平台列显示包自身的 `os`、`cpu` 和 `libc` 声明,`—` 表示包自身未声明限制。表格中的重复行保留 npm 在不同位置安装的相同包版本。此目录由仅生成 lockfile 的解析过程产生,不验证安装脚本或其下载的额外文件。'
+      : 'Optional entries appear only when their platform matches and installation succeeds; dependencies reached through optional parents can also be omitted. The platform column shows each package’s own `os`, `cpu`, and `libc` declarations; `—` means no restriction declared by that package. Repeated rows retain identical package versions installed at different locations. This catalog comes from a lockfile-only resolution and does not verify install scripts or additional files they download.',
+    '',
+    zh
+      ? '这是带时间的解析记录:npm 的 tag、版本范围、npm/Node.js 版本、平台、配置及现有本地安装或缓存均可能改变实际结果。普通生成和 CI 检查使用提交的记录;只有刷新命令查询 registry。参见 [npx 文档](https://docs.npmjs.com/cli/v11/commands/npx/)和 [npm lockfile 文档](https://docs.npmjs.com/cli/v11/configuring-npm/package-lock-json/)。'
+      : 'This is a dated resolution: npm tags, version ranges, npm/Node.js versions, platform, configuration, and existing local installations or caches can change the actual result. Normal generation and CI checks use the committed record; only the refresh command queries the registry. See the [npx documentation](https://docs.npmjs.com/cli/v11/commands/npx/) and [npm lockfile documentation](https://docs.npmjs.com/cli/v11/configuring-npm/package-lock-json/).',
+    '',
+    '<a id="direct-dependencies"></a>',
+    '',
+    zh ? '## 直接依赖' : '## Direct dependencies',
+    '',
+    zh ? `${direct.length} 个安装位置由已发布 CLI 的依赖字段直接引用。` : `${direct.length} locations are referenced directly by the published CLI dependency fields.`,
+    '',
+    ...table(direct),
+    '<a id="transitive-dependencies"></a>',
+    '',
+    zh ? '## 传递依赖' : '## Transitive dependencies',
+    '',
+    zh ? `${transitive.length} 个其余安装位置由依赖树引入。` : `${transitive.length} further locations are brought in by the dependency tree.`,
+    '',
+    ...table(transitive),
+    '<a id="regeneration"></a>',
+    '',
+    zh ? '## 重新生成' : '## Regeneration',
+    '',
+    zh
+      ? '在已安装依赖的仓库中,从提交的 npm 记录重新生成两种语言的目录和配对记录:'
+      : 'In an installed repository checkout, regenerate both languages and the pairing record from the committed npm resolution:',
+    '',
+    '```sh',
+    'pnpm run gen-dependency-catalog',
+    'pnpm run verify-dependency-catalog',
+    '```',
+    '',
+    zh ? '从公开 npm registry 刷新 `latest` 及其完整依赖树,然后重新生成目录:' : 'Refresh `latest` and its complete dependency tree from the public npm registry, then regenerate the catalog:',
+    '',
+    '```sh',
+    'pnpm run gen-dependency-catalog --refresh',
+    '```',
+    '',
+    zh
+      ? `提交 [npm lockfile](../${LOCK})、[解析元数据](../${METADATA})和三个目录配对文件。刷新使用临时目录并禁用安装脚本;失败时不替换已提交的解析记录。\`doc-sync\` 检查生成文件是否与记录一致。`
+      : `Commit the [npm lockfile](../${LOCK}), [resolution metadata](../${METADATA}), and all three catalog pair files. Refresh uses a temporary directory with install scripts disabled; a failed resolution leaves the committed record intact. \`doc-sync\` checks generated files against the record.`,
+    '',
+  ].join('\n')
+}
+
+/**
+ * Compute all catalog artifacts without network access or writes.
+ * @param scanRoot - Repository root containing the recorded npm resolution.
+ * @returns Repository-relative paths and their deterministic contents.
+ */
+export function computeDependencyCatalogOutputs(scanRoot: string = ROOT): ReadonlyMap<string, string> {
+  const { version, rows } = collectDependencies(JSON.parse(readFileSync(resolve(scanRoot, LOCK), 'utf8')))
+  const metadata = readMetadata(scanRoot)
+  const en = renderCatalog(version, rows, metadata, 'en')
+  const zh = renderCatalog(version, rows, metadata, 'zh')
+  return new Map([
+    [PATHS.source, en],
+    [PATHS.zh, zh],
+    [PATHS.meta, renderTranslationPairingRecord(PATHS, {
+      sourceHash: gitBlobHash(Buffer.from(en)),
+      zhHash: gitBlobHash(Buffer.from(zh)),
+    })],
+  ])
+}
+
+/**
+ * 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.
+ */
+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)
+}
+
+async function refreshResolution(): Promise<void> {
+  const temporary = await mkdtemp(join(tmpdir(), 'dsh-dependency-catalog-'))
+  try {
+    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', [
+      '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)
+    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,
+    }
+    mkdirSync(resolve(ROOT, dirname(LOCK)), { recursive: true })
+    writeFileSync(resolve(ROOT, LOCK), lock)
+    writeFileSync(resolve(ROOT, METADATA), `${JSON.stringify(metadata, null, 2)}\n`)
+  } finally {
+    await rm(temporary, { recursive: true, force: true, maxRetries: 3 })
+  }
+}
+
+async function main(): Promise<void> {
+  const { values } = parseArgs({ options: { check: { type: 'boolean' }, refresh: { type: 'boolean' } } })
+  if (values.check && values.refresh) throw new Error('dependency-catalog: --check cannot refresh the registry record')
+  if (values.refresh) await refreshResolution()
+  if (values.check) {
+    const stale = staleDependencyCatalogPaths()
+    if (stale.length > 0) {
+      throw new Error(`dependency-catalog: stale ${stale.join(', ')}; run pnpm run gen-dependency-catalog`)
+    }
+    console.log('dependency-catalog: all 3 artifacts match the recorded npm resolution')
+    return
+  }
+  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')
+}
+
+if (process.argv[1] !== undefined && import.meta.filename === resolve(process.argv[1])) await main()

+ 7 - 0
scripts/run-gates.spec.ts

@@ -213,6 +213,13 @@ describe('gate graph validation', () => {
     expect(quick).toEqual(full.filter(gate => gate.quick === true))
   })
 
+  it('checks the recorded npm dependency catalog in both documentation aggregates', () => {
+    for (const mode of ['doc-sync', 'doc-quick'] as const) {
+      expect(withPnpmEntrypoint(() => gatesForMode(mode).find(gate => gate.id === 'dependency-catalog')))
+        .toMatchObject({ args: ['/private/pnpm.cjs', 'run', 'verify-dependency-catalog'] })
+    }
+  })
+
   it('keeps the hygiene aggregate aligned with the package script checks', () => {
     const ids = withPnpmEntrypoint(() => gatesForMode('hygiene').map(subject => subject.id))
 

+ 1 - 0
scripts/run-gates.ts

@@ -740,6 +740,7 @@ function docSyncLeafGates(options: {
     pnpmScript('export-jsdoc', 'verify-export-jsdoc', { label: 'export jsdoc' }),
     pnpmScript('tool-catalog', 'verify-tool-catalog', { label: 'tool catalog' }),
     pnpmScript('config-catalog', 'verify-config-catalog', { label: 'config catalog' }),
+    pnpmScript('dependency-catalog', 'verify-dependency-catalog', { label: 'npm dependency catalog', quick: true }),
     pnpmScript('persistence-catalog', 'verify-persistence-catalog', { label: 'persistence catalog' }),
     pnpmScript('persistence-changes', 'verify-persistence-changes', { label: 'persistence type history' }),
     pnpmScript('session-format-catalog', 'verify-session-format-catalog', { label: 'Session format catalog' }),