roadmap-skill 0.2.6 → 0.2.8

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/README.md CHANGED
@@ -41,10 +41,7 @@
41
41
  ## Quick Start (Zero Config)
42
42
 
43
43
  ```bash
44
- # Option 1: Launch Web Kanban
45
- npx roadmap-skill-web
46
-
47
- # Option 2: Integrate with your AI assistant (MCP config below)
44
+ # Integrate with your AI assistant (MCP config below)
48
45
  ```
49
46
 
50
47
  <details>
@@ -321,7 +318,6 @@ npm install -g roadmap-skill
321
318
  ### Use Without Installing
322
319
 
323
320
  ```bash
324
- npx roadmap-skill-web # Web Kanban only
325
321
  npx roadmap-skill # Full MCP server
326
322
  ```
327
323
 
package/README.zh.md CHANGED
@@ -41,10 +41,7 @@
41
41
  ## 零配置快速开始
42
42
 
43
43
  ```bash
44
- # 方式一:启动 Web 看板
45
- npx roadmap-skill-web
46
-
47
- # 方式二:集成到你的 AI 助手(MCP 配置如下)
44
+ # 集成到你的 AI 助手(MCP 配置如下)
48
45
  ```
49
46
 
50
47
  <details>
@@ -321,7 +318,6 @@ npm install -g roadmap-skill
321
318
  ### 免安装使用
322
319
 
323
320
  ```bash
324
- npx roadmap-skill-web # 仅启动 Web 看板
325
321
  npx roadmap-skill # 完整 MCP 服务器
326
322
  ```
327
323
 
package/dist/index.js CHANGED
@@ -573,9 +573,18 @@ var TagService = class {
573
573
  code: "NOT_FOUND"
574
574
  };
575
575
  }
576
+ const taskTagCounts = /* @__PURE__ */ new Map();
577
+ for (const task of projectData.tasks) {
578
+ for (const tagId of task.tags) {
579
+ taskTagCounts.set(tagId, (taskTagCounts.get(tagId) ?? 0) + 1);
580
+ }
581
+ }
576
582
  return {
577
583
  success: true,
578
- data: projectData.tags
584
+ data: projectData.tags.map((tag) => ({
585
+ ...tag,
586
+ taskCount: taskTagCounts.get(tag.id) ?? 0
587
+ }))
579
588
  };
580
589
  } catch (error) {
581
590
  return {
@@ -1334,13 +1343,14 @@ function resolveAppPath() {
1334
1343
  candidates.push({ path: path4.join(pkgRoot, "dist/web/app"), source: "package.json resolve" });
1335
1344
  } catch {
1336
1345
  }
1346
+ candidates.push({ path: path4.join(__dirname2, "web/app"), source: "__dirname/web/app" });
1337
1347
  candidates.push({ path: path4.join(__dirname2, "app"), source: "__dirname relative" });
1338
1348
  candidates.push({ path: path4.join(process.cwd(), "dist/web/app"), source: "process.cwd()" });
1339
1349
  candidates.push({ path: path4.join(__dirname2, "../web/app"), source: "__dirname/../web/app" });
1340
1350
  for (const { path: candidatePath, source } of candidates) {
1341
1351
  const indexPath = path4.join(candidatePath, "index.html");
1342
1352
  if (existsSync(indexPath)) {
1343
- console.log(`[roadmap-skill] Static files found at: ${candidatePath} (via ${source})`);
1353
+ console.error(`[roadmap-skill] Static files found at: ${candidatePath} (via ${source})`);
1344
1354
  return candidatePath;
1345
1355
  }
1346
1356
  }
@@ -1548,7 +1558,7 @@ function createServer(port = 7860) {
1548
1558
  });
1549
1559
  const server = app.listen(port, "127.0.0.1");
1550
1560
  server.once("listening", () => {
1551
- console.log(`Web interface server running at http://localhost:${port}`);
1561
+ console.error(`Web interface server running at http://localhost:${port}`);
1552
1562
  resolve(server);
1553
1563
  });
1554
1564
  server.once("error", (error) => {
@@ -2509,7 +2519,15 @@ function createServer2() {
2509
2519
  };
2510
2520
  } catch (error) {
2511
2521
  const errorMessage = error instanceof Error ? error.message : String(error);
2512
- throw new Error(`Tool execution failed: ${errorMessage}`);
2522
+ return {
2523
+ content: [
2524
+ {
2525
+ type: "text",
2526
+ text: `Tool execution failed: ${errorMessage}`
2527
+ }
2528
+ ],
2529
+ isError: true
2530
+ };
2513
2531
  }
2514
2532
  }
2515
2533
  );
@@ -2581,11 +2599,9 @@ async function main() {
2581
2599
  });
2582
2600
  process.on("uncaughtException", (error) => {
2583
2601
  console.error("Uncaught exception:", error);
2584
- process.exit(1);
2585
2602
  });
2586
2603
  process.on("unhandledRejection", (reason) => {
2587
2604
  console.error("Unhandled rejection:", reason);
2588
- process.exit(1);
2589
2605
  });
2590
2606
  try {
2591
2607
  await startServer();