@samanhappy/mcphub 0.10.5 → 0.11.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.
- package/README.fr.md +36 -152
- package/README.md +34 -255
- package/README.zh.md +33 -212
- package/dist/config/DaoConfigService.js +3 -3
- package/dist/config/DaoConfigService.js.map +1 -1
- package/dist/controllers/authController.js +2 -2
- package/dist/controllers/authController.js.map +1 -1
- package/dist/controllers/groupController.js +24 -24
- package/dist/controllers/groupController.js.map +1 -1
- package/dist/controllers/openApiController.js +1 -1
- package/dist/controllers/openApiController.js.map +1 -1
- package/dist/controllers/serverController.js +96 -62
- package/dist/controllers/serverController.js.map +1 -1
- package/dist/controllers/userController.js +22 -21
- package/dist/controllers/userController.js.map +1 -1
- package/dist/dao/DaoFactory.js +19 -0
- package/dist/dao/DaoFactory.js.map +1 -1
- package/dist/dao/DatabaseDaoFactory.js +68 -0
- package/dist/dao/DatabaseDaoFactory.js.map +1 -0
- package/dist/dao/GroupDaoDbImpl.js +131 -0
- package/dist/dao/GroupDaoDbImpl.js.map +1 -0
- package/dist/dao/ServerDaoDbImpl.js +109 -0
- package/dist/dao/ServerDaoDbImpl.js.map +1 -0
- package/dist/dao/SystemConfigDaoDbImpl.js +56 -0
- package/dist/dao/SystemConfigDaoDbImpl.js.map +1 -0
- package/dist/dao/UserConfigDaoDbImpl.js +61 -0
- package/dist/dao/UserConfigDaoDbImpl.js.map +1 -0
- package/dist/dao/UserDaoDbImpl.js +90 -0
- package/dist/dao/UserDaoDbImpl.js.map +1 -0
- package/dist/dao/examples.js.map +1 -1
- package/dist/dao/index.js +7 -0
- package/dist/dao/index.js.map +1 -1
- package/dist/db/entities/Group.js +49 -0
- package/dist/db/entities/Group.js.map +1 -0
- package/dist/db/entities/Server.js +93 -0
- package/dist/db/entities/Server.js.map +1 -0
- package/dist/db/entities/SystemConfig.js +66 -0
- package/dist/db/entities/SystemConfig.js.map +1 -0
- package/dist/db/entities/User.js +45 -0
- package/dist/db/entities/User.js.map +1 -0
- package/dist/db/entities/UserConfig.js +45 -0
- package/dist/db/entities/UserConfig.js.map +1 -0
- package/dist/db/entities/index.js +7 -2
- package/dist/db/entities/index.js.map +1 -1
- package/dist/db/repositories/GroupRepository.js +81 -0
- package/dist/db/repositories/GroupRepository.js.map +1 -0
- package/dist/db/repositories/ServerRepository.js +80 -0
- package/dist/db/repositories/ServerRepository.js.map +1 -0
- package/dist/db/repositories/SystemConfigRepository.js +64 -0
- package/dist/db/repositories/SystemConfigRepository.js.map +1 -0
- package/dist/db/repositories/UserConfigRepository.js +69 -0
- package/dist/db/repositories/UserConfigRepository.js.map +1 -0
- package/dist/db/repositories/UserRepository.js +68 -0
- package/dist/db/repositories/UserRepository.js.map +1 -0
- package/dist/db/repositories/index.js +6 -1
- package/dist/db/repositories/index.js.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/middlewares/auth.js +1 -1
- package/dist/middlewares/auth.js.map +1 -1
- package/dist/middlewares/userContext.js +1 -1
- package/dist/middlewares/userContext.js.map +1 -1
- package/dist/models/User.js +29 -48
- package/dist/models/User.js.map +1 -1
- package/dist/routes/index.js +2 -1
- package/dist/routes/index.js.map +1 -1
- package/dist/scripts/migrate-to-database.js +5 -0
- package/dist/scripts/migrate-to-database.js.map +1 -0
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/services/dataService.js +62 -12
- package/dist/services/dataService.js.map +1 -1
- package/dist/services/groupService.js +87 -113
- package/dist/services/groupService.js.map +1 -1
- package/dist/services/keepAliveService.js +58 -0
- package/dist/services/keepAliveService.js.map +1 -0
- package/dist/services/mcpOAuthProvider.js +22 -28
- package/dist/services/mcpOAuthProvider.js.map +1 -1
- package/dist/services/mcpService.js +73 -92
- package/dist/services/mcpService.js.map +1 -1
- package/dist/services/oauthServerService.js +18 -12
- package/dist/services/oauthServerService.js.map +1 -1
- package/dist/services/oauthService.js +11 -10
- package/dist/services/oauthService.js.map +1 -1
- package/dist/services/oauthSettingsStore.js +17 -12
- package/dist/services/oauthSettingsStore.js.map +1 -1
- package/dist/services/openApiGeneratorService.js +6 -7
- package/dist/services/openApiGeneratorService.js.map +1 -1
- package/dist/services/registry.js +23 -15
- package/dist/services/registry.js.map +1 -1
- package/dist/services/services.js +2 -6
- package/dist/services/services.js.map +1 -1
- package/dist/services/sseService.js +20 -62
- package/dist/services/sseService.js.map +1 -1
- package/dist/services/userService.js +38 -45
- package/dist/services/userService.js.map +1 -1
- package/dist/utils/migration.js +184 -0
- package/dist/utils/migration.js.map +1 -0
- package/dist/utils/oauthBearer.js +3 -3
- package/dist/utils/oauthBearer.js.map +1 -1
- package/frontend/dist/assets/index-CHCrTZNY.css +1 -0
- package/frontend/dist/assets/index-Dno2pywv.js +251 -0
- package/frontend/dist/assets/index-Dno2pywv.js.map +1 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/services/dataServicex.js +0 -73
- package/dist/services/dataServicex.js.map +0 -1
- package/frontend/dist/assets/index-C_58ZhSt.css +0 -1
- package/frontend/dist/assets/index-qg3ysGil.js +0 -251
- package/frontend/dist/assets/index-qg3ysGil.js.map +0 -1
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;;GAGG;AACH,SAAS,iBAAiB;IACxB,sEAAsE;IACtE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAChF,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,SAAS;IAMpB;QAHQ,iBAAY,GAAkB,IAAI,CAAC;QAIzC,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAE7C,kDAAkD;YAClD,MAAM,qBAAqB,EAAE,CAAC;YAE9B,4EAA4E;YAC5E,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;;GAGG;AACH,SAAS,iBAAiB;IACxB,sEAAsE;IACtE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAChF,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,SAAS;IAMpB;QAHQ,iBAAY,GAAkB,IAAI,CAAC;QAIzC,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAE7C,kDAAkD;YAClD,MAAM,qBAAqB,EAAE,CAAC;YAE9B,4EAA4E;YAC5E,MAAM,iBAAiB,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,IAAI,WAAW,EAAE,CAAC;gBAChB,6DAA6D;gBAC7D,4DAA4D;gBAC5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACnD,CAAC;YAED,iEAAiE;YACjE,MAAM,eAAe,EAAE,CAAC;YAExB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAE/C,mBAAmB,EAAE;iBAClB,IAAI,CAAC,GAAG,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBAEnD,2CAA2C;gBAC3C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,kBAAkB,EAAE,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACtF,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC9B,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,WAAW,EAAE,wBAAwB,EAAE,gBAAgB,CAAC,CAAC;gBACvF,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,GAAG,IAAI,CAAC,QAAQ,kBAAkB,EAClC,wBAAwB,EACxB,oBAAoB,CACrB,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,CACV,GAAG,IAAI,CAAC,QAAQ,kBAAkB,EAClC,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,MAAM,CACb,GAAG,IAAI,CAAC,QAAQ,kBAAkB,EAClC,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;gBAEF,kDAAkD;gBAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CACV,GAAG,IAAI,CAAC,QAAQ,wBAAwB,EACxC,wBAAwB,EACxB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC5C,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,GAAG,IAAI,CAAC,QAAQ,iBAAiB,EACjC,wBAAwB,EACxB,gBAAgB,CACjB,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,GAAG,IAAI,CAAC,QAAQ,wBAAwB,EACxC,wBAAwB,EACxB,oBAAoB,CACrB,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,CACV,GAAG,IAAI,CAAC,QAAQ,wBAAwB,EACxC,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,MAAM,CACb,GAAG,IAAI,CAAC,QAAQ,wBAAwB,EACxC,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;YACJ,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;gBACvD,MAAM,KAAK,CAAC;YACd,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,0BAA0B;gBAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,qBAAqB;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEhD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC3D,oCAAoC;YACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAE/D,gDAAgD;YAChD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;oBAC/C,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAa,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC;gBAEH,gDAAgD;gBAChD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;wBAC9B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;YACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBACnC,GAAG;qBACA,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,yEAAyE,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,IAAI,sCAAsC,CAAC,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,6CAA6C,IAAI,CAAC,IAAI,+BAA+B,CACtF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,qEAAqE;IAC7D,oBAAoB;QAC1B,kCAAkC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC;QAC3C,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QAEvC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,yCAAyC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE3C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mDAAmD;QACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAEpE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,gCAAgC,gBAAgB,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IACE,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAC/B,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,EACxD,CAAC;YACD,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,gBAAgB,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yEAAyE;IACjE,eAAe;QACrB,0EAA0E;QAC1E,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;CACF;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -1,18 +1,68 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { UserContextService } from './userContextService.js';
|
|
2
|
+
export class DataService {
|
|
3
|
+
filterData(data, user) {
|
|
4
|
+
// Use passed user parameter if available, otherwise fall back to context
|
|
5
|
+
const currentUser = user || UserContextService.getInstance().getCurrentUser();
|
|
6
|
+
if (!currentUser || currentUser.isAdmin) {
|
|
7
|
+
return data;
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return data.filter((item) => item.owner === currentUser?.username);
|
|
11
|
+
}
|
|
4
12
|
}
|
|
5
|
-
|
|
6
|
-
|
|
13
|
+
filterSettings(settings, user) {
|
|
14
|
+
// Use passed user parameter if available, otherwise fall back to context
|
|
15
|
+
const currentUser = user || UserContextService.getInstance().getCurrentUser();
|
|
16
|
+
if (!currentUser || currentUser.isAdmin) {
|
|
17
|
+
const result = { ...settings };
|
|
18
|
+
delete result.userConfigs;
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const result = { ...settings };
|
|
23
|
+
// TODO: apply userConfig to filter settings as needed
|
|
24
|
+
// const userConfig = settings.userConfigs?.[currentUser?.username || ''];
|
|
25
|
+
delete result.userConfigs;
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
7
28
|
}
|
|
8
|
-
|
|
9
|
-
|
|
29
|
+
mergeSettings(all, newSettings, user) {
|
|
30
|
+
// Use passed user parameter if available, otherwise fall back to context
|
|
31
|
+
const currentUser = user || UserContextService.getInstance().getCurrentUser();
|
|
32
|
+
if (!currentUser || currentUser.isAdmin) {
|
|
33
|
+
const result = { ...all };
|
|
34
|
+
result.mcpServers = newSettings.mcpServers;
|
|
35
|
+
result.users = newSettings.users;
|
|
36
|
+
result.systemConfig = newSettings.systemConfig;
|
|
37
|
+
result.groups = newSettings.groups;
|
|
38
|
+
result.oauthClients = newSettings.oauthClients;
|
|
39
|
+
result.oauthTokens = newSettings.oauthTokens;
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const result = JSON.parse(JSON.stringify(all));
|
|
44
|
+
if (!result.userConfigs) {
|
|
45
|
+
result.userConfigs = {};
|
|
46
|
+
}
|
|
47
|
+
const systemConfig = newSettings.systemConfig || {};
|
|
48
|
+
const userConfig = {
|
|
49
|
+
routing: systemConfig.routing
|
|
50
|
+
? {
|
|
51
|
+
// TODO: only allow modifying certain fields based on userConfig permissions
|
|
52
|
+
}
|
|
53
|
+
: undefined,
|
|
54
|
+
};
|
|
55
|
+
result.userConfigs[currentUser?.username || ''] = userConfig;
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
10
58
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
59
|
+
getPermissions(user) {
|
|
60
|
+
if (user && user.isAdmin) {
|
|
61
|
+
return ['*', 'x'];
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
return [''];
|
|
65
|
+
}
|
|
16
66
|
}
|
|
17
67
|
}
|
|
18
68
|
//# sourceMappingURL=dataService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataService.js","sourceRoot":"","sources":["../../src/services/dataService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dataService.js","sourceRoot":"","sources":["../../src/services/dataService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,OAAO,WAAW;IACtB,UAAU,CAAC,IAAW,EAAE,IAAY;QAClC,yEAAyE;QACzE,MAAM,WAAW,GAAG,IAAI,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAC9E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,QAAQ,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,cAAc,CAAC,QAAqB,EAAE,IAAY;QAChD,yEAAyE;QACzE,MAAM,WAAW,GAAG,IAAI,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAC9E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,WAAW,CAAC;YAC1B,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC/B,sDAAsD;YACtD,0EAA0E;YAC1E,OAAO,MAAM,CAAC,WAAW,CAAC;YAC1B,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,GAAgB,EAAE,WAAwB,EAAE,IAAY;QACpE,yEAAyE;QACzE,MAAM,WAAW,GAAG,IAAI,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAC9E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;YAC1B,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YAC3C,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YACjC,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;YAC/C,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;YAC/C,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;YAC7C,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;YAC1B,CAAC;YACD,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;YACpD,MAAM,UAAU,GAAe;gBAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC3B,CAAC,CAAC;oBACE,4EAA4E;qBAC7E;oBACH,CAAC,CAAC,SAAS;aACd,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC;YAC7D,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,IAAW;QACxB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
-
import { loadSettings, saveSettings } from '../config/index.js';
|
|
3
2
|
import { notifyToolChanged } from './mcpService.js';
|
|
4
3
|
import { getDataService } from './services.js';
|
|
4
|
+
import { getGroupDao, getServerDao, getSystemConfigDao } from '../dao/index.js';
|
|
5
5
|
// Helper function to normalize group servers configuration
|
|
6
6
|
const normalizeGroupServers = (servers) => {
|
|
7
7
|
return servers.map((server) => {
|
|
@@ -14,35 +14,38 @@ const normalizeGroupServers = (servers) => {
|
|
|
14
14
|
});
|
|
15
15
|
};
|
|
16
16
|
// Get all groups
|
|
17
|
-
export const getAllGroups = () => {
|
|
18
|
-
const
|
|
17
|
+
export const getAllGroups = async () => {
|
|
18
|
+
const groupDao = getGroupDao();
|
|
19
|
+
const groups = await groupDao.findAll();
|
|
19
20
|
const dataService = getDataService();
|
|
20
|
-
return dataService.filterData
|
|
21
|
-
? dataService.filterData(settings.groups || [])
|
|
22
|
-
: settings.groups || [];
|
|
21
|
+
return dataService.filterData ? dataService.filterData(groups) : groups;
|
|
23
22
|
};
|
|
24
23
|
// Get group by ID or name
|
|
25
|
-
export const getGroupByIdOrName = (key) => {
|
|
26
|
-
const
|
|
27
|
-
const
|
|
24
|
+
export const getGroupByIdOrName = async (key) => {
|
|
25
|
+
const systemConfigDao = getSystemConfigDao();
|
|
26
|
+
const systemConfig = await systemConfigDao.get();
|
|
27
|
+
const routingConfig = systemConfig?.routing || {
|
|
28
28
|
enableGlobalRoute: true,
|
|
29
29
|
enableGroupNameRoute: true,
|
|
30
30
|
};
|
|
31
|
-
const groups = getAllGroups();
|
|
31
|
+
const groups = await getAllGroups();
|
|
32
32
|
return (groups.find((group) => group.id === key || (group.name === key && routingConfig.enableGroupNameRoute)) || undefined);
|
|
33
33
|
};
|
|
34
34
|
// Create a new group
|
|
35
|
-
export const createGroup = (name, description, servers = [], owner) => {
|
|
35
|
+
export const createGroup = async (name, description, servers = [], owner) => {
|
|
36
36
|
try {
|
|
37
|
-
const
|
|
38
|
-
const
|
|
37
|
+
const groupDao = getGroupDao();
|
|
38
|
+
const serverDao = getServerDao();
|
|
39
39
|
// Check if group with same name already exists
|
|
40
|
-
|
|
40
|
+
const existingGroup = await groupDao.findByName(name);
|
|
41
|
+
if (existingGroup) {
|
|
41
42
|
return null;
|
|
42
43
|
}
|
|
43
44
|
// Normalize servers configuration and filter out non-existent servers
|
|
44
45
|
const normalizedServers = normalizeGroupServers(servers);
|
|
45
|
-
const
|
|
46
|
+
const allServers = await serverDao.findAll();
|
|
47
|
+
const serverNames = new Set(allServers.map((s) => s.name));
|
|
48
|
+
const validServers = normalizedServers.filter((serverConfig) => serverNames.has(serverConfig.name));
|
|
46
49
|
const newGroup = {
|
|
47
50
|
id: uuidv4(),
|
|
48
51
|
name,
|
|
@@ -50,15 +53,8 @@ export const createGroup = (name, description, servers = [], owner) => {
|
|
|
50
53
|
servers: validServers,
|
|
51
54
|
owner: owner || 'admin',
|
|
52
55
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
settings.groups = [];
|
|
56
|
-
}
|
|
57
|
-
settings.groups.push(newGroup);
|
|
58
|
-
if (!saveSettings(settings)) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
return newGroup;
|
|
56
|
+
const createdGroup = await groupDao.create(newGroup);
|
|
57
|
+
return createdGroup;
|
|
62
58
|
}
|
|
63
59
|
catch (error) {
|
|
64
60
|
console.error('Failed to create group:', error);
|
|
@@ -66,34 +62,32 @@ export const createGroup = (name, description, servers = [], owner) => {
|
|
|
66
62
|
}
|
|
67
63
|
};
|
|
68
64
|
// Update an existing group
|
|
69
|
-
export const updateGroup = (id, data) => {
|
|
65
|
+
export const updateGroup = async (id, data) => {
|
|
70
66
|
try {
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const groupIndex = settings.groups.findIndex((group) => group.id === id);
|
|
76
|
-
if (groupIndex === -1) {
|
|
67
|
+
const groupDao = getGroupDao();
|
|
68
|
+
const serverDao = getServerDao();
|
|
69
|
+
const existingGroup = await groupDao.findById(id);
|
|
70
|
+
if (!existingGroup) {
|
|
77
71
|
return null;
|
|
78
72
|
}
|
|
79
73
|
// Check for name uniqueness if name is being updated
|
|
80
|
-
if (data.name &&
|
|
81
|
-
|
|
74
|
+
if (data.name && data.name !== existingGroup.name) {
|
|
75
|
+
const groupWithName = await groupDao.findByName(data.name);
|
|
76
|
+
if (groupWithName) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
82
79
|
}
|
|
83
80
|
// If servers array is provided, validate server existence and normalize format
|
|
84
81
|
if (data.servers) {
|
|
85
82
|
const normalizedServers = normalizeGroupServers(data.servers);
|
|
86
|
-
|
|
83
|
+
const allServers = await serverDao.findAll();
|
|
84
|
+
const serverNames = new Set(allServers.map((s) => s.name));
|
|
85
|
+
data.servers = normalizedServers.filter((serverConfig) => serverNames.has(serverConfig.name));
|
|
87
86
|
}
|
|
88
|
-
const updatedGroup =
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
};
|
|
92
|
-
settings.groups[groupIndex] = updatedGroup;
|
|
93
|
-
if (!saveSettings(settings)) {
|
|
94
|
-
return null;
|
|
87
|
+
const updatedGroup = await groupDao.update(id, data);
|
|
88
|
+
if (updatedGroup) {
|
|
89
|
+
notifyToolChanged();
|
|
95
90
|
}
|
|
96
|
-
notifyToolChanged();
|
|
97
91
|
return updatedGroup;
|
|
98
92
|
}
|
|
99
93
|
catch (error) {
|
|
@@ -103,25 +97,24 @@ export const updateGroup = (id, data) => {
|
|
|
103
97
|
};
|
|
104
98
|
// Update servers in a group (batch update)
|
|
105
99
|
// Update group servers (maintaining backward compatibility)
|
|
106
|
-
export const updateGroupServers = (groupId, servers) => {
|
|
100
|
+
export const updateGroupServers = async (groupId, servers) => {
|
|
107
101
|
try {
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const groupIndex = settings.groups.findIndex((group) => group.id === groupId);
|
|
113
|
-
if (groupIndex === -1) {
|
|
102
|
+
const groupDao = getGroupDao();
|
|
103
|
+
const serverDao = getServerDao();
|
|
104
|
+
const existingGroup = await groupDao.findById(groupId);
|
|
105
|
+
if (!existingGroup) {
|
|
114
106
|
return null;
|
|
115
107
|
}
|
|
116
108
|
// Normalize and filter out non-existent servers
|
|
117
109
|
const normalizedServers = normalizeGroupServers(servers);
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
110
|
+
const allServers = await serverDao.findAll();
|
|
111
|
+
const serverNames = new Set(allServers.map((s) => s.name));
|
|
112
|
+
const validServers = normalizedServers.filter((serverConfig) => serverNames.has(serverConfig.name));
|
|
113
|
+
const updatedGroup = await groupDao.update(groupId, { servers: validServers });
|
|
114
|
+
if (updatedGroup) {
|
|
115
|
+
notifyToolChanged();
|
|
122
116
|
}
|
|
123
|
-
|
|
124
|
-
return settings.groups[groupIndex];
|
|
117
|
+
return updatedGroup;
|
|
125
118
|
}
|
|
126
119
|
catch (error) {
|
|
127
120
|
console.error(`Failed to update servers for group ${groupId}:`, error);
|
|
@@ -129,18 +122,10 @@ export const updateGroupServers = (groupId, servers) => {
|
|
|
129
122
|
}
|
|
130
123
|
};
|
|
131
124
|
// Delete a group
|
|
132
|
-
export const deleteGroup = (id) => {
|
|
125
|
+
export const deleteGroup = async (id) => {
|
|
133
126
|
try {
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
const initialLength = settings.groups.length;
|
|
139
|
-
settings.groups = settings.groups.filter((group) => group.id !== id);
|
|
140
|
-
if (settings.groups.length === initialLength) {
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
return saveSettings(settings);
|
|
127
|
+
const groupDao = getGroupDao();
|
|
128
|
+
return await groupDao.delete(id);
|
|
144
129
|
}
|
|
145
130
|
catch (error) {
|
|
146
131
|
console.error(`Failed to delete group ${id}:`, error);
|
|
@@ -148,29 +133,28 @@ export const deleteGroup = (id) => {
|
|
|
148
133
|
}
|
|
149
134
|
};
|
|
150
135
|
// Add server to group
|
|
151
|
-
export const addServerToGroup = (groupId, serverName) => {
|
|
136
|
+
export const addServerToGroup = async (groupId, serverName) => {
|
|
152
137
|
try {
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
138
|
+
const groupDao = getGroupDao();
|
|
139
|
+
const serverDao = getServerDao();
|
|
157
140
|
// Verify server exists
|
|
158
|
-
|
|
141
|
+
const server = await serverDao.findById(serverName);
|
|
142
|
+
if (!server) {
|
|
159
143
|
return null;
|
|
160
144
|
}
|
|
161
|
-
const
|
|
162
|
-
if (
|
|
145
|
+
const group = await groupDao.findById(groupId);
|
|
146
|
+
if (!group) {
|
|
163
147
|
return null;
|
|
164
148
|
}
|
|
165
|
-
const group = settings.groups[groupIndex];
|
|
166
149
|
const normalizedServers = normalizeGroupServers(group.servers);
|
|
167
150
|
// Add server to group if not already in it
|
|
168
|
-
if (!normalizedServers.some((
|
|
151
|
+
if (!normalizedServers.some((s) => s.name === serverName)) {
|
|
169
152
|
normalizedServers.push({ name: serverName, tools: 'all' });
|
|
170
|
-
|
|
171
|
-
if (
|
|
172
|
-
|
|
153
|
+
const updatedGroup = await groupDao.update(groupId, { servers: normalizedServers });
|
|
154
|
+
if (updatedGroup) {
|
|
155
|
+
notifyToolChanged();
|
|
173
156
|
}
|
|
157
|
+
return updatedGroup;
|
|
174
158
|
}
|
|
175
159
|
notifyToolChanged();
|
|
176
160
|
return group;
|
|
@@ -181,23 +165,16 @@ export const addServerToGroup = (groupId, serverName) => {
|
|
|
181
165
|
}
|
|
182
166
|
};
|
|
183
167
|
// Remove server from group
|
|
184
|
-
export const removeServerFromGroup = (groupId, serverName) => {
|
|
168
|
+
export const removeServerFromGroup = async (groupId, serverName) => {
|
|
185
169
|
try {
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
190
|
-
const groupIndex = settings.groups.findIndex((group) => group.id === groupId);
|
|
191
|
-
if (groupIndex === -1) {
|
|
170
|
+
const groupDao = getGroupDao();
|
|
171
|
+
const group = await groupDao.findById(groupId);
|
|
172
|
+
if (!group) {
|
|
192
173
|
return null;
|
|
193
174
|
}
|
|
194
|
-
const group = settings.groups[groupIndex];
|
|
195
175
|
const normalizedServers = normalizeGroupServers(group.servers);
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return null;
|
|
199
|
-
}
|
|
200
|
-
return group;
|
|
176
|
+
const filteredServers = normalizedServers.filter((server) => server.name !== serverName);
|
|
177
|
+
return await groupDao.update(groupId, { servers: filteredServers });
|
|
201
178
|
}
|
|
202
179
|
catch (error) {
|
|
203
180
|
console.error(`Failed to remove server ${serverName} from group ${groupId}:`, error);
|
|
@@ -205,57 +182,54 @@ export const removeServerFromGroup = (groupId, serverName) => {
|
|
|
205
182
|
}
|
|
206
183
|
};
|
|
207
184
|
// Get all servers in a group
|
|
208
|
-
export const getServersInGroup = (groupId) => {
|
|
209
|
-
const group = getGroupByIdOrName(groupId);
|
|
185
|
+
export const getServersInGroup = async (groupId) => {
|
|
186
|
+
const group = await getGroupByIdOrName(groupId);
|
|
210
187
|
if (!group)
|
|
211
188
|
return [];
|
|
212
189
|
const normalizedServers = normalizeGroupServers(group.servers);
|
|
213
190
|
return normalizedServers.map((server) => server.name);
|
|
214
191
|
};
|
|
215
192
|
// Get server configuration from group (including tool selection)
|
|
216
|
-
export const getServerConfigInGroup = (groupId, serverName) => {
|
|
217
|
-
const group = getGroupByIdOrName(groupId);
|
|
193
|
+
export const getServerConfigInGroup = async (groupId, serverName) => {
|
|
194
|
+
const group = await getGroupByIdOrName(groupId);
|
|
218
195
|
if (!group)
|
|
219
196
|
return undefined;
|
|
220
197
|
const normalizedServers = normalizeGroupServers(group.servers);
|
|
221
198
|
return normalizedServers.find((server) => server.name === serverName);
|
|
222
199
|
};
|
|
223
200
|
// Get all server configurations in a group
|
|
224
|
-
export const getServerConfigsInGroup = (groupId) => {
|
|
225
|
-
const group = getGroupByIdOrName(groupId);
|
|
201
|
+
export const getServerConfigsInGroup = async (groupId) => {
|
|
202
|
+
const group = await getGroupByIdOrName(groupId);
|
|
226
203
|
if (!group)
|
|
227
204
|
return [];
|
|
228
205
|
return normalizeGroupServers(group.servers);
|
|
229
206
|
};
|
|
230
207
|
// Update tools selection for a specific server in a group
|
|
231
|
-
export const updateServerToolsInGroup = (groupId, serverName, tools) => {
|
|
208
|
+
export const updateServerToolsInGroup = async (groupId, serverName, tools) => {
|
|
232
209
|
try {
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
const groupIndex = settings.groups.findIndex((group) => group.id === groupId);
|
|
238
|
-
if (groupIndex === -1) {
|
|
210
|
+
const groupDao = getGroupDao();
|
|
211
|
+
const serverDao = getServerDao();
|
|
212
|
+
const group = await groupDao.findById(groupId);
|
|
213
|
+
if (!group) {
|
|
239
214
|
return null;
|
|
240
215
|
}
|
|
241
216
|
// Verify server exists
|
|
242
|
-
|
|
217
|
+
const server = await serverDao.findById(serverName);
|
|
218
|
+
if (!server) {
|
|
243
219
|
return null;
|
|
244
220
|
}
|
|
245
|
-
const group = settings.groups[groupIndex];
|
|
246
221
|
const normalizedServers = normalizeGroupServers(group.servers);
|
|
247
|
-
const serverIndex = normalizedServers.findIndex((
|
|
222
|
+
const serverIndex = normalizedServers.findIndex((s) => s.name === serverName);
|
|
248
223
|
if (serverIndex === -1) {
|
|
249
224
|
return null; // Server not in group
|
|
250
225
|
}
|
|
251
226
|
// Update the tools configuration for the server
|
|
252
227
|
normalizedServers[serverIndex].tools = tools;
|
|
253
|
-
|
|
254
|
-
if (
|
|
255
|
-
|
|
228
|
+
const updatedGroup = await groupDao.update(groupId, { servers: normalizedServers });
|
|
229
|
+
if (updatedGroup) {
|
|
230
|
+
notifyToolChanged();
|
|
256
231
|
}
|
|
257
|
-
|
|
258
|
-
return group;
|
|
232
|
+
return updatedGroup;
|
|
259
233
|
}
|
|
260
234
|
catch (error) {
|
|
261
235
|
console.error(`Failed to update tools for server ${serverName} in group ${groupId}:`, error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupService.js","sourceRoot":"","sources":["../../src/services/groupService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"groupService.js","sourceRoot":"","sources":["../../src/services/groupService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
2
|
+
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
3
|
+
/**
|
|
4
|
+
* Set up keep-alive ping for MCP client connections (SSE or Streamable HTTP).
|
|
5
|
+
* Keepalive is controlled per-server via `serverConfig.enableKeepAlive` (default off).
|
|
6
|
+
*/
|
|
7
|
+
export const setupClientKeepAlive = async (serverInfo, serverConfig) => {
|
|
8
|
+
// Only set up keep-alive for SSE or Streamable HTTP client transports
|
|
9
|
+
const isSSE = serverInfo.transport instanceof SSEClientTransport;
|
|
10
|
+
const isStreamableHttp = serverInfo.transport instanceof StreamableHTTPClientTransport;
|
|
11
|
+
if (!isSSE && !isStreamableHttp) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const enabled = serverConfig.enableKeepAlive === true;
|
|
15
|
+
if (!enabled) {
|
|
16
|
+
// Ensure any previous timer is cleared
|
|
17
|
+
if (serverInfo.keepAliveIntervalId) {
|
|
18
|
+
clearInterval(serverInfo.keepAliveIntervalId);
|
|
19
|
+
serverInfo.keepAliveIntervalId = undefined;
|
|
20
|
+
}
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Clear any existing interval first
|
|
24
|
+
if (serverInfo.keepAliveIntervalId) {
|
|
25
|
+
clearInterval(serverInfo.keepAliveIntervalId);
|
|
26
|
+
}
|
|
27
|
+
// Default interval: 60 seconds
|
|
28
|
+
const interval = serverConfig.keepAliveInterval || 60000;
|
|
29
|
+
serverInfo.keepAliveIntervalId = setInterval(async () => {
|
|
30
|
+
try {
|
|
31
|
+
if (serverInfo.client && serverInfo.status === 'connected') {
|
|
32
|
+
// Use client.ping() if available, otherwise fallback to listTools
|
|
33
|
+
if (typeof serverInfo.client.ping === 'function') {
|
|
34
|
+
await serverInfo.client.ping();
|
|
35
|
+
console.log(`Keep-alive ping successful for server: ${serverInfo.name}`);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
await serverInfo.client.listTools({ timeout: 5000 }).catch(() => void 0);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.warn(`Keep-alive ping failed for server ${serverInfo.name}:`, error);
|
|
44
|
+
}
|
|
45
|
+
}, interval);
|
|
46
|
+
console.log(`Keep-alive enabled for server ${serverInfo.name} at ${Math.round(interval / 1000)}s interval`);
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Clear keep-alive timer for a server.
|
|
50
|
+
*/
|
|
51
|
+
export const clearClientKeepAlive = (serverInfo) => {
|
|
52
|
+
if (serverInfo.keepAliveIntervalId) {
|
|
53
|
+
clearInterval(serverInfo.keepAliveIntervalId);
|
|
54
|
+
serverInfo.keepAliveIntervalId = undefined;
|
|
55
|
+
console.log(`Cleared keep-alive interval for server: ${serverInfo.name}`);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=keepAliveService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keepAliveService.js","sourceRoot":"","sources":["../../src/services/keepAliveService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAQnG;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,UAAsB,EACtB,YAA0B,EACX,EAAE;IACjB,sEAAsE;IACtE,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,YAAY,kBAAkB,CAAC;IACjE,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,YAAY,6BAA6B,CAAC;IACvF,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,eAAe,KAAK,IAAI,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,uCAAuC;QACvC,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACnC,aAAa,CAAC,UAAU,CAAC,mBAAqC,CAAC,CAAC;YAChE,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAC7C,CAAC;QACD,OAAO;IACT,CAAC;IAED,oCAAoC;IACpC,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACnC,aAAa,CAAC,UAAU,CAAC,mBAAqC,CAAC,CAAC;IAClE,CAAC;IAED,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,iBAAiB,IAAI,KAAK,CAAC;IAEzD,UAAU,CAAC,mBAAmB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtD,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3D,kEAAkE;gBAClE,IAAI,OAAQ,UAAU,CAAC,MAAc,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC1D,MAAO,UAAU,CAAC,MAAc,CAAC,IAAI,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,0CAA0C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3E,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,UAAU,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEb,OAAO,CAAC,GAAG,CACT,iCAAiC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAC/F,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAsB,EAAQ,EAAE;IACnE,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACnC,aAAa,CAAC,UAAU,CAAC,mBAAqC,CAAC,CAAC;QAChE,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,2CAA2C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC,CAAC"}
|