projectpulse-mcp 1.5.0 → 1.5.2

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 (59) hide show
  1. package/dist/tools/analyze-code-scanning.js +1 -1
  2. package/dist/tools/analyze-code-scanning.js.map +1 -1
  3. package/dist/tools/analyze-dependencies.js +1 -1
  4. package/dist/tools/analyze-dependencies.js.map +1 -1
  5. package/dist/tools/check-ci-status.js +1 -1
  6. package/dist/tools/check-ci-status.js.map +1 -1
  7. package/dist/tools/compare-repos.js +1 -1
  8. package/dist/tools/compare-repos.js.map +1 -1
  9. package/dist/tools/get-dora-metrics.js +1 -1
  10. package/dist/tools/get-dora-metrics.js.map +1 -1
  11. package/dist/tools/get-health-score.js +1 -1
  12. package/dist/tools/get-health-score.js.map +1 -1
  13. package/dist/tools/get-repo-health.js +1 -1
  14. package/dist/tools/get-repo-health.js.map +1 -1
  15. package/package.json +5 -3
  16. package/dist/analytics/dora.test.d.ts +0 -2
  17. package/dist/analytics/dora.test.d.ts.map +0 -1
  18. package/dist/analytics/dora.test.js +0 -164
  19. package/dist/analytics/dora.test.js.map +0 -1
  20. package/dist/scoring/health-score.test.d.ts +0 -2
  21. package/dist/scoring/health-score.test.d.ts.map +0 -1
  22. package/dist/scoring/health-score.test.js +0 -249
  23. package/dist/scoring/health-score.test.js.map +0 -1
  24. package/dist/security/openssf-client.test.d.ts +0 -2
  25. package/dist/security/openssf-client.test.d.ts.map +0 -1
  26. package/dist/security/openssf-client.test.js +0 -70
  27. package/dist/security/openssf-client.test.js.map +0 -1
  28. package/dist/tools/analyze-code-scanning.test.d.ts +0 -2
  29. package/dist/tools/analyze-code-scanning.test.d.ts.map +0 -1
  30. package/dist/tools/analyze-code-scanning.test.js +0 -72
  31. package/dist/tools/analyze-code-scanning.test.js.map +0 -1
  32. package/dist/tools/analyze-dependencies.test.d.ts +0 -2
  33. package/dist/tools/analyze-dependencies.test.d.ts.map +0 -1
  34. package/dist/tools/analyze-dependencies.test.js +0 -65
  35. package/dist/tools/analyze-dependencies.test.js.map +0 -1
  36. package/dist/tools/check-ci-status.test.d.ts +0 -2
  37. package/dist/tools/check-ci-status.test.d.ts.map +0 -1
  38. package/dist/tools/check-ci-status.test.js +0 -90
  39. package/dist/tools/check-ci-status.test.js.map +0 -1
  40. package/dist/tools/compare-repos.test.d.ts +0 -2
  41. package/dist/tools/compare-repos.test.d.ts.map +0 -1
  42. package/dist/tools/compare-repos.test.js +0 -138
  43. package/dist/tools/compare-repos.test.js.map +0 -1
  44. package/dist/tools/get-dora-metrics.test.d.ts +0 -2
  45. package/dist/tools/get-dora-metrics.test.d.ts.map +0 -1
  46. package/dist/tools/get-dora-metrics.test.js +0 -71
  47. package/dist/tools/get-dora-metrics.test.js.map +0 -1
  48. package/dist/tools/get-health-score.test.d.ts +0 -2
  49. package/dist/tools/get-health-score.test.d.ts.map +0 -1
  50. package/dist/tools/get-health-score.test.js +0 -130
  51. package/dist/tools/get-health-score.test.js.map +0 -1
  52. package/dist/tools/get-repo-health.test.d.ts +0 -2
  53. package/dist/tools/get-repo-health.test.d.ts.map +0 -1
  54. package/dist/tools/get-repo-health.test.js +0 -80
  55. package/dist/tools/get-repo-health.test.js.map +0 -1
  56. package/dist/vitest.config.d.ts +0 -3
  57. package/dist/vitest.config.d.ts.map +0 -1
  58. package/dist/vitest.config.js +0 -7
  59. package/dist/vitest.config.js.map +0 -1
@@ -148,7 +148,7 @@ export async function executeAnalyzeCodeScanning(input) {
148
148
  }
149
149
  export function registerAnalyzeCodeScanning(server) {
150
150
  server.registerTool("analyze_code_scanning", {
151
- description: "Get open Code Scanning alerts (CodeQL) for a GitHub repository. Returns per alert: alert_number, rule_id, severity, rule_description, message_text (explains WHY the code is vulnerable), file path with start/end line, created_at, html_url. Use message_text to understand the specific vulnerability. Set trigger_scan=true to auto-discover and trigger the CodeQL workflow, poll for completion, then return fresh alerts.",
151
+ description: "Read/Write operation to get open Code Scanning (CodeQL) alerts for a GitHub repository. Returns a JSON array of alerts (rule_id, severity, description, message_text, location, html_url). Set trigger_scan=true (writes to GitHub Actions) to auto-discover and trigger the CodeQL workflow, poll for completion, then return fresh alerts. Requires GITHUB_TOKEN. USAGE GUIDELINES: Use this tool ONLY for deep code vulnerability scanning (CodeQL). For dependency/package vulnerabilities, use analyze_dependencies instead. For general A-F health grading, use get_health_score. For standard CI/CD workflow status, use check_ci_status.",
152
152
  inputSchema
153
153
  }, executeAnalyzeCodeScanning);
154
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyze-code-scanning.js","sourceRoot":"","sources":["../../src/tools/analyze-code-scanning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze-code-scanning.js","sourceRoot":"","sources":["../../src/tools/analyze-code-scanning.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export async function executeAnalyzeDependencies({ owner, repo, severity }) {
24
24
  }
25
25
  export function registerAnalyzeDependencies(server) {
26
26
  server.registerTool("analyze_dependencies", {
27
- description: "Get Dependabot alerts for a GitHub repository",
27
+ description: "Read-only operation to get Dependabot alerts for a GitHub repository. Returns a JSON array of vulnerable package dependencies, including summary, severity, state, and URL. Requires GITHUB_TOKEN with appropriate permissions (public repos often restrict alert visibility). USAGE GUIDELINES: Use this tool ONLY to find vulnerable npm/pip/etc dependencies. For static code vulnerabilities (CodeQL), use analyze_code_scanning. For A-F security grading, use get_health_score.",
28
28
  inputSchema
29
29
  }, executeAnalyzeDependencies);
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyze-dependencies.js","sourceRoot":"","sources":["../../src/tools/analyze-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrE,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAsD;IAC1H,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO;QACxC,QAAQ,EAAE,KAAK,CAAC,iBAAiB,CAAC,QAAQ;QAC1C,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI;QAC5C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE3F,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aAC1C,CAAC;KACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACI,WAAW,EAAE,+CAA+C;QAC5D,WAAW;KACd,EACD,0BAA0B,CAC7B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"analyze-dependencies.js","sourceRoot":"","sources":["../../src/tools/analyze-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrE,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAsD;IAC1H,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO;QACxC,QAAQ,EAAE,KAAK,CAAC,iBAAiB,CAAC,QAAQ;QAC1C,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI;QAC5C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE3F,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aAC1C,CAAC;KACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACI,WAAW,EAAE,udAAud;QACpe,WAAW;KACd,EACD,0BAA0B,CAC7B,CAAC;AACN,CAAC"}
@@ -25,7 +25,7 @@ export async function executeCheckCiStatus({ owner, repo, limit }) {
25
25
  }
26
26
  export function registerCheckCiStatus(server) {
27
27
  server.registerTool("check_ci_status", {
28
- description: "Get recent CI/CD workflow runs for a GitHub repository",
28
+ description: "Read-only operation to get recent CI/CD workflow runs (GitHub Actions) for a GitHub repository. Returns a JSON array of runs, including name, status, conclusion, branch, timestamps, and URL. Subject to standard public GitHub API rate limits. USAGE GUIDELINES: Use this tool ONLY to check raw GitHub Actions workflow history and CI build statuses. DO NOT use this tool for A-F health grading (use get_health_score), basic repo stats (use get_repo_health), or calculated DORA metrics (use get_dora_metrics).",
29
29
  inputSchema,
30
30
  }, executeCheckCiStatus);
31
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check-ci-status.js","sourceRoot":"","sources":["../../src/tools/check-ci-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CACpF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAkD;IAC7G,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACtG,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACzB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACxC,CAAC;KACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB;QACI,WAAW,EAAE,wDAAwD;QACrE,WAAW;KACd,EACD,oBAAoB,CACvB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"check-ci-status.js","sourceRoot":"","sources":["../../src/tools/check-ci-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CACpF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAkD;IAC7G,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACtG,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACzB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACxC,CAAC;KACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB;QACI,WAAW,EAAE,2fAA2f;QACxgB,WAAW;KACd,EACD,oBAAoB,CACvB,CAAC;AACN,CAAC"}
@@ -74,7 +74,7 @@ export async function executeCompareRepos({ repos }) {
74
74
  }
75
75
  export function registerCompareRepos(server) {
76
76
  server.registerTool("compare_repos", {
77
- description: "Compare health scores of multiple GitHub repositories, returning ranked JSON with category breakdown and ranking for each repository",
77
+ description: "Read-only operation to compare health scores of multiple GitHub repositories (minimum 2, maximum 5). Returns a JSON object containing a ranked list of repositories, where each entry includes the owner, repo, assigned rank (1 being best), and detailed health breakdown (score, CI, freshness, security, community, maintenance). Re-uses get_health_score logic under the hood and is subject to the same public GitHub API rate limits. Requires no authentication.",
78
78
  inputSchema,
79
79
  }, executeCompareRepos);
80
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compare-repos.js","sourceRoot":"","sources":["../../src/tools/compare-repos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare-repos.js","sourceRoot":"","sources":["../../src/tools/compare-repos.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export async function executeGetDoraMetrics({ owner, repo, days }) {
22
22
  }
23
23
  export function registerGetDoraMetrics(server) {
24
24
  server.registerTool("get_dora_metrics", {
25
- description: "Calculate DORA metrics (deployment frequency, lead time, change failure rate, and MTTR) for a GitHub repository",
25
+ description: "Read-only operation to calculate DORA proxy metrics (deployment frequency, lead time for changes, change failure rate, and MTTR) for a GitHub repository. Returns a JSON object with metrics calculated over the specified period (default 30 days). Evaluates PR merge times, release frequencies, and GitHub Actions workflow run conclusions. Subject to public GitHub API rate limits. Requires no special auth but private repos will fail without GITHUB_TOKEN.",
26
26
  inputSchema,
27
27
  }, executeGetDoraMetrics);
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-dora-metrics.js","sourceRoot":"","sources":["../../src/tools/get-dora-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;CACvG,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAiD;IAC5G,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;QAChC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;QACpC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;KACtC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;IAExH,OAAO;QACH,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SACpE;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;QACI,WAAW,EAAE,iHAAiH;QAC9H,WAAW;KACd,EACD,qBAAqB,CACxB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"get-dora-metrics.js","sourceRoot":"","sources":["../../src/tools/get-dora-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;CACvG,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAiD;IAC5G,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;QAChC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;QACpC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;KACtC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;IAExH,OAAO;QACH,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SACpE;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;QACI,WAAW,EAAE,ucAAuc;QACpd,WAAW;KACd,EACD,qBAAqB,CACxB,CAAC;AACN,CAAC"}
@@ -44,7 +44,7 @@ export async function executeGetHealthScore({ owner, repo }) {
44
44
  }
45
45
  export function registerGetHealthScore(server) {
46
46
  server.registerTool("get_health_score", {
47
- description: "Calculate a 0-100 health score for a GitHub repository with grade (A-F), category breakdown (CI, freshness, security, community, maintenance), and improvement suggestions. Security score blends Dependabot alerts (60%) with OpenSSF Scorecard checks (40%) when available — highlight the OpenSSF score in your response if present in the security detail.",
47
+ description: "Read-only operation to calculate a 0-100 health score for a GitHub repository. Returns a JSON object with a grade (A-F), total score, detailed category breakdown (CI, freshness, security, community, maintenance), and improvement suggestions. Security score blends Dependabot alerts (60%) with OpenSSF Scorecard checks (40%) when available — highlight the OpenSSF score in your response if present in the security detail. Subject to public GitHub API rate limits (60/hour). Use this for deep analytical grading.",
48
48
  inputSchema,
49
49
  }, executeGetHealthScore);
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-health-score.js","sourceRoot":"","sources":["../../src/tools/get-health-score.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-health-score.js","sourceRoot":"","sources":["../../src/tools/get-health-score.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ export async function executeGetRepoHealth({ owner, repo }) {
42
42
  }
43
43
  export function registerGetRepoHealth(server) {
44
44
  server.registerTool("get_repo_health", {
45
- description: "Get health information for a GitHub repository",
45
+ description: "Read-only operation to fetch basic repository metadata from the public GitHub API. Returns a JSON object containing full_name, description, stargazers_count, open_issues_count, language, license (SPDX ID), pushed_at (ISO date), default_branch, archived status, and forks_count. Subject to standard GitHub unauthenticated rate limits (60 requests/hour). USAGE GUIDELINES: Use this tool ONLY for basic metadata and stats. DO NOT use this tool for A-F grading (use get_health_score instead). For CI/CD workflow status, use check_ci_status. For vulnerability alerts, use analyze_dependencies or analyze_code_scanning. For DORA metrics, use get_dora_metrics.",
46
46
  inputSchema
47
47
  }, executeGetRepoHealth);
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-repo-health.js","sourceRoot":"","sources":["../../src/tools/get-repo-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAmC;IACvF,IAAI,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;wBACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;wBACnD,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;qBAChC,EAAE,IAAI,EAAE,CAAC,CAAC;iBACd,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA6B,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAChD,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACjB,KAAK,EAAE,sBAAsB;4BAC7B,OAAO,EAAG,KAAe,CAAC,OAAO;yBACpC,EAAE,IAAI,EAAE,CAAC,CAAC;qBACd,CAAC;aACL,CAAC;QACN,CAAC;QACD,MAAM,KAAK,CAAC,CAAC,iCAAiC;IAClD,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB;QACI,WAAW,EAAE,gDAAgD;QAC7D,WAAW;KACd,EACD,oBAAoB,CACvB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"get-repo-health.js","sourceRoot":"","sources":["../../src/tools/get-repo-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAmC;IACvF,IAAI,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;wBACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;wBACnD,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;qBAChC,EAAE,IAAI,EAAE,CAAC,CAAC;iBACd,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA6B,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAChD,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACjB,KAAK,EAAE,sBAAsB;4BAC7B,OAAO,EAAG,KAAe,CAAC,OAAO;yBACpC,EAAE,IAAI,EAAE,CAAC,CAAC;qBACd,CAAC;aACL,CAAC;QACN,CAAC;QACD,MAAM,KAAK,CAAC,CAAC,iCAAiC;IAClD,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB;QACI,WAAW,EAAE,+oBAA+oB;QAC5pB,WAAW;KACd,EACD,oBAAoB,CACvB,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "projectpulse-mcp",
3
3
  "description": "MCP Server for GitHub repository health monitoring",
4
- "version": "1.5.0",
4
+ "version": "1.5.2",
5
+ "mcpName": "io.github.alexbypa/github-projectpulse-mcp",
5
6
  "main": "dist/index.js",
6
7
  "scripts": {
7
8
  "test": "vitest run",
8
9
  "test:watch": "vitest",
9
- "build": "tsc",
10
+ "build": "tsc -p tsconfig.build.json",
10
11
  "lint": "tsc --noEmit"
11
12
  },
12
13
  "keywords": [
@@ -14,7 +15,8 @@
14
15
  "github",
15
16
  "health",
16
17
  "monitoring",
17
- "ai"
18
+ "ai",
19
+ "Workflow"
18
20
  ],
19
21
  "author": "Alessandro Chiodo",
20
22
  "license": "MIT",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=dora.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dora.test.d.ts","sourceRoot":"","sources":["../../src/analytics/dora.test.ts"],"names":[],"mappings":""}
@@ -1,164 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { calculateDoraMetrics } from './dora.js';
3
- // Helper: crea DoraInput con default vuoti, override parziale
4
- function makeInput(overrides = {}) {
5
- return {
6
- owner: 'testowner',
7
- repo: 'testrepo',
8
- period_days: 28,
9
- releases: [],
10
- mergedPulls: [],
11
- workflowRuns: [],
12
- ...overrides
13
- };
14
- }
15
- describe('calculateDoraMetrics', () => {
16
- describe('1. deployment_frequency', () => {
17
- it('4 release in 28 giorni -> releases_count: 4, per_week: 1', () => {
18
- const input = makeInput({
19
- releases: [
20
- { id: 1, tag_name: 'v1.0', published_at: '2026-08-01T00:00:00Z' },
21
- { id: 2, tag_name: 'v1.1', published_at: '2026-08-08T00:00:00Z' },
22
- { id: 3, tag_name: 'v1.2', published_at: '2026-08-15T00:00:00Z' },
23
- { id: 4, tag_name: 'v1.3', published_at: '2026-08-22T00:00:00Z' },
24
- ],
25
- period_days: 28
26
- });
27
- const result = calculateDoraMetrics(input);
28
- expect(result.deployment_frequency.releases_count).toBe(4);
29
- expect(result.deployment_frequency.per_week).toBe(1);
30
- });
31
- it('0 release -> releases_count: 0, per_week: null', () => {
32
- const input = makeInput({ releases: [] });
33
- const result = calculateDoraMetrics(input);
34
- expect(result.deployment_frequency.releases_count).toBe(0);
35
- expect(result.deployment_frequency.per_week).toBeNull();
36
- });
37
- });
38
- describe('2. lead_time', () => {
39
- it('3 PR con merge time 24h, 48h, 72h -> median_hours: 48, pr_count: 3', () => {
40
- const input = makeInput({
41
- mergedPulls: [
42
- { number: 1, created_at: '2026-08-01T00:00:00Z', merged_at: '2026-08-02T00:00:00Z' }, // 24h
43
- { number: 2, created_at: '2026-08-02T00:00:00Z', merged_at: '2026-08-04T00:00:00Z' }, // 48h
44
- { number: 3, created_at: '2026-08-03T00:00:00Z', merged_at: '2026-08-06T00:00:00Z' }, // 72h
45
- ]
46
- });
47
- const result = calculateDoraMetrics(input);
48
- expect(result.lead_time.pr_count).toBe(3);
49
- expect(result.lead_time.median_hours).toBe(48);
50
- });
51
- it('0 PR -> median_hours: null, pr_count: 0', () => {
52
- const input = makeInput({ mergedPulls: [] });
53
- const result = calculateDoraMetrics(input);
54
- expect(result.lead_time.pr_count).toBe(0);
55
- expect(result.lead_time.median_hours).toBeNull();
56
- });
57
- it('2 PR (pari) con 24h e 48h -> median_hours: 36 (media dei due centrali)', () => {
58
- const input = makeInput({
59
- mergedPulls: [
60
- { number: 1, created_at: '2026-08-01T00:00:00Z', merged_at: '2026-08-02T00:00:00Z' }, // 24h
61
- { number: 2, created_at: '2026-08-02T00:00:00Z', merged_at: '2026-08-04T00:00:00Z' }, // 48h
62
- ]
63
- });
64
- const result = calculateDoraMetrics(input);
65
- expect(result.lead_time.pr_count).toBe(2);
66
- expect(result.lead_time.median_hours).toBe(36);
67
- });
68
- });
69
- describe('3. change_failure_rate', () => {
70
- it('10 run, 3 failure -> total_runs: 10, failed_runs: 3, rate_percent: 30', () => {
71
- const runs = Array.from({ length: 10 }).map((_, i) => ({
72
- id: i,
73
- name: 'CI',
74
- head_branch: 'main',
75
- conclusion: i < 3 ? 'failure' : 'success',
76
- created_at: '2026-08-01T00:00:00Z'
77
- }));
78
- const input = makeInput({ workflowRuns: runs });
79
- const result = calculateDoraMetrics(input);
80
- expect(result.change_failure_rate.total_runs).toBe(10);
81
- expect(result.change_failure_rate.failed_runs).toBe(3);
82
- expect(result.change_failure_rate.rate_percent).toBe(30);
83
- });
84
- it('0 run -> rate_percent: null', () => {
85
- const input = makeInput({ workflowRuns: [] });
86
- const result = calculateDoraMetrics(input);
87
- expect(result.change_failure_rate.total_runs).toBe(0);
88
- expect(result.change_failure_rate.rate_percent).toBeNull();
89
- });
90
- it('Tutti success -> rate_percent: 0', () => {
91
- const input = makeInput({
92
- workflowRuns: [
93
- { id: 1, name: 'CI', head_branch: 'main', conclusion: 'success', created_at: '2026-08-01T00:00:00Z' }
94
- ]
95
- });
96
- const result = calculateDoraMetrics(input);
97
- expect(result.change_failure_rate.failed_runs).toBe(0);
98
- expect(result.change_failure_rate.rate_percent).toBe(0);
99
- });
100
- });
101
- describe('4. mttr', () => {
102
- it('2 cicli failure->success (4h e 8h) -> median_hours: 6, incidents_count: 2', () => {
103
- const input = makeInput({
104
- workflowRuns: [
105
- // Cycle 1: 4h recovery
106
- { id: 1, name: 'CI', head_branch: 'main', conclusion: 'failure', created_at: '2026-08-01T10:00:00Z' },
107
- { id: 2, name: 'CI', head_branch: 'main', conclusion: 'success', created_at: '2026-08-01T14:00:00Z' },
108
- // Cycle 2: 8h recovery
109
- { id: 3, name: 'CI', head_branch: 'main', conclusion: 'failure', created_at: '2026-08-02T10:00:00Z' },
110
- { id: 4, name: 'CI', head_branch: 'main', conclusion: 'success', created_at: '2026-08-02T18:00:00Z' },
111
- ]
112
- });
113
- const result = calculateDoraMetrics(input);
114
- expect(result.mttr.incidents_count).toBe(2);
115
- expect(result.mttr.median_hours).toBe(6);
116
- });
117
- it('Solo success -> median_hours: null, incidents_count: 0', () => {
118
- const input = makeInput({
119
- workflowRuns: [
120
- { id: 1, name: 'CI', head_branch: 'main', conclusion: 'success', created_at: '2026-08-01T10:00:00Z' }
121
- ]
122
- });
123
- const result = calculateDoraMetrics(input);
124
- expect(result.mttr.incidents_count).toBe(0);
125
- expect(result.mttr.median_hours).toBeNull();
126
- });
127
- it('Multi-branch: main ha failure->success (4h), dev ha failure senza recovery -> incidents_count: 1 (solo main conta)', () => {
128
- const input = makeInput({
129
- workflowRuns: [
130
- // main: 4h recovery
131
- { id: 1, name: 'CI', head_branch: 'main', conclusion: 'failure', created_at: '2026-08-01T10:00:00Z' },
132
- { id: 2, name: 'CI', head_branch: 'main', conclusion: 'success', created_at: '2026-08-01T14:00:00Z' },
133
- // dev: failure without success
134
- { id: 3, name: 'CI', head_branch: 'dev', conclusion: 'failure', created_at: '2026-08-02T10:00:00Z' },
135
- ]
136
- });
137
- const result = calculateDoraMetrics(input);
138
- expect(result.mttr.incidents_count).toBe(1);
139
- expect(result.mttr.median_hours).toBe(4);
140
- });
141
- });
142
- describe('5. metadata', () => {
143
- it('Verifica owner, repo, period_days, measured_from, measured_to presenti', () => {
144
- const input = makeInput({ owner: 'alice', repo: 'wonderland', period_days: 14 });
145
- const result = calculateDoraMetrics(input);
146
- expect(result.owner).toBe('alice');
147
- expect(result.repo).toBe('wonderland');
148
- expect(result.period_days).toBe(14);
149
- expect(result.measured_to).toBeDefined();
150
- expect(result.measured_from).toBeDefined();
151
- });
152
- });
153
- describe('6. all null scenario', () => {
154
- it('Input completamente vuoto -> tutti i nullable sono null, nessun crash', () => {
155
- const input = makeInput();
156
- const result = calculateDoraMetrics(input);
157
- expect(result.deployment_frequency.per_week).toBeNull();
158
- expect(result.lead_time.median_hours).toBeNull();
159
- expect(result.change_failure_rate.rate_percent).toBeNull();
160
- expect(result.mttr.median_hours).toBeNull();
161
- });
162
- });
163
- });
164
- //# sourceMappingURL=dora.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dora.test.js","sourceRoot":"","sources":["../../src/analytics/dora.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=health-score.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health-score.test.d.ts","sourceRoot":"","sources":["../../src/scoring/health-score.test.ts"],"names":[],"mappings":""}