projectpulse-mcp 1.5.2 → 1.6.0
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/analytics/trend-tracker.d.ts +5 -0
- package/dist/analytics/trend-tracker.d.ts.map +1 -0
- package/dist/analytics/trend-tracker.js +66 -0
- package/dist/analytics/trend-tracker.js.map +1 -0
- package/dist/tools/get-health-score.d.ts.map +1 -1
- package/dist/tools/get-health-score.js +14 -1
- package/dist/tools/get-health-score.js.map +1 -1
- package/dist/types/health.d.ts +5 -0
- package/dist/types/health.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TrendSnapshot, HealthReport } from "../types/health.js";
|
|
2
|
+
export declare function saveSnapshot(owner: string, repo: string, report: HealthReport): Promise<void>;
|
|
3
|
+
export declare function getLastSnapshot(owner: string, repo: string): Promise<TrendSnapshot | null>;
|
|
4
|
+
export declare function validateInput(value: string): void;
|
|
5
|
+
//# sourceMappingURL=trend-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trend-tracker.d.ts","sourceRoot":"","sources":["../../src/analytics/trend-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOjE,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,iBAqCnF;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkBhG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIjD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as fs from "fs/promises";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import * as os from "os";
|
|
4
|
+
const STORAGE_DIR = path.join(os.homedir(), ".projectpulse", "snapshots");
|
|
5
|
+
export async function saveSnapshot(owner, repo, report) {
|
|
6
|
+
try {
|
|
7
|
+
validateInput(owner);
|
|
8
|
+
validateInput(repo);
|
|
9
|
+
if (!(await fs.stat(STORAGE_DIR).catch(() => null))) {
|
|
10
|
+
await fs.mkdir(STORAGE_DIR, { recursive: true });
|
|
11
|
+
}
|
|
12
|
+
const repoDir = path.join(STORAGE_DIR, owner);
|
|
13
|
+
const repoFile = path.join(repoDir, `${repo}.json`);
|
|
14
|
+
const snapshot = {
|
|
15
|
+
score: report.score,
|
|
16
|
+
grade: report.grade,
|
|
17
|
+
checkedAt: report.checkedAt,
|
|
18
|
+
};
|
|
19
|
+
await fs.mkdir(repoDir, { recursive: true }).catch(() => { });
|
|
20
|
+
// Leggi lo storico esistente o inizializza un array vuoto
|
|
21
|
+
let snapshots = [];
|
|
22
|
+
try {
|
|
23
|
+
const fileContent = await fs.readFile(repoFile, "utf-8");
|
|
24
|
+
snapshots = JSON.parse(fileContent);
|
|
25
|
+
if (!Array.isArray(snapshots)) {
|
|
26
|
+
snapshots = []; // Fallback in caso di file corrotto o vecchio formato
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
// Il file probabilmente non esiste ancora
|
|
31
|
+
}
|
|
32
|
+
// Aggiungi il nuovo snapshot
|
|
33
|
+
snapshots.push(snapshot);
|
|
34
|
+
// Sovrascrivi il file con l'intero array
|
|
35
|
+
await fs.writeFile(repoFile, JSON.stringify(snapshots, null, 2));
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
console.error("Error saving snapshot:", error);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export async function getLastSnapshot(owner, repo) {
|
|
42
|
+
try {
|
|
43
|
+
validateInput(owner);
|
|
44
|
+
validateInput(repo);
|
|
45
|
+
const repoFile = path.join(STORAGE_DIR, owner, `${repo}.json`);
|
|
46
|
+
const data = await fs.readFile(repoFile, "utf-8").catch(() => null);
|
|
47
|
+
if (!data)
|
|
48
|
+
return null;
|
|
49
|
+
const snapshots = JSON.parse(data);
|
|
50
|
+
if (Array.isArray(snapshots) && snapshots.length > 0) {
|
|
51
|
+
// Ritorna sempre l'ultimo elemento dell'array
|
|
52
|
+
return snapshots[snapshots.length - 1];
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
console.error("Error getting snapshot:", error);
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export function validateInput(value) {
|
|
62
|
+
if (!/^[a-zA-Z0-9._-]+$/.test(value)) {
|
|
63
|
+
throw new Error(`Invalid input: "${value}"`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=trend-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trend-tracker.js","sourceRoot":"","sources":["../../src/analytics/trend-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-health-score.d.ts","sourceRoot":"","sources":["../../src/tools/get-health-score.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"get-health-score.d.ts","sourceRoot":"","sources":["../../src/tools/get-health-score.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBpE,wBAAsB,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;;;;;GA0D3F;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAS9D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { getOctokit } from "../github/client.js";
|
|
3
3
|
import { fetchOpenSSFScore } from "../security/openssf-client.js";
|
|
4
|
+
import { saveSnapshot, getLastSnapshot } from "../analytics/trend-tracker.js";
|
|
4
5
|
import { calculateCiScore, calculateFreshnessScore, calculateSecurityScore, calculateCommunityScore, calculateMaintenanceScore, calculateHealthScore, } from "../scoring/health-score.js";
|
|
5
6
|
const inputSchema = z.object({
|
|
6
7
|
owner: z.string().describe("GitHub repository owner"),
|
|
@@ -34,11 +35,23 @@ export async function executeGetHealthScore({ owner, repo }) {
|
|
|
34
35
|
community: calculateCommunityScore(repoData.data.open_issues_count, repoData.data.forks_count),
|
|
35
36
|
maintenance: calculateMaintenanceScore(repoData.data.license !== null, repoData.data.description !== null, repoData.data.archived),
|
|
36
37
|
};
|
|
38
|
+
const previousSnapshot = await getLastSnapshot(owner, repo);
|
|
37
39
|
const report = calculateHealthScore(`${owner}/${repo}`, categories);
|
|
40
|
+
const response = {
|
|
41
|
+
report,
|
|
42
|
+
trend: previousSnapshot ? {
|
|
43
|
+
previousScore: previousSnapshot.score,
|
|
44
|
+
previousGrade: previousSnapshot.grade,
|
|
45
|
+
previousCheckedAt: previousSnapshot.checkedAt,
|
|
46
|
+
scoreDiff: report.score - previousSnapshot.score,
|
|
47
|
+
direction: report.score < previousSnapshot.score ? "↓" : report.score > previousSnapshot.score ? "↑" : "→"
|
|
48
|
+
} : null
|
|
49
|
+
};
|
|
50
|
+
await saveSnapshot(owner, repo, report);
|
|
38
51
|
return {
|
|
39
52
|
content: [{
|
|
40
53
|
type: "text",
|
|
41
|
-
text: JSON.stringify(
|
|
54
|
+
text: JSON.stringify(response, null, 2),
|
|
42
55
|
}],
|
|
43
56
|
};
|
|
44
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-health-score.js","sourceRoot":"","sources":["../../src/tools/get-health-score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACH,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,GACvB,MAAM,4BAA4B,CAAC;AAEpC,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,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAmC;IACxF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACtE,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC;KACjC,CAAC,CAAC;IAEH,IAAI,WAAW,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC9D,IAAI,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,KAAK,CAAC,iBAAiB,CAAC,QAAoC,CAAC;gBACzE,IAAI,GAAG,IAAI,WAAW;oBAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,CAAC;QACL,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,mDAAmD;IACvD,CAAC;IAED,MAAM,UAAU,GAAG;QACf,EAAE,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAoB,CAAC;QACxD,SAAS,EAAE,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvF,QAAQ,EAAE,sBAAsB,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC;QACnE,SAAS,EAAE,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;QAC9F,WAAW,EAAE,yBAAyB,CAClC,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,EAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,EAClC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CACzB;KACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"get-health-score.js","sourceRoot":"","sources":["../../src/tools/get-health-score.ts"],"names":[],"mappings":"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"}
|
package/dist/types/health.d.ts
CHANGED
|
@@ -23,5 +23,10 @@ type ComparisonResult = {
|
|
|
23
23
|
error: string | null;
|
|
24
24
|
}>;
|
|
25
25
|
};
|
|
26
|
+
export type TrendSnapshot = {
|
|
27
|
+
score: number;
|
|
28
|
+
grade: Grade;
|
|
29
|
+
checkedAt: string;
|
|
30
|
+
};
|
|
26
31
|
export { Grade, CategoryScore, HealthReport, ComparisonResult };
|
|
27
32
|
//# sourceMappingURL=health.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/types/health.ts"],"names":[],"mappings":"AACA,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAGzC,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AAGD,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;QAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC,CAAC;CAEJ,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/types/health.ts"],"names":[],"mappings":"AACA,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAGzC,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AAGD,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;QAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC,CAAC;CAEJ,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
|
package/package.json
CHANGED