@google/gemini-cli-core 0.21.0-nightly.20251209.ec9a8c7a7 → 0.21.0-preview.0

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.
Files changed (53) hide show
  1. package/README.md +1 -1
  2. package/dist/src/commands/restore.d.ts +1 -11
  3. package/dist/src/commands/restore.js +1 -0
  4. package/dist/src/commands/restore.js.map +1 -1
  5. package/dist/src/commands/restore.test.js +1 -0
  6. package/dist/src/commands/restore.test.js.map +1 -1
  7. package/dist/src/config/config.d.ts +3 -0
  8. package/dist/src/config/config.js +6 -0
  9. package/dist/src/config/config.js.map +1 -1
  10. package/dist/src/core/turn.d.ts +1 -0
  11. package/dist/src/core/turn.js.map +1 -1
  12. package/dist/src/generated/git-commit.d.ts +2 -2
  13. package/dist/src/generated/git-commit.js +2 -2
  14. package/dist/src/generated/git-commit.js.map +1 -1
  15. package/dist/src/index.d.ts +2 -0
  16. package/dist/src/index.js +2 -0
  17. package/dist/src/index.js.map +1 -1
  18. package/dist/src/resources/resource-registry.d.ts +30 -0
  19. package/dist/src/resources/resource-registry.js +57 -0
  20. package/dist/src/resources/resource-registry.js.map +1 -0
  21. package/dist/src/resources/resource-registry.test.d.ts +6 -0
  22. package/dist/src/resources/resource-registry.test.js +54 -0
  23. package/dist/src/resources/resource-registry.test.js.map +1 -0
  24. package/dist/src/services/gitService.js +5 -0
  25. package/dist/src/services/gitService.js.map +1 -1
  26. package/dist/src/services/gitService.test.js +28 -0
  27. package/dist/src/services/gitService.test.js.map +1 -1
  28. package/dist/src/services/shellExecutionService.js +47 -2
  29. package/dist/src/services/shellExecutionService.js.map +1 -1
  30. package/dist/src/services/shellExecutionService.test.js +102 -1
  31. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  32. package/dist/src/tools/mcp-client-manager.d.ts +2 -1
  33. package/dist/src/tools/mcp-client-manager.js +4 -1
  34. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  35. package/dist/src/tools/mcp-client-manager.test.js +13 -10
  36. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  37. package/dist/src/tools/mcp-client.d.ts +25 -4
  38. package/dist/src/tools/mcp-client.js +132 -22
  39. package/dist/src/tools/mcp-client.js.map +1 -1
  40. package/dist/src/tools/mcp-client.test.js +197 -17
  41. package/dist/src/tools/mcp-client.test.js.map +1 -1
  42. package/dist/src/tools/tool-names.d.ts +1 -0
  43. package/dist/src/tools/tool-names.js +1 -0
  44. package/dist/src/tools/tool-names.js.map +1 -1
  45. package/dist/src/utils/checkpointUtils.d.ts +82 -0
  46. package/dist/src/utils/checkpointUtils.js +117 -0
  47. package/dist/src/utils/checkpointUtils.js.map +1 -0
  48. package/dist/src/utils/checkpointUtils.test.d.ts +6 -0
  49. package/dist/src/utils/checkpointUtils.test.js +229 -0
  50. package/dist/src/utils/checkpointUtils.test.js.map +1 -0
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +1 -1
  53. package/dist/google-gemini-cli-core-0.21.0-nightly.20251207.025e450ac.tgz +0 -0
@@ -29,6 +29,9 @@ export class McpClientManager {
29
29
  getBlockedMcpServers() {
30
30
  return this.blockedMcpServers;
31
31
  }
32
+ getClient(serverName) {
33
+ return this.clients.get(serverName);
34
+ }
32
35
  /**
33
36
  * For all the MCP servers associated with this extension:
34
37
  *
@@ -122,7 +125,7 @@ export class McpClientManager {
122
125
  await existing.disconnect();
123
126
  }
124
127
  const client = existing ??
125
- new McpClient(name, config, this.toolRegistry, this.cliConfig.getPromptRegistry(), this.cliConfig.getWorkspaceContext(), this.cliConfig, this.cliConfig.getDebugMode(), async () => {
128
+ new McpClient(name, config, this.toolRegistry, this.cliConfig.getPromptRegistry(), this.cliConfig.getResourceRegistry(), this.cliConfig.getWorkspaceContext(), this.cliConfig, this.cliConfig.getDebugMode(), async () => {
126
129
  debugLogger.log('Tools changed, updating Gemini context...');
127
130
  const geminiClient = this.cliConfig.getGeminiClient();
128
131
  if (geminiClient.isInitialized()) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client-manager.js","sourceRoot":"","sources":["../../../src/tools/mcp-client-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAA2B,IAAI,GAAG,EAAE,CAAC;IACnC,YAAY,CAAe;IAC3B,SAAS,CAAS;IACnC,6EAA6E;IACrE,gBAAgB,CAA4B;IAC5C,cAAc,GAAsB,iBAAiB,CAAC,WAAW,CAAC;IACzD,YAAY,CAAgB;IAC5B,iBAAiB,GAG7B,EAAE,CAAC;IAER,YACE,YAA0B,EAC1B,SAAiB,EACjB,YAA2B;QAE3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,SAA6B;QAC/C,WAAW,CAAC,GAAG,CAAC,wBAAwB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CACjC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAAC,SAA6B;QAChD,WAAW,CAAC,GAAG,CAAC,sBAAsB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAChE,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE;YAChC,GAAG,MAAM;YACT,SAAS;SACV,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;QAC3D,IACE,YAAY;YACZ,YAAY,CAAC,MAAM,GAAG,CAAC;YACvB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACjC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;QAC3D,IACE,YAAY;YACZ,YAAY,CAAC,MAAM,GAAG,CAAC;YACvB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACjC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3D,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CACd,0BAA0B,IAAI,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,CAC7D,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,0EAA0E;gBAC1E,0BAA0B;gBAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;gBACtD,IAAI,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;oBACjC,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB,CACpB,IAAY,EACZ,MAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;oBAC3B,IAAI;oBACJ,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE;iBAC5C,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACnD,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS;gBACpC,CAAC,CAAC,oBAAoB,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG;gBAC9C,CAAC,CAAC,EAAE,CAAC;YACP,WAAW,CAAC,IAAI,CACd,6CAA6C,IAAI,IAAI,aAAa,wBAAwB,CAC3F,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,uBAAuB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACrE,mEAAmE;YACnE,CAAC,KAAK,IAAI,EAAE;gBACV,IAAI,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;oBAC9B,CAAC;oBAED,MAAM,MAAM,GACV,QAAQ;wBACR,IAAI,SAAS,CACX,IAAI,EACJ,MAAM,EACN,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAClC,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,EACpC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAC7B,KAAK,IAAI,EAAE;4BACT,WAAW,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;4BAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;4BACtD,IAAI,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;gCACjC,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;4BAChC,CAAC;wBACH,CAAC,CACF,CAAC;oBACJ,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAC/B,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7D,CAAC;oBACD,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;wBACvB,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACtC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7D,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC3D,qEAAqE;wBACrE,wDAAwD;wBACxD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;4BAClC,qEAAqE;4BACrE,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;4BAC5C,UAAU,CAAC,YAAY,CACrB,OAAO,EACP,0CAA0C,IAAI,MAAM,YAAY,EAAE,EAClE,KAAK,CACN,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,0EAA0E;oBAC1E,0BAA0B;oBAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;oBACtD,IAAI,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;wBACjC,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;oBAChC,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAChD,GAAG,EAAE,CAAC,uBAAuB,CAC9B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC;YACpD,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7C,mEAAmE;QACnE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,wEAAwE;YACxE,aAAa;YACb,IAAI,cAAc,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC7C,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;gBAClC,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,yBAAyB;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,wBAAwB,CACtC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,EACpC,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CACrC,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAC7C,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAC1C,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;YAC9D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,CAAC,KAAK,CACf,4BAA4B,IAAI,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,GAAG,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAClE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,CAAC,YAAY,CACrB,OAAO,EACP,0BAA0B,IAAI,IAAI,EAClC,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,MAAM,UAAU,GAAoC,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,kBAAkB;QAChB,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,kBAAkB,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YACpD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,YAAY,CAAC,IAAI,CACf,kCAAkC,IAAI,MAAM,kBAAkB,EAAE,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"mcp-client-manager.js","sourceRoot":"","sources":["../../../src/tools/mcp-client-manager.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ vi.mock('./mcp-client.js', async () => {
16
16
  describe('McpClientManager', () => {
17
17
  let mockedMcpClient;
18
18
  let mockConfig;
19
+ let toolRegistry;
19
20
  beforeEach(() => {
20
21
  mockedMcpClient = vi.mockObject({
21
22
  connect: vi.fn(),
@@ -29,6 +30,7 @@ describe('McpClientManager', () => {
29
30
  isTrustedFolder: vi.fn().mockReturnValue(true),
30
31
  getMcpServers: vi.fn().mockReturnValue({}),
31
32
  getPromptRegistry: () => { },
33
+ getResourceRegistry: () => { },
32
34
  getDebugMode: () => false,
33
35
  getWorkspaceContext: () => { },
34
36
  getAllowedMcpServers: vi.fn().mockReturnValue([]),
@@ -38,6 +40,7 @@ describe('McpClientManager', () => {
38
40
  isInitialized: vi.fn(),
39
41
  }),
40
42
  });
43
+ toolRegistry = {};
41
44
  });
42
45
  afterEach(() => {
43
46
  vi.restoreAllMocks();
@@ -46,7 +49,7 @@ describe('McpClientManager', () => {
46
49
  mockConfig.getMcpServers.mockReturnValue({
47
50
  'test-server': {},
48
51
  });
49
- const manager = new McpClientManager({}, mockConfig);
52
+ const manager = new McpClientManager(toolRegistry, mockConfig);
50
53
  await manager.startConfiguredMcpServers();
51
54
  expect(mockedMcpClient.connect).toHaveBeenCalledOnce();
52
55
  expect(mockedMcpClient.discover).toHaveBeenCalledOnce();
@@ -56,7 +59,7 @@ describe('McpClientManager', () => {
56
59
  'test-server': {},
57
60
  });
58
61
  mockConfig.isTrustedFolder.mockReturnValue(false);
59
- const manager = new McpClientManager({}, mockConfig);
62
+ const manager = new McpClientManager(toolRegistry, mockConfig);
60
63
  await manager.startConfiguredMcpServers();
61
64
  expect(mockedMcpClient.connect).not.toHaveBeenCalled();
62
65
  expect(mockedMcpClient.discover).not.toHaveBeenCalled();
@@ -66,7 +69,7 @@ describe('McpClientManager', () => {
66
69
  'test-server': {},
67
70
  });
68
71
  mockConfig.getBlockedMcpServers.mockReturnValue(['test-server']);
69
- const manager = new McpClientManager({}, mockConfig);
72
+ const manager = new McpClientManager(toolRegistry, mockConfig);
70
73
  await manager.startConfiguredMcpServers();
71
74
  expect(mockedMcpClient.connect).not.toHaveBeenCalled();
72
75
  expect(mockedMcpClient.discover).not.toHaveBeenCalled();
@@ -77,13 +80,13 @@ describe('McpClientManager', () => {
77
80
  'another-server': {},
78
81
  });
79
82
  mockConfig.getAllowedMcpServers.mockReturnValue(['another-server']);
80
- const manager = new McpClientManager({}, mockConfig);
83
+ const manager = new McpClientManager(toolRegistry, mockConfig);
81
84
  await manager.startConfiguredMcpServers();
82
85
  expect(mockedMcpClient.connect).toHaveBeenCalledOnce();
83
86
  expect(mockedMcpClient.discover).toHaveBeenCalledOnce();
84
87
  });
85
88
  it('should start servers from extensions', async () => {
86
- const manager = new McpClientManager({}, mockConfig);
89
+ const manager = new McpClientManager(toolRegistry, mockConfig);
87
90
  await manager.startExtension({
88
91
  name: 'test-extension',
89
92
  mcpServers: {
@@ -99,7 +102,7 @@ describe('McpClientManager', () => {
99
102
  expect(mockedMcpClient.discover).toHaveBeenCalledOnce();
100
103
  });
101
104
  it('should not start servers from disabled extensions', async () => {
102
- const manager = new McpClientManager({}, mockConfig);
105
+ const manager = new McpClientManager(toolRegistry, mockConfig);
103
106
  await manager.startExtension({
104
107
  name: 'test-extension',
105
108
  mcpServers: {
@@ -119,7 +122,7 @@ describe('McpClientManager', () => {
119
122
  'test-server': {},
120
123
  });
121
124
  mockConfig.getBlockedMcpServers.mockReturnValue(['test-server']);
122
- const manager = new McpClientManager({}, mockConfig);
125
+ const manager = new McpClientManager(toolRegistry, mockConfig);
123
126
  await manager.startConfiguredMcpServers();
124
127
  expect(manager.getBlockedMcpServers()).toEqual([
125
128
  { name: 'test-server', extensionName: '' },
@@ -131,7 +134,7 @@ describe('McpClientManager', () => {
131
134
  'test-server': {},
132
135
  });
133
136
  mockedMcpClient.getServerConfig.mockReturnValue({});
134
- const manager = new McpClientManager({}, mockConfig);
137
+ const manager = new McpClientManager(toolRegistry, mockConfig);
135
138
  await manager.startConfiguredMcpServers();
136
139
  expect(mockedMcpClient.connect).toHaveBeenCalledTimes(1);
137
140
  expect(mockedMcpClient.discover).toHaveBeenCalledTimes(1);
@@ -147,7 +150,7 @@ describe('McpClientManager', () => {
147
150
  'test-server': {},
148
151
  });
149
152
  mockedMcpClient.getServerConfig.mockReturnValue({});
150
- const manager = new McpClientManager({}, mockConfig);
153
+ const manager = new McpClientManager(toolRegistry, mockConfig);
151
154
  await manager.startConfiguredMcpServers();
152
155
  expect(mockedMcpClient.connect).toHaveBeenCalledTimes(1);
153
156
  expect(mockedMcpClient.discover).toHaveBeenCalledTimes(1);
@@ -157,7 +160,7 @@ describe('McpClientManager', () => {
157
160
  expect(mockedMcpClient.discover).toHaveBeenCalledTimes(2);
158
161
  });
159
162
  it('should throw an error if the server does not exist', async () => {
160
- const manager = new McpClientManager({}, mockConfig);
163
+ const manager = new McpClientManager(toolRegistry, mockConfig);
161
164
  await expect(manager.restartServer('non-existent')).rejects.toThrow('No MCP server registered with the name "non-existent"');
162
165
  });
163
166
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client-manager.test.js","sourceRoot":"","sources":["../../../src/tools/mcp-client-manager.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,EAAE,EACF,EAAE,GAEH,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAChE,OAAO;QACL,GAAG,cAAc;QACjB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;KACnB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,eAAwC,CAAC;IAC7C,IAAI,UAAgC,CAAC;IAErC,UAAU,CAAC,GAAG,EAAE;QACd,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC;YAC9B,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;YAChB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;YACjB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;YACnB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;YAClB,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;SACD,CAAC,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACtD,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;YACzB,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YAC9C,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1C,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC3B,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK;YACzB,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC7B,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YACjD,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YACjD,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YAChD,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBACvC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;aACvB,CAAC;SACkB,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;YACvC,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;QAC1C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;YACvC,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;QACH,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;QAC1C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;YACvC,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;QACH,UAAU,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;QAC1C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;YACvC,aAAa,EAAE,EAAE;YACjB,gBAAgB,EAAE,EAAE;SACrB,CAAC,CAAC;QACH,UAAU,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;QAC1C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,cAAc,CAAC;YAC3B,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE;aAClB;YACD,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,EAAE;YAChB,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,cAAc,CAAC;YAC3B,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE;aAClB;YACD,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,EAAE;YAChB,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;YACvC,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;QACH,UAAU,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC;YAC7C,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;gBACvC,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;YACH,eAAe,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;YAE1C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAExB,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;gBACvC,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;YACH,eAAe,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;YAE1C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE1D,MAAM,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAE3C,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACjE,uDAAuD,CACxD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;YACxF,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,kBAAkB,CACrC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CACf,CAAC;gBACC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;gBAChB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;gBACjB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;gBACnB,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;gBAChD,eAAe,EAAE,EAAE;qBAChB,EAAE,EAAE;qBACJ,eAAe,CACd,IAAI,KAAK,0BAA0B;oBACjC,CAAC,CAAC,oBAAoB,IAAI,EAAE;oBAC5B,CAAC,CAAC,EAAE,CACP;aACJ,CAAyB,CAC7B,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAkB,EAAE,UAAU,CAAC,CAAC;YAErE,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;gBACvC,0BAA0B,EAAE,EAAE;gBAC9B,6BAA6B,EAAE,EAAE;aAClC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;YAE1C,MAAM,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAElD,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAC5B,0DAA0D,CAC3D,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAC5B,2CAA2C,CAC5C,CAAC;YAEF,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAChC,6DAA6D,CAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mcp-client-manager.test.js","sourceRoot":"","sources":["../../../src/tools/mcp-client-manager.test.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,14 @@
5
5
  */
6
6
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
7
7
  import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
8
- import type { GetPromptResult, Prompt } from '@modelcontextprotocol/sdk/types.js';
8
+ import type { GetPromptResult, Prompt, ReadResourceResult, Resource } from '@modelcontextprotocol/sdk/types.js';
9
9
  import type { Config, MCPServerConfig } from '../config/config.js';
10
10
  import { DiscoveredMCPTool } from './mcp-tool.js';
11
11
  import type { PromptRegistry } from '../prompts/prompt-registry.js';
12
12
  import type { WorkspaceContext } from '../utils/workspaceContext.js';
13
13
  import type { ToolRegistry } from './tool-registry.js';
14
14
  import type { MessageBus } from '../confirmation-bus/message-bus.js';
15
+ import type { ResourceRegistry } from '../resources/resource-registry.js';
15
16
  export declare const MCP_DEFAULT_TIMEOUT_MSEC: number;
16
17
  export type DiscoveredMCPPrompt = Prompt & {
17
18
  serverName: string;
@@ -52,6 +53,7 @@ export declare class McpClient {
52
53
  private readonly serverConfig;
53
54
  private readonly toolRegistry;
54
55
  private readonly promptRegistry;
56
+ private readonly resourceRegistry;
55
57
  private readonly workspaceContext;
56
58
  private readonly cliConfig;
57
59
  private readonly debugMode;
@@ -59,9 +61,11 @@ export declare class McpClient {
59
61
  private client;
60
62
  private transport;
61
63
  private status;
62
- private isRefreshing;
63
- private pendingRefresh;
64
- constructor(serverName: string, serverConfig: MCPServerConfig, toolRegistry: ToolRegistry, promptRegistry: PromptRegistry, workspaceContext: WorkspaceContext, cliConfig: Config, debugMode: boolean, onToolsUpdated?: ((signal?: AbortSignal) => Promise<void>) | undefined);
64
+ private isRefreshingTools;
65
+ private pendingToolRefresh;
66
+ private isRefreshingResources;
67
+ private pendingResourceRefresh;
68
+ constructor(serverName: string, serverConfig: MCPServerConfig, toolRegistry: ToolRegistry, promptRegistry: PromptRegistry, resourceRegistry: ResourceRegistry, workspaceContext: WorkspaceContext, cliConfig: Config, debugMode: boolean, onToolsUpdated?: ((signal?: AbortSignal) => Promise<void>) | undefined);
65
69
  /**
66
70
  * Connects to the MCP server.
67
71
  */
@@ -82,6 +86,22 @@ export declare class McpClient {
82
86
  private assertConnected;
83
87
  private discoverTools;
84
88
  private discoverPrompts;
89
+ private discoverResources;
90
+ private updateResourceRegistry;
91
+ readResource(uri: string): Promise<ReadResourceResult>;
92
+ /**
93
+ * Registers notification handlers for dynamic updates from the MCP server.
94
+ * This includes handlers for tool list changes and resource list changes.
95
+ */
96
+ private registerNotificationHandlers;
97
+ /**
98
+ * Refreshes the resources for this server by re-querying the MCP `resources/list` endpoint.
99
+ *
100
+ * This method implements a **Coalescing Pattern** to handle rapid bursts of notifications
101
+ * (e.g., during server startup or bulk updates) without overwhelming the server or
102
+ * creating race conditions in the ResourceRegistry.
103
+ */
104
+ private refreshResources;
85
105
  getServerConfig(): MCPServerConfig;
86
106
  getInstructions(): string | undefined;
87
107
  /**
@@ -174,6 +194,7 @@ export declare function discoverTools(mcpServerName: string, mcpServerConfig: MC
174
194
  * @param mcpClient The active MCP client instance.
175
195
  */
176
196
  export declare function discoverPrompts(mcpServerName: string, mcpClient: Client, promptRegistry: PromptRegistry): Promise<Prompt[]>;
197
+ export declare function discoverResources(mcpServerName: string, mcpClient: Client): Promise<Resource[]>;
177
198
  /**
178
199
  * Invokes a prompt on a connected MCP client.
179
200
  *
@@ -8,7 +8,7 @@ import { AjvJsonSchemaValidator } from '@modelcontextprotocol/sdk/validation/ajv
8
8
  import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
9
9
  import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
10
10
  import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
11
- import { ListRootsRequestSchema, ToolListChangedNotificationSchema, } from '@modelcontextprotocol/sdk/types.js';
11
+ import { ListResourcesResultSchema, ListRootsRequestSchema, ReadResourceResultSchema, ResourceListChangedNotificationSchema, ToolListChangedNotificationSchema, } from '@modelcontextprotocol/sdk/types.js';
12
12
  import { parse } from 'shell-quote';
13
13
  import { AuthProviderType } from '../config/config.js';
14
14
  import { GoogleCredentialProvider } from '../mcp/google-auth-provider.js';
@@ -60,6 +60,7 @@ export class McpClient {
60
60
  serverConfig;
61
61
  toolRegistry;
62
62
  promptRegistry;
63
+ resourceRegistry;
63
64
  workspaceContext;
64
65
  cliConfig;
65
66
  debugMode;
@@ -67,13 +68,16 @@ export class McpClient {
67
68
  client;
68
69
  transport;
69
70
  status = MCPServerStatus.DISCONNECTED;
70
- isRefreshing = false;
71
- pendingRefresh = false;
72
- constructor(serverName, serverConfig, toolRegistry, promptRegistry, workspaceContext, cliConfig, debugMode, onToolsUpdated) {
71
+ isRefreshingTools = false;
72
+ pendingToolRefresh = false;
73
+ isRefreshingResources = false;
74
+ pendingResourceRefresh = false;
75
+ constructor(serverName, serverConfig, toolRegistry, promptRegistry, resourceRegistry, workspaceContext, cliConfig, debugMode, onToolsUpdated) {
73
76
  this.serverName = serverName;
74
77
  this.serverConfig = serverConfig;
75
78
  this.toolRegistry = toolRegistry;
76
79
  this.promptRegistry = promptRegistry;
80
+ this.resourceRegistry = resourceRegistry;
77
81
  this.workspaceContext = workspaceContext;
78
82
  this.cliConfig = cliConfig;
79
83
  this.debugMode = debugMode;
@@ -89,15 +93,7 @@ export class McpClient {
89
93
  this.updateStatus(MCPServerStatus.CONNECTING);
90
94
  try {
91
95
  this.client = await connectToMcpServer(this.serverName, this.serverConfig, this.debugMode, this.workspaceContext);
92
- // setup dynamic tool listener
93
- const capabilities = this.client.getServerCapabilities();
94
- if (capabilities?.tools?.listChanged) {
95
- debugLogger.log(`Server '${this.serverName}' supports tool updates. Listening for changes...`);
96
- this.client.setNotificationHandler(ToolListChangedNotificationSchema, async () => {
97
- debugLogger.log(`🔔 Received tool update notification from '${this.serverName}'`);
98
- await this.refreshTools();
99
- });
100
- }
96
+ this.registerNotificationHandlers();
101
97
  const originalOnError = this.client.onerror;
102
98
  this.client.onerror = (error) => {
103
99
  if (this.status !== MCPServerStatus.CONNECTED) {
@@ -122,8 +118,10 @@ export class McpClient {
122
118
  this.assertConnected();
123
119
  const prompts = await this.discoverPrompts();
124
120
  const tools = await this.discoverTools(cliConfig);
125
- if (prompts.length === 0 && tools.length === 0) {
126
- throw new Error('No prompts or tools found on the server.');
121
+ const resources = await this.discoverResources();
122
+ this.updateResourceRegistry(resources);
123
+ if (prompts.length === 0 && tools.length === 0 && resources.length === 0) {
124
+ throw new Error('No prompts, tools, or resources found on the server.');
127
125
  }
128
126
  for (const tool of tools) {
129
127
  this.toolRegistry.registerTool(tool);
@@ -139,6 +137,7 @@ export class McpClient {
139
137
  }
140
138
  this.toolRegistry.removeMcpToolsByServer(this.serverName);
141
139
  this.promptRegistry.removePromptsByServer(this.serverName);
140
+ this.resourceRegistry.removeResourcesByServer(this.serverName);
142
141
  this.updateStatus(MCPServerStatus.DISCONNECTING);
143
142
  const client = this.client;
144
143
  this.client = undefined;
@@ -175,6 +174,88 @@ export class McpClient {
175
174
  this.assertConnected();
176
175
  return discoverPrompts(this.serverName, this.client, this.promptRegistry);
177
176
  }
177
+ async discoverResources() {
178
+ this.assertConnected();
179
+ return discoverResources(this.serverName, this.client);
180
+ }
181
+ updateResourceRegistry(resources) {
182
+ this.resourceRegistry.setResourcesForServer(this.serverName, resources);
183
+ }
184
+ async readResource(uri) {
185
+ this.assertConnected();
186
+ return this.client.request({
187
+ method: 'resources/read',
188
+ params: { uri },
189
+ }, ReadResourceResultSchema);
190
+ }
191
+ /**
192
+ * Registers notification handlers for dynamic updates from the MCP server.
193
+ * This includes handlers for tool list changes and resource list changes.
194
+ */
195
+ registerNotificationHandlers() {
196
+ if (!this.client) {
197
+ return;
198
+ }
199
+ const capabilities = this.client.getServerCapabilities();
200
+ if (capabilities?.tools?.listChanged) {
201
+ debugLogger.log(`Server '${this.serverName}' supports tool updates. Listening for changes...`);
202
+ this.client.setNotificationHandler(ToolListChangedNotificationSchema, async () => {
203
+ debugLogger.log(`🔔 Received tool update notification from '${this.serverName}'`);
204
+ await this.refreshTools();
205
+ });
206
+ }
207
+ if (capabilities?.resources?.listChanged) {
208
+ debugLogger.log(`Server '${this.serverName}' supports resource updates. Listening for changes...`);
209
+ this.client.setNotificationHandler(ResourceListChangedNotificationSchema, async () => {
210
+ debugLogger.log(`🔔 Received resource update notification from '${this.serverName}'`);
211
+ await this.refreshResources();
212
+ });
213
+ }
214
+ }
215
+ /**
216
+ * Refreshes the resources for this server by re-querying the MCP `resources/list` endpoint.
217
+ *
218
+ * This method implements a **Coalescing Pattern** to handle rapid bursts of notifications
219
+ * (e.g., during server startup or bulk updates) without overwhelming the server or
220
+ * creating race conditions in the ResourceRegistry.
221
+ */
222
+ async refreshResources() {
223
+ if (this.isRefreshingResources) {
224
+ debugLogger.log(`Resource refresh for '${this.serverName}' is already in progress. Pending update.`);
225
+ this.pendingResourceRefresh = true;
226
+ return;
227
+ }
228
+ this.isRefreshingResources = true;
229
+ try {
230
+ do {
231
+ this.pendingResourceRefresh = false;
232
+ if (this.status !== MCPServerStatus.CONNECTED || !this.client)
233
+ break;
234
+ const timeoutMs = this.serverConfig.timeout ?? MCP_DEFAULT_TIMEOUT_MSEC;
235
+ const abortController = new AbortController();
236
+ const timeoutId = setTimeout(() => abortController.abort(), timeoutMs);
237
+ let newResources;
238
+ try {
239
+ newResources = await this.discoverResources();
240
+ }
241
+ catch (err) {
242
+ debugLogger.error(`Resource discovery failed during refresh: ${getErrorMessage(err)}`);
243
+ clearTimeout(timeoutId);
244
+ break;
245
+ }
246
+ this.updateResourceRegistry(newResources);
247
+ clearTimeout(timeoutId);
248
+ coreEvents.emitFeedback('info', `Resources updated for server: ${this.serverName}`);
249
+ } while (this.pendingResourceRefresh);
250
+ }
251
+ catch (error) {
252
+ debugLogger.error(`Critical error in resource refresh loop for ${this.serverName}: ${getErrorMessage(error)}`);
253
+ }
254
+ finally {
255
+ this.isRefreshingResources = false;
256
+ this.pendingResourceRefresh = false;
257
+ }
258
+ }
178
259
  getServerConfig() {
179
260
  return this.serverConfig;
180
261
  }
@@ -189,15 +270,15 @@ export class McpClient {
189
270
  * creating race conditions in the global ToolRegistry.
190
271
  */
191
272
  async refreshTools() {
192
- if (this.isRefreshing) {
273
+ if (this.isRefreshingTools) {
193
274
  debugLogger.log(`Tool refresh for '${this.serverName}' is already in progress. Pending update.`);
194
- this.pendingRefresh = true;
275
+ this.pendingToolRefresh = true;
195
276
  return;
196
277
  }
197
- this.isRefreshing = true;
278
+ this.isRefreshingTools = true;
198
279
  try {
199
280
  do {
200
- this.pendingRefresh = false;
281
+ this.pendingToolRefresh = false;
201
282
  if (this.status !== MCPServerStatus.CONNECTED || !this.client)
202
283
  break;
203
284
  const timeoutMs = this.serverConfig.timeout ?? MCP_DEFAULT_TIMEOUT_MSEC;
@@ -224,14 +305,14 @@ export class McpClient {
224
305
  }
225
306
  clearTimeout(timeoutId);
226
307
  coreEvents.emitFeedback('info', `Tools updated for server: ${this.serverName}`);
227
- } while (this.pendingRefresh);
308
+ } while (this.pendingToolRefresh);
228
309
  }
229
310
  catch (error) {
230
311
  debugLogger.error(`Critical error in refresh loop for ${this.serverName}: ${getErrorMessage(error)}`);
231
312
  }
232
313
  finally {
233
- this.isRefreshing = false;
234
- this.pendingRefresh = false;
314
+ this.isRefreshingTools = false;
315
+ this.pendingToolRefresh = false;
235
316
  }
236
317
  }
237
318
  }
@@ -655,6 +736,35 @@ export async function discoverPrompts(mcpServerName, mcpClient, promptRegistry)
655
736
  return [];
656
737
  }
657
738
  }
739
+ export async function discoverResources(mcpServerName, mcpClient) {
740
+ if (mcpClient.getServerCapabilities()?.resources == null) {
741
+ return [];
742
+ }
743
+ const resources = await listResources(mcpServerName, mcpClient);
744
+ return resources;
745
+ }
746
+ async function listResources(mcpServerName, mcpClient) {
747
+ const resources = [];
748
+ let cursor;
749
+ try {
750
+ do {
751
+ const response = await mcpClient.request({
752
+ method: 'resources/list',
753
+ params: cursor ? { cursor } : {},
754
+ }, ListResourcesResultSchema);
755
+ resources.push(...(response.resources ?? []));
756
+ cursor = response.nextCursor ?? undefined;
757
+ } while (cursor);
758
+ }
759
+ catch (error) {
760
+ if (error instanceof Error && error.message?.includes('Method not found')) {
761
+ return [];
762
+ }
763
+ coreEvents.emitFeedback('error', `Error discovering resources from ${mcpServerName}: ${getErrorMessage(error)}`, error);
764
+ throw error;
765
+ }
766
+ return resources;
767
+ }
658
768
  /**
659
769
  * Invokes a prompt on a connected MCP client.
660
770
  *