imcp 0.0.19 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/.roo/rules-code/rules.md +88 -0
  2. package/dist/cli/index.js +1 -45
  3. package/dist/core/installers/clients/BaseClientInstaller.d.ts +1 -5
  4. package/dist/core/installers/clients/BaseClientInstaller.js +40 -38
  5. package/dist/core/installers/clients/ClientInstaller.d.ts +9 -9
  6. package/dist/core/installers/clients/ClientInstaller.js +105 -99
  7. package/dist/core/installers/requirements/BaseInstaller.d.ts +9 -1
  8. package/dist/core/installers/requirements/CommandInstaller.d.ts +9 -1
  9. package/dist/core/installers/requirements/CommandInstaller.js +46 -12
  10. package/dist/core/installers/requirements/GeneralInstaller.d.ts +11 -1
  11. package/dist/core/installers/requirements/GeneralInstaller.js +46 -10
  12. package/dist/core/installers/requirements/InstallerFactory.d.ts +3 -1
  13. package/dist/core/installers/requirements/InstallerFactory.js +3 -2
  14. package/dist/core/installers/requirements/NpmInstaller.d.ts +4 -2
  15. package/dist/core/installers/requirements/NpmInstaller.js +38 -22
  16. package/dist/core/installers/requirements/PipInstaller.d.ts +3 -1
  17. package/dist/core/installers/requirements/PipInstaller.js +58 -36
  18. package/dist/core/installers/requirements/RequirementInstaller.d.ts +4 -1
  19. package/dist/core/loaders/InstallOperationManager.d.ts +115 -0
  20. package/dist/core/loaders/InstallOperationManager.js +311 -0
  21. package/dist/core/loaders/SystemSettingsManager.d.ts +54 -0
  22. package/dist/core/loaders/SystemSettingsManager.js +257 -0
  23. package/dist/core/metadatas/constants.d.ts +7 -0
  24. package/dist/core/metadatas/constants.js +7 -0
  25. package/dist/core/metadatas/recordingConstants.d.ts +44 -0
  26. package/dist/core/metadatas/recordingConstants.js +45 -0
  27. package/dist/core/metadatas/types.d.ts +21 -0
  28. package/dist/core/onboard/FeedOnboardService.d.ts +7 -3
  29. package/dist/core/onboard/FeedOnboardService.js +52 -5
  30. package/dist/core/onboard/InstallOperationManager.d.ts +23 -0
  31. package/dist/core/onboard/InstallOperationManager.js +144 -0
  32. package/dist/core/onboard/OnboardStatusManager.js +2 -1
  33. package/dist/core/validators/StdioServerValidator.js +4 -3
  34. package/dist/services/InstallationService.d.ts +2 -37
  35. package/dist/services/InstallationService.js +45 -313
  36. package/dist/services/MCPManager.d.ts +1 -1
  37. package/dist/services/MCPManager.js +53 -47
  38. package/dist/services/RequirementService.d.ts +85 -12
  39. package/dist/services/RequirementService.js +488 -49
  40. package/dist/services/ServerService.d.ts +0 -6
  41. package/dist/services/ServerService.js +0 -74
  42. package/dist/services/TelemetryService.d.ts +15 -0
  43. package/dist/services/TelemetryService.js +54 -0
  44. package/dist/utils/adoUtils.js +6 -3
  45. package/dist/utils/githubAuth.js +65 -0
  46. package/dist/utils/logger.d.ts +16 -0
  47. package/dist/utils/logger.js +78 -1
  48. package/dist/utils/macroExpressionUtils.js +3 -25
  49. package/dist/utils/osUtils.d.ts +22 -1
  50. package/dist/utils/osUtils.js +92 -1
  51. package/dist/utils/versionUtils.d.ts +20 -0
  52. package/dist/utils/versionUtils.js +76 -0
  53. package/dist/web/public/css/modal.css +292 -1
  54. package/dist/web/public/css/serverCategoryList.css +120 -0
  55. package/dist/web/public/css/serverDetails.css +14 -1
  56. package/dist/web/public/index.html +126 -21
  57. package/dist/web/public/js/flights/flights.js +1 -1
  58. package/dist/web/public/js/modal/index.js +8 -14
  59. package/dist/web/public/js/modal/installModal.js +3 -4
  60. package/dist/web/public/js/modal/installation.js +122 -137
  61. package/dist/web/public/js/modal/loadingModal.js +155 -25
  62. package/dist/web/public/js/modal/messageQueue.js +45 -101
  63. package/dist/web/public/js/modal/modalSetup.js +125 -43
  64. package/dist/web/public/js/modal/modalUtils.js +0 -12
  65. package/dist/web/public/js/modal.js +23 -10
  66. package/dist/web/public/js/onboard/formProcessor.js +18 -11
  67. package/dist/web/public/js/onboard/publishHandler.js +35 -3
  68. package/dist/web/public/js/onboard/templates.js +5 -1
  69. package/dist/web/public/js/onboard/uiHandlers.js +266 -39
  70. package/dist/web/public/js/onboard/validationHandlers.js +71 -39
  71. package/dist/web/public/js/serverCategoryDetails.js +60 -11
  72. package/dist/web/public/js/serverCategoryList.js +93 -9
  73. package/dist/web/public/js/settings.js +314 -0
  74. package/dist/web/public/onboard.html +2 -2
  75. package/dist/web/public/settings.html +135 -0
  76. package/dist/web/public/styles.css +32 -0
  77. package/dist/web/server.js +93 -1
  78. package/{src/web/public/js/onboard → docs}/ONBOARDING_PAGE_DESIGN.md +15 -125
  79. package/docs/Telemetry.md +136 -0
  80. package/memory-bank/activeContext.md +26 -0
  81. package/memory-bank/decisionLog.md +91 -0
  82. package/memory-bank/productContext.md +41 -0
  83. package/memory-bank/progress.md +35 -0
  84. package/memory-bank/systemPatterns.md +10 -0
  85. package/package.json +2 -1
  86. package/src/cli/index.ts +1 -48
  87. package/src/core/installers/clients/BaseClientInstaller.ts +64 -50
  88. package/src/core/installers/clients/ClientInstaller.ts +130 -130
  89. package/src/core/installers/requirements/BaseInstaller.ts +9 -1
  90. package/src/core/installers/requirements/CommandInstaller.ts +47 -13
  91. package/src/core/installers/requirements/GeneralInstaller.ts +48 -10
  92. package/src/core/installers/requirements/InstallerFactory.ts +4 -3
  93. package/src/core/installers/requirements/NpmInstaller.ts +90 -68
  94. package/src/core/installers/requirements/PipInstaller.ts +81 -55
  95. package/src/core/installers/requirements/RequirementInstaller.ts +4 -3
  96. package/src/core/loaders/InstallOperationManager.ts +367 -0
  97. package/src/core/loaders/SystemSettingsManager.ts +278 -0
  98. package/src/core/metadatas/constants.ts +9 -0
  99. package/src/core/metadatas/recordingConstants.ts +62 -0
  100. package/src/core/metadatas/types.ts +23 -0
  101. package/src/core/onboard/FeedOnboardService.ts +59 -5
  102. package/src/core/onboard/OnboardStatusManager.ts +2 -1
  103. package/src/core/validators/StdioServerValidator.ts +4 -3
  104. package/src/services/InstallationService.ts +54 -399
  105. package/src/services/MCPManager.ts +61 -64
  106. package/src/services/RequirementService.ts +564 -67
  107. package/src/services/ServerService.ts +0 -90
  108. package/src/services/TelemetryService.ts +59 -0
  109. package/src/utils/adoUtils.ts +6 -4
  110. package/src/utils/githubAuth.ts +84 -1
  111. package/src/utils/logger.ts +83 -1
  112. package/src/utils/macroExpressionUtils.ts +4 -21
  113. package/src/utils/osUtils.ts +92 -1
  114. package/src/utils/versionUtils.ts +98 -13
  115. package/src/web/public/css/modal.css +292 -1
  116. package/src/web/public/css/serverCategoryList.css +120 -0
  117. package/src/web/public/css/serverDetails.css +14 -1
  118. package/src/web/public/index.html +126 -21
  119. package/src/web/public/js/flights/flights.js +1 -1
  120. package/src/web/public/js/modal/index.js +8 -14
  121. package/src/web/public/js/modal/installModal.js +3 -4
  122. package/src/web/public/js/modal/installation.js +122 -137
  123. package/src/web/public/js/modal/loadingModal.js +155 -25
  124. package/src/web/public/js/modal/modalSetup.js +125 -43
  125. package/src/web/public/js/modal/modalUtils.js +0 -12
  126. package/src/web/public/js/modal.js +23 -10
  127. package/src/web/public/js/onboard/formProcessor.js +18 -11
  128. package/src/web/public/js/onboard/publishHandler.js +35 -3
  129. package/src/web/public/js/onboard/templates.js +5 -1
  130. package/src/web/public/js/onboard/uiHandlers.js +266 -39
  131. package/src/web/public/js/onboard/validationHandlers.js +71 -39
  132. package/src/web/public/js/serverCategoryDetails.js +60 -11
  133. package/src/web/public/js/serverCategoryList.js +93 -9
  134. package/src/web/public/js/settings.js +314 -0
  135. package/src/web/public/onboard.html +2 -2
  136. package/src/web/public/settings.html +135 -0
  137. package/src/web/public/styles.css +32 -0
  138. package/src/web/server.ts +96 -1
  139. package/dist/cli/commands/start.d.ts +0 -2
  140. package/dist/cli/commands/start.js +0 -32
  141. package/dist/cli/commands/sync.d.ts +0 -2
  142. package/dist/cli/commands/sync.js +0 -17
  143. package/dist/core/ConfigurationLoader.d.ts +0 -32
  144. package/dist/core/ConfigurationLoader.js +0 -236
  145. package/dist/core/ConfigurationProvider.d.ts +0 -35
  146. package/dist/core/ConfigurationProvider.js +0 -375
  147. package/dist/core/InstallationService.d.ts +0 -50
  148. package/dist/core/InstallationService.js +0 -350
  149. package/dist/core/MCPManager.d.ts +0 -28
  150. package/dist/core/MCPManager.js +0 -188
  151. package/dist/core/RequirementService.d.ts +0 -40
  152. package/dist/core/RequirementService.js +0 -110
  153. package/dist/core/ServerSchemaLoader.d.ts +0 -11
  154. package/dist/core/ServerSchemaLoader.js +0 -43
  155. package/dist/core/ServerSchemaProvider.d.ts +0 -17
  156. package/dist/core/ServerSchemaProvider.js +0 -120
  157. package/dist/core/constants.d.ts +0 -47
  158. package/dist/core/constants.js +0 -94
  159. package/dist/core/installers/BaseInstaller.d.ts +0 -74
  160. package/dist/core/installers/BaseInstaller.js +0 -253
  161. package/dist/core/installers/ClientInstaller.d.ts +0 -23
  162. package/dist/core/installers/ClientInstaller.js +0 -564
  163. package/dist/core/installers/CommandInstaller.d.ts +0 -37
  164. package/dist/core/installers/CommandInstaller.js +0 -173
  165. package/dist/core/installers/GeneralInstaller.d.ts +0 -33
  166. package/dist/core/installers/GeneralInstaller.js +0 -85
  167. package/dist/core/installers/InstallerFactory.d.ts +0 -54
  168. package/dist/core/installers/InstallerFactory.js +0 -97
  169. package/dist/core/installers/NpmInstaller.d.ts +0 -26
  170. package/dist/core/installers/NpmInstaller.js +0 -127
  171. package/dist/core/installers/PipInstaller.d.ts +0 -28
  172. package/dist/core/installers/PipInstaller.js +0 -127
  173. package/dist/core/installers/RequirementInstaller.d.ts +0 -33
  174. package/dist/core/installers/RequirementInstaller.js +0 -3
  175. package/dist/core/types.d.ts +0 -166
  176. package/dist/core/types.js +0 -16
  177. package/dist/services/InstallRequestValidator.d.ts +0 -21
  178. package/dist/services/InstallRequestValidator.js +0 -99
  179. package/dist/web/public/js/modal/installHandler.js +0 -227
  180. package/dist/web/public/js/modal/loadingUI.js +0 -74
  181. package/dist/web/public/js/modal/modalUI.js +0 -214
  182. package/dist/web/public/js/modal/version.js +0 -20
  183. package/src/web/public/js/modal/messageQueue.js +0 -112
@@ -3,19 +3,23 @@ import { ConfigurationProvider } from '../core/loaders/ConfigurationProvider.js'
3
3
  import { ServerSchemaProvider } from '../core/loaders/ServerSchemaProvider.js';
4
4
  import { InstallationService } from './InstallationService.js';
5
5
  import { MCPEvent, } from '../core/metadatas/types.js';
6
- import { Logger } from '../utils/logger.js';
6
+ import { OnboardingProcessStatus } from '../core/onboard/OnboardStatus.js';
7
+ import { Logger, EventType, EventStatus } from '../utils/logger.js';
7
8
  import { FeedOnboardService } from '../core/onboard/FeedOnboardService.js';
9
+ import { RequirementService } from './RequirementService.js';
8
10
  export class MCPManager extends EventEmitter {
9
11
  installationService;
10
12
  configProvider;
11
13
  feedOnboardService;
12
14
  schemaProvider;
15
+ requirementsService;
13
16
  constructor() {
14
17
  super();
15
18
  this.configProvider = ConfigurationProvider.getInstance();
16
19
  this.schemaProvider = ServerSchemaProvider.getInstance();
17
20
  this.installationService = new InstallationService();
18
21
  this.feedOnboardService = new FeedOnboardService();
22
+ this.requirementsService = RequirementService.getInstance();
19
23
  }
20
24
  async syncFeeds() {
21
25
  await this.configProvider.syncFeeds();
@@ -24,6 +28,7 @@ export class MCPManager extends EventEmitter {
24
28
  try {
25
29
  await this.configProvider.initialize(feedFile);
26
30
  await this.schemaProvider.initialize(schemasDirectory);
31
+ await this.requirementsService.checkRequirementForUpdateAsync();
27
32
  }
28
33
  catch (error) {
29
34
  console.error("Error during MCPManager initialization:", error);
@@ -53,6 +58,14 @@ export class MCPManager extends EventEmitter {
53
58
  };
54
59
  }
55
60
  const installResult = await this.installationService.install(categoryName, serverName, requestOptions);
61
+ // Log the event with appropriate status
62
+ Logger.trackEvent(EventType.SERVER_INSTALL, {
63
+ status: installResult.success ? EventStatus.SUCCESS : EventStatus.FAILED,
64
+ errorMessage: !installResult.success ? installResult.message : undefined,
65
+ categoryName,
66
+ serverName,
67
+ ...requestOptions
68
+ });
56
69
  if (!installResult.success) {
57
70
  return installResult;
58
71
  }
@@ -60,15 +73,24 @@ export class MCPManager extends EventEmitter {
60
73
  return installResult;
61
74
  }
62
75
  catch (error) {
63
- console.error(`Unexpected error during installServer for ${serverName}:`, error);
76
+ const errorMessage = `Failed to install ${serverName}: ${error instanceof Error ? error.message : String(error)}`;
77
+ Logger.error(errorMessage, error);
78
+ Logger.trackEvent(EventType.SERVER_INSTALL, {
79
+ status: EventStatus.FAILED,
80
+ errorMessage,
81
+ categoryName,
82
+ serverName,
83
+ ...requestOptions
84
+ });
64
85
  return {
65
86
  success: false,
66
- message: `Failed to install ${serverName}: ${error instanceof Error ? error.message : String(error)}`,
87
+ message: errorMessage,
67
88
  error: error instanceof Error ? error : new Error(String(error)),
68
89
  };
69
90
  }
70
91
  }
71
92
  async uninstallServer(categoryName, serverName, options = {}) {
93
+ const { targets = [], removeData = false } = options;
72
94
  try {
73
95
  const serverCategory = await this.configProvider.getServerCategory(categoryName);
74
96
  if (!serverCategory) {
@@ -77,7 +99,6 @@ export class MCPManager extends EventEmitter {
77
99
  message: `Server category ${categoryName} is not onboarded`,
78
100
  };
79
101
  }
80
- const { targets = [], removeData = false } = options;
81
102
  // Clear installation status for specified targets
82
103
  const currentStatus = serverCategory.installationStatus || {
83
104
  requirementsStatus: {},
@@ -101,6 +122,13 @@ export class MCPManager extends EventEmitter {
101
122
  serversStatus[serverName] = serverStatus;
102
123
  // Update status keeping requirements
103
124
  await this.configProvider.updateInstallationStatus(categoryName, currentStatus.requirementsStatus || {}, serversStatus);
125
+ Logger.trackEvent(EventType.SERVER_UNINSTALL, {
126
+ status: EventStatus.SUCCESS,
127
+ categoryName,
128
+ serverName,
129
+ targets,
130
+ removeData
131
+ });
104
132
  this.emit(MCPEvent.SERVER_UNINSTALLED, { serverName, targets });
105
133
  return {
106
134
  success: true,
@@ -108,55 +136,22 @@ export class MCPManager extends EventEmitter {
108
136
  };
109
137
  }
110
138
  catch (error) {
139
+ const errorMessage = `Failed to uninstall ${serverName}: ${error instanceof Error ? error.message : String(error)}`;
140
+ Logger.trackEvent(EventType.SERVER_UNINSTALL, {
141
+ status: EventStatus.FAILED,
142
+ errorMessage,
143
+ categoryName,
144
+ serverName,
145
+ targets: targets || [],
146
+ removeData: removeData || false
147
+ });
111
148
  return {
112
149
  success: false,
113
- message: `Failed to uninstall ${serverName}`,
150
+ message: errorMessage,
114
151
  error: error,
115
152
  };
116
153
  }
117
154
  }
118
- async updateRequirement(categoryName, serverName, requirementName, updateVersion) {
119
- try {
120
- const { requirementService } = await import('./RequirementService.js');
121
- const serverCategory = await this.configProvider.getServerCategory(categoryName);
122
- if (!serverCategory) {
123
- return {
124
- success: false,
125
- message: `Server category ${categoryName} is not onboarded`,
126
- };
127
- }
128
- if (!serverCategory.feedConfiguration) {
129
- return {
130
- success: false,
131
- message: `Server category ${categoryName} has no feed configuration`,
132
- };
133
- }
134
- // Find the requirement
135
- const requirement = serverCategory.feedConfiguration.requirements.find(r => r.name === requirementName);
136
- if (!requirement) {
137
- return {
138
- success: false,
139
- message: `Requirement ${requirementName} not found in category ${categoryName}`,
140
- };
141
- }
142
- // Update the requirement using requirementService
143
- const updatedStatus = await requirementService.updateRequirement(requirement, updateVersion);
144
- // Update the status in configuration
145
- await this.configProvider.updateRequirementStatus(categoryName, requirementName, updatedStatus);
146
- return {
147
- success: true,
148
- message: `Successfully updated ${requirementName} to version ${updateVersion}`,
149
- };
150
- }
151
- catch (error) {
152
- console.error(`Error updating requirement ${requirementName}:`, error);
153
- return {
154
- success: false,
155
- message: `Failed to update ${requirementName}: ${error instanceof Error ? error.message : String(error)}`,
156
- error: error instanceof Error ? error : new Error(String(error)),
157
- };
158
- }
159
- }
160
155
  /**
161
156
  * Onboards a new feed configuration
162
157
  * @param config The feed configuration to onboard
@@ -164,6 +159,11 @@ export class MCPManager extends EventEmitter {
164
159
  async onboardFeed(config) {
165
160
  try {
166
161
  const result = await this.feedOnboardService.onboardFeed(config);
162
+ Logger.trackEvent(EventType.FEED_ONBOARD, {
163
+ status: result.status === OnboardingProcessStatus.SUCCEEDED ? EventStatus.SUCCESS : EventStatus.FAILED,
164
+ errorMessage: result.message,
165
+ feedConfig: config
166
+ });
167
167
  // After successful onboarding initiation, sync feeds to get the latest changes
168
168
  // Syncing should ideally happen after the PR is merged, but for now,
169
169
  // syncing here makes the new (pending) category available locally if needed.
@@ -172,7 +172,13 @@ export class MCPManager extends EventEmitter {
172
172
  return result;
173
173
  }
174
174
  catch (error) {
175
+ const errorMessage = error instanceof Error ? error.message : String(error);
175
176
  Logger.error('Failed to onboard feed in MCPManager:', error);
177
+ Logger.trackEvent(EventType.FEED_ONBOARD, {
178
+ status: EventStatus.FAILED,
179
+ errorMessage,
180
+ feedName: config.name
181
+ });
176
182
  throw error; // Rethrow or handle by returning a failed OperationStatus
177
183
  }
178
184
  }
@@ -1,4 +1,4 @@
1
- import { RequirementConfig, RequirementStatus, ServerInstallOptions } from '../core/metadatas/types.js';
1
+ import { RequirementConfig, RequirementStatus, ServerInstallOptions, ServerOperationResult } from '../core/metadatas/types.js';
2
2
  /**
3
3
  * Service responsible for managing requirements installation and status
4
4
  */
@@ -11,30 +11,103 @@ export declare class RequirementService {
11
11
  * @returns The RequirementService instance
12
12
  */
13
13
  static getInstance(): RequirementService;
14
+ private generateOperationId;
15
+ /**
16
+ * Checks and installs requirements for a server if needed.
17
+ * @param categoryName The category name.
18
+ * @param serverName The server name.
19
+ * @param options The installation options.
20
+ * @returns A failure result if requirements check fails, null if requirements are satisfied or installation started in background.
21
+ */
22
+ checkAndInstallRequirements(categoryName: string, serverName: string, options: ServerInstallOptions): Promise<ServerOperationResult | null>;
23
+ /**
24
+ * Installs requirements in background without blocking the main thread.
25
+ * Requirements with the same order are installed in parallel.
26
+ * @param categoryName The category name.
27
+ * @param feedConfig The feed configuration.
28
+ * @param sortedRequirements Array of requirements sorted by order.
29
+ * @param options The installation options.
30
+ */
31
+ private installRequirementsInBackground;
32
+ /**
33
+ * Helper to update requirement status for failure case.
34
+ * @param categoryName The category name.
35
+ * @param requirementName The name of the requirement.
36
+ * @param requirementType The type of the requirement.
37
+ * @param errorMessage The error message.
38
+ */
39
+ private updateRequirementFailureStatus;
40
+ /**
41
+ * Helper to update requirement status for in-progress case.
42
+ * @param categoryName The category name.
43
+ * @param requirementName The name of the requirement.
44
+ * @param requirementType The type of the requirement.
45
+ * @param operationId The operation ID.
46
+ */
47
+ private updateRequirementProgressStatus;
48
+ /**
49
+ * Helper to update requirement status for completion case.
50
+ * @param categoryName The category name.
51
+ * @param requirementName The name of the requirement.
52
+ * @param installStatus The installation status.
53
+ * @param operationId The operation ID.
54
+ */
55
+ private updateRequirementCompletionStatus;
56
+ /**
57
+ * Validate a requirement configuration.
58
+ * @param requirement The requirement to validate.
59
+ * @throws Error if the requirement is invalid.
60
+ */
61
+ private validateRequirement;
62
+ /**
63
+ * Check for updates to requirements for all server categories
64
+ * This method is called periodically to check for updates
65
+ */
66
+ checkRequirementForUpdateAsync(): Promise<void>;
67
+ /**
68
+ * Check for updates to requirements for a specific server category
69
+ * @param categoryName The name of the server category
70
+ * @param serverName The name of the server (optional)
71
+ */
72
+ checkServerRequirementForUpdateAsync(categoryName: string, serverName: string): Promise<void>;
73
+ /**
74
+ * Check for updates to requirements for a server category
75
+ * @param serverCategory The server category to check
76
+ * @param serverName The name of the server (optional). When serverName is provided, check the requirement always
77
+ * @private
78
+ */
79
+ private checkRequirementsForUpdateInternal;
14
80
  /**
15
81
  * Check the installation status of a requirement
16
82
  * @param requirement The requirement to check
83
+ * @param options Optional installation options
17
84
  * @returns The installation status
18
85
  */
19
86
  checkRequirementStatus(requirement: RequirementConfig, options?: ServerInstallOptions): Promise<RequirementStatus>;
20
87
  /**
21
88
  * Check if updates are available for a requirement
22
89
  * @param requirement The requirement to check for updates
90
+ * @param currentStatus The current status of the requirement
91
+ * @param categoryName The category name
92
+ * @param serverName The server name (optional)
23
93
  * @returns Updated status with available updates information
24
94
  */
25
- checkRequirementForUpdates(requirement: RequirementConfig, currentStatus: RequirementStatus): Promise<RequirementStatus>;
95
+ checkRequirementForUpdates(requirement: RequirementConfig, currentStatus: RequirementStatus, categoryName: string, serverName?: string): Promise<RequirementStatus>;
26
96
  /**
27
- * Update a requirement to a new version
28
- * @param requirement The requirement configuration
29
- * @param updateVersion The version to update to
30
- * @returns The updated requirement status
97
+ * Process requirement updates specified in serverInstallOptions.
98
+ * All updates are processed in parallel for maximum efficiency.
99
+ * @param categoryName The category name.
100
+ * @param serverName The server name.
101
+ * @param options The installation options.
31
102
  */
32
- updateRequirement(requirement: RequirementConfig, updateVersion: string, options?: ServerInstallOptions): Promise<RequirementStatus>;
103
+ processRequirementUpdates(categoryName: string, serverName: string, options: ServerInstallOptions): Promise<void>;
33
104
  /**
34
- * Validate a requirement configuration
35
- * @param requirement The requirement to validate
36
- * @throws Error if the requirement is invalid
37
- */
38
- private validateRequirement;
105
+ * Update a requirement to a new version
106
+ * @param requirement The requirement configuration
107
+ * @param updateVersion The version to update to
108
+ * @param options Optional installation options
109
+ * @returns The updated requirement status
110
+ */
111
+ private updateRequirement;
39
112
  }
40
113
  export declare const requirementService: RequirementService;