@syke1/mcp-server 1.8.0 → 1.8.1

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/index.js CHANGED
@@ -76,7 +76,7 @@ function resolveFilePath(fileArg, projectRoot, sourceDir) {
76
76
  // License state — set at startup
77
77
  let licenseStatus = { plan: "free", source: "default" };
78
78
  // Free tier limits
79
- const FREE_MAX_FILES = 50;
79
+ const FREE_MAX_FILES = 200;
80
80
  function isPro() {
81
81
  if (!(0, validator_1._verifyStatus)(licenseStatus)) {
82
82
  licenseStatus = { plan: "free", source: "default" };
@@ -103,7 +103,7 @@ function getMaxFiles() {
103
103
  }
104
104
  /**
105
105
  * Check if a resolved file path is within the free tier limit.
106
- * Free set = first 50 files sorted alphabetically by relative path.
106
+ * Free set = first 200 files sorted alphabetically by relative path.
107
107
  */
108
108
  function isFileInFreeSet(resolvedPath, graph) {
109
109
  if (isPro())
@@ -112,7 +112,7 @@ function isFileInFreeSet(resolvedPath, graph) {
112
112
  const idx = allFiles.indexOf(resolvedPath);
113
113
  return idx >= 0 && idx < FREE_MAX_FILES;
114
114
  }
115
- const PRO_UPGRADE_MSG = "This file exceeds the Free tier limit (50 files). Upgrade to Pro for unlimited analysis: https://syke.cloud/dashboard/";
115
+ const PRO_UPGRADE_MSG = "This file exceeds the Free tier limit (200 files). Upgrade to Pro for unlimited analysis: https://syke.cloud/dashboard/";
116
116
  function getProToolError(toolName) {
117
117
  if (licenseStatus.error) {
118
118
  return `${toolName}: ${licenseStatus.error}`;
@@ -147,7 +147,7 @@ async function main() {
147
147
  };
148
148
  process.on("SIGINT", shutdown);
149
149
  process.on("SIGTERM", shutdown);
150
- const server = new index_js_1.Server({ name: "syke", version: "1.8.0" }, { capabilities: { tools: {} } });
150
+ const server = new index_js_1.Server({ name: "syke", version: "1.8.1" }, { capabilities: { tools: {} } });
151
151
  // List tools
152
152
  server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
153
153
  tools: [
@@ -628,7 +628,7 @@ async function main() {
628
628
  }
629
629
  });
630
630
  // Pre-warm the graph (skip if no project root — e.g. Smithery scan)
631
- console.error(`[syke] Starting SYKE MCP Server v1.8.0`);
631
+ console.error(`[syke] Starting SYKE MCP Server v1.8.1`);
632
632
  console.error(`[syke] License: ${licenseStatus.plan.toUpperCase()} (${licenseStatus.source})`);
633
633
  if (licenseStatus.expiresAt) {
634
634
  console.error(`[syke] Expires: ${licenseStatus.expiresAt}`);
@@ -798,7 +798,7 @@ main().catch((err) => {
798
798
  * See: https://smithery.ai/docs/deploy#sandbox-server
799
799
  */
800
800
  function createSandboxServer() {
801
- const sandboxServer = new index_js_1.Server({ name: "syke", version: "1.8.0" }, { capabilities: { tools: {} } });
801
+ const sandboxServer = new index_js_1.Server({ name: "syke", version: "1.8.1" }, { capabilities: { tools: {} } });
802
802
  sandboxServer.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
803
803
  tools: [
804
804
  {
@@ -408,7 +408,7 @@ function createWebServer(getGraphFn, initialFileCache, switchProjectFn, getProje
408
408
  app.get("/api/graph", (_req, res) => {
409
409
  const graph = getGraphFn();
410
410
  const isPro = isProPlan();
411
- const FREE_GRAPH_LIMIT = 50;
411
+ const FREE_GRAPH_LIMIT = 200;
412
412
  const nodes = [];
413
413
  const edges = [];
414
414
  // ── Compute depth for each file (BFS from roots) ──
@@ -429,7 +429,7 @@ function createWebServer(getGraphFn, initialFileCache, switchProjectFn, getProje
429
429
  queue.push([dep, d + 1]);
430
430
  }
431
431
  }
432
- // Free tier: limit to first 50 files sorted alphabetically
432
+ // Free tier: limit to first 200 files sorted alphabetically
433
433
  const allFiles = [...graph.files].sort();
434
434
  const visibleFiles = isPro ? allFiles : allFiles.slice(0, FREE_GRAPH_LIMIT);
435
435
  const visibleSet = new Set(visibleFiles);
@@ -521,14 +521,14 @@ function createWebServer(getGraphFn, initialFileCache, switchProjectFn, getProje
521
521
  if (!isPro) {
522
522
  const allFiles = [...graph.files].sort();
523
523
  const idx = allFiles.indexOf(resolved);
524
- if (idx < 0 || idx >= 50) {
525
- return res.status(403).json({ error: "This file exceeds the Free tier limit (50 files). Upgrade to Pro for unlimited analysis.", upgrade: "https://syke.cloud/dashboard/" });
524
+ if (idx < 0 || idx >= 200) {
525
+ return res.status(403).json({ error: "This file exceeds the Free tier limit (200 files). Upgrade to Pro for unlimited analysis.", upgrade: "https://syke.cloud/dashboard/" });
526
526
  }
527
527
  }
528
528
  const impactResult = await (0, analyze_impact_1.analyzeImpact)(resolved, graph);
529
529
  try {
530
530
  const aiResult = await (0, analyzer_1.analyzeWithAI)(resolved, impactResult, graph);
531
- const partial = !isPro && graph.files.size > 50;
531
+ const partial = !isPro && graph.files.size > 200;
532
532
  res.json({ file: impactResult.relativePath, analysis: aiResult, partial });
533
533
  }
534
534
  catch (err) {
@@ -792,7 +792,7 @@ function createWebServer(getGraphFn, initialFileCache, switchProjectFn, getProje
792
792
  planSource: license?.source || "default",
793
793
  expiresAt: license?.expiresAt || null,
794
794
  licenseKey: maskedKey,
795
- freeFileLimit: 50,
795
+ freeFileLimit: 200,
796
796
  sykeVersion,
797
797
  aiProvider: aiInfo.activeProvider,
798
798
  aiKeys: aiInfo.configured,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syke1/mcp-server",
3
- "version": "1.8.0",
3
+ "version": "1.8.1",
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",