@syke1/mcp-server 1.4.2 → 1.4.3

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.
@@ -3817,11 +3817,27 @@ function setupLicenseModal() {
3817
3817
  const statusEl = document.getElementById("license-modal-status");
3818
3818
  if (!btn || !modal) return;
3819
3819
 
3820
- function openModal() {
3820
+ async function openModal() {
3821
3821
  modal.classList.remove("hidden");
3822
3822
  input.value = "";
3823
3823
  statusEl.textContent = "";
3824
3824
  statusEl.className = "";
3825
+ // Fetch current key status
3826
+ try {
3827
+ const res = await fetch("/api/project-info");
3828
+ const info = await res.json();
3829
+ if (info.licenseKey) {
3830
+ input.placeholder = info.licenseKey;
3831
+ statusEl.className = "success";
3832
+ statusEl.textContent = "ACTIVE — " + (info.plan || "free").toUpperCase();
3833
+ deactivateBtn.style.display = "";
3834
+ } else {
3835
+ input.placeholder = "SYKE-XXXX-XXXX-XXXX-XXXX";
3836
+ deactivateBtn.style.display = "none";
3837
+ }
3838
+ } catch {
3839
+ input.placeholder = "SYKE-XXXX-XXXX-XXXX-XXXX";
3840
+ }
3825
3841
  input.focus();
3826
3842
  }
3827
3843
  function closeModal() {
@@ -48,6 +48,7 @@ const plugin_1 = require("../languages/plugin");
48
48
  const analyze_impact_1 = require("../tools/analyze-impact");
49
49
  const analyzer_1 = require("../ai/analyzer");
50
50
  const realtime_analyzer_1 = require("../ai/realtime-analyzer");
51
+ const config_1 = require("../config");
51
52
  function resolveFilePath(fileArg, projectRoot, sourceDir) {
52
53
  const srcDir = sourceDir || path.join(projectRoot, "lib");
53
54
  const srcDirName = path.basename(srcDir); // "lib" or "src"
@@ -739,6 +740,11 @@ function createWebServer(getGraphFn, initialFileCache, switchProjectFn, getProje
739
740
  sykeVersion = pkg.version || "unknown";
740
741
  }
741
742
  catch { }
743
+ // Read current license key (masked for display)
744
+ const rawKey = (0, config_1.getConfig)("licenseKey", "SYKE_LICENSE_KEY") || "";
745
+ const maskedKey = rawKey.length > 10
746
+ ? rawKey.substring(0, 9) + "····" + rawKey.substring(rawKey.length - 4)
747
+ : "";
742
748
  res.json({
743
749
  projectRoot: getProjectRoot ? getProjectRoot() : graph.projectRoot,
744
750
  packageName: getPackageName ? getPackageName() : "",
@@ -748,6 +754,7 @@ function createWebServer(getGraphFn, initialFileCache, switchProjectFn, getProje
748
754
  plan: license?.plan || "free",
749
755
  planSource: license?.source || "default",
750
756
  expiresAt: license?.expiresAt || null,
757
+ licenseKey: maskedKey,
751
758
  freeFileLimit: 50,
752
759
  sykeVersion,
753
760
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syke1/mcp-server",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
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",