@deepseek-ai/dsh-mcp-client 0.1.2-alpha.5 → 0.1.3-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.i18n.yaml +2 -2
- package/README.md +1 -2
- package/README.zh.md +1 -2
- package/package.json +16 -15
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write packages/mcp/mcp-client/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 19e0d46f54ae1f67dc3361d9694ce5b8fb348e4e
|
|
6
|
+
README.zh.md: a89245cd272cdb5c0f7c405b196a7e8b51ec9238
|
package/README.md
CHANGED
|
@@ -120,7 +120,7 @@ This section explains the design decisions behind the bridge and points at the c
|
|
|
120
120
|
|
|
121
121
|
### Lifecycle and sync
|
|
122
122
|
|
|
123
|
-
`apply` resolves the reconnect policy, reserves the `serverName` inside the current registration scope, starts the supervisor, and awaits the initial connection plus discovery. Independent Agent scopes may reuse the same namespace because their tools and transports are isolated; a duplicate inside one scope fails at load. The supervisor serializes every sync — initial, notification, and reconnect — through one queue so two syncs can never interleave their dispose-previous/register-next swap. Disposal cancels pending reconnects, closes the live client, waits for the in-flight attempt and queued syncs to quiesce, and unregisters the current generation.
|
|
123
|
+
`apply` resolves the reconnect policy, reserves the `serverName` inside the current registration scope, starts the supervisor, and awaits the initial connection plus discovery. Independent Agent scopes may reuse the same namespace because their tools and transports are isolated; a duplicate inside one scope fails at load. The supervisor serializes every sync — initial, notification, and reconnect — through one queue so two syncs can never interleave their dispose-previous/register-next swap. Disposal cancels pending reconnects, closes the live client, waits for the in-flight attempt and queued syncs to quiesce, and unregisters the current generation.
|
|
124
124
|
|
|
125
125
|
The supervisor listens for `notifications/tools/list_changed` and queues a re-sync; a fetch-phase failure keeps the previous generation registered, while a registration conflict rolls back the attempted generation. Each outage shares one attempt budget: after `maxAttempts` consecutive failures the tools are unregistered and reconnection stops, and a connection that stays up past `maxDelayMs` resets the budget.
|
|
126
126
|
|
|
@@ -143,7 +143,6 @@ Read these pages when the package-level contract is not enough. They move from t
|
|
|
143
143
|
|
|
144
144
|
- [Tools subsystem reference](../../../docs/subsystems/tools.md) — the `ToolRuntime` and `ctx.tools.register()` contract that receives the bridged tools.
|
|
145
145
|
- [MCP client plugin Agent Note](../../../.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.md) — the naming invariants, discovery and execution design, alternatives, and consequences.
|
|
146
|
-
- [MCP client auto-reconnect Agent Note](../../../.agents/notes/implemented/feature/2026-08-06-mcp-client-auto-reconnect.md) — the reconnect policy, attempt budget, and opt-out rationale.
|
|
147
146
|
- [Canonical tool output contract Agent Note](../../../.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.md) — how MCP results map into the canonical tool-output contract.
|
|
148
147
|
- [Third-party memory MCP guide](../../../docs/user/guide/mcp-memory.md) — three memory-server overlays using this package.
|
|
149
148
|
- [Generated configuration catalog](../../../docs/config-catalog.md#deepseek-aidsh-mcp-client) — every accepted config field and its source declaration.
|
package/README.zh.md
CHANGED
|
@@ -120,7 +120,7 @@ kind: "package-reference"
|
|
|
120
120
|
|
|
121
121
|
### 生命周期与同步
|
|
122
122
|
|
|
123
|
-
`apply` 解析重连策略、在当前注册作用域内预留 `serverName`、启动监督器,并等待初始连接加发现完成。独立 Agent 作用域可以复用相同 namespace,因为其工具与传输彼此隔离;同一作用域内重复会在加载时失败。监督器把所有同步——初始、通知与重连——串行到同一条队列,因此两次同步绝不会交错执行各自的先 dispose 后注册交换。dispose 会取消待执行的重连、关闭活动客户端、等待进行中的尝试与排队同步完全停稳,然后注销当前世代。
|
|
123
|
+
`apply` 解析重连策略、在当前注册作用域内预留 `serverName`、启动监督器,并等待初始连接加发现完成。独立 Agent 作用域可以复用相同 namespace,因为其工具与传输彼此隔离;同一作用域内重复会在加载时失败。监督器把所有同步——初始、通知与重连——串行到同一条队列,因此两次同步绝不会交错执行各自的先 dispose 后注册交换。dispose 会取消待执行的重连、关闭活动客户端、等待进行中的尝试与排队同步完全停稳,然后注销当前世代。
|
|
124
124
|
|
|
125
125
|
监督器监听 `notifications/tools/list_changed` 并排队一次重新同步;获取阶段失败时保留上一世代注册,注册冲突则回滚本次尝试的世代。每次中断共享一个尝试预算:连续失败达到 `maxAttempts` 次后工具被注销、重连停止;连接存活超过 `maxDelayMs` 会重置预算。
|
|
126
126
|
|
|
@@ -143,7 +143,6 @@ kind: "package-reference"
|
|
|
143
143
|
|
|
144
144
|
- [工具子系统参考](../../../docs/subsystems/tools.zh.md)——接收已桥接工具的 `ToolRuntime` 与 `ctx.tools.register()` 约定。
|
|
145
145
|
- [MCP 客户端插件 Agent Note](../../../.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.zh.md)——命名不变式、发现与执行设计、备选方案与后果。
|
|
146
|
-
- [MCP 客户端自动重连 Agent Note](../../../.agents/notes/implemented/feature/2026-08-06-mcp-client-auto-reconnect.zh.md)——重连策略、尝试预算与退出开关的依据。
|
|
147
146
|
- [规范工具输出约定 Agent Note](../../../.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.zh.md)——MCP 结果如何映射进规范工具输出约定。
|
|
148
147
|
- [第三方记忆 MCP 指南](../../../docs/user/guide/mcp-memory.zh.md)——使用本包的三份记忆服务器 overlay。
|
|
149
148
|
- [生成配置目录](../../../docs/config-catalog.zh.md#deepseek-aidsh-mcp-client)——每个受支持配置字段及其源声明。
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-mcp-client",
|
|
3
3
|
"description": "MCP client bridge: connects to MCP servers and registers their tools on ctx.tools",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3-alpha.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
],
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"@deepseek-ai/dsh-attachment": "^0.1.
|
|
31
|
-
"@deepseek-ai/dsh-llm": "^0.1.
|
|
32
|
-
"@deepseek-ai/dsh-
|
|
33
|
-
"@deepseek-ai/dsh-
|
|
34
|
-
"@deepseek-ai/dsh-
|
|
35
|
-
"@deepseek-ai/
|
|
36
|
-
"@deepseek-ai/
|
|
30
|
+
"@deepseek-ai/dsh-attachment": "^0.1.3-alpha.2",
|
|
31
|
+
"@deepseek-ai/dsh-llm": "^0.1.3-alpha.2",
|
|
32
|
+
"@deepseek-ai/dsh-scope": "^0.1.3-alpha.2",
|
|
33
|
+
"@deepseek-ai/dsh-subprocess": "^0.1.3-alpha.2",
|
|
34
|
+
"@deepseek-ai/dsh-timeout": "^0.1.3-alpha.2",
|
|
35
|
+
"@deepseek-ai/dsh-tools": "^0.1.3-alpha.2",
|
|
36
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
@@ -43,13 +43,14 @@
|
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@modelcontextprotocol/server-everything": "^2026.7.4",
|
|
45
45
|
"@modelcontextprotocol/server-filesystem": "^2026.7.4",
|
|
46
|
-
"@deepseek-ai/dsh-
|
|
47
|
-
"@deepseek-ai/dsh-attachment-local": "^0.1.
|
|
48
|
-
"@deepseek-ai/dsh-
|
|
49
|
-
"@deepseek-ai/dsh-
|
|
50
|
-
"@deepseek-ai/dsh-
|
|
51
|
-
"@deepseek-ai/dsh-timeout": "^0.1.
|
|
46
|
+
"@deepseek-ai/dsh-attachment": "^0.1.3-alpha.2",
|
|
47
|
+
"@deepseek-ai/dsh-attachment-local": "^0.1.3-alpha.2",
|
|
48
|
+
"@deepseek-ai/dsh-llm": "^0.1.3-alpha.2",
|
|
49
|
+
"@deepseek-ai/dsh-scope": "^0.1.3-alpha.2",
|
|
50
|
+
"@deepseek-ai/dsh-subprocess": "^0.1.3-alpha.2",
|
|
51
|
+
"@deepseek-ai/dsh-timeout": "^0.1.3-alpha.2",
|
|
52
|
+
"@deepseek-ai/dsh-tools": "^0.1.3-alpha.2",
|
|
52
53
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
53
|
-
"@deepseek-ai/dsh-
|
|
54
|
+
"@deepseek-ai/dsh-http-proxy": "^0.1.3-alpha.2"
|
|
54
55
|
}
|
|
55
56
|
}
|