imcp 0.1.7 → 0.1.8-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/install.js +1 -106
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/list.js +1 -90
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/pull.js +1 -16
- package/dist/cli/commands/pull.js.map +1 -0
- package/dist/cli/commands/serve.js +1 -33
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/uninstall.js +1 -46
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/index.js +1 -65
- package/dist/cli/index.js.map +1 -0
- package/dist/core/installers/clients/BaseClientInstaller.js +1 -282
- package/dist/core/installers/clients/BaseClientInstaller.js.map +1 -0
- package/dist/core/installers/clients/ClientInstaller.js +1 -163
- package/dist/core/installers/clients/ClientInstaller.js.map +1 -0
- package/dist/core/installers/clients/ClientInstallerFactory.js +1 -36
- package/dist/core/installers/clients/ClientInstallerFactory.js.map +1 -0
- package/dist/core/installers/clients/ClineInstaller.js +1 -30
- package/dist/core/installers/clients/ClineInstaller.js.map +1 -0
- package/dist/core/installers/clients/ExtensionInstaller.js +1 -151
- package/dist/core/installers/clients/ExtensionInstaller.js.map +1 -0
- package/dist/core/installers/clients/GithubCopilotInstaller.js +1 -68
- package/dist/core/installers/clients/GithubCopilotInstaller.js.map +1 -0
- package/dist/core/installers/clients/MSRooCodeInstaller.js +1 -28
- package/dist/core/installers/clients/MSRooCodeInstaller.js.map +1 -0
- package/dist/core/installers/index.js +1 -8
- package/dist/core/installers/index.js.map +1 -0
- package/dist/core/installers/requirements/BaseInstaller.js +1 -56
- package/dist/core/installers/requirements/BaseInstaller.js.map +1 -0
- package/dist/core/installers/requirements/CommandInstaller.js +1 -213
- package/dist/core/installers/requirements/CommandInstaller.js.map +1 -0
- package/dist/core/installers/requirements/GeneralInstaller.js +1 -126
- package/dist/core/installers/requirements/GeneralInstaller.js.map +1 -0
- package/dist/core/installers/requirements/InstallerFactory.js +1 -99
- package/dist/core/installers/requirements/InstallerFactory.js.map +1 -0
- package/dist/core/installers/requirements/NpmInstaller.js +1 -235
- package/dist/core/installers/requirements/NpmInstaller.js.map +1 -0
- package/dist/core/installers/requirements/NugetInstaller.js +1 -188
- package/dist/core/installers/requirements/NugetInstaller.js.map +1 -0
- package/dist/core/installers/requirements/PipInstaller.js +1 -192
- package/dist/core/installers/requirements/PipInstaller.js.map +1 -0
- package/dist/core/installers/requirements/RequirementInstaller.js +1 -2
- package/dist/core/installers/requirements/RequirementInstaller.js.map +1 -0
- package/dist/core/loaders/ConfigurationLoader.js +1 -256
- package/dist/core/loaders/ConfigurationLoader.js.map +1 -0
- package/dist/core/loaders/ConfigurationProvider.js +1 -383
- package/dist/core/loaders/ConfigurationProvider.js.map +1 -0
- package/dist/core/loaders/InstallOperationManager.js +1 -310
- package/dist/core/loaders/InstallOperationManager.js.map +1 -0
- package/dist/core/loaders/ServerSchemaLoader.js +1 -108
- package/dist/core/loaders/ServerSchemaLoader.js.map +1 -0
- package/dist/core/loaders/ServerSchemaProvider.js +1 -89
- package/dist/core/loaders/ServerSchemaProvider.js.map +1 -0
- package/dist/core/loaders/SystemSettingsManager.js +1 -256
- package/dist/core/loaders/SystemSettingsManager.js.map +1 -0
- package/dist/core/metadatas/constants.js +1 -100
- package/dist/core/metadatas/constants.js.map +1 -0
- package/dist/core/metadatas/recordingConstants.js +1 -46
- package/dist/core/metadatas/recordingConstants.js.map +1 -0
- package/dist/core/metadatas/types.js +1 -15
- package/dist/core/metadatas/types.js.map +1 -0
- package/dist/core/onboard/FeedOnboardService.js +1 -422
- package/dist/core/onboard/FeedOnboardService.js.map +1 -0
- package/dist/core/onboard/OnboardProcessor.js +1 -333
- package/dist/core/onboard/OnboardProcessor.js.map +1 -0
- package/dist/core/onboard/OnboardStatus.js +1 -9
- package/dist/core/onboard/OnboardStatus.js.map +1 -0
- package/dist/core/onboard/OnboardStatusManager.js +1 -360
- package/dist/core/onboard/OnboardStatusManager.js.map +1 -0
- package/dist/core/validators/FeedValidator.js +1 -133
- package/dist/core/validators/FeedValidator.js.map +1 -0
- package/dist/core/validators/IServerValidator.js +1 -1
- package/dist/core/validators/IServerValidator.js.map +1 -0
- package/dist/core/validators/SSEServerValidator.js +1 -38
- package/dist/core/validators/SSEServerValidator.js.map +1 -0
- package/dist/core/validators/ServerValidatorFactory.js +1 -44
- package/dist/core/validators/ServerValidatorFactory.js.map +1 -0
- package/dist/core/validators/StdioServerValidator.js +1 -281
- package/dist/core/validators/StdioServerValidator.js.map +1 -0
- package/dist/index.js +1 -18
- package/dist/index.js.map +1 -0
- package/dist/services/InstallationService.js +1 -81
- package/dist/services/InstallationService.js.map +1 -0
- package/dist/services/MCPManager.js +1 -197
- package/dist/services/MCPManager.js.map +1 -0
- package/dist/services/RequirementService.js +1 -548
- package/dist/services/RequirementService.js.map +1 -0
- package/dist/services/ServerService.js +1 -127
- package/dist/services/ServerService.js.map +1 -0
- package/dist/services/TelemetryService.js +1 -53
- package/dist/services/TelemetryService.js.map +1 -0
- package/dist/utils/UpdateCheckTracker.js +1 -79
- package/dist/utils/UpdateCheckTracker.js.map +1 -0
- package/dist/utils/adoUtils.js +1 -254
- package/dist/utils/adoUtils.js.map +1 -0
- package/dist/utils/clientUtils.js +1 -65
- package/dist/utils/clientUtils.js.map +1 -0
- package/dist/utils/feedUtils.js +1 -28
- package/dist/utils/feedUtils.js.map +1 -0
- package/dist/utils/githubAuth.js +1 -177
- package/dist/utils/githubAuth.js.map +1 -0
- package/dist/utils/githubUtils.js +1 -125
- package/dist/utils/githubUtils.js.map +1 -0
- package/dist/utils/logger.js +1 -176
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/macroExpressionUtils.js +1 -93
- package/dist/utils/macroExpressionUtils.js.map +1 -0
- package/dist/utils/osUtils.js +1 -664
- package/dist/utils/osUtils.js.map +1 -0
- package/dist/utils/versionUtils.js +1 -101
- package/dist/utils/versionUtils.js.map +1 -0
- package/dist/web/contract/serverContract.js +1 -1
- package/dist/web/contract/serverContract.js.map +1 -0
- package/dist/web/public/js/api.js +2 -132
- package/dist/web/public/js/api.js.map +1 -0
- package/dist/web/public/js/detailsWidget.js +2 -264
- package/dist/web/public/js/detailsWidget.js.map +1 -0
- package/dist/web/public/js/flights/flights.js +2 -127
- package/dist/web/public/js/flights/flights.js.map +1 -0
- package/dist/web/public/js/modal/index.js +2 -52
- package/dist/web/public/js/modal/index.js.map +1 -0
- package/dist/web/public/js/modal/installModal.js +2 -162
- package/dist/web/public/js/modal/installModal.js.map +1 -0
- package/dist/web/public/js/modal/installation.js +2 -266
- package/dist/web/public/js/modal/installation.js.map +1 -0
- package/dist/web/public/js/modal/loadingModal.js +2 -182
- package/dist/web/public/js/modal/loadingModal.js.map +1 -0
- package/dist/web/public/js/modal/modalSetup.js +2 -595
- package/dist/web/public/js/modal/modalSetup.js.map +1 -0
- package/dist/web/public/js/modal/modalUtils.js +2 -37
- package/dist/web/public/js/modal/modalUtils.js.map +1 -0
- package/dist/web/public/js/modal/versionUtils.js +2 -20
- package/dist/web/public/js/modal/versionUtils.js.map +1 -0
- package/dist/web/public/js/modal.js +2 -42
- package/dist/web/public/js/modal.js.map +1 -0
- package/dist/web/public/js/notifications.js +2 -137
- package/dist/web/public/js/notifications.js.map +1 -0
- package/dist/web/public/js/onboard/formProcessor.js +2 -1037
- package/dist/web/public/js/onboard/formProcessor.js.map +1 -0
- package/dist/web/public/js/onboard/index.js +2 -374
- package/dist/web/public/js/onboard/index.js.map +1 -0
- package/dist/web/public/js/onboard/publishHandler.js +2 -172
- package/dist/web/public/js/onboard/publishHandler.js.map +1 -0
- package/dist/web/public/js/onboard/state.js +2 -76
- package/dist/web/public/js/onboard/state.js.map +1 -0
- package/dist/web/public/js/onboard/templates.js +2 -342
- package/dist/web/public/js/onboard/templates.js.map +1 -0
- package/dist/web/public/js/onboard/uiHandlers.js +2 -1076
- package/dist/web/public/js/onboard/uiHandlers.js.map +1 -0
- package/dist/web/public/js/onboard/validationHandlers.js +2 -493
- package/dist/web/public/js/onboard/validationHandlers.js.map +1 -0
- package/dist/web/public/js/serverCategoryDetails.js +2 -364
- package/dist/web/public/js/serverCategoryDetails.js.map +1 -0
- package/dist/web/public/js/serverCategoryList.js +2 -241
- package/dist/web/public/js/serverCategoryList.js.map +1 -0
- package/dist/web/public/js/settings.js +2 -314
- package/dist/web/public/js/settings.js.map +1 -0
- package/dist/web/server.js +1 -404
- package/dist/web/server.js.map +1 -0
- package/package.json +8 -2
- package/.github/ISSUE_TEMPLATE/JitAccess.yml +0 -28
- package/.github/acl/access.yml +0 -20
- package/.github/compliance/inventory.yml +0 -5
- package/.github/policies/jit.yml +0 -19
- package/.github/workflows/build.yml +0 -28
- package/.roo/rules-code/rules.md +0 -88
- package/dist/cli/commands/start.d.ts +0 -2
- package/dist/cli/commands/start.js +0 -32
- package/dist/cli/commands/sync.d.ts +0 -2
- package/dist/cli/commands/sync.js +0 -17
- package/dist/core/ConfigurationLoader.d.ts +0 -32
- package/dist/core/ConfigurationLoader.js +0 -236
- package/dist/core/ConfigurationProvider.d.ts +0 -35
- package/dist/core/ConfigurationProvider.js +0 -375
- package/dist/core/InstallationService.d.ts +0 -50
- package/dist/core/InstallationService.js +0 -350
- package/dist/core/MCPManager.d.ts +0 -28
- package/dist/core/MCPManager.js +0 -188
- package/dist/core/RequirementService.d.ts +0 -40
- package/dist/core/RequirementService.js +0 -110
- package/dist/core/ServerSchemaLoader.d.ts +0 -11
- package/dist/core/ServerSchemaLoader.js +0 -43
- package/dist/core/ServerSchemaProvider.d.ts +0 -17
- package/dist/core/ServerSchemaProvider.js +0 -120
- package/dist/core/constants.d.ts +0 -47
- package/dist/core/constants.js +0 -94
- package/dist/core/installers/BaseInstaller.d.ts +0 -74
- package/dist/core/installers/BaseInstaller.js +0 -253
- package/dist/core/installers/ClientInstaller.d.ts +0 -23
- package/dist/core/installers/ClientInstaller.js +0 -564
- package/dist/core/installers/CommandInstaller.d.ts +0 -37
- package/dist/core/installers/CommandInstaller.js +0 -173
- package/dist/core/installers/GeneralInstaller.d.ts +0 -33
- package/dist/core/installers/GeneralInstaller.js +0 -85
- package/dist/core/installers/InstallerFactory.d.ts +0 -54
- package/dist/core/installers/InstallerFactory.js +0 -97
- package/dist/core/installers/NpmInstaller.d.ts +0 -26
- package/dist/core/installers/NpmInstaller.js +0 -127
- package/dist/core/installers/PipInstaller.d.ts +0 -28
- package/dist/core/installers/PipInstaller.js +0 -127
- package/dist/core/installers/RequirementInstaller.d.ts +0 -33
- package/dist/core/installers/RequirementInstaller.js +0 -3
- package/dist/core/types.d.ts +0 -166
- package/dist/core/types.js +0 -16
- package/dist/services/InstallRequestValidator.d.ts +0 -21
- package/dist/services/InstallRequestValidator.js +0 -99
- package/dist/web/public/js/modal/installHandler.js +0 -227
- package/dist/web/public/js/modal/loadingUI.js +0 -74
- package/dist/web/public/js/modal/messageQueue.js +0 -112
- package/dist/web/public/js/modal/modalUI.js +0 -214
- package/dist/web/public/js/modal/version.js +0 -20
- package/dist/web/public/js/onboard/ONBOARDING_PAGE_DESIGN.md +0 -370
- package/docs/ONBOARDING_PAGE_DESIGN.md +0 -260
- package/docs/Telemetry.md +0 -136
- package/memory-bank/activeContext.md +0 -26
- package/memory-bank/decisionLog.md +0 -91
- package/memory-bank/productContext.md +0 -41
- package/memory-bank/progress.md +0 -35
- package/memory-bank/systemPatterns.md +0 -10
- package/src/cli/commands/install.ts +0 -139
- package/src/cli/commands/list.ts +0 -113
- package/src/cli/commands/pull.ts +0 -16
- package/src/cli/commands/serve.ts +0 -39
- package/src/cli/commands/uninstall.ts +0 -64
- package/src/cli/index.ts +0 -82
- package/src/core/installers/clients/BaseClientInstaller.ts +0 -341
- package/src/core/installers/clients/ClientInstaller.ts +0 -222
- package/src/core/installers/clients/ClientInstallerFactory.ts +0 -43
- package/src/core/installers/clients/ClineInstaller.ts +0 -35
- package/src/core/installers/clients/ExtensionInstaller.ts +0 -165
- package/src/core/installers/clients/GithubCopilotInstaller.ts +0 -79
- package/src/core/installers/clients/MSRooCodeInstaller.ts +0 -32
- package/src/core/installers/index.ts +0 -11
- package/src/core/installers/requirements/BaseInstaller.ts +0 -85
- package/src/core/installers/requirements/CommandInstaller.ts +0 -231
- package/src/core/installers/requirements/GeneralInstaller.ts +0 -133
- package/src/core/installers/requirements/InstallerFactory.ts +0 -114
- package/src/core/installers/requirements/NpmInstaller.ts +0 -271
- package/src/core/installers/requirements/NugetInstaller.ts +0 -203
- package/src/core/installers/requirements/PipInstaller.ts +0 -207
- package/src/core/installers/requirements/RequirementInstaller.ts +0 -42
- package/src/core/loaders/ConfigurationLoader.ts +0 -298
- package/src/core/loaders/ConfigurationProvider.ts +0 -462
- package/src/core/loaders/InstallOperationManager.ts +0 -367
- package/src/core/loaders/ServerSchemaLoader.ts +0 -117
- package/src/core/loaders/ServerSchemaProvider.ts +0 -99
- package/src/core/loaders/SystemSettingsManager.ts +0 -278
- package/src/core/metadatas/constants.ts +0 -122
- package/src/core/metadatas/recordingConstants.ts +0 -65
- package/src/core/metadatas/types.ts +0 -202
- package/src/core/onboard/FeedOnboardService.ts +0 -501
- package/src/core/onboard/OnboardProcessor.ts +0 -356
- package/src/core/onboard/OnboardStatus.ts +0 -60
- package/src/core/onboard/OnboardStatusManager.ts +0 -416
- package/src/core/validators/FeedValidator.ts +0 -135
- package/src/core/validators/IServerValidator.ts +0 -21
- package/src/core/validators/SSEServerValidator.ts +0 -43
- package/src/core/validators/ServerValidatorFactory.ts +0 -51
- package/src/core/validators/StdioServerValidator.ts +0 -313
- package/src/index.ts +0 -44
- package/src/services/InstallationService.ts +0 -102
- package/src/services/MCPManager.ts +0 -249
- package/src/services/RequirementService.ts +0 -627
- package/src/services/ServerService.ts +0 -161
- package/src/services/TelemetryService.ts +0 -59
- package/src/utils/UpdateCheckTracker.ts +0 -86
- package/src/utils/adoUtils.ts +0 -293
- package/src/utils/clientUtils.ts +0 -72
- package/src/utils/feedUtils.ts +0 -31
- package/src/utils/githubAuth.ts +0 -212
- package/src/utils/githubUtils.ts +0 -164
- package/src/utils/logger.ts +0 -195
- package/src/utils/macroExpressionUtils.ts +0 -104
- package/src/utils/osUtils.ts +0 -700
- package/src/utils/versionUtils.ts +0 -114
- package/src/web/contract/serverContract.ts +0 -74
- package/src/web/public/css/detailsWidget.css +0 -235
- package/src/web/public/css/modal.css +0 -757
- package/src/web/public/css/notifications.css +0 -101
- package/src/web/public/css/onboard.css +0 -107
- package/src/web/public/css/serverCategoryList.css +0 -120
- package/src/web/public/css/serverDetails.css +0 -139
- package/src/web/public/index.html +0 -359
- package/src/web/public/js/api.js +0 -132
- package/src/web/public/js/detailsWidget.js +0 -264
- package/src/web/public/js/flights/flights.js +0 -127
- package/src/web/public/js/modal/index.js +0 -52
- package/src/web/public/js/modal/installModal.js +0 -162
- package/src/web/public/js/modal/installation.js +0 -266
- package/src/web/public/js/modal/loadingModal.js +0 -182
- package/src/web/public/js/modal/modalSetup.js +0 -595
- package/src/web/public/js/modal/modalUtils.js +0 -37
- package/src/web/public/js/modal/versionUtils.js +0 -20
- package/src/web/public/js/modal.js +0 -42
- package/src/web/public/js/notifications.js +0 -137
- package/src/web/public/js/onboard/formProcessor.js +0 -1037
- package/src/web/public/js/onboard/index.js +0 -374
- package/src/web/public/js/onboard/publishHandler.js +0 -172
- package/src/web/public/js/onboard/state.js +0 -76
- package/src/web/public/js/onboard/templates.js +0 -342
- package/src/web/public/js/onboard/uiHandlers.js +0 -1076
- package/src/web/public/js/onboard/validationHandlers.js +0 -493
- package/src/web/public/js/serverCategoryDetails.js +0 -364
- package/src/web/public/js/serverCategoryList.js +0 -241
- package/src/web/public/js/settings.js +0 -314
- package/src/web/public/modal.html +0 -84
- package/src/web/public/onboard.html +0 -296
- package/src/web/public/settings.html +0 -135
- package/src/web/public/styles.css +0 -277
- package/src/web/server.ts +0 -478
- package/tsconfig.json +0 -18
- package/wiki/Installation.md +0 -3
- package/wiki/Publish.md +0 -3
|
@@ -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
|
-
Publish MCP Server
|
|
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
|
-
Server List
|
|
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
|
-
Add 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
|
-
Add 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>
|