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
@@ -1,112 +1,97 @@
1
- import { RequirementConfig, RequirementStatus, ServerInstallOptions } from '../../metadatas/types.js';
2
- import { RequirementInstaller } from './RequirementInstaller.js';
3
- import { NpmInstaller } from './NpmInstaller.js';
4
- import { PipInstaller } from './PipInstaller.js';
5
- import { CommandInstaller } from './CommandInstaller.js';
6
- import { GeneralInstaller } from './GeneralInstaller.js';
7
- import { exec } from 'child_process';
8
- import util from 'util';
9
- import { InstallOperationManager } from '../../loaders/InstallOperationManager.js';
10
- /**
11
- * Factory for creating the appropriate installer for a requirement
12
- */
13
- export class InstallerFactory {
14
- private installers: RequirementInstaller[] = [];
15
- private readonly execPromise: (command: string) => Promise<{ stdout: string; stderr: string }>;
16
-
17
- /**
18
- * Create a new InstallerFactory
19
- * @param execPromise Function to execute commands
20
- */
21
- constructor(execPromise: (command: string) => Promise<{ stdout: string; stderr: string }>) {
22
- this.execPromise = execPromise;
23
- this.registerDefaultInstallers();
24
- }
25
-
26
- /**
27
- * Register default installers for npm, pip, and general requirements
28
- * @private
29
- */
30
- private registerDefaultInstallers(): void {
31
- this.registerInstaller(new NpmInstaller(this.execPromise));
32
- this.registerInstaller(new PipInstaller(this.execPromise));
33
- this.registerInstaller(new CommandInstaller(this.execPromise));
34
- this.registerInstaller(new GeneralInstaller(this.execPromise));
35
- }
36
-
37
- /**
38
- * Register a custom installer
39
- * @param installer The installer to register
40
- */
41
- public registerInstaller(installer: RequirementInstaller): void {
42
- this.installers.push(installer);
43
- }
44
-
45
- /**
46
- * Get the appropriate installer for a requirement
47
- * @param requirement The requirement to get an installer for
48
- * @returns The appropriate installer, or undefined if none found
49
- */
50
- public getInstaller(requirement: RequirementConfig): RequirementInstaller | undefined {
51
- // Validate that if registry is empty, type must not be 'other'
52
- if (!requirement.registry && requirement.type === 'other') {
53
- throw new Error('Registry must be specified for requirement type "other"');
54
- }
55
-
56
- return this.installers.find(installer => installer.canHandle(requirement));
57
- }
58
-
59
- /**
60
- * Install a requirement using the appropriate installer
61
- * @param requirement The requirement to install
62
- * @param recorder Optional InstallOperationManager for recording steps
63
- * @param options Installation options including python environment
64
- * @returns The installation status
65
- */
66
- public async install(requirement: RequirementConfig, recorder: InstallOperationManager, options?: ServerInstallOptions): Promise<RequirementStatus> {
67
- const installer = this.getInstaller(requirement);
68
- if (!installer) {
69
- return {
70
- name: requirement.name,
71
- type: requirement.type,
72
- installed: false,
73
- error: `No installer found for requirement type '${requirement.type}'`,
74
- inProgress: false
75
- };
76
- }
77
-
78
- return await installer.install(requirement, recorder, options);
79
- }
80
-
81
- /**
82
- * Check the installation status of a requirement
83
- * @param requirement The requirement to check
84
- * @param options Installation options including python environment
85
- * @returns The installation status
86
- */
87
- public async checkInstallation(requirement: RequirementConfig, options?: ServerInstallOptions): Promise<RequirementStatus> {
88
- const installer = this.getInstaller(requirement);
89
- if (!installer) {
90
- return {
91
- name: requirement.name,
92
- type: requirement.type,
93
- installed: false,
94
- error: `No installer found for requirement type '${requirement.type}'`,
95
- inProgress: false
96
- };
97
- }
98
-
99
- return await installer.checkInstallation(requirement, options);
100
- }
101
- }
102
-
103
- /**
104
- * Create a new InstallerFactory with default settings
105
- * @param execPromise Optional function to execute commands
106
- * @returns A new InstallerFactory
107
- */
108
- export const createInstallerFactory = (
109
- execPromise = util.promisify(exec)
110
- ): InstallerFactory => {
111
- return new InstallerFactory(execPromise);
112
- };
1
+ import { NpmInstaller } from './NpmInstaller.js';
2
+ import { PipInstaller } from './PipInstaller.js';
3
+ import { CommandInstaller } from './CommandInstaller.js';
4
+ import { GeneralInstaller } from './GeneralInstaller.js';
5
+ import { exec } from 'child_process';
6
+ import util from 'util';
7
+ /**
8
+ * Factory for creating the appropriate installer for a requirement
9
+ */
10
+ export class InstallerFactory {
11
+ installers = [];
12
+ execPromise;
13
+ /**
14
+ * Create a new InstallerFactory
15
+ * @param execPromise Function to execute commands
16
+ */
17
+ constructor(execPromise) {
18
+ this.execPromise = execPromise;
19
+ this.registerDefaultInstallers();
20
+ }
21
+ /**
22
+ * Register default installers for npm, pip, and general requirements
23
+ * @private
24
+ */
25
+ registerDefaultInstallers() {
26
+ this.registerInstaller(new NpmInstaller(this.execPromise));
27
+ this.registerInstaller(new PipInstaller(this.execPromise));
28
+ this.registerInstaller(new CommandInstaller(this.execPromise));
29
+ this.registerInstaller(new GeneralInstaller(this.execPromise));
30
+ }
31
+ /**
32
+ * Register a custom installer
33
+ * @param installer The installer to register
34
+ */
35
+ registerInstaller(installer) {
36
+ this.installers.push(installer);
37
+ }
38
+ /**
39
+ * Get the appropriate installer for a requirement
40
+ * @param requirement The requirement to get an installer for
41
+ * @returns The appropriate installer, or undefined if none found
42
+ */
43
+ getInstaller(requirement) {
44
+ // Validate that if registry is empty, type must not be 'other'
45
+ if (!requirement.registry && requirement.type === 'other') {
46
+ throw new Error('Registry must be specified for requirement type "other"');
47
+ }
48
+ return this.installers.find(installer => installer.canHandle(requirement));
49
+ }
50
+ /**
51
+ * Install a requirement using the appropriate installer
52
+ * @param requirement The requirement to install
53
+ * @param options Installation options including python environment
54
+ * @returns The installation status
55
+ */
56
+ async install(requirement, options) {
57
+ const installer = this.getInstaller(requirement);
58
+ if (!installer) {
59
+ return {
60
+ name: requirement.name,
61
+ type: requirement.type,
62
+ installed: false,
63
+ error: `No installer found for requirement type '${requirement.type}'`,
64
+ inProgress: false
65
+ };
66
+ }
67
+ return await installer.install(requirement, options);
68
+ }
69
+ /**
70
+ * Check the installation status of a requirement
71
+ * @param requirement The requirement to check
72
+ * @param options Installation options including python environment
73
+ * @returns The installation status
74
+ */
75
+ async checkInstallation(requirement, options) {
76
+ const installer = this.getInstaller(requirement);
77
+ if (!installer) {
78
+ return {
79
+ name: requirement.name,
80
+ type: requirement.type,
81
+ installed: false,
82
+ error: `No installer found for requirement type '${requirement.type}'`,
83
+ inProgress: false
84
+ };
85
+ }
86
+ return await installer.checkInstallation(requirement, options);
87
+ }
88
+ }
89
+ /**
90
+ * Create a new InstallerFactory with default settings
91
+ * @param execPromise Optional function to execute commands
92
+ * @returns A new InstallerFactory
93
+ */
94
+ export const createInstallerFactory = (execPromise = util.promisify(exec)) => {
95
+ return new InstallerFactory(execPromise);
96
+ };
97
+ //# sourceMappingURL=InstallerFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstallerFactory.js","sourceRoot":"","sources":["../../../src/core/installers/InstallerFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { RequirementConfig, RequirementStatus } from '../types.js';
2
+ import { BaseInstaller } from './BaseInstaller.js';
3
+ /**
4
+ * Installer implementation for NPM packages
5
+ */
6
+ export declare class NpmInstaller extends BaseInstaller {
7
+ /**
8
+ * Check if this installer can handle the given requirement type
9
+ * @param requirement The requirement to check
10
+ * @returns True if this installer can handle the requirement
11
+ */
12
+ canHandle(requirement: RequirementConfig): boolean;
13
+ supportCheckUpdates(): boolean;
14
+ /**
15
+ * Check if the NPM package is already installed
16
+ * @param requirement The requirement to check
17
+ * @returns The status of the requirement
18
+ */
19
+ checkInstallation(requirement: RequirementConfig): Promise<RequirementStatus>;
20
+ /**
21
+ * Install the NPM package
22
+ * @param requirement The requirement to install
23
+ * @returns The status of the installation
24
+ */
25
+ install(requirement: RequirementConfig): Promise<RequirementStatus>;
26
+ }
@@ -0,0 +1,127 @@
1
+ import { BaseInstaller } from './BaseInstaller.js';
2
+ import { compareVersions } from '../../utils/versionUtils.js';
3
+ /**
4
+ * Installer implementation for NPM packages
5
+ */
6
+ export class NpmInstaller extends BaseInstaller {
7
+ /**
8
+ * Check if this installer can handle the given requirement type
9
+ * @param requirement The requirement to check
10
+ * @returns True if this installer can handle the requirement
11
+ */
12
+ canHandle(requirement) {
13
+ return requirement.type === 'npm';
14
+ }
15
+ supportCheckUpdates() {
16
+ return true;
17
+ }
18
+ /**
19
+ * Check if the NPM package is already installed
20
+ * @param requirement The requirement to check
21
+ * @returns The status of the requirement
22
+ */
23
+ async checkInstallation(requirement) {
24
+ try {
25
+ const { stdout } = await this.execPromise(`npm list -g ${requirement.name} --json`);
26
+ const pkgInfo = JSON.parse(stdout);
27
+ const installedVersion = pkgInfo?.dependencies?.[requirement.name]?.version;
28
+ return {
29
+ name: requirement.name,
30
+ type: 'npm',
31
+ installed: !!installedVersion,
32
+ version: installedVersion,
33
+ inProgress: false
34
+ };
35
+ }
36
+ catch (error) {
37
+ return {
38
+ name: requirement.name,
39
+ type: 'npm',
40
+ installed: false,
41
+ error: error instanceof Error ? error.message : String(error),
42
+ inProgress: false
43
+ };
44
+ }
45
+ }
46
+ /**
47
+ * Install the NPM package
48
+ * @param requirement The requirement to install
49
+ * @returns The status of the installation
50
+ */
51
+ async install(requirement) {
52
+ try {
53
+ const status = await this.checkInstallation(requirement);
54
+ if (status.installed && status.version && compareVersions(status.version, requirement.version) === 0) {
55
+ return status;
56
+ }
57
+ let resolvedVersion = requirement.version;
58
+ // If no registry is specified, use standard npm installation
59
+ if (!requirement.registry) {
60
+ const { stderr } = await this.execPromise(`npm install -g ${requirement.name}@${requirement.version}`);
61
+ if (stderr && !stderr.includes('added')) {
62
+ throw new Error(stderr);
63
+ }
64
+ }
65
+ else {
66
+ // Handle different registry types
67
+ let packageSource;
68
+ if (requirement.registry.githubRelease) {
69
+ const result = await this.handleGitHubRelease(requirement, requirement.registry.githubRelease);
70
+ packageSource = result.resolvedPath;
71
+ resolvedVersion = result.resolvedVersion;
72
+ }
73
+ else if (requirement.registry.artifacts) {
74
+ // For npm with artifacts, configure npm to use the specified registry URL
75
+ const registryUrl = requirement.registry.artifacts.registryUrl;
76
+ await this.execPromise(`npm config set registry ${registryUrl}`);
77
+ // Now install the package with the configured registry
78
+ const { stderr } = await this.execPromise(`npm install -g ${requirement.name}@${requirement.version}`);
79
+ if (stderr && !stderr.includes('added')) {
80
+ // Reset the registry to the default npm registry
81
+ await this.execPromise('npm config set registry https://registry.npmjs.org/');
82
+ throw new Error(stderr);
83
+ }
84
+ // Reset the registry to the default npm registry
85
+ await this.execPromise('npm config set registry https://registry.npmjs.org/');
86
+ return {
87
+ name: requirement.name,
88
+ type: 'npm',
89
+ installed: true,
90
+ version: requirement.version,
91
+ inProgress: false
92
+ };
93
+ }
94
+ else if (requirement.registry.local) {
95
+ packageSource = await this.handleLocalRegistry(requirement, requirement.registry.local);
96
+ }
97
+ else {
98
+ throw new Error('Invalid registry configuration');
99
+ }
100
+ // Install from the package source
101
+ const { stderr } = await this.execPromise(`npm install -g "${packageSource}"`);
102
+ if (stderr && !stderr.includes('added')) {
103
+ const status = await this.checkInstallation(requirement);
104
+ if (!status.installed)
105
+ throw new Error(stderr);
106
+ }
107
+ }
108
+ return {
109
+ name: requirement.name,
110
+ type: 'npm',
111
+ installed: true,
112
+ version: resolvedVersion,
113
+ inProgress: false
114
+ };
115
+ }
116
+ catch (error) {
117
+ return {
118
+ name: requirement.name,
119
+ type: 'npm',
120
+ installed: false,
121
+ error: error instanceof Error ? error.message : String(error),
122
+ inProgress: false
123
+ };
124
+ }
125
+ }
126
+ }
127
+ //# sourceMappingURL=NpmInstaller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NpmInstaller.js","sourceRoot":"","sources":["../../../src/core/installers/NpmInstaller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { RequirementConfig, RequirementStatus, ServerInstallOptions } from '../types.js';
2
+ import { BaseInstaller } from './BaseInstaller.js';
3
+ /**
4
+ * Installer implementation for Python packages using pip
5
+ */
6
+ export declare class PipInstaller extends BaseInstaller {
7
+ private getPythonCommand;
8
+ private getPipCommand;
9
+ /**
10
+ * Check if this installer can handle the given requirement type
11
+ * @param requirement The requirement to check
12
+ * @returns True if this installer can handle the requirement
13
+ */
14
+ canHandle(requirement: RequirementConfig): boolean;
15
+ supportCheckUpdates(): boolean;
16
+ /**
17
+ * Check if the Python package is already installed
18
+ * @param requirement The requirement to check
19
+ * @returns The status of the requirement
20
+ */
21
+ checkInstallation(requirement: RequirementConfig, options?: ServerInstallOptions): Promise<RequirementStatus>;
22
+ /**
23
+ * Install the Python package
24
+ * @param requirement The requirement to install
25
+ * @returns The status of the installation
26
+ */
27
+ install(requirement: RequirementConfig, options?: ServerInstallOptions): Promise<RequirementStatus>;
28
+ }
@@ -0,0 +1,127 @@
1
+ import { BaseInstaller } from './BaseInstaller.js';
2
+ /**
3
+ * Installer implementation for Python packages using pip
4
+ */
5
+ export class PipInstaller extends BaseInstaller {
6
+ getPythonCommand(options) {
7
+ return options?.settings?.pythonEnv || 'python';
8
+ }
9
+ getPipCommand(options) {
10
+ const pythonCmd = this.getPythonCommand(options);
11
+ return `${pythonCmd} -m pip`;
12
+ }
13
+ /**
14
+ * Check if this installer can handle the given requirement type
15
+ * @param requirement The requirement to check
16
+ * @returns True if this installer can handle the requirement
17
+ */
18
+ canHandle(requirement) {
19
+ return requirement.type === 'pip';
20
+ }
21
+ supportCheckUpdates() {
22
+ /// temporarily disabling update check for pip as not able to get which pip of python is being used
23
+ return false;
24
+ }
25
+ /**
26
+ * Check if the Python package is already installed
27
+ * @param requirement The requirement to check
28
+ * @returns The status of the requirement
29
+ */
30
+ async checkInstallation(requirement, options) {
31
+ try {
32
+ const pipCmd = this.getPipCommand(options);
33
+ const { stdout, stderr } = await this.execPromise(`${pipCmd} show ${requirement.name}`);
34
+ // If we get an output and no error, the package is installed
35
+ const installed = stdout.includes(requirement.name);
36
+ const versionMatch = stdout.match(/Version: (.+)/);
37
+ const installedVersion = versionMatch ? versionMatch[1] : undefined;
38
+ return {
39
+ name: requirement.name,
40
+ type: 'pip',
41
+ installed,
42
+ version: installedVersion,
43
+ inProgress: false
44
+ };
45
+ }
46
+ catch (error) {
47
+ return {
48
+ name: requirement.name,
49
+ type: 'pip',
50
+ installed: false,
51
+ error: error instanceof Error ? error.message : String(error),
52
+ inProgress: false
53
+ };
54
+ }
55
+ }
56
+ /**
57
+ * Install the Python package
58
+ * @param requirement The requirement to install
59
+ * @returns The status of the installation
60
+ */
61
+ async install(requirement, options) {
62
+ try {
63
+ const status = await this.checkInstallation(requirement, options);
64
+ if (status.installed) {
65
+ return status;
66
+ }
67
+ const pipCmd = this.getPipCommand(options);
68
+ // If no registry is specified, use standard pip installation
69
+ if (!requirement.registry) {
70
+ // Standard pip installation
71
+ const { stderr } = await this.execPromise(`${pipCmd} install ${requirement.name}==${requirement.version}`);
72
+ if (stderr && stderr.toLowerCase().includes('error')) {
73
+ throw new Error(stderr);
74
+ }
75
+ }
76
+ else {
77
+ // Handle different registry types
78
+ let packageSource;
79
+ if (requirement.registry.githubRelease) {
80
+ const result = await this.handleGitHubRelease(requirement, requirement.registry.githubRelease);
81
+ packageSource = result.resolvedPath;
82
+ // Install from the downloaded wheel or tar.gz file
83
+ const { stderr } = await this.execPromise(`${pipCmd} install "${packageSource}"`);
84
+ if (stderr && stderr.toLowerCase().includes('error')) {
85
+ throw new Error(stderr);
86
+ }
87
+ }
88
+ else if (requirement.registry.artifacts) {
89
+ const registryUrl = requirement.registry.artifacts.registryUrl;
90
+ // Install using the custom index URL
91
+ const { stderr } = await this.execPromise(`${pipCmd} install ${requirement.name}==${requirement.version} --index-url ${registryUrl}`);
92
+ if (stderr && stderr.toLowerCase().includes('error')) {
93
+ throw new Error(stderr);
94
+ }
95
+ }
96
+ else if (requirement.registry.local) {
97
+ packageSource = await this.handleLocalRegistry(requirement, requirement.registry.local);
98
+ // Install from the local path
99
+ const { stderr } = await this.execPromise(`${pipCmd} install "${packageSource}"`);
100
+ if (stderr && stderr.toLowerCase().includes('error')) {
101
+ throw new Error(stderr);
102
+ }
103
+ }
104
+ else {
105
+ throw new Error('Invalid registry configuration');
106
+ }
107
+ }
108
+ return {
109
+ name: requirement.name,
110
+ type: 'pip',
111
+ installed: true,
112
+ version: requirement.version,
113
+ inProgress: false
114
+ };
115
+ }
116
+ catch (error) {
117
+ return {
118
+ name: requirement.name,
119
+ type: 'pip',
120
+ installed: false,
121
+ error: error instanceof Error ? error.message : String(error),
122
+ inProgress: false
123
+ };
124
+ }
125
+ }
126
+ }
127
+ //# sourceMappingURL=PipInstaller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PipInstaller.js","sourceRoot":"","sources":["../../../src/core/installers/PipInstaller.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,33 @@
1
- import { RequirementConfig, RequirementStatus, ServerInstallOptions } from '../../metadatas/types.js';
2
- import { InstallOperationManager } from '../../loaders/InstallOperationManager.js';
3
-
4
- /**
5
- * Interface for requirement installers.
6
- * Implementations should handle specific requirement types.
7
- */
8
- export interface RequirementInstaller {
9
- /**
10
- * Check if this installer can handle the given requirement type
11
- * @param requirement The requirement to check
12
- * @returns True if this installer can handle the requirement
13
- */
14
- canHandle(requirement: RequirementConfig): boolean;
15
-
16
- supportCheckUpdates(): boolean;
17
- /**
18
- * Install the requirement
19
- * @param requirement The requirement to install
20
- * @param options Optional install options
21
- * @param recorder Optional InstallOperationManager for recording steps
22
- * @returns The status of the installation
23
- */
24
- install(requirement: RequirementConfig, recorder: InstallOperationManager, options?: ServerInstallOptions): Promise<RequirementStatus>;
25
-
26
- /**
27
- * Check if the requirement is already installed
28
- * @param requirement The requirement to check
29
- * @returns The status of the requirement
30
- */
31
- checkInstallation(requirement: RequirementConfig, options?: ServerInstallOptions): Promise<RequirementStatus>;
32
-
33
- /**
34
- * Check if updates are available for the requirement
35
- * @param requirement The requirement to check
36
- * @param currentStatus The current status of the requirement
37
- * @returns The status of the requirement with update information
38
- */
39
- checkForUpdates(requirement: RequirementConfig, currentStatus: RequirementStatus): Promise<RequirementStatus>;
40
- }
41
-
42
- // Note: Do not re-export implementations from here to avoid circular dependencies
1
+ import { RequirementConfig, RequirementStatus, ServerInstallOptions } from '../types.js';
2
+ /**
3
+ * Interface for requirement installers.
4
+ * Implementations should handle specific requirement types.
5
+ */
6
+ export interface RequirementInstaller {
7
+ /**
8
+ * Check if this installer can handle the given requirement type
9
+ * @param requirement The requirement to check
10
+ * @returns True if this installer can handle the requirement
11
+ */
12
+ canHandle(requirement: RequirementConfig): boolean;
13
+ supportCheckUpdates(): boolean;
14
+ /**
15
+ * Install the requirement
16
+ * @param requirement The requirement to install
17
+ * @returns The status of the installation
18
+ */
19
+ install(requirement: RequirementConfig, options?: ServerInstallOptions): Promise<RequirementStatus>;
20
+ /**
21
+ * Check if the requirement is already installed
22
+ * @param requirement The requirement to check
23
+ * @returns The status of the requirement
24
+ */
25
+ checkInstallation(requirement: RequirementConfig, options?: ServerInstallOptions): Promise<RequirementStatus>;
26
+ /**
27
+ * Check if updates are available for the requirement
28
+ * @param requirement The requirement to check
29
+ * @param currentStatus The current status of the requirement
30
+ * @returns The status of the requirement with update information
31
+ */
32
+ checkForUpdates(requirement: RequirementConfig, currentStatus: RequirementStatus): Promise<RequirementStatus>;
33
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+ // Note: Do not re-export implementations from here to avoid circular dependencies
3
+ //# sourceMappingURL=RequirementInstaller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequirementInstaller.js","sourceRoot":"","sources":["../../../src/core/installers/RequirementInstaller.ts"],"names":[],"mappings":";AAwCA,kFAAkF"}