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,296 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Onboard MCP Category - IMCP</title>
7
- <script src="https://cdn.tailwindcss.com"></script>
8
- <link href="https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css" rel="stylesheet">
9
- <!-- Bootstrap CSS is likely not needed if primarily using Tailwind -->
10
- <!-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> -->
11
- <link rel="stylesheet" href="styles.css">
12
- <link rel="stylesheet" href="css/onboard.css">
13
- <!-- Highlight.js for JSON syntax highlighting -->
14
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css">
15
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
16
- <link rel="stylesheet" href="css/modal.css">
17
- <link rel="stylesheet" href="css/notifications.css">
18
- <script type="module">
19
- import flights, { getFlightQueryParameters } from './js/flights/flights.js';
20
- if (!flights.enableOnboard) {
21
- // Preserve flight params when redirecting
22
- window.location.href = `index.html${getFlightQueryParameters()}`;
23
- }
24
-
25
- document.addEventListener('DOMContentLoaded', () => {
26
- const flightQueryString = getFlightQueryParameters();
27
-
28
- const backToServerLink = document.querySelector('a[href="index.html"]');
29
- if (backToServerLink) {
30
- backToServerLink.href = `index.html${flightQueryString}`;
31
- }
32
-
33
- // Update cancel buttons in forms
34
- const cancelButtons = document.querySelectorAll('button[onclick="window.location.href=\'index.html\'"]');
35
- cancelButtons.forEach(button => {
36
- button.onclick = () => { window.location.href = `index.html${flightQueryString}`; };
37
- });
38
-
39
- const jsonEditorCancelButton = document.querySelector('#jsonEditorActionsContainer button[onclick="window.location.href=\'index.html\'"]');
40
- if (jsonEditorCancelButton) {
41
- jsonEditorCancelButton.onclick = () => { window.location.href = `index.html${flightQueryString}`; };
42
- }
43
- });
44
- </script>
45
- </head>
46
- <body class="bg-gray-50 min-h-screen">
47
- <div class="alert-container"></div>
48
- <div class="container mx-auto px-4 py-6">
49
- <div class="flex items-center justify-between mb-8">
50
- <h1 class="text-3xl font-bold text-gray-900 flex items-center">
51
- <i class='bx bx-server mr-3 text-blue-600'></i>
52
- Onboard MCP Category
53
- </h1>
54
- <a href="index.html" class="text-gray-600 hover:text-gray-900 flex items-center">
55
- <i class='bx bx-arrow-back mr-2'></i>
56
- Back to Servers
57
- </a>
58
- </div>
59
-
60
- <div class="bg-white rounded-xl shadow-sm border border-gray-100 p-6 max-w-6xl mx-auto">
61
- <!-- Tab Navigation -->
62
- <div class="mb-6 border-b border-gray-200">
63
- <nav class="flex space-x-8" aria-label="Tabs">
64
- <button id="tab-create-category" class="py-2 px-4 text-blue-600 border-b-2 border-blue-600 font-semibold focus:outline-none" type="button">
65
- Create New Server Category
66
- </button>
67
- <button id="tab-create-server" class="py-2 px-4 text-gray-600 border-b-2 border-transparent hover:text-blue-600 hover:border-blue-600 font-semibold focus:outline-none" type="button">
68
- Create New Server in Existing Category
69
- </button>
70
- </nav>
71
- <!-- View Mode Toggle Switch -->
72
- <div class="flex justify-end mt-2 mb-4">
73
- <label for="viewModeToggle" class="flex items-center cursor-pointer">
74
- <span class="mr-3 text-sm font-medium text-gray-700">Form View</span>
75
- <div class="relative">
76
- <input type="checkbox" id="viewModeToggle" class="sr-only peer">
77
- <div class="w-10 h-6 bg-gray-200 rounded-full peer peer-focus:ring-2 peer-focus:ring-blue-300 peer-checked:bg-blue-600 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-0.5 after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all"></div>
78
- </div>
79
- <span class="ml-3 text-sm font-medium text-gray-700">JSON View</span>
80
- </label>
81
- </div>
82
- </div>
83
- <!-- Tab Panels -->
84
- <div id="panel-create-category">
85
- <form id="onboardForm" class="space-y-6">
86
- <!-- Basic Information -->
87
- <div class="space-y-4">
88
- <h2 onclick="toggleSectionContent('basicInformationContent', this.querySelector('.toggle-icon'))" class="text-xl font-semibold text-gray-900 flex items-center justify-between mb-4 cursor-pointer">
89
- <span class="flex items-center">
90
- <i class='bx bx-info-circle mr-2 text-blue-600'></i>
91
- Basic Information
92
- </span>
93
- <i class='bx bx-chevron-down toggle-icon text-xl text-gray-500'></i>
94
- </h2>
95
- <div id="basicInformationContent" class="grid grid-cols-1 md:grid-cols-2 gap-4 p-6 bg-white rounded-lg border border-gray-200 shadow-sm">
96
- <div>
97
- <label class="block text-sm font-medium text-gray-700 mb-1">Category Name*</label>
98
- <input type="text" name="name" required
99
- class="w-full px-3 py-1.5 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
100
- placeholder="e.g., ai-coder-tools">
101
- </div>
102
- <div>
103
- <label class="block text-sm font-medium text-gray-700 mb-1">Display Name*</label>
104
- <input type="text" name="displayName" required
105
- class="w-full px-3 py-1.5 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
106
- placeholder="e.g., Coder Tools">
107
- </div>
108
- <div class="md:col-span-2">
109
- <label class="block text-sm font-medium text-gray-700 mb-1">Description*</label>
110
- <textarea name="description" rows="3" required
111
- class="w-full px-3 py-1.5 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
112
- placeholder="Describe the purpose and capabilities of this server category"></textarea>
113
- </div>
114
- <div class="md:col-span-2">
115
- <label class="block text-sm font-medium text-gray-700 mb-1">Repository URL</label>
116
- <input type="url" name="repository"
117
- class="w-full px-3 py-1.5 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
118
- placeholder="e.g., https://github.com/organization/repository">
119
- </div>
120
- </div>
121
- </div>
122
- <!-- MCP Servers -->
123
- <div class="space-y-4">
124
- <div class="flex justify-between items-center mb-4">
125
- <h2 class="text-xl font-semibold text-gray-900 flex items-center">
126
- <i class='bx bx-server mr-2 text-blue-600'></i>
127
- MCP Servers
128
- </h2>
129
- <button type="button" id="addServerBtnNewCategory"
130
- class="px-4 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 flex items-center text-sm">
131
- <i class='bx bx-plus mr-2'></i>
132
- Add MCP Server
133
- </button>
134
- </div>
135
- <div id="serversList" class="space-y-4">
136
- <!-- Server configurations will be added here dynamically by serverTemplate -->
137
- </div>
138
- </div>
139
- <div class="flex justify-end space-x-4 pt-6 border-t">
140
- <button type="button" onclick="window.location.href='index.html'"
141
- class="px-6 py-2.5 border border-gray-300 rounded-lg text-gray-600 hover:bg-gray-50">
142
- Cancel
143
- </button>
144
- <button type="button" id="validateButtonNewCategory"
145
- class="px-6 py-2.5 bg-green-500 text-white rounded-lg hover:bg-green-600 flex items-center">
146
- <i class='bx bx-check-shield mr-2'></i>
147
- Validate
148
- </button>
149
- <button type="submit" id="publishButtonNewCategory"
150
- class="px-6 py-2.5 bg-blue-600 text-white rounded-lg hover:bg-blue-700 flex items-center">
151
- <i class='bx bxs-cloud-upload mr-2'></i>
152
- Publish
153
- </button>
154
- </div>
155
- <!-- Validation Status Panel -->
156
- <div id="validationStatusPanelNewCategory" class="hidden p-6 bg-gray-50 rounded-lg border border-gray-200">
157
- <h3 onclick="toggleSectionContent('validationStatusContentNewCategory', this.querySelector('.toggle-icon'))" class="cursor-pointer text-lg font-semibold text-gray-800 mb-3 flex items-center justify-between">
158
- <span class="flex items-center">
159
- <i class='bx bx-analyse mr-2 text-blue-600'></i>Validation Status
160
- </span>
161
- <i class='bx bx-chevron-down toggle-icon text-xl text-gray-500'></i>
162
- </h3>
163
- <div id="validationStatusContentNewCategory" class="text-sm text-gray-700 space-y-2">
164
- <!-- Validation messages will be displayed here -->
165
- </div>
166
- </div>
167
- </form>
168
- </div>
169
- <div id="panel-create-server" class="hidden">
170
- <form id="onboardServerForm" class="space-y-6">
171
- <!-- Select Existing Category -->
172
- <div class="space-y-4">
173
- <h2 class="text-xl font-semibold text-gray-900 flex items-center mb-4">
174
- <i class='bx bx-category mr-2 text-blue-600'></i>
175
- Select Server Category
176
- </h2>
177
- <select id="existingCategorySelect" name="categoryName" required
178
- class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
179
- <option value="">Loading categories...</option>
180
- </select>
181
- </div>
182
-
183
- <!-- Basic Information (Read-only after category selection) -->
184
- <div id="existingCategoryBasicInfoContainer" class="hidden space-y-4">
185
- <h2 onclick="toggleSectionContent('existingCategoryBasicInformationContent', this.querySelector('.toggle-icon'))" class="text-xl font-semibold text-gray-900 flex items-center justify-between mb-4 cursor-pointer">
186
- <span class="flex items-center">
187
- <i class='bx bx-info-circle mr-2 text-blue-600'></i>
188
- Basic Information (Read-only)
189
- </span>
190
- <i class='bx bx-chevron-down toggle-icon text-xl text-gray-500'></i>
191
- </h2>
192
- <div id="existingCategoryBasicInformationContent" class="grid grid-cols-1 md:grid-cols-2 gap-4 p-6 bg-white rounded-lg border border-gray-200 shadow-sm">
193
- <div>
194
- <label class="block text-sm font-medium text-gray-700 mb-1">Category Name</label>
195
- <input type="text" name="name" readonly class="w-full px-3 py-1.5 border border-gray-300 rounded-lg bg-gray-100 cursor-not-allowed">
196
- </div>
197
- <div>
198
- <label class="block text-sm font-medium text-gray-700 mb-1">Display Name</label>
199
- <input type="text" name="displayName" readonly class="w-full px-3 py-1.5 border border-gray-300 rounded-lg bg-gray-100 cursor-not-allowed">
200
- </div>
201
- <div class="md:col-span-2">
202
- <label class="block text-sm font-medium text-gray-700 mb-1">Description</label>
203
- <textarea name="description" rows="3" readonly class="w-full px-3 py-1.5 border border-gray-300 rounded-lg bg-gray-100 cursor-not-allowed"></textarea>
204
- </div>
205
- <div class="md:col-span-2">
206
- <label class="block text-sm font-medium text-gray-700 mb-1">Repository URL</label>
207
- <input type="url" name="repository" readonly class="w-full px-3 py-1.5 border border-gray-300 rounded-lg bg-gray-100 cursor-not-allowed">
208
- </div>
209
- </div>
210
- </div>
211
-
212
- <!-- MCP Servers (Existing read-only, new ones editable) -->
213
- <div id="existingCategoryMcpServersContainer" class="hidden space-y-4">
214
- <div class="flex justify-between items-center mb-4">
215
- <h2 class="text-xl font-semibold text-gray-900 flex items-center">
216
- <i class='bx bx-server mr-2 text-blue-600'></i>
217
- MCP Servers
218
- </h2>
219
- <button type="button" id="addServerToExistingCategoryBtn"
220
- class="px-4 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 flex items-center text-sm">
221
- <i class='bx bx-plus mr-2'></i>
222
- Add MCP Server
223
- </button>
224
- </div>
225
- <div id="existingCategoryServersList" class="space-y-4">
226
- <!-- Server configurations will be added here: existing ones read-only, new ones editable -->
227
- </div>
228
- </div>
229
-
230
- <!-- Action Buttons -->
231
- <div class="flex justify-end space-x-4 pt-6 border-t">
232
- <button type="button" onclick="window.location.href='index.html'"
233
- class="px-6 py-2.5 border border-gray-300 rounded-lg text-gray-600 hover:bg-gray-50">
234
- Cancel
235
- </button>
236
- <button type="button" id="validateButtonExistingCategory"
237
- class="px-6 py-2.5 bg-green-500 text-white rounded-lg hover:bg-green-600 flex items-center">
238
- <i class='bx bx-check-shield mr-2'></i>
239
- Validate
240
- </button>
241
- <button type="submit" id="publishButtonExistingCategory"
242
- class="px-6 py-2.5 bg-blue-600 text-white rounded-lg hover:bg-blue-700 flex items-center">
243
- <i class='bx bxs-cloud-upload mr-2'></i>
244
- Publish
245
- </button>
246
- </div>
247
-
248
- <!-- Validation Status Panel -->
249
- <div id="validationStatusPanelExistingCategory" class="hidden p-6 bg-gray-50 rounded-lg border border-gray-200">
250
- <h3 onclick="toggleSectionContent('validationStatusContentExistingCategoryTab', this.querySelector('.toggle-icon'))" class="cursor-pointer text-lg font-semibold text-gray-800 mb-3 flex items-center justify-between">
251
- <span class="flex items-center">
252
- <i class='bx bx-analyse mr-2 text-blue-600'></i>Validation Status
253
- </span>
254
- <i class='bx bx-chevron-down toggle-icon text-xl text-gray-500'></i>
255
- </h3>
256
- <div id="validationStatusContentExistingCategoryTab" class="text-sm text-gray-700 space-y-2">
257
- <!-- Validation messages will be displayed here -->
258
- </div>
259
- </div>
260
- </form>
261
- </div>
262
-
263
- <!-- JSON Editor Panel -->
264
- <div id="panel-json-editor" class="hidden">
265
- <h2 class="text-xl font-semibold text-gray-900 flex items-center mb-4">
266
- <i class='bx bx-code-alt mr-2 text-blue-600'></i>
267
- Edit Configuration as JSON
268
- </h2>
269
- <div class="relative">
270
- <button type="button" onclick="copyJsonToClipboard()" title="Copy JSON to clipboard"
271
- class="absolute top-2 right-2 z-10 px-3 py-1.5 text-xs bg-gray-200 hover:bg-gray-300 text-gray-700 rounded-md flex items-center">
272
- <i class='bx bx-copy mr-1'></i> Copy
273
- </button>
274
- <textarea id="jsonEditorTextarea" rows="20"
275
- class="w-full px-3 py-2 font-mono text-sm border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
276
- placeholder="JSON configuration will appear here..."></textarea>
277
- </div>
278
- <div id="jsonEditorActionsContainer" class="flex justify-end space-x-4 pt-6 border-t mt-6">
279
- <!-- "Apply JSON to Form" button removed -->
280
- <button type="button" onclick="window.location.href='index.html'"
281
- class="px-6 py-2.5 border border-gray-300 rounded-lg text-gray-600 hover:bg-gray-50">
282
- Cancel
283
- </button>
284
- <button type="button" id="saveJsonButton"
285
- class="px-6 py-2.5 bg-blue-600 text-white rounded-lg hover:bg-blue-700 flex items-center">
286
- <i class='bx bxs-cloud-upload mr-2'></i>
287
- Publish JSON
288
- </button>
289
- </div>
290
- </div>
291
- </div>
292
-
293
- <script src="js/onboard/index.js" type="module"></script>
294
- <!-- Highlight.js script can be removed if not using <pre><code> for JSON -->
295
- </body>
296
- </html>
@@ -1,135 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8">
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>IMCP System Settings</title>
8
- <script src="https://cdn.tailwindcss.com"></script>
9
- <link href="https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css" rel="stylesheet">
10
- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
11
- <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css" rel="stylesheet">
12
- <link rel="stylesheet" href="styles.css">
13
- <link rel="stylesheet" href="css/notifications.css">
14
- <style>
15
- .form-label {
16
- font-weight: 600;
17
- color: #374151; /* text-gray-700 */
18
- }
19
- .form-input {
20
- border-color: #D1D5DB; /* border-gray-300 */
21
- transition: all 0.15s ease-in-out;
22
- }
23
- .form-input:focus {
24
- border-color: #3B82F6; /* focus:border-blue-500 */
25
- box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25); /* focus:ring-blue-200 focus:ring-opacity-50 */
26
- }
27
- .btn-primary {
28
- background-color: #2563EB; /* bg-blue-600 */
29
- border-color: #2563EB;
30
- }
31
- .btn-primary:hover {
32
- background-color: #1D4ED8; /* hover:bg-blue-700 */
33
- border-color: #1D4ED8;
34
- }
35
- .btn-secondary {
36
- background-color: #6B7280; /* bg-gray-500 */
37
- border-color: #6B7280;
38
- color: white;
39
- }
40
- .btn-secondary:hover {
41
- background-color: #4B5563; /* hover:bg-gray-600 */
42
- border-color: #4B5563;
43
- }
44
- .toast-container {
45
- z-index: 1090; /* Ensure toast is above other elements */
46
- }
47
- </style>
48
- </head>
49
-
50
- <body class="bg-gray-50 min-h-screen">
51
- <div class="container mx-auto px-4 py-6">
52
- <div class="flex items-center justify-between mb-8">
53
- <h1 class="text-3xl font-bold text-gray-900 flex items-center">
54
- <a href="index.html" class="flex items-center text-gray-900 hover:text-blue-600 transition-colors">
55
- <i class='bx bx-left-arrow-alt mr-3 text-blue-600'></i>
56
- System Settings
57
- </a>
58
- </h1>
59
- </div>
60
-
61
- <div class="bg-white rounded-xl shadow-sm border border-gray-100 p-6 lg:p-8">
62
- <form id="settingsForm">
63
- <!-- Paths Section -->
64
- <h2 class="text-xl font-semibold text-gray-800 mb-3">Path Configurations</h2>
65
- <fieldset class="border border-gray-300 p-4 rounded-md mb-6">
66
- <!-- Python Environments Section -->
67
- <div class="mb-4">
68
- <h3 class="text-lg font-semibold text-gray-800 mb-2">Python Environments</h3>
69
- <div id="pythonEnvsContainer" class="space-y-3 mb-3">
70
- <!-- Python environments will be dynamically added here -->
71
- <p class="text-gray-500" id="pythonEnvsLoadingMsg">Loading Python environments...</p>
72
- </div>
73
- <button type="button" id="addPythonEnvButton" class="btn btn-outline-primary btn-sm mb-4 flex items-center">
74
- <i class='bx bx-plus mr-1'></i>Add Python Environment
75
- </button>
76
- </div>
77
-
78
- <!-- Other path configurations -->
79
- <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
80
- <div>
81
- <label for="nodePath" class="form-label block mb-2">Node.js Path</label>
82
- <input type="text" id="nodePath" name="nodePath" class="form-input form-control w-full px-3 py-2 rounded-md" placeholder="e.g., /usr/local/bin/node or C:/Program Files/nodejs/node.exe">
83
- </div>
84
- <div>
85
- <label for="browserPath" class="form-label block mb-2">Browser Executable Path</label>
86
- <input type="text" id="browserPath" name="browserPath" class="form-input form-control w-full px-3 py-2 rounded-md" placeholder="e.g., /usr/bin/google-chrome or C:/Program Files/Google/Chrome/Application/chrome.exe">
87
- </div>
88
- </div>
89
- </fieldset>
90
-
91
- <!-- User Configurations Section -->
92
- <div class="flex items-center mb-3">
93
- <h2 class="text-xl font-semibold text-gray-800 mr-2">User Configurations</h2>
94
- <p class="text-sm text-gray-500 flex items-center">
95
- <i class='bx bx-help-circle mr-1 text-gray-400'></i>
96
- Stored and used for mcp server installation environments.
97
- </p>
98
- </div>
99
- <fieldset class="border border-gray-300 p-4 rounded-md mb-6">
100
- <div id="userConfigurationsContainer" class="space-y-3">
101
- <!-- User configs will be dynamically added here -->
102
- <p class="text-gray-500" id="userConfigLoadingMsg">Loading user configurations...</p>
103
- </div>
104
- <button type="button" id="addUserConfigButton" class="btn btn-outline-primary btn-sm mt-3 flex items-center">
105
- <i class='bx bx-plus mr-1'></i>Add User Configuration
106
- </button>
107
- </fieldset>
108
-
109
- <!-- System Environment Variables Section -->
110
- <div class="mb-6">
111
- <h2 class="text-xl font-semibold text-gray-800 mb-2 py-2">System Environment Variables</h2>
112
- <div id="systemEnvironments" class="max-h-96 overflow-y-auto bg-white p-2 rounded-lg border border-gray-200">
113
- <p class="text-gray-500">Loading environment variables...</p>
114
- </div>
115
- </div>
116
-
117
- <div class="flex justify-end gap-4 mt-8">
118
- <button type="button" id="cancelButton" class="btn btn-secondary px-6 py-2.5 rounded-md font-medium">Cancel</button>
119
- <button type="submit" id="setupButton" class="btn btn-primary px-6 py-2.5 rounded-md font-medium flex items-center">
120
- <i class='bx bx-save mr-2'></i>Save Settings
121
- </button>
122
- </div>
123
- </form>
124
- </div>
125
- </div>
126
-
127
- <!-- Toast Notification Container -->
128
- <div class="toast-container position-fixed top-0 end-0 p-3">
129
- <!-- Toasts will be appended here -->
130
- </div>
131
-
132
- <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
133
- <script src="js/settings.js" type="module"></script>
134
- </body>
135
- </html>