imcp 0.1.3 → 0.1.5

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 (239) hide show
  1. package/README.md +21 -4
  2. package/dist/cli/commands/install.js.map +1 -0
  3. package/dist/cli/commands/list.js.map +1 -0
  4. package/dist/cli/commands/pull.js.map +1 -0
  5. package/dist/cli/commands/serve.js.map +1 -0
  6. package/dist/cli/commands/start.d.ts +2 -0
  7. package/dist/cli/commands/start.js +32 -0
  8. package/dist/cli/commands/start.js.map +1 -0
  9. package/dist/cli/commands/sync.d.ts +2 -0
  10. package/dist/cli/commands/sync.js +17 -0
  11. package/dist/cli/commands/sync.js.map +1 -0
  12. package/dist/cli/commands/uninstall.js.map +1 -0
  13. package/dist/cli/index.js +0 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/core/ConfigurationLoader.d.ts +32 -0
  16. package/{src/core/loaders/ConfigurationLoader.ts → dist/core/ConfigurationLoader.js} +236 -298
  17. package/dist/core/ConfigurationLoader.js.map +1 -0
  18. package/dist/core/ConfigurationProvider.d.ts +35 -0
  19. package/{src/core/loaders/ConfigurationProvider.ts → dist/core/ConfigurationProvider.js} +375 -462
  20. package/dist/core/ConfigurationProvider.js.map +1 -0
  21. package/dist/core/InstallationService.d.ts +50 -0
  22. package/dist/core/InstallationService.js +350 -0
  23. package/dist/core/InstallationService.js.map +1 -0
  24. package/dist/core/MCPManager.d.ts +28 -0
  25. package/dist/core/MCPManager.js +188 -0
  26. package/dist/core/MCPManager.js.map +1 -0
  27. package/dist/core/RequirementService.d.ts +40 -0
  28. package/dist/core/RequirementService.js +110 -0
  29. package/dist/core/RequirementService.js.map +1 -0
  30. package/dist/core/ServerSchemaLoader.d.ts +11 -0
  31. package/dist/core/ServerSchemaLoader.js +43 -0
  32. package/dist/core/ServerSchemaLoader.js.map +1 -0
  33. package/dist/core/ServerSchemaProvider.d.ts +17 -0
  34. package/dist/core/ServerSchemaProvider.js +120 -0
  35. package/dist/core/ServerSchemaProvider.js.map +1 -0
  36. package/dist/core/constants.d.ts +47 -0
  37. package/dist/core/constants.js +94 -0
  38. package/dist/core/constants.js.map +1 -0
  39. package/dist/core/installers/BaseInstaller.d.ts +74 -0
  40. package/dist/core/installers/BaseInstaller.js +253 -0
  41. package/dist/core/installers/BaseInstaller.js.map +1 -0
  42. package/dist/core/installers/ClientInstaller.d.ts +23 -0
  43. package/dist/core/installers/ClientInstaller.js +564 -0
  44. package/dist/core/installers/ClientInstaller.js.map +1 -0
  45. package/dist/core/installers/CommandInstaller.d.ts +37 -0
  46. package/{src/core/installers/requirements/CommandInstaller.ts → dist/core/installers/CommandInstaller.js} +173 -231
  47. package/dist/core/installers/CommandInstaller.js.map +1 -0
  48. package/dist/core/installers/GeneralInstaller.d.ts +33 -0
  49. package/dist/core/installers/GeneralInstaller.js +85 -0
  50. package/dist/core/installers/GeneralInstaller.js.map +1 -0
  51. package/dist/core/installers/InstallerFactory.d.ts +54 -0
  52. package/{src/core/installers/requirements/InstallerFactory.ts → dist/core/installers/InstallerFactory.js} +97 -112
  53. package/dist/core/installers/InstallerFactory.js.map +1 -0
  54. package/dist/core/installers/NpmInstaller.d.ts +26 -0
  55. package/dist/core/installers/NpmInstaller.js +127 -0
  56. package/dist/core/installers/NpmInstaller.js.map +1 -0
  57. package/dist/core/installers/PipInstaller.d.ts +28 -0
  58. package/dist/core/installers/PipInstaller.js +127 -0
  59. package/dist/core/installers/PipInstaller.js.map +1 -0
  60. package/{src/core/installers/requirements/RequirementInstaller.ts → dist/core/installers/RequirementInstaller.d.ts} +33 -42
  61. package/dist/core/installers/RequirementInstaller.js +3 -0
  62. package/dist/core/installers/RequirementInstaller.js.map +1 -0
  63. package/dist/core/installers/clients/BaseClientInstaller.js.map +1 -0
  64. package/dist/core/installers/clients/ClientInstaller.js.map +1 -0
  65. package/dist/core/installers/clients/ClientInstallerFactory.js.map +1 -0
  66. package/dist/core/installers/clients/ClineInstaller.js.map +1 -0
  67. package/dist/core/installers/clients/ExtensionInstaller.js.map +1 -0
  68. package/dist/core/installers/clients/GithubCopilotInstaller.js.map +1 -0
  69. package/dist/core/installers/clients/MSRooCodeInstaller.js.map +1 -0
  70. package/dist/core/installers/index.js.map +1 -0
  71. package/dist/core/installers/requirements/BaseInstaller.js.map +1 -0
  72. package/dist/core/installers/requirements/CommandInstaller.js.map +1 -0
  73. package/dist/core/installers/requirements/GeneralInstaller.js.map +1 -0
  74. package/dist/core/installers/requirements/InstallerFactory.js +2 -0
  75. package/dist/core/installers/requirements/InstallerFactory.js.map +1 -0
  76. package/dist/core/installers/requirements/NpmInstaller.js.map +1 -0
  77. package/dist/core/installers/requirements/NugetInstaller.d.ts +37 -0
  78. package/dist/core/installers/requirements/NugetInstaller.js +189 -0
  79. package/dist/core/installers/requirements/NugetInstaller.js.map +1 -0
  80. package/dist/core/installers/requirements/PipInstaller.js.map +1 -0
  81. package/dist/core/installers/requirements/RequirementInstaller.js.map +1 -0
  82. package/dist/core/loaders/ConfigurationLoader.js.map +1 -0
  83. package/dist/core/loaders/ConfigurationProvider.js.map +1 -0
  84. package/dist/core/loaders/InstallOperationManager.js.map +1 -0
  85. package/dist/core/loaders/ServerSchemaLoader.js.map +1 -0
  86. package/dist/core/loaders/ServerSchemaProvider.js.map +1 -0
  87. package/dist/core/loaders/SystemSettingsManager.js.map +1 -0
  88. package/dist/core/metadatas/constants.js.map +1 -0
  89. package/dist/core/metadatas/recordingConstants.d.ts +2 -0
  90. package/dist/core/metadatas/recordingConstants.js +2 -0
  91. package/dist/core/metadatas/recordingConstants.js.map +1 -0
  92. package/dist/core/metadatas/types.d.ts +1 -1
  93. package/dist/core/metadatas/types.js.map +1 -0
  94. package/dist/core/onboard/FeedOnboardService.js +1 -22
  95. package/dist/core/onboard/FeedOnboardService.js.map +1 -0
  96. package/dist/core/onboard/OnboardProcessor.js.map +1 -0
  97. package/dist/core/onboard/OnboardStatus.js.map +1 -0
  98. package/dist/core/onboard/OnboardStatusManager.js.map +1 -0
  99. package/dist/core/types.d.ts +166 -0
  100. package/dist/core/types.js +16 -0
  101. package/dist/core/types.js.map +1 -0
  102. package/dist/core/validators/FeedValidator.js.map +1 -0
  103. package/dist/core/validators/IServerValidator.js.map +1 -0
  104. package/dist/core/validators/SSEServerValidator.js.map +1 -0
  105. package/dist/core/validators/ServerValidatorFactory.js.map +1 -0
  106. package/dist/core/validators/StdioServerValidator.js +5 -5
  107. package/dist/core/validators/StdioServerValidator.js.map +1 -0
  108. package/dist/index.js.map +1 -0
  109. package/dist/services/InstallRequestValidator.d.ts +21 -0
  110. package/dist/services/InstallRequestValidator.js +99 -0
  111. package/dist/services/InstallRequestValidator.js.map +1 -0
  112. package/dist/services/InstallationService.js.map +1 -0
  113. package/dist/services/MCPManager.js.map +1 -0
  114. package/dist/services/RequirementService.js.map +1 -0
  115. package/dist/services/ServerService.js.map +1 -0
  116. package/dist/services/TelemetryService.js.map +1 -0
  117. package/dist/utils/UpdateCheckTracker.js.map +1 -0
  118. package/dist/utils/adoUtils.js.map +1 -0
  119. package/dist/utils/clientUtils.js.map +1 -0
  120. package/dist/utils/feedUtils.js.map +1 -0
  121. package/dist/utils/githubAuth.js.map +1 -0
  122. package/dist/utils/githubUtils.js.map +1 -0
  123. package/dist/utils/logger.js.map +1 -0
  124. package/dist/utils/macroExpressionUtils.js.map +1 -0
  125. package/dist/utils/osUtils.d.ts +11 -0
  126. package/dist/utils/osUtils.js +100 -0
  127. package/dist/utils/osUtils.js.map +1 -0
  128. package/dist/utils/versionUtils.js.map +1 -0
  129. package/dist/web/contract/serverContract.js.map +1 -0
  130. package/dist/web/public/index.html +1 -1
  131. package/dist/web/public/js/modal/installHandler.js +227 -0
  132. package/dist/web/public/js/modal/loadingUI.js +74 -0
  133. package/dist/web/public/js/modal/messageQueue.js +101 -45
  134. package/dist/web/public/js/modal/modalUI.js +214 -0
  135. package/{src/web/public/js/modal/versionUtils.js → dist/web/public/js/modal/version.js} +1 -1
  136. package/dist/web/public/js/onboard/templates.js +1 -0
  137. package/dist/web/public/js/serverCategoryList.js +3 -3
  138. package/dist/web/public/onboard.html +4 -4
  139. package/dist/web/server.js.map +1 -0
  140. package/package.json +5 -1
  141. package/.github/ISSUE_TEMPLATE/JitAccess.yml +0 -28
  142. package/.github/acl/access.yml +0 -20
  143. package/.github/compliance/inventory.yml +0 -5
  144. package/.github/policies/jit.yml +0 -19
  145. package/.roo/rules-code/rules.md +0 -88
  146. package/dist/core/onboard/InstallOperationManager.d.ts +0 -23
  147. package/dist/core/onboard/InstallOperationManager.js +0 -144
  148. package/docs/ONBOARDING_PAGE_DESIGN.md +0 -260
  149. package/docs/Telemetry.md +0 -136
  150. package/memory-bank/activeContext.md +0 -26
  151. package/memory-bank/decisionLog.md +0 -91
  152. package/memory-bank/productContext.md +0 -41
  153. package/memory-bank/progress.md +0 -35
  154. package/memory-bank/systemPatterns.md +0 -10
  155. package/src/cli/commands/install.ts +0 -139
  156. package/src/cli/commands/list.ts +0 -113
  157. package/src/cli/commands/pull.ts +0 -16
  158. package/src/cli/commands/serve.ts +0 -39
  159. package/src/cli/commands/uninstall.ts +0 -64
  160. package/src/cli/index.ts +0 -82
  161. package/src/core/installers/clients/BaseClientInstaller.ts +0 -341
  162. package/src/core/installers/clients/ClientInstaller.ts +0 -222
  163. package/src/core/installers/clients/ClientInstallerFactory.ts +0 -43
  164. package/src/core/installers/clients/ClineInstaller.ts +0 -35
  165. package/src/core/installers/clients/ExtensionInstaller.ts +0 -165
  166. package/src/core/installers/clients/GithubCopilotInstaller.ts +0 -79
  167. package/src/core/installers/clients/MSRooCodeInstaller.ts +0 -32
  168. package/src/core/installers/index.ts +0 -11
  169. package/src/core/installers/requirements/BaseInstaller.ts +0 -85
  170. package/src/core/installers/requirements/GeneralInstaller.ts +0 -133
  171. package/src/core/installers/requirements/NpmInstaller.ts +0 -271
  172. package/src/core/installers/requirements/PipInstaller.ts +0 -207
  173. package/src/core/loaders/InstallOperationManager.ts +0 -367
  174. package/src/core/loaders/ServerSchemaLoader.ts +0 -117
  175. package/src/core/loaders/ServerSchemaProvider.ts +0 -99
  176. package/src/core/loaders/SystemSettingsManager.ts +0 -278
  177. package/src/core/metadatas/constants.ts +0 -122
  178. package/src/core/metadatas/recordingConstants.ts +0 -62
  179. package/src/core/metadatas/types.ts +0 -202
  180. package/src/core/onboard/FeedOnboardService.ts +0 -524
  181. package/src/core/onboard/OnboardProcessor.ts +0 -356
  182. package/src/core/onboard/OnboardStatus.ts +0 -60
  183. package/src/core/onboard/OnboardStatusManager.ts +0 -416
  184. package/src/core/validators/FeedValidator.ts +0 -135
  185. package/src/core/validators/IServerValidator.ts +0 -21
  186. package/src/core/validators/SSEServerValidator.ts +0 -43
  187. package/src/core/validators/ServerValidatorFactory.ts +0 -51
  188. package/src/core/validators/StdioServerValidator.ts +0 -312
  189. package/src/index.ts +0 -44
  190. package/src/services/InstallationService.ts +0 -102
  191. package/src/services/MCPManager.ts +0 -249
  192. package/src/services/RequirementService.ts +0 -627
  193. package/src/services/ServerService.ts +0 -161
  194. package/src/services/TelemetryService.ts +0 -59
  195. package/src/utils/UpdateCheckTracker.ts +0 -86
  196. package/src/utils/adoUtils.ts +0 -293
  197. package/src/utils/clientUtils.ts +0 -72
  198. package/src/utils/feedUtils.ts +0 -31
  199. package/src/utils/githubAuth.ts +0 -212
  200. package/src/utils/githubUtils.ts +0 -164
  201. package/src/utils/logger.ts +0 -195
  202. package/src/utils/macroExpressionUtils.ts +0 -104
  203. package/src/utils/osUtils.ts +0 -597
  204. package/src/utils/versionUtils.ts +0 -114
  205. package/src/web/contract/serverContract.ts +0 -74
  206. package/src/web/public/css/detailsWidget.css +0 -235
  207. package/src/web/public/css/modal.css +0 -757
  208. package/src/web/public/css/notifications.css +0 -101
  209. package/src/web/public/css/onboard.css +0 -107
  210. package/src/web/public/css/serverCategoryList.css +0 -120
  211. package/src/web/public/css/serverDetails.css +0 -139
  212. package/src/web/public/index.html +0 -359
  213. package/src/web/public/js/api.js +0 -132
  214. package/src/web/public/js/detailsWidget.js +0 -264
  215. package/src/web/public/js/flights/flights.js +0 -127
  216. package/src/web/public/js/modal/index.js +0 -52
  217. package/src/web/public/js/modal/installModal.js +0 -162
  218. package/src/web/public/js/modal/installation.js +0 -266
  219. package/src/web/public/js/modal/loadingModal.js +0 -182
  220. package/src/web/public/js/modal/modalSetup.js +0 -595
  221. package/src/web/public/js/modal/modalUtils.js +0 -37
  222. package/src/web/public/js/modal.js +0 -42
  223. package/src/web/public/js/notifications.js +0 -137
  224. package/src/web/public/js/onboard/formProcessor.js +0 -1037
  225. package/src/web/public/js/onboard/index.js +0 -374
  226. package/src/web/public/js/onboard/publishHandler.js +0 -172
  227. package/src/web/public/js/onboard/state.js +0 -76
  228. package/src/web/public/js/onboard/templates.js +0 -341
  229. package/src/web/public/js/onboard/uiHandlers.js +0 -1076
  230. package/src/web/public/js/onboard/validationHandlers.js +0 -493
  231. package/src/web/public/js/serverCategoryDetails.js +0 -364
  232. package/src/web/public/js/serverCategoryList.js +0 -241
  233. package/src/web/public/js/settings.js +0 -314
  234. package/src/web/public/modal.html +0 -84
  235. package/src/web/public/onboard.html +0 -296
  236. package/src/web/public/settings.html +0 -135
  237. package/src/web/public/styles.css +0 -277
  238. package/src/web/server.ts +0 -478
  239. package/tsconfig.json +0 -18
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigurationProvider.js","sourceRoot":"","sources":["../../src/core/ConfigurationProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { ServerInstallOptions, ServerOperationResult } from './types.js';
2
+ /**
3
+ * Handles the actual installation process for an MCP server.
4
+ */
5
+ export declare class InstallationService {
6
+ private activeInstallations;
7
+ private installerFactory;
8
+ constructor();
9
+ private generateOperationId;
10
+ /**
11
+ * Installs a server based on the provided options and feed configuration.
12
+ * @param serverName The name of the server to install.
13
+ * @param options The installation options.
14
+ * @returns A result object indicating success or failure.
15
+ */
16
+ install(categoryName: string, serverName: string, options: ServerInstallOptions): Promise<ServerOperationResult>;
17
+ /**
18
+ * Process requirement updates specified in serverInstallOptions
19
+ * All updates are processed in parallel for maximum efficiency
20
+ * @param categoryName The category name
21
+ * @param serverName The server name
22
+ * @param requirements The requirements to update
23
+ */
24
+ private processRequirementUpdates;
25
+ /**
26
+ * Checks and installs requirements for a server if needed
27
+ * @param categoryName The category name
28
+ * @param serverName The server name
29
+ * @param options The installation options
30
+ * @returns A failure result if requirements check fails, null if requirements are satisfied
31
+ */
32
+ private checkAndInstallRequirements;
33
+ /**
34
+ * Installs requirements in background without blocking the main thread
35
+ * Requirements with the same order are installed in parallel
36
+ */
37
+ private installRequirementsInBackground;
38
+ /**
39
+ * Helper to update requirement status for failure case
40
+ */
41
+ private updateRequirementFailureStatus;
42
+ /**
43
+ * Helper to update requirement status for in-progress case
44
+ */
45
+ private updateRequirementProgressStatus;
46
+ /**
47
+ * Helper to update requirement status for completion case
48
+ */
49
+ private updateRequirementCompletionStatus;
50
+ }
@@ -0,0 +1,350 @@
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
3
+ import { exec } from 'child_process';
4
+ import util from 'util';
5
+ import { createInstallerFactory } from './installers/index.js';
6
+ import { SUPPORTED_CLIENTS } from './constants.js';
7
+ import { ClientInstaller } from './installers/clients/ClientInstaller.js';
8
+ import { ConfigurationProvider } from './ConfigurationProvider.js';
9
+ import { Logger } from '../utils/logger.js';
10
+ const execPromise = util.promisify(exec);
11
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
12
+ /**
13
+ * Handles the actual installation process for an MCP server.
14
+ */
15
+ export class InstallationService {
16
+ activeInstallations = new Map();
17
+ installerFactory;
18
+ constructor() {
19
+ this.installerFactory = createInstallerFactory();
20
+ }
21
+ generateOperationId() {
22
+ return `install-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
23
+ }
24
+ /**
25
+ * Installs a server based on the provided options and feed configuration.
26
+ * @param serverName The name of the server to install.
27
+ * @param options The installation options.
28
+ * @returns A result object indicating success or failure.
29
+ */
30
+ async install(categoryName, serverName, options) {
31
+ const configProvider = ConfigurationProvider.getInstance();
32
+ const clients = options.targetClients || Object.keys(SUPPORTED_CLIENTS);
33
+ // Process updates for requirements if specified in options
34
+ // Fire off requirement updates in the background without awaiting completion
35
+ if (options.requirements && options.requirements.length > 0) {
36
+ // Start the process but don't await it - it will run in the background
37
+ this.processRequirementUpdates(categoryName, serverName, options)
38
+ .catch(error => {
39
+ console.error(`Error in background requirement updates: ${error instanceof Error ? error.message : String(error)}`);
40
+ });
41
+ }
42
+ // Check if server is already ready
43
+ const isReady = await configProvider.isServerReady(categoryName, serverName, clients);
44
+ if (isReady) {
45
+ return {
46
+ success: true,
47
+ message: 'Server and clients are already installed and ready',
48
+ status: [{
49
+ status: 'completed',
50
+ type: 'install',
51
+ target: 'server',
52
+ message: 'Server and clients are already installed and ready'
53
+ }]
54
+ };
55
+ }
56
+ // Create new ClientInstaller instance for handling installation
57
+ const clientInstaller = new ClientInstaller(categoryName, serverName, clients);
58
+ const requirementsResult = await this.checkAndInstallRequirements(categoryName, serverName, options);
59
+ if (requirementsResult) {
60
+ return requirementsResult;
61
+ }
62
+ // Process client installation regardless of requirements state
63
+ // Each client installer will check requirements before actual installation
64
+ return await clientInstaller.install(options);
65
+ }
66
+ /**
67
+ * Process requirement updates specified in serverInstallOptions
68
+ * All updates are processed in parallel for maximum efficiency
69
+ * @param categoryName The category name
70
+ * @param serverName The server name
71
+ * @param requirements The requirements to update
72
+ */
73
+ async processRequirementUpdates(categoryName, serverName, options) {
74
+ // Use UpdateCheckTracker to prevent concurrent updates
75
+ const updateCheckTracker = await import('../utils/UpdateCheckTracker.js').then(m => m.updateCheckTracker);
76
+ const operationKey = `requirement-updates-${categoryName}-${serverName}`;
77
+ // Check if there's already an update operation in progress for this server
78
+ const canProceed = await updateCheckTracker.startOperation(operationKey);
79
+ if (!canProceed) {
80
+ console.log(`Requirement updates for ${categoryName}/${serverName} already in progress, skipping`);
81
+ return;
82
+ }
83
+ try {
84
+ const configProvider = ConfigurationProvider.getInstance();
85
+ const feedConfig = await configProvider.getFeedConfiguration(categoryName);
86
+ if (!feedConfig) {
87
+ console.error(`Feed configuration not found for category: ${categoryName}`);
88
+ return;
89
+ }
90
+ // Import the RequirementService
91
+ const { requirementService } = await import('./RequirementService.js');
92
+ // Create an array of promises to update all requirements in parallel
93
+ const updatePromises = options.requirements?.map(async (reqToUpdate) => {
94
+ try {
95
+ // Find the full requirement config
96
+ const reqConfig = feedConfig.requirements?.find((r) => r.name === reqToUpdate.name);
97
+ if (!reqConfig) {
98
+ console.error(`Requirement configuration not found for: ${reqToUpdate.name}`);
99
+ return;
100
+ }
101
+ // Get current status
102
+ const currentStatus = await configProvider.getRequirementStatus(categoryName, reqToUpdate.name);
103
+ if (!currentStatus) {
104
+ console.error(`No current status found for requirement: ${reqToUpdate.name}`);
105
+ return;
106
+ }
107
+ // Update requirement status to indicate update in progress
108
+ await configProvider.updateRequirementStatus(categoryName, reqToUpdate.name, {
109
+ ...currentStatus,
110
+ name: reqToUpdate.name,
111
+ type: currentStatus.type || 'unknown',
112
+ installed: currentStatus.installed || false,
113
+ inProgress: true,
114
+ operationStatus: {
115
+ status: 'in-progress',
116
+ type: 'update',
117
+ target: 'requirement',
118
+ message: `Updating ${reqToUpdate.name} from ${currentStatus.version || 'unknown'} to ${reqToUpdate.version}`
119
+ }
120
+ });
121
+ // For pip requirements, check if we have a stored pythonEnv
122
+ if (reqConfig.type === 'pip' && currentStatus.pythonEnv && !options?.settings?.pythonEnv) {
123
+ options = {
124
+ ...options,
125
+ settings: { ...options?.settings, pythonEnv: currentStatus.pythonEnv }
126
+ };
127
+ }
128
+ // Update the requirement with options for pip environment
129
+ const updatedStatus = await requirementService.updateRequirement(reqConfig, reqToUpdate.version, options);
130
+ // Update requirement status
131
+ await configProvider.updateRequirementStatus(categoryName, reqToUpdate.name, {
132
+ ...updatedStatus,
133
+ name: reqToUpdate.name,
134
+ type: updatedStatus.type || currentStatus.type || 'unknown',
135
+ installed: updatedStatus.installed,
136
+ inProgress: false,
137
+ operationStatus: {
138
+ status: updatedStatus.installed ? 'completed' : 'failed',
139
+ type: 'update',
140
+ target: 'requirement',
141
+ message: updatedStatus.installed
142
+ ? `Successfully updated ${reqToUpdate.name} to version ${reqToUpdate.version}`
143
+ : `Failed to update ${reqToUpdate.name} to version ${reqToUpdate.version}`
144
+ },
145
+ availableUpdate: updatedStatus.installed ? undefined : currentStatus.availableUpdate
146
+ });
147
+ console.log(`Requirement ${reqToUpdate.name} updated to version ${reqToUpdate.version}`);
148
+ }
149
+ catch (error) {
150
+ console.error(`Error updating requirement ${reqToUpdate.name}:`, error);
151
+ // Update status to indicate failure
152
+ await configProvider.updateRequirementStatus(categoryName, reqToUpdate.name, {
153
+ name: reqToUpdate.name,
154
+ type: 'unknown',
155
+ installed: false,
156
+ inProgress: false,
157
+ error: error instanceof Error ? error.message : String(error),
158
+ operationStatus: {
159
+ status: 'failed',
160
+ type: 'update',
161
+ target: 'requirement',
162
+ message: `Error updating requirement: ${error instanceof Error ? error.message : String(error)}`
163
+ }
164
+ });
165
+ }
166
+ });
167
+ // Wait for all updates to complete in parallel if there are any
168
+ if (updatePromises) {
169
+ await Promise.all(updatePromises);
170
+ }
171
+ }
172
+ finally {
173
+ // Always release the lock when done, even if there was an error
174
+ await updateCheckTracker.endOperation(operationKey);
175
+ }
176
+ }
177
+ /**
178
+ * Checks and installs requirements for a server if needed
179
+ * @param categoryName The category name
180
+ * @param serverName The server name
181
+ * @param options The installation options
182
+ * @returns A failure result if requirements check fails, null if requirements are satisfied
183
+ */
184
+ async checkAndInstallRequirements(categoryName, serverName, options) {
185
+ const configProvider = ConfigurationProvider.getInstance();
186
+ // Get feed configuration to get requirements
187
+ const feedConfig = await configProvider.getFeedConfiguration(categoryName);
188
+ if (!feedConfig) {
189
+ return {
190
+ success: false,
191
+ message: 'Feed configuration not found',
192
+ status: [{
193
+ status: 'failed',
194
+ type: 'install',
195
+ target: 'server',
196
+ message: 'Feed configuration not found'
197
+ }]
198
+ };
199
+ }
200
+ // Find server config and verify requirements
201
+ const serverConfig = feedConfig.mcpServers.find((s) => s.name === serverName);
202
+ if (!serverConfig?.dependencies?.requirements) {
203
+ Logger.debug(`No requirements for ${serverName}`);
204
+ return null;
205
+ }
206
+ // Check all requirements installation status
207
+ const requirementStatuses = await Promise.all(serverConfig.dependencies.requirements.map(async (req) => {
208
+ const reqConfig = feedConfig.requirements?.find((r) => r.name === req.name) || {
209
+ name: req.name,
210
+ version: req.version,
211
+ type: 'npm'
212
+ };
213
+ return await this.installerFactory.checkInstallation(reqConfig, options);
214
+ }));
215
+ // If all requirements are installed and ready, no need to proceed with installation
216
+ if (requirementStatuses.every(status => status.installed)) {
217
+ // Check if requirements are ready via ConfigurationProvider
218
+ const requirementsReady = await configProvider.isRequirementsReady(categoryName, serverName);
219
+ // Update requirement status if not ready
220
+ if (!requirementsReady) {
221
+ for (const status of requirementStatuses) {
222
+ await configProvider.updateRequirementStatus(categoryName, status.name, status);
223
+ }
224
+ }
225
+ return null;
226
+ }
227
+ // Sort requirements by order for installation
228
+ const sortedRequirements = [...serverConfig.dependencies.requirements].sort((a, b) => {
229
+ const orderA = a.order ?? Infinity;
230
+ const orderB = b.order ?? Infinity;
231
+ return orderA - orderB;
232
+ });
233
+ // Start requirements installation in background
234
+ this.installRequirementsInBackground(categoryName, sortedRequirements, options)
235
+ .catch(error => {
236
+ Logger.error(`Error in background requirement installations: ${error instanceof Error ? error.message : String(error)}`);
237
+ });
238
+ // Return immediately while installation continues in background
239
+ return null;
240
+ }
241
+ /**
242
+ * Installs requirements in background without blocking the main thread
243
+ * Requirements with the same order are installed in parallel
244
+ */
245
+ async installRequirementsInBackground(categoryName, sortedRequirements, options) {
246
+ const configProvider = ConfigurationProvider.getInstance();
247
+ const requirementGroups = sortedRequirements.reduce((groups, req) => {
248
+ const order = req.order ?? Infinity;
249
+ if (!groups[order]) {
250
+ groups[order] = [];
251
+ }
252
+ groups[order].push(req);
253
+ return groups;
254
+ }, {});
255
+ // Process each group in sequence, but requirements within group in parallel
256
+ const orderKeys = Object.keys(requirementGroups).map(Number).sort((a, b) => a - b);
257
+ for (const order of orderKeys) {
258
+ const group = requirementGroups[order];
259
+ await Promise.all(group.map(async (requirement) => {
260
+ try {
261
+ const feeds = await configProvider.getFeedConfiguration(categoryName);
262
+ const requirementConfig = feeds?.requirements?.find((r) => r.name === requirement.name) || {
263
+ name: requirement.name,
264
+ version: requirement.version,
265
+ type: 'npm'
266
+ };
267
+ // For pip requirements, check if we need to use stored pythonEnv
268
+ const currentStatus = await configProvider.getRequirementStatus(categoryName, requirement.name);
269
+ if (requirementConfig.type === 'pip' && currentStatus?.pythonEnv && !options?.settings?.pythonEnv) {
270
+ options = {
271
+ ...options,
272
+ settings: { ...options?.settings, pythonEnv: currentStatus.pythonEnv }
273
+ };
274
+ }
275
+ const installer = this.installerFactory.getInstaller(requirementConfig);
276
+ if (!installer) {
277
+ await this.updateRequirementFailureStatus(categoryName, requirement.name, requirementConfig.type, `No installer found for requirement type: ${requirementConfig.type}`);
278
+ return;
279
+ }
280
+ const operationId = this.generateOperationId();
281
+ await this.updateRequirementProgressStatus(categoryName, requirement.name, requirementConfig.type, operationId);
282
+ const installStatus = await installer.install(requirementConfig, options);
283
+ await this.updateRequirementCompletionStatus(categoryName, requirement.name, installStatus, operationId);
284
+ }
285
+ catch (error) {
286
+ await this.updateRequirementFailureStatus(categoryName, requirement.name, 'unknown', error instanceof Error ? error.message : String(error));
287
+ }
288
+ }));
289
+ }
290
+ }
291
+ /**
292
+ * Helper to update requirement status for failure case
293
+ */
294
+ async updateRequirementFailureStatus(categoryName, requirementName, requirementType, errorMessage) {
295
+ const configProvider = ConfigurationProvider.getInstance();
296
+ await configProvider.updateRequirementStatus(categoryName, requirementName, {
297
+ name: requirementName,
298
+ type: requirementType,
299
+ installed: false,
300
+ error: errorMessage,
301
+ operationStatus: {
302
+ status: 'failed',
303
+ type: 'install',
304
+ target: 'requirement',
305
+ message: `Error installing requirement: ${errorMessage}`,
306
+ operationId: this.generateOperationId()
307
+ }
308
+ });
309
+ }
310
+ /**
311
+ * Helper to update requirement status for in-progress case
312
+ */
313
+ async updateRequirementProgressStatus(categoryName, requirementName, requirementType, operationId) {
314
+ const configProvider = ConfigurationProvider.getInstance();
315
+ await configProvider.updateRequirementStatus(categoryName, requirementName, {
316
+ name: requirementName,
317
+ type: requirementType,
318
+ installed: false,
319
+ inProgress: true,
320
+ operationStatus: {
321
+ status: 'in-progress',
322
+ type: 'install',
323
+ target: 'requirement',
324
+ message: `Installing requirement: ${requirementName}`,
325
+ operationId
326
+ }
327
+ });
328
+ }
329
+ /**
330
+ * Helper to update requirement status for completion case
331
+ */
332
+ async updateRequirementCompletionStatus(categoryName, requirementName, installStatus, operationId) {
333
+ const configProvider = ConfigurationProvider.getInstance();
334
+ await configProvider.updateRequirementStatus(categoryName, requirementName, {
335
+ ...installStatus,
336
+ operationStatus: {
337
+ status: installStatus.installed ? 'completed' : 'failed',
338
+ type: 'install',
339
+ target: 'requirement',
340
+ message: installStatus.installed
341
+ ? `Requirement ${requirementName} installed successfully`
342
+ : `Failed to install ${requirementName}`,
343
+ operationId
344
+ }
345
+ });
346
+ }
347
+ }
348
+ // Export a singleton instance (optional)
349
+ // export const installationService = new InstallationService();
350
+ //# sourceMappingURL=InstallationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstallationService.js","sourceRoot":"","sources":["../../src/core/InstallationService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { EventEmitter } from 'events';
2
+ import { MCPEvent, MCPEventData, MCPServerCategory, ServerInstallOptions, ServerCategoryListOptions, ServerOperationResult, ServerUninstallOptions, FeedConfiguration } from './types.js';
3
+ import { OperationStatus } from './onboard/OnboardStatus.js';
4
+ export declare class MCPManager extends EventEmitter {
5
+ private installationService;
6
+ private configProvider;
7
+ private feedOnboardService;
8
+ constructor();
9
+ syncFeeds(): Promise<void>;
10
+ initialize(feedFile?: string): Promise<void>;
11
+ listServerCategories(options?: ServerCategoryListOptions): Promise<MCPServerCategory[]>;
12
+ getFeedConfiguration(categoryName: string): Promise<FeedConfiguration | undefined>;
13
+ getServerMcpConfig(categoryName: string, serverName: string): Promise<import("./types.js").McpConfig | undefined>;
14
+ installServer(categoryName: string, serverName: string, requestOptions?: ServerInstallOptions): Promise<ServerOperationResult>;
15
+ uninstallServer(categoryName: string, serverName: string, options?: ServerUninstallOptions): Promise<ServerOperationResult>;
16
+ updateRequirement(categoryName: string, serverName: string, requirementName: string, updateVersion: string): Promise<ServerOperationResult>;
17
+ /**
18
+ * Onboards a new feed configuration
19
+ * @param config The feed configuration to onboard
20
+ */
21
+ onboardFeed(config: FeedConfiguration): Promise<OperationStatus & {
22
+ feedConfiguration?: FeedConfiguration;
23
+ }>;
24
+ emit<E extends MCPEvent>(event: E, data: MCPEventData[E]): boolean;
25
+ on<E extends MCPEvent>(event: E, listener: (data: MCPEventData[E]) => void): this;
26
+ off<E extends MCPEvent>(event: E, listener: (data: MCPEventData[E]) => void): this;
27
+ }
28
+ export declare const mcpManager: MCPManager;