@kaddo/mcp 3.40.0 → 3.40.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.
Files changed (2) hide show
  1. package/dist/index.js +20 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2436,16 +2436,21 @@ function buildReadinessReport(dir, now = /* @__PURE__ */ new Date()) {
2436
2436
  // ../cli/src/core/decisions.ts
2437
2437
  var CANDIDATES_PATH = "knowledge/tech/decision-candidates.md";
2438
2438
  var DECISIONS_DIR = "knowledge/tech/decisions";
2439
+ function cleanCandidateTitle(title) {
2440
+ return title.replace(/^\s*#{1,6}\s+/, "").replace(/^\s*[-*]\s+/, "").replace(/^\s*\(?\d+\)?[.):]\s+/, "").trim();
2441
+ }
2439
2442
  function slugify(s) {
2440
- return s.toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 60);
2443
+ return cleanCandidateTitle(s).toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/-+/g, "-").replace(/^-+|-+$/g, "").slice(0, 70).replace(/-+$/g, "");
2441
2444
  }
2442
2445
  function parseDecisionCandidates(md) {
2443
2446
  const out = [];
2444
2447
  for (const line of md.split(/\r?\n/)) {
2445
2448
  const m = line.match(/^##\s+(.+?)\s*$/);
2446
2449
  if (m) {
2447
- const t = m[1].trim();
2448
- if (t && !/^_.*_$/.test(t)) out.push(t);
2450
+ const raw = m[1].trim();
2451
+ if (!raw || /^_.*_$/.test(raw)) continue;
2452
+ const t = cleanCandidateTitle(raw);
2453
+ if (t) out.push(t);
2449
2454
  }
2450
2455
  }
2451
2456
  return out;
@@ -4125,6 +4130,18 @@ var RESOURCES = [
4125
4130
  }
4126
4131
  return [{ uri: "kaddo://roadmap-readiness", text: JSON.stringify(roadmapReadinessSummary(root), null, 2), mimeType: "application/json" }];
4127
4132
  }
4133
+ },
4134
+ {
4135
+ uri: "kaddo://tech-decisions",
4136
+ name: "Kaddo tech decisions",
4137
+ description: "Technical decision candidates vs materialized ADRs (status, counts, candidate list with suggested ADR filenames). Read-only; shares buildTechDecisions with `kaddo adr`.",
4138
+ mimeType: "application/json",
4139
+ read: (root) => {
4140
+ if (!hasKnowledge(root)) {
4141
+ return text("kaddo://tech-decisions", "Knowledge repository not found. Run `kaddo bootstrap` first.", "text/plain");
4142
+ }
4143
+ return [{ uri: "kaddo://tech-decisions", text: JSON.stringify(buildTechDecisions(root), null, 2), mimeType: "application/json" }];
4144
+ }
4128
4145
  }
4129
4146
  ];
4130
4147
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaddo/mcp",
3
- "version": "3.40.0",
3
+ "version": "3.40.1",
4
4
  "description": "MCP server for Kaddo project knowledge: read-only resources/tools/prompts plus safe derived generation under .kaddo/.",
5
5
  "license": "MIT",
6
6
  "repository": {