@oss-scout/mcp 0.4.0 → 0.5.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/mcp-server.bundle.cjs +42 -1
- package/package.json +5 -4
|
@@ -35742,6 +35742,11 @@ var StoredClosedPRSchema = external_exports3.object({
|
|
|
35742
35742
|
title: external_exports3.string(),
|
|
35743
35743
|
closedAt: external_exports3.string()
|
|
35744
35744
|
});
|
|
35745
|
+
var StoredOpenPRSchema = external_exports3.object({
|
|
35746
|
+
url: external_exports3.string(),
|
|
35747
|
+
title: external_exports3.string(),
|
|
35748
|
+
openedAt: external_exports3.string()
|
|
35749
|
+
});
|
|
35745
35750
|
var ContributionGuidelinesSchema = external_exports3.object({
|
|
35746
35751
|
branchNamingConvention: external_exports3.string().optional(),
|
|
35747
35752
|
commitMessageFormat: external_exports3.string().optional(),
|
|
@@ -35831,6 +35836,7 @@ var ScoutStateSchema = external_exports3.object({
|
|
|
35831
35836
|
starredReposLastFetched: external_exports3.string().optional(),
|
|
35832
35837
|
mergedPRs: external_exports3.array(StoredMergedPRSchema).default([]),
|
|
35833
35838
|
closedPRs: external_exports3.array(StoredClosedPRSchema).default([]),
|
|
35839
|
+
openPRs: external_exports3.array(StoredOpenPRSchema).default([]),
|
|
35834
35840
|
savedResults: external_exports3.array(SavedCandidateSchema).default([]),
|
|
35835
35841
|
skippedIssues: external_exports3.array(SkippedIssueSchema).default([]),
|
|
35836
35842
|
lastSearchAt: external_exports3.string().optional(),
|
|
@@ -37337,6 +37343,7 @@ var IssueDiscovery = class {
|
|
|
37337
37343
|
return { candidates: [], strategiesUsed: [] };
|
|
37338
37344
|
}
|
|
37339
37345
|
const mergedPRRepos = this.stateReader.getReposWithMergedPRs();
|
|
37346
|
+
const openPRRepos = this.stateReader.getReposWithOpenPRs();
|
|
37340
37347
|
const starredRepos = this.getStarredRepos();
|
|
37341
37348
|
const starredRepoSet = new Set(starredRepos);
|
|
37342
37349
|
const lowScoringRepos = new Set(this.deriveLowScoringRepos(config2.minRepoScoreThreshold));
|
|
@@ -37357,7 +37364,16 @@ var IssueDiscovery = class {
|
|
|
37357
37364
|
now: /* @__PURE__ */ new Date(),
|
|
37358
37365
|
includeDocIssues: config2.includeDocIssues ?? true
|
|
37359
37366
|
});
|
|
37360
|
-
const
|
|
37367
|
+
const seenPhase0 = /* @__PURE__ */ new Set();
|
|
37368
|
+
const phase0Repos = [];
|
|
37369
|
+
for (const repo of [...mergedPRRepos, ...openPRRepos]) {
|
|
37370
|
+
if (seenPhase0.has(repo))
|
|
37371
|
+
continue;
|
|
37372
|
+
seenPhase0.add(repo);
|
|
37373
|
+
phase0Repos.push(repo);
|
|
37374
|
+
if (phase0Repos.length >= 10)
|
|
37375
|
+
break;
|
|
37376
|
+
}
|
|
37361
37377
|
const phase0RepoSet = new Set(phase0Repos);
|
|
37362
37378
|
if (phase0Repos.length > 0 && enabledStrategies.has("merged")) {
|
|
37363
37379
|
const remaining = maxResults - allCandidates.length;
|
|
@@ -37721,6 +37737,7 @@ function mergeStates(local, remote) {
|
|
|
37721
37737
|
starredReposLastFetched: pickFresherTimestamp(local.starredReposLastFetched, remote.starredReposLastFetched),
|
|
37722
37738
|
mergedPRs: unionByUrl(local.mergedPRs, remote.mergedPRs),
|
|
37723
37739
|
closedPRs: unionByUrl(local.closedPRs, remote.closedPRs),
|
|
37740
|
+
openPRs: unionByUrl(local.openPRs ?? [], remote.openPRs ?? []),
|
|
37724
37741
|
savedResults: mergeSavedResults(local.savedResults ?? [], remote.savedResults ?? []),
|
|
37725
37742
|
skippedIssues: mergeSkippedIssues(local.skippedIssues ?? [], remote.skippedIssues ?? []),
|
|
37726
37743
|
lastSearchAt: pickFresherTimestamp(local.lastSearchAt, remote.lastSearchAt),
|
|
@@ -38003,6 +38020,16 @@ var OssScout = class {
|
|
|
38003
38020
|
}
|
|
38004
38021
|
return [...repoCounts.entries()].sort((a, b) => b[1] - a[1]).map(([repo]) => repo);
|
|
38005
38022
|
}
|
|
38023
|
+
getReposWithOpenPRs() {
|
|
38024
|
+
const repoCounts = /* @__PURE__ */ new Map();
|
|
38025
|
+
for (const pr of this.state.openPRs ?? []) {
|
|
38026
|
+
const repo = extractRepoFromUrl(pr.url);
|
|
38027
|
+
if (repo) {
|
|
38028
|
+
repoCounts.set(repo, (repoCounts.get(repo) ?? 0) + 1);
|
|
38029
|
+
}
|
|
38030
|
+
}
|
|
38031
|
+
return [...repoCounts.entries()].sort((a, b) => b[1] - a[1]).map(([repo]) => repo);
|
|
38032
|
+
}
|
|
38006
38033
|
getStarredRepos() {
|
|
38007
38034
|
return this.state.starredRepos;
|
|
38008
38035
|
}
|
|
@@ -38051,6 +38078,20 @@ var OssScout = class {
|
|
|
38051
38078
|
this.updateRepoScoreFromPRs(pr.repo);
|
|
38052
38079
|
this.dirty = true;
|
|
38053
38080
|
}
|
|
38081
|
+
/**
|
|
38082
|
+
* Record that a PR is currently open in this repo.
|
|
38083
|
+
* Open PRs signal active engagement even when nothing is merged yet.
|
|
38084
|
+
*/
|
|
38085
|
+
recordOpenPR(pr) {
|
|
38086
|
+
const existing = this.state.openPRs ?? [];
|
|
38087
|
+
if (existing.some((p) => p.url === pr.url))
|
|
38088
|
+
return;
|
|
38089
|
+
this.state.openPRs = [
|
|
38090
|
+
...existing,
|
|
38091
|
+
{ url: pr.url, title: pr.title, openedAt: pr.openedAt }
|
|
38092
|
+
];
|
|
38093
|
+
this.dirty = true;
|
|
38094
|
+
}
|
|
38054
38095
|
/**
|
|
38055
38096
|
* Update repo score with observed signals.
|
|
38056
38097
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oss-scout/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "MCP server for oss-scout — exposes issue discovery and vetting as MCP tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,15 +18,16 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
20
20
|
"zod": "^4.3.6",
|
|
21
|
-
"@oss-scout/core": "^0.
|
|
21
|
+
"@oss-scout/core": "^0.5.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/node": "^25.5.0",
|
|
25
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
25
26
|
"esbuild": "^0.27.4",
|
|
26
27
|
"tsx": "^4.21.0",
|
|
27
28
|
"typescript": "^5.9.3",
|
|
28
|
-
"
|
|
29
|
-
"vitest": "^4.1.
|
|
29
|
+
"vite": "^8.0.5",
|
|
30
|
+
"vitest": "^4.1.4"
|
|
30
31
|
},
|
|
31
32
|
"keywords": [
|
|
32
33
|
"mcp",
|