@dsh-cc/mcp-client 0.6.1 → 0.6.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
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
- # pnpm run verify-translation-pairing --write packages/mcp/mcp-client/README.md
5
- README.md: 5c2ae4c5c608554a6c3b5ea02c41a80a4e36a08b
6
- README.zh.md: 655256c6931361b80d269bb37f2e5f83c9e1dc34
4
+ # pnpm check:readme --write
5
+ README.md: 56082ed650435edfad0ab56b3a75cb05418572f8
6
+ README.zh.md: 07ab20f026d2b821c6710b1b6fed7ea2d6b387d9
package/lib/registry.d.ts CHANGED
@@ -45,10 +45,21 @@ export interface McpConnectionControl {
45
45
  /** Tear down the current connection and establish a fresh one; the entry is marked `connecting` then `ready`/`error`. */
46
46
  reconnect(): Promise<void>;
47
47
  }
48
+ /** Listener invoked with a snapshot copy whenever a registry entry mutates. */
49
+ export type McpConnectionChangeListener = (entry: McpConnectionEntry) => void;
48
50
  /** The `mcpConnections` service: enumerate and drive the registered MCP servers. */
49
51
  export declare class McpConnectionsService extends Service {
50
52
  /** Live instances keyed by `serverName`. */
51
53
  private readonly managed;
54
+ private readonly listeners;
55
+ /**
56
+ * Subscribe to entry mutations (register / report / unregister). Each event
57
+ * delivers a snapshot COPY of the entry (mutating it does not affect the
58
+ * registry). Listener exceptions are contained and logged.
59
+ * @returns a disposer that stops delivery.
60
+ */
61
+ onDidChange(listener: McpConnectionChangeListener): () => void;
62
+ private notify;
52
63
  constructor(ctx: Context);
53
64
  /**
54
65
  * Register a live mcp-client instance's control surface, initially `connecting`.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,iFAAiF;QACjF,cAAc,EAAE,qBAAqB,CAAA;KACtC;CACF;AAED,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,CAAA;AAElF,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,KAAK,EAAE,kBAAkB,CAAA;IACzB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,yFAAyF;AACzF,MAAM,WAAW,oBAAoB;IACnC,gGAAgG;IAChG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,yHAAyH;IACzH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAQD,oFAAoF;AACpF,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;gBAEzC,GAAG,EAAE,OAAO;IAIxB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAOnF,0DAA0D;IAC1D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,+DAA+D;IAC/D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAQpF,+DAA+D;IAC/D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKnD;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQpF,mDAAmD;IACnD,OAAO,IAAI,kBAAkB,EAAE;IAI/B;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,OAAO,CAAC,OAAO;CAKhB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,iFAAiF;QACjF,cAAc,EAAE,qBAAqB,CAAA;KACtC;CACF;AAED,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,CAAA;AAElF,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,KAAK,EAAE,kBAAkB,CAAA;IACzB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,yFAAyF;AACzF,MAAM,WAAW,oBAAoB;IACnC,gGAAgG;IAChG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,yHAAyH;IACzH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAQD,+EAA+E;AAC/E,MAAM,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAA;AAE7E,oFAAoF;AACpF,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IAEnE;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,2BAA2B,GAAG,MAAM,IAAI;IAK9D,OAAO,CAAC,MAAM;gBAWF,GAAG,EAAE,OAAO;IAIxB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQnF,0DAA0D;IAC1D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM9B,+DAA+D;IAC/D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IASpF,+DAA+D;IAC/D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKnD;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQpF,mDAAmD;IACnD,OAAO,IAAI,kBAAkB,EAAE;IAI/B;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,OAAO,CAAC,OAAO;CAKhB"}
package/lib/registry.js CHANGED
@@ -17,6 +17,28 @@ import { Service } from '@deepseek-ai/cordis';
17
17
  export class McpConnectionsService extends Service {
18
18
  /** Live instances keyed by `serverName`. */
19
19
  managed = new Map();
20
+ listeners = new Set();
21
+ /**
22
+ * Subscribe to entry mutations (register / report / unregister). Each event
23
+ * delivers a snapshot COPY of the entry (mutating it does not affect the
24
+ * registry). Listener exceptions are contained and logged.
25
+ * @returns a disposer that stops delivery.
26
+ */
27
+ onDidChange(listener) {
28
+ this.listeners.add(listener);
29
+ return () => { this.listeners.delete(listener); };
30
+ }
31
+ notify(entry) {
32
+ const snapshot = { ...entry };
33
+ for (const listener of this.listeners) {
34
+ try {
35
+ listener(snapshot);
36
+ }
37
+ catch (error) {
38
+ this.ctx.logger.warn(`mcpConnections: onDidChange listener failed: ${String(error)}`);
39
+ }
40
+ }
41
+ }
20
42
  constructor(ctx) {
21
43
  super(ctx, 'mcpConnections');
22
44
  }
@@ -31,9 +53,13 @@ export class McpConnectionsService extends Service {
31
53
  throw new Error(`mcpConnections: server "${name}" is already registered by another mcp-client instance`);
32
54
  }
33
55
  this.managed.set(name, { entry: { name, state: 'connecting', ...authRequired === undefined ? {} : { authRequired } }, control });
56
+ this.notify(this.managed.get(name).entry);
34
57
  }
35
58
  /** Remove an instance (on teardown / full disconnect). */
36
59
  unregister(name) {
60
+ const managed = this.managed.get(name);
61
+ if (managed)
62
+ this.notify(managed.entry);
37
63
  this.managed.delete(name);
38
64
  }
39
65
  /** Report a lifecycle transition for a registered instance. */
@@ -46,6 +72,7 @@ export class McpConnectionsService extends Service {
46
72
  managed.entry.error = info.error;
47
73
  if (state === 'ready' || state === 'connecting')
48
74
  delete managed.entry.error;
75
+ this.notify(managed.entry);
49
76
  }
50
77
  /** Record the current tool count for a registered instance. */
51
78
  setToolCount(name, toolCount) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/lib/tools.d.ts CHANGED
@@ -149,7 +149,7 @@ export declare function syncTools(client: Client, ctx: Context, opts: ToolBridge
149
149
  * Run an MCP request, retrying once on a mid-session `UnauthorizedError`.
150
150
  * Between the original attempt and the retry, `onUnauthorized` runs to drop
151
151
  * stale OAuth state and re-establish a token. Only a single retry is attempted
152
- * (the spec's "401 自动重试一次"); a second failure propagates to the caller.
152
+ * (the spec's "retry once automatically on a 401"); a second failure propagates to the caller.
153
153
  *
154
154
  * @param request - the MCP request to attempt.
155
155
  * @param onUnauthorized - re-auth hook run before the single retry.
package/lib/tools.js CHANGED
@@ -258,7 +258,7 @@ function createOutput(rawName, structuredSchema) {
258
258
  * Run an MCP request, retrying once on a mid-session `UnauthorizedError`.
259
259
  * Between the original attempt and the retry, `onUnauthorized` runs to drop
260
260
  * stale OAuth state and re-establish a token. Only a single retry is attempted
261
- * (the spec's "401 自动重试一次"); a second failure propagates to the caller.
261
+ * (the spec's "retry once automatically on a 401"); a second failure propagates to the caller.
262
262
  *
263
263
  * @param request - the MCP request to attempt.
264
264
  * @param onUnauthorized - re-auth hook run before the single retry.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dsh-cc/mcp-client",
3
3
  "description": "MCP client bridge: connects to MCP servers and registers their tools on ctx.tools",
4
- "version": "0.6.1",
4
+ "version": "0.6.2",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/dsh-cc/dsh-cc.git",
@@ -33,7 +33,7 @@
33
33
  "@deepseek-ai/dsh-timeout": ">=0.1.2-rc.1",
34
34
  "@deepseek-ai/cordis": ">=0.1.2-rc.1",
35
35
  "@deepseek-ai/schemastery": "^3.18.1",
36
- "@dsh-cc/tools": "^0.6.1"
36
+ "@dsh-cc/tools": "^0.6.2"
37
37
  },
38
38
  "dependencies": {
39
39
  "@modelcontextprotocol/sdk": "1.29.0",
@@ -53,8 +53,8 @@
53
53
  "@deepseek-ai/schemastery": "link:../../../../deepseek-harness/vendor/schemastery",
54
54
  "@deepseek-ai/cordis-plugin-loader": "link:../../../../deepseek-harness/vendor/loader",
55
55
  "@deepseek-ai/dsh-system-prompt": "link:../../../../deepseek-harness/packages/core/system-prompt",
56
- "@dsh-cc/tools": "^0.6.1",
57
- "@dsh-cc/tool-search": "^0.6.1"
56
+ "@dsh-cc/tools": "^0.6.2",
57
+ "@dsh-cc/tool-search": "^0.6.2"
58
58
  },
59
59
  "publishConfig": {
60
60
  "access": "public"