@syke1/mcp-server 1.4.21 → 1.4.22
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/web/public/app.js
CHANGED
|
@@ -4003,6 +4003,7 @@ function setupAIKeysModal() {
|
|
|
4003
4003
|
|
|
4004
4004
|
function updateStatus(row, isConfigured, isActive) {
|
|
4005
4005
|
const statusEl = row.querySelector(".ai-key-status");
|
|
4006
|
+
const removeBtn = row.querySelector(".ai-key-remove-btn");
|
|
4006
4007
|
if (isActive) {
|
|
4007
4008
|
statusEl.textContent = "ACTIVE";
|
|
4008
4009
|
statusEl.className = "ai-key-status active";
|
|
@@ -4013,6 +4014,13 @@ function setupAIKeysModal() {
|
|
|
4013
4014
|
statusEl.textContent = "---";
|
|
4014
4015
|
statusEl.className = "ai-key-status none";
|
|
4015
4016
|
}
|
|
4017
|
+
if (removeBtn) {
|
|
4018
|
+
if (isConfigured || isActive) {
|
|
4019
|
+
removeBtn.classList.remove("hidden");
|
|
4020
|
+
} else {
|
|
4021
|
+
removeBtn.classList.add("hidden");
|
|
4022
|
+
}
|
|
4023
|
+
}
|
|
4016
4024
|
}
|
|
4017
4025
|
|
|
4018
4026
|
function updateAll(aiKeys, activeProvider) {
|
|
@@ -4096,6 +4104,38 @@ function setupAIKeysModal() {
|
|
|
4096
4104
|
input.addEventListener("keydown", function(e) {
|
|
4097
4105
|
if (e.key === "Enter") setBtn.click();
|
|
4098
4106
|
});
|
|
4107
|
+
|
|
4108
|
+
// REMOVE button handler
|
|
4109
|
+
const removeBtn = row.querySelector(".ai-key-remove-btn");
|
|
4110
|
+
if (removeBtn) {
|
|
4111
|
+
removeBtn.addEventListener("click", async function() {
|
|
4112
|
+
removeBtn.disabled = true;
|
|
4113
|
+
removeBtn.textContent = "...";
|
|
4114
|
+
|
|
4115
|
+
try {
|
|
4116
|
+
const res = await fetch("/api/set-ai-key", {
|
|
4117
|
+
method: "POST",
|
|
4118
|
+
headers: { "Content-Type": "application/json" },
|
|
4119
|
+
body: JSON.stringify({ provider: provider, key: null }),
|
|
4120
|
+
});
|
|
4121
|
+
const data = await res.json();
|
|
4122
|
+
if (data.success) {
|
|
4123
|
+
updateAll(data.configured, data.activeProvider);
|
|
4124
|
+
input.value = "";
|
|
4125
|
+
var placeholders = { gemini: "AIzaSy...", openai: "sk-...", anthropic: "sk-ant-..." };
|
|
4126
|
+
input.placeholder = placeholders[provider] || "";
|
|
4127
|
+
if (window._refreshAIProviderSelector) window._refreshAIProviderSelector();
|
|
4128
|
+
}
|
|
4129
|
+
} catch (err) {
|
|
4130
|
+
var statusEl = row.querySelector(".ai-key-status");
|
|
4131
|
+
statusEl.textContent = "ERROR";
|
|
4132
|
+
statusEl.className = "ai-key-status";
|
|
4133
|
+
statusEl.style.color = "#ff5f57";
|
|
4134
|
+
}
|
|
4135
|
+
removeBtn.disabled = false;
|
|
4136
|
+
removeBtn.textContent = "REMOVE";
|
|
4137
|
+
});
|
|
4138
|
+
}
|
|
4099
4139
|
});
|
|
4100
4140
|
|
|
4101
4141
|
document.addEventListener("keydown", function(e) {
|
|
@@ -474,18 +474,21 @@
|
|
|
474
474
|
<input type="password" class="ai-key-input" placeholder="AIzaSy..." spellcheck="false" autocomplete="off">
|
|
475
475
|
<button class="ai-key-set-btn">SET</button>
|
|
476
476
|
<span class="ai-key-status"></span>
|
|
477
|
+
<button class="ai-key-remove-btn hidden">REMOVE</button>
|
|
477
478
|
</div>
|
|
478
479
|
<div class="ai-key-row" data-provider="openai">
|
|
479
480
|
<span class="ai-key-label">OPENAI</span>
|
|
480
481
|
<input type="password" class="ai-key-input" placeholder="sk-..." spellcheck="false" autocomplete="off">
|
|
481
482
|
<button class="ai-key-set-btn">SET</button>
|
|
482
483
|
<span class="ai-key-status"></span>
|
|
484
|
+
<button class="ai-key-remove-btn hidden">REMOVE</button>
|
|
483
485
|
</div>
|
|
484
486
|
<div class="ai-key-row" data-provider="anthropic">
|
|
485
487
|
<span class="ai-key-label">ANTHROPIC</span>
|
|
486
488
|
<input type="password" class="ai-key-input" placeholder="sk-ant-..." spellcheck="false" autocomplete="off">
|
|
487
489
|
<button class="ai-key-set-btn">SET</button>
|
|
488
490
|
<span class="ai-key-status"></span>
|
|
491
|
+
<button class="ai-key-remove-btn hidden">REMOVE</button>
|
|
489
492
|
</div>
|
|
490
493
|
</div>
|
|
491
494
|
<div id="ai-keys-active" class="ai-keys-active"></div>
|
|
@@ -2223,6 +2223,26 @@ main {
|
|
|
2223
2223
|
color: var(--text-secondary);
|
|
2224
2224
|
opacity: 0.4;
|
|
2225
2225
|
}
|
|
2226
|
+
.ai-key-remove-btn {
|
|
2227
|
+
padding: 4px 8px;
|
|
2228
|
+
border: 1px solid rgba(255,95,87,0.4);
|
|
2229
|
+
border-radius: 3px;
|
|
2230
|
+
background: transparent;
|
|
2231
|
+
color: #ff5f57;
|
|
2232
|
+
font-family: inherit;
|
|
2233
|
+
font-size: 9px;
|
|
2234
|
+
letter-spacing: 1.5px;
|
|
2235
|
+
cursor: pointer;
|
|
2236
|
+
transition: all 0.2s;
|
|
2237
|
+
flex-shrink: 0;
|
|
2238
|
+
}
|
|
2239
|
+
.ai-key-remove-btn:hover {
|
|
2240
|
+
background: rgba(255,95,87,0.1);
|
|
2241
|
+
border-color: #ff5f57;
|
|
2242
|
+
}
|
|
2243
|
+
.ai-key-remove-btn.hidden {
|
|
2244
|
+
display: none;
|
|
2245
|
+
}
|
|
2226
2246
|
.ai-keys-active {
|
|
2227
2247
|
font-size: 11px;
|
|
2228
2248
|
color: var(--risk-low);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syke1/mcp-server",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.22",
|
|
4
4
|
"mcpName": "io.github.khalomsky/syke",
|
|
5
5
|
"description": "AI code impact analysis MCP server — dependency graphs, cascade detection, and a mandatory build gate for AI coding agents",
|
|
6
6
|
"main": "dist/index.js",
|