mne-docs-mcp 1.0.48 → 1.0.49
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/archive/manager.d.ts +7 -0
- package/dist/archive/manager.d.ts.map +1 -1
- package/dist/archive/manager.js +46 -1
- package/dist/archive/manager.js.map +1 -1
- package/dist/archive/search.d.ts +5 -0
- package/dist/archive/search.d.ts.map +1 -1
- package/dist/archive/search.js +15 -0
- package/dist/archive/search.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/forum/client.d.ts +32 -1
- package/dist/forum/client.d.ts.map +1 -1
- package/dist/forum/client.js +136 -5
- package/dist/forum/client.js.map +1 -1
- package/dist/github/client.d.ts +3 -1
- package/dist/github/client.d.ts.map +1 -1
- package/dist/github/client.js +44 -9
- package/dist/github/client.js.map +1 -1
- package/dist/github/types.d.ts +6 -0
- package/dist/github/types.d.ts.map +1 -1
- package/dist/repoContent/index.d.ts +2 -0
- package/dist/repoContent/index.d.ts.map +1 -1
- package/dist/repoContent/index.js +11 -6
- package/dist/repoContent/index.js.map +1 -1
- package/dist/searchCorpus/index.d.ts +3 -0
- package/dist/searchCorpus/index.d.ts.map +1 -1
- package/dist/searchCorpus/index.js +20 -11
- package/dist/searchCorpus/index.js.map +1 -1
- package/dist/symbolLookup/index.js +3 -3
- package/dist/symbolLookup/index.js.map +1 -1
- package/dist/tools/defineTool.d.ts +18 -0
- package/dist/tools/defineTool.d.ts.map +1 -0
- package/dist/tools/defineTool.js +8 -0
- package/dist/tools/defineTool.js.map +1 -0
- package/dist/tools/findMneSymbol.d.ts +6 -10
- package/dist/tools/findMneSymbol.d.ts.map +1 -1
- package/dist/tools/findMneSymbol.js +10 -15
- package/dist/tools/findMneSymbol.js.map +1 -1
- package/dist/tools/getMneChangelog.d.ts +6 -10
- package/dist/tools/getMneChangelog.d.ts.map +1 -1
- package/dist/tools/getMneChangelog.js +9 -12
- package/dist/tools/getMneChangelog.js.map +1 -1
- package/dist/tools/getMneDoc.d.ts +6 -10
- package/dist/tools/getMneDoc.d.ts.map +1 -1
- package/dist/tools/getMneDoc.js +21 -27
- package/dist/tools/getMneDoc.js.map +1 -1
- package/dist/tools/getMneExample.d.ts +12 -12
- package/dist/tools/getMneExample.d.ts.map +1 -1
- package/dist/tools/getMneExample.js +32 -18
- package/dist/tools/getMneExample.js.map +1 -1
- package/dist/tools/getMneFile.d.ts +7 -11
- package/dist/tools/getMneFile.d.ts.map +1 -1
- package/dist/tools/getMneFile.js +131 -40
- package/dist/tools/getMneFile.js.map +1 -1
- package/dist/tools/getMneForumTopic.d.ts +8 -37
- package/dist/tools/getMneForumTopic.d.ts.map +1 -1
- package/dist/tools/getMneForumTopic.js +8 -122
- package/dist/tools/getMneForumTopic.js.map +1 -1
- package/dist/tools/getMneIssue.d.ts +8 -10
- package/dist/tools/getMneIssue.d.ts.map +1 -1
- package/dist/tools/getMneIssue.js +16 -10
- package/dist/tools/getMneIssue.js.map +1 -1
- package/dist/tools/getMneIssueComments.d.ts +10 -10
- package/dist/tools/getMneIssueComments.d.ts.map +1 -1
- package/dist/tools/getMneIssueComments.js +30 -13
- package/dist/tools/getMneIssueComments.js.map +1 -1
- package/dist/tools/getRelatedSymbols.d.ts +7 -11
- package/dist/tools/getRelatedSymbols.d.ts.map +1 -1
- package/dist/tools/getRelatedSymbols.js +44 -18
- package/dist/tools/getRelatedSymbols.js.map +1 -1
- package/dist/tools/getSymbolReferences.d.ts +7 -10
- package/dist/tools/getSymbolReferences.d.ts.map +1 -1
- package/dist/tools/getSymbolReferences.js +28 -16
- package/dist/tools/getSymbolReferences.js.map +1 -1
- package/dist/tools/listMneVersions.d.ts +6 -63
- package/dist/tools/listMneVersions.d.ts.map +1 -1
- package/dist/tools/listMneVersions.js +13 -15
- package/dist/tools/listMneVersions.js.map +1 -1
- package/dist/tools/lookupMneError.d.ts +14 -10
- package/dist/tools/lookupMneError.d.ts.map +1 -1
- package/dist/tools/lookupMneError.js +69 -14
- package/dist/tools/lookupMneError.js.map +1 -1
- package/dist/tools/requestBudget.d.ts +12 -0
- package/dist/tools/requestBudget.d.ts.map +1 -0
- package/dist/tools/requestBudget.js +36 -0
- package/dist/tools/requestBudget.js.map +1 -0
- package/dist/tools/searchMneDocs.d.ts +5 -9
- package/dist/tools/searchMneDocs.d.ts.map +1 -1
- package/dist/tools/searchMneDocs.js +162 -22
- package/dist/tools/searchMneDocs.js.map +1 -1
- package/dist/tools/searchMneForum.d.ts +9 -10
- package/dist/tools/searchMneForum.d.ts.map +1 -1
- package/dist/tools/searchMneForum.js +21 -12
- package/dist/tools/searchMneForum.js.map +1 -1
- package/dist/tools/searchMneIssues.d.ts +10 -11
- package/dist/tools/searchMneIssues.d.ts.map +1 -1
- package/dist/tools/searchMneIssues.js +28 -24
- package/dist/tools/searchMneIssues.js.map +1 -1
- package/dist/types.d.ts +51 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/searchRanking.d.ts +18 -0
- package/dist/utils/searchRanking.d.ts.map +1 -0
- package/dist/utils/searchRanking.js +63 -0
- package/dist/utils/searchRanking.js.map +1 -0
- package/package.json +1 -1
- package/python/ast_extractor.py +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMneForumTopic.js","sourceRoot":"","sources":["../../src/tools/getMneForumTopic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"getMneForumTopic.js","sourceRoot":"","sources":["../../src/tools/getMneForumTopic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACxI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC/G,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,+CAA+C,CAAC;CAC5I,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACjC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,oIAAoI;IACjJ,YAAY,EAAE,4BAA4B;IAC1C,WAAW,EAAE,0BAA0B;CAC1C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAe,EACf,OAAoB;IAEpB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3F,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { ToolContext } from '../types.js';
|
|
2
|
+
import { RequestBudgetSummary, ToolContext } from '../types.js';
|
|
3
3
|
import { GitHubIssueDetail } from '../github/types.js';
|
|
4
4
|
export declare const definition: {
|
|
5
|
-
name: string;
|
|
6
|
-
title: string;
|
|
7
|
-
description: string;
|
|
8
5
|
inputSchema: {
|
|
9
6
|
issueNumber: z.ZodNumber;
|
|
7
|
+
brief: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
10
8
|
package: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
|
|
11
9
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
10
|
+
name: string;
|
|
11
|
+
title: string;
|
|
12
|
+
description: string;
|
|
13
|
+
annotations?: object;
|
|
14
|
+
outputSchema?: z.ZodTypeAny;
|
|
18
15
|
};
|
|
19
16
|
export interface GetMneIssueResult extends GitHubIssueDetail {
|
|
20
17
|
package: string;
|
|
18
|
+
requestBudget?: RequestBudgetSummary;
|
|
21
19
|
}
|
|
22
20
|
export declare function getMneIssue(params: unknown, context: ToolContext): Promise<GetMneIssueResult>;
|
|
23
21
|
export { getMneIssue as handler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMneIssue.d.ts","sourceRoot":"","sources":["../../src/tools/getMneIssue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"getMneIssue.d.ts","sourceRoot":"","sources":["../../src/tools/getMneIssue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAYvD,eAAO,MAAM,UAAU;;;;;;;;;;;CAMrB,CAAC;AAEH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAED,wBAAsB,WAAW,CAC7B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAuB5B;AAED,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { McpError } from '../types.js';
|
|
3
|
-
import {
|
|
3
|
+
import { packageSchema } from '../config.js';
|
|
4
4
|
import { READ_ONLY_TOOL_ANNOTATIONS } from './annotations.js';
|
|
5
|
+
import { defineTool } from './defineTool.js';
|
|
6
|
+
import { buildGithubRequestBudget } from './requestBudget.js';
|
|
5
7
|
const GetMneIssueParamsSchema = z.object({
|
|
6
|
-
issueNumber: z.number().int().positive('Issue number must be a positive integer'),
|
|
7
|
-
|
|
8
|
+
issueNumber: z.number().int().positive('Issue number must be a positive integer').describe('GitHub issue number, e.g. 12345'),
|
|
9
|
+
brief: z.boolean().optional().default(false).describe('Return a shorter body preview (default: false)'),
|
|
10
|
+
package: packageSchema,
|
|
8
11
|
});
|
|
9
|
-
export const definition = {
|
|
12
|
+
export const definition = defineTool({
|
|
10
13
|
name: 'get_mne_issue',
|
|
11
14
|
title: 'Get MNE Issue',
|
|
12
15
|
description: 'Get full details of a specific GitHub issue by number. Use after search_mne_issues to read the complete issue description and context.',
|
|
13
|
-
|
|
14
|
-
issueNumber: z.number().int().positive().describe('GitHub issue number, e.g. 12345'),
|
|
15
|
-
package: packageSchema,
|
|
16
|
-
},
|
|
16
|
+
paramsSchema: GetMneIssueParamsSchema,
|
|
17
17
|
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
18
|
-
};
|
|
18
|
+
});
|
|
19
19
|
export async function getMneIssue(params, context) {
|
|
20
|
-
const { issueNumber, package: packageName } = GetMneIssueParamsSchema.parse(params);
|
|
20
|
+
const { issueNumber, brief, package: packageName } = GetMneIssueParamsSchema.parse(params);
|
|
21
21
|
const issue = await context.github.getIssue(issueNumber, packageName);
|
|
22
22
|
if (!issue) {
|
|
23
23
|
throw new McpError('ISSUE_NOT_FOUND', `Issue #${issueNumber} not found`, {
|
|
@@ -25,9 +25,15 @@ export async function getMneIssue(params, context) {
|
|
|
25
25
|
suggestion: 'Use search_mne_issues to find valid issue numbers.',
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
+
const maxBodyLength = 400;
|
|
29
|
+
const bodyTruncated = brief && issue.body.length > maxBodyLength;
|
|
28
30
|
return {
|
|
29
31
|
...issue,
|
|
32
|
+
type: issue.type || 'issue',
|
|
33
|
+
body: bodyTruncated ? `${issue.body.slice(0, maxBodyLength)}...` : issue.body,
|
|
34
|
+
bodyTruncated,
|
|
30
35
|
package: packageName || 'mne-python',
|
|
36
|
+
requestBudget: buildGithubRequestBudget(context.github, ['core']),
|
|
31
37
|
};
|
|
32
38
|
}
|
|
33
39
|
export { getMneIssue as handler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMneIssue.js","sourceRoot":"","sources":["../../src/tools/getMneIssue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"getMneIssue.js","sourceRoot":"","sources":["../../src/tools/getMneIssue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAqC,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC7H,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACvG,OAAO,EAAE,aAAa;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACjC,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,wIAAwI;IACrJ,YAAY,EAAE,uBAAuB;IACrC,WAAW,EAAE,0BAA0B;CAC1C,CAAC,CAAC;AAOH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,MAAe,EACf,OAAoB;IAEpB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3F,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEtE,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,UAAU,WAAW,YAAY,EAAE;YACrE,OAAO,EAAE,YAAY,WAAW,IAAI,YAAY,EAAE;YAClD,UAAU,EAAE,oDAAoD;SACnE,CAAC,CAAC;IACP,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,CAAC;IAC1B,MAAM,aAAa,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;IAEjE,OAAO;QACH,GAAG,KAAK;QACR,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO;QAC3B,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;QAC7E,aAAa;QACb,OAAO,EAAE,WAAW,IAAI,YAAY;QACpC,aAAa,EAAE,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;KACpE,CAAC;AACN,CAAC;AAED,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { ToolContext } from '../types.js';
|
|
2
|
+
import { RequestBudgetSummary, ToolContext } from '../types.js';
|
|
3
3
|
import { GitHubIssueComment } from '../github/types.js';
|
|
4
4
|
export declare const definition: {
|
|
5
|
-
name: string;
|
|
6
|
-
title: string;
|
|
7
|
-
description: string;
|
|
8
5
|
inputSchema: {
|
|
9
6
|
issueNumber: z.ZodNumber;
|
|
7
|
+
maxComments: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
maxContentLength: z.ZodOptional<z.ZodNumber>;
|
|
10
9
|
package: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
|
|
11
10
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
11
|
+
name: string;
|
|
12
|
+
title: string;
|
|
13
|
+
description: string;
|
|
14
|
+
annotations?: object;
|
|
15
|
+
outputSchema?: z.ZodTypeAny;
|
|
18
16
|
};
|
|
19
17
|
export interface GetMneIssueCommentsResult {
|
|
20
18
|
issueNumber: number;
|
|
21
19
|
package: string;
|
|
22
20
|
comments: GitHubIssueComment[];
|
|
23
21
|
totalComments: number;
|
|
22
|
+
truncated: boolean;
|
|
23
|
+
requestBudget?: RequestBudgetSummary;
|
|
24
24
|
}
|
|
25
25
|
export declare function getMneIssueComments(params: unknown, context: ToolContext): Promise<GetMneIssueCommentsResult>;
|
|
26
26
|
export { getMneIssueComments as handler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMneIssueComments.d.ts","sourceRoot":"","sources":["../../src/tools/getMneIssueComments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"getMneIssueComments.d.ts","sourceRoot":"","sources":["../../src/tools/getMneIssueComments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAaxD,eAAO,MAAM,UAAU;;;;;;;;;;;;CAMrB,CAAC;AAEH,MAAM,WAAW,yBAAyB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAED,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,yBAAyB,CAAC,CAoCpC;AAED,OAAO,EAAE,mBAAmB,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { McpError } from '../types.js';
|
|
3
|
-
import {
|
|
3
|
+
import { packageSchema } from '../config.js';
|
|
4
4
|
import { READ_ONLY_TOOL_ANNOTATIONS } from './annotations.js';
|
|
5
|
+
import { defineTool } from './defineTool.js';
|
|
6
|
+
import { buildGithubRequestBudget } from './requestBudget.js';
|
|
5
7
|
const GetMneIssueCommentsParamsSchema = z.object({
|
|
6
|
-
issueNumber: z.number().int().positive('Issue number must be a positive integer'),
|
|
7
|
-
|
|
8
|
+
issueNumber: z.number().int().positive('Issue number must be a positive integer').describe('GitHub issue number'),
|
|
9
|
+
maxComments: z.number().int().min(1).max(500).optional().describe('Max comments to return'),
|
|
10
|
+
maxContentLength: z.number().int().min(20).max(20000).optional().describe('Truncate each comment body to N chars'),
|
|
11
|
+
package: packageSchema,
|
|
8
12
|
});
|
|
9
|
-
export const definition = {
|
|
13
|
+
export const definition = defineTool({
|
|
10
14
|
name: 'get_mne_issue_comments',
|
|
11
15
|
title: 'Get MNE Issue Comments',
|
|
12
16
|
description: 'Get all comments on a GitHub issue. Use to see the discussion, workarounds, and resolution for a bug or feature request.',
|
|
13
|
-
|
|
14
|
-
issueNumber: z.number().int().positive().describe('GitHub issue number'),
|
|
15
|
-
package: packageSchema,
|
|
16
|
-
},
|
|
17
|
+
paramsSchema: GetMneIssueCommentsParamsSchema,
|
|
17
18
|
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
18
|
-
};
|
|
19
|
+
});
|
|
19
20
|
export async function getMneIssueComments(params, context) {
|
|
20
|
-
const { issueNumber, package: packageName } = GetMneIssueCommentsParamsSchema.parse(params);
|
|
21
|
+
const { issueNumber, maxComments, maxContentLength, package: packageName } = GetMneIssueCommentsParamsSchema.parse(params);
|
|
21
22
|
// Verify issue exists first
|
|
22
23
|
const issue = await context.github.getIssue(issueNumber, packageName);
|
|
23
24
|
if (!issue) {
|
|
@@ -26,12 +27,28 @@ export async function getMneIssueComments(params, context) {
|
|
|
26
27
|
suggestion: 'Use search_mne_issues to find valid issue numbers.',
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
|
-
const comments = await context.github.getIssueComments(issueNumber, packageName);
|
|
30
|
+
const comments = await context.github.getIssueComments(issueNumber, packageName, { maxComments });
|
|
31
|
+
const totalComments = issue.commentsCount ?? comments.length;
|
|
32
|
+
const limitedComments = maxComments ? comments.slice(0, maxComments) : comments;
|
|
33
|
+
let truncated = maxComments ? totalComments > limitedComments.length : false;
|
|
34
|
+
const normalizedComments = limitedComments.map(comment => {
|
|
35
|
+
if (!maxContentLength || comment.body.length <= maxContentLength) {
|
|
36
|
+
return { ...comment, bodyTruncated: false };
|
|
37
|
+
}
|
|
38
|
+
truncated = true;
|
|
39
|
+
return {
|
|
40
|
+
...comment,
|
|
41
|
+
body: `${comment.body.slice(0, maxContentLength)}...`,
|
|
42
|
+
bodyTruncated: true,
|
|
43
|
+
};
|
|
44
|
+
});
|
|
30
45
|
return {
|
|
31
46
|
issueNumber,
|
|
32
47
|
package: packageName || 'mne-python',
|
|
33
|
-
comments,
|
|
34
|
-
totalComments
|
|
48
|
+
comments: normalizedComments,
|
|
49
|
+
totalComments,
|
|
50
|
+
truncated,
|
|
51
|
+
requestBudget: buildGithubRequestBudget(context.github, ['core']),
|
|
35
52
|
};
|
|
36
53
|
}
|
|
37
54
|
export { getMneIssueComments as handler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMneIssueComments.js","sourceRoot":"","sources":["../../src/tools/getMneIssueComments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"getMneIssueComments.js","sourceRoot":"","sources":["../../src/tools/getMneIssueComments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { ToolContext } from '../types.js';
|
|
3
3
|
export declare const definition: {
|
|
4
|
-
name: string;
|
|
5
|
-
title: string;
|
|
6
|
-
description: string;
|
|
7
4
|
inputSchema: {
|
|
8
5
|
symbol: z.ZodString;
|
|
9
6
|
version: z.ZodOptional<z.ZodString>;
|
|
10
|
-
maxResults: z.ZodOptional<z.ZodNumber
|
|
7
|
+
maxResults: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
11
8
|
package: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
|
|
12
9
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
};
|
|
10
|
+
name: string;
|
|
11
|
+
title: string;
|
|
12
|
+
description: string;
|
|
13
|
+
annotations?: object;
|
|
14
|
+
outputSchema?: z.ZodTypeAny;
|
|
19
15
|
};
|
|
20
16
|
/**
|
|
21
17
|
* A related symbol with relationship type.
|
|
@@ -24,7 +20,7 @@ export interface RelatedSymbol {
|
|
|
24
20
|
name: string;
|
|
25
21
|
qualifiedName: string;
|
|
26
22
|
kind: string;
|
|
27
|
-
relationship: 'same_module' | 'similar_name' | 'see_also';
|
|
23
|
+
relationship: 'method' | 'same_module' | 'similar_name' | 'see_also';
|
|
28
24
|
description?: string;
|
|
29
25
|
sourceUrl: string;
|
|
30
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRelatedSymbols.d.ts","sourceRoot":"","sources":["../../src/tools/getRelatedSymbols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"getRelatedSymbols.d.ts","sourceRoot":"","sources":["../../src/tools/getRelatedSymbols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAiBpD,eAAO,MAAM,UAAU;;;;;;;;;;;;CAUrB,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,CAAC;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,aAAa,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,uBAAuB,CAAC,CAgKlC;AAED,OAAO,EAAE,iBAAiB,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -1,32 +1,28 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { McpError } from '../types.js';
|
|
3
3
|
import { getLogger } from '../utils/logger.js';
|
|
4
|
-
import {
|
|
4
|
+
import { packageSchema } from '../config.js';
|
|
5
5
|
import { getMneDoc } from './getMneDoc.js';
|
|
6
6
|
import { filePathToModule } from '../utils/helpers.js';
|
|
7
7
|
import { READ_ONLY_TOOL_ANNOTATIONS } from './annotations.js';
|
|
8
|
+
import { defineTool } from './defineTool.js';
|
|
8
9
|
const logger = getLogger();
|
|
9
10
|
const GetRelatedSymbolsParamsSchema = z.object({
|
|
10
|
-
symbol: z.string().trim().min(1, 'Symbol is required'),
|
|
11
|
-
version: z.string().optional(),
|
|
12
|
-
maxResults: z.number().int().min(1).max(50).optional().default(15),
|
|
13
|
-
package:
|
|
11
|
+
symbol: z.string().trim().min(1, 'Symbol is required').describe('Fully-qualified name (no spaces), e.g. "mne.Epochs"'),
|
|
12
|
+
version: z.string().optional().describe('Version tag (default: latest)'),
|
|
13
|
+
maxResults: z.number().int().min(1).max(50).optional().default(15).describe('Max results (default: 15)'),
|
|
14
|
+
package: packageSchema,
|
|
14
15
|
});
|
|
15
|
-
export const definition = {
|
|
16
|
+
export const definition = defineTool({
|
|
16
17
|
name: 'get_related_symbols',
|
|
17
18
|
title: 'Get Related Symbols',
|
|
18
19
|
description: 'Find symbols related to a given symbol (same module, "See Also", or similar names). ' +
|
|
19
20
|
'Input must be a fully-qualified name like "mne.Epochs". ' +
|
|
20
21
|
'If you only know part of the name, use find_mne_symbol. ' +
|
|
21
22
|
'If you have a natural-language question, use search_mne_docs.',
|
|
22
|
-
|
|
23
|
-
symbol: z.string().describe('Fully-qualified name (no spaces), e.g. "mne.Epochs"'),
|
|
24
|
-
version: z.string().optional().describe('Version tag (default: latest)'),
|
|
25
|
-
maxResults: z.number().optional().describe('Max results (default: 15)'),
|
|
26
|
-
package: packageSchema,
|
|
27
|
-
},
|
|
23
|
+
paramsSchema: GetRelatedSymbolsParamsSchema,
|
|
28
24
|
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
29
|
-
};
|
|
25
|
+
});
|
|
30
26
|
/**
|
|
31
27
|
* Finds symbols related to the given symbol.
|
|
32
28
|
* Includes: same module, See Also references, and similarly named symbols.
|
|
@@ -45,6 +41,11 @@ export async function getRelatedSymbols(params, context) {
|
|
|
45
41
|
const resolvedVersion = target.version;
|
|
46
42
|
logger.debug(`Finding related symbols for: ${symbol}`);
|
|
47
43
|
const related = [];
|
|
44
|
+
const addRelated = (item) => {
|
|
45
|
+
if (related.some(existing => existing.qualifiedName === item.qualifiedName))
|
|
46
|
+
return;
|
|
47
|
+
related.push(item);
|
|
48
|
+
};
|
|
48
49
|
// 1. Get the symbol's documentation (includes See Also)
|
|
49
50
|
// Use brief: false to get full result with filePath, seeAlso, etc.
|
|
50
51
|
let doc;
|
|
@@ -62,11 +63,24 @@ export async function getRelatedSymbols(params, context) {
|
|
|
62
63
|
details: error instanceof Error ? error.message : undefined,
|
|
63
64
|
});
|
|
64
65
|
}
|
|
66
|
+
const publicQualifiedName = doc.publicQualifiedName || symbol;
|
|
67
|
+
if (doc.kind === 'class' && doc.methods && doc.methods.length > 0) {
|
|
68
|
+
for (const method of doc.methods.slice(0, Math.min(maxResults, 8))) {
|
|
69
|
+
addRelated({
|
|
70
|
+
name: method.name,
|
|
71
|
+
qualifiedName: `${publicQualifiedName}.${method.name}`,
|
|
72
|
+
kind: 'method',
|
|
73
|
+
relationship: 'method',
|
|
74
|
+
description: method.docstring?.split('\n')[0]?.slice(0, 100),
|
|
75
|
+
sourceUrl: doc.docsUrl,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
65
79
|
// Add See Also references
|
|
66
80
|
if (doc.seeAlso && doc.seeAlso.length > 0) {
|
|
67
81
|
for (const ref of doc.seeAlso) {
|
|
68
82
|
const qualifiedName = ref.startsWith(`${rootModule}.`) ? ref : `${rootModule}.${ref}`;
|
|
69
|
-
|
|
83
|
+
addRelated({
|
|
70
84
|
name: ref.split('.').pop() || ref,
|
|
71
85
|
qualifiedName,
|
|
72
86
|
kind: 'unknown',
|
|
@@ -88,11 +102,13 @@ export async function getRelatedSymbols(params, context) {
|
|
|
88
102
|
continue;
|
|
89
103
|
if (s.name.startsWith('_'))
|
|
90
104
|
continue;
|
|
105
|
+
if (doc.kind === 'class' && doc.methods?.some(method => method.name === s.name))
|
|
106
|
+
continue;
|
|
91
107
|
// Limit same-module symbols
|
|
92
108
|
const sameModuleCount = related.filter(r => r.relationship === 'same_module').length;
|
|
93
109
|
if (sameModuleCount >= 10)
|
|
94
110
|
break;
|
|
95
|
-
|
|
111
|
+
addRelated({
|
|
96
112
|
name: s.name,
|
|
97
113
|
qualifiedName: s.qualifiedName,
|
|
98
114
|
kind: s.kind,
|
|
@@ -119,9 +135,7 @@ export async function getRelatedSymbols(params, context) {
|
|
|
119
135
|
if (item.path.includes('/tests/'))
|
|
120
136
|
continue;
|
|
121
137
|
const qualifiedName = filePathToModule(item.path);
|
|
122
|
-
|
|
123
|
-
continue;
|
|
124
|
-
related.push({
|
|
138
|
+
addRelated({
|
|
125
139
|
name: item.name.replace(/\.py$/, ''),
|
|
126
140
|
qualifiedName,
|
|
127
141
|
kind: 'module',
|
|
@@ -146,6 +160,18 @@ export async function getRelatedSymbols(params, context) {
|
|
|
146
160
|
seen.add(r.qualifiedName);
|
|
147
161
|
return true;
|
|
148
162
|
});
|
|
163
|
+
const relationshipOrder = {
|
|
164
|
+
method: 0,
|
|
165
|
+
see_also: 1,
|
|
166
|
+
same_module: 2,
|
|
167
|
+
similar_name: 3,
|
|
168
|
+
};
|
|
169
|
+
deduplicated.sort((a, b) => {
|
|
170
|
+
const byRelationship = relationshipOrder[a.relationship] - relationshipOrder[b.relationship];
|
|
171
|
+
if (byRelationship !== 0)
|
|
172
|
+
return byRelationship;
|
|
173
|
+
return 0;
|
|
174
|
+
});
|
|
149
175
|
return {
|
|
150
176
|
symbol,
|
|
151
177
|
version: resolvedVersion,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRelatedSymbols.js","sourceRoot":"","sources":["../../src/tools/getRelatedSymbols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"getRelatedSymbols.js","sourceRoot":"","sources":["../../src/tools/getRelatedSymbols.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,21 +2,17 @@ import { z } from 'zod';
|
|
|
2
2
|
import { ToolContext } from '../types.js';
|
|
3
3
|
import { CrossReferenceResult } from '../parser/types.js';
|
|
4
4
|
export declare const definition: {
|
|
5
|
-
name: string;
|
|
6
|
-
title: string;
|
|
7
|
-
description: string;
|
|
8
5
|
inputSchema: {
|
|
9
6
|
symbol: z.ZodString;
|
|
10
7
|
version: z.ZodOptional<z.ZodString>;
|
|
11
|
-
crossFile: z.ZodOptional<z.ZodBoolean
|
|
8
|
+
crossFile: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
12
9
|
package: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
|
|
13
10
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
11
|
+
name: string;
|
|
12
|
+
title: string;
|
|
13
|
+
description: string;
|
|
14
|
+
annotations?: object;
|
|
15
|
+
outputSchema?: z.ZodTypeAny;
|
|
20
16
|
};
|
|
21
17
|
export interface CrossFileRef {
|
|
22
18
|
name: string;
|
|
@@ -30,6 +26,7 @@ export interface SymbolReferencesResult extends CrossReferenceResult {
|
|
|
30
26
|
sourceUrl: string;
|
|
31
27
|
scope: string;
|
|
32
28
|
note: string;
|
|
29
|
+
referenceCompleteness: 'local' | 'cross-file-best-effort';
|
|
33
30
|
crossFileCallers?: CrossFileRef[];
|
|
34
31
|
}
|
|
35
32
|
export declare function getSymbolReferences(params: unknown, context: ToolContext): Promise<SymbolReferencesResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSymbolReferences.d.ts","sourceRoot":"","sources":["../../src/tools/getSymbolReferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"getSymbolReferences.d.ts","sourceRoot":"","sources":["../../src/tools/getSymbolReferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAa1D,eAAO,MAAM,UAAU;;;;;;;;;;;;CAUrB,CAAC;AAEH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,EAAE,OAAO,GAAG,wBAAwB,CAAC;IAC1D,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;CACrC;AAcD,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,sBAAsB,CAAC,CA2FjC;AAED,OAAO,EAAE,mBAAmB,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -1,30 +1,38 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { McpError } from '../types.js';
|
|
3
|
-
import {
|
|
3
|
+
import { packageSchema } from '../config.js';
|
|
4
4
|
import { isTestFile, escapeRegExp } from '../utils/helpers.js';
|
|
5
5
|
import { getArchive, searchInArchive } from '../archive/search.js';
|
|
6
6
|
import { READ_ONLY_TOOL_ANNOTATIONS } from './annotations.js';
|
|
7
|
+
import { defineTool } from './defineTool.js';
|
|
7
8
|
const GetSymbolReferencesParamsSchema = z.object({
|
|
8
|
-
symbol: z.string().trim().min(1, 'Symbol is required'),
|
|
9
|
-
version: z.string().optional(),
|
|
10
|
-
crossFile: z.boolean().optional().default(false),
|
|
11
|
-
package:
|
|
9
|
+
symbol: z.string().trim().min(1, 'Symbol is required').describe('Fully-qualified name (no spaces), e.g. "mne.filter.filter_data"'),
|
|
10
|
+
version: z.string().optional().describe('Version tag (default: latest)'),
|
|
11
|
+
crossFile: z.boolean().optional().default(false).describe('Also search for callers in other files via archive/GitHub code search (default: false; slower and costs extra API calls)'),
|
|
12
|
+
package: packageSchema,
|
|
12
13
|
});
|
|
13
|
-
export const definition = {
|
|
14
|
+
export const definition = defineTool({
|
|
14
15
|
name: 'get_symbol_references',
|
|
15
16
|
title: 'Get Symbol References',
|
|
16
17
|
description: 'Analyze code references for a symbol: what it calls (callees) and what calls it (callers). ' +
|
|
17
18
|
'Input must be a fully-qualified name like "mne.filter.filter_data". ' +
|
|
18
19
|
'Set crossFile=true to search callers in other files (slower: uses GitHub code search). ' +
|
|
19
20
|
'If you have a natural-language question, use search_mne_docs.',
|
|
20
|
-
|
|
21
|
-
symbol: z.string().describe('Fully-qualified name (no spaces), e.g. "mne.filter.filter_data"'),
|
|
22
|
-
version: z.string().optional().describe('Version tag (default: latest)'),
|
|
23
|
-
crossFile: z.boolean().optional().describe('Also search for callers in other files via GitHub code search (default: false; slower and costs extra API calls)'),
|
|
24
|
-
package: packageSchema,
|
|
25
|
-
},
|
|
21
|
+
paramsSchema: GetSymbolReferencesParamsSchema,
|
|
26
22
|
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
27
|
-
};
|
|
23
|
+
});
|
|
24
|
+
const NOISY_CALLEE_NAMES = new Set([
|
|
25
|
+
'dict', 'list', 'set', 'tuple', 'len', 'str', 'int', 'float', 'bool',
|
|
26
|
+
'print', 'sum', 'min', 'max', 'sorted', 'enumerate', 'zip', 'map',
|
|
27
|
+
'filter', 'range', 'next', 'iter', 'object', 'type', 'super',
|
|
28
|
+
]);
|
|
29
|
+
function isUsefulCallee(name) {
|
|
30
|
+
if (NOISY_CALLEE_NAMES.has(name))
|
|
31
|
+
return false;
|
|
32
|
+
if (/\.(items|keys|values)$/.test(name))
|
|
33
|
+
return false;
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
28
36
|
export async function getSymbolReferences(params, context) {
|
|
29
37
|
const { symbol, version, crossFile, package: packageName } = GetSymbolReferencesParamsSchema.parse(params);
|
|
30
38
|
if (/\s/.test(symbol)) {
|
|
@@ -36,7 +44,6 @@ export async function getSymbolReferences(params, context) {
|
|
|
36
44
|
const pkg = target.packageName;
|
|
37
45
|
const packageInfo = target.packageInfo;
|
|
38
46
|
const resolvedVersion = target.version;
|
|
39
|
-
const archive = await getArchive(context.github, context.archive, resolvedVersion, pkg);
|
|
40
47
|
const definitionSource = await context.symbolLookup.resolveDefinitionSource({ symbol, target });
|
|
41
48
|
if (!definitionSource) {
|
|
42
49
|
throw new McpError('SYMBOL_NOT_FOUND', `Symbol not found: ${symbol}`, {
|
|
@@ -50,6 +57,7 @@ export async function getSymbolReferences(params, context) {
|
|
|
50
57
|
const crossFileSearchPromise = (async () => {
|
|
51
58
|
if (!crossFile)
|
|
52
59
|
return [];
|
|
60
|
+
const archive = await getArchive(context.github, context.archive, resolvedVersion, pkg);
|
|
53
61
|
if (archive) {
|
|
54
62
|
const hits = await searchInArchive(archive, context.archive, {
|
|
55
63
|
pattern: `\\b${escapeRegExp(location.resolvedName)}\\s*\\(`,
|
|
@@ -72,16 +80,20 @@ export async function getSymbolReferences(params, context) {
|
|
|
72
80
|
}
|
|
73
81
|
})();
|
|
74
82
|
const [crossRefs, crossFileResults] = await Promise.all([crossRefsPromise, crossFileSearchPromise]);
|
|
83
|
+
const filteredCallees = crossRefs.callees.filter(callee => isUsefulCallee(callee.name));
|
|
75
84
|
const result = {
|
|
76
85
|
...crossRefs,
|
|
86
|
+
callees: filteredCallees,
|
|
87
|
+
totalCallees: filteredCallees.length,
|
|
77
88
|
version: resolvedVersion,
|
|
78
89
|
package: pkg,
|
|
79
90
|
filePath: location.filePath,
|
|
80
91
|
sourceUrl: definitionSource.sourceUrl,
|
|
81
92
|
scope: crossFile ? 'cross-file' : 'same-file',
|
|
93
|
+
referenceCompleteness: crossFile ? 'cross-file-best-effort' : 'local',
|
|
82
94
|
note: location.classContext
|
|
83
|
-
? `Cross-references for ${location.classContext}.${location.resolvedName} method`
|
|
84
|
-
: `Cross-references for ${location.resolvedName}`,
|
|
95
|
+
? `Cross-references for ${location.classContext}.${location.resolvedName} method${crossFile ? ' (cross-file callers are best-effort)' : ''}`
|
|
96
|
+
: `Cross-references for ${location.resolvedName}${crossFile ? ' (cross-file callers are best-effort)' : ''}`,
|
|
85
97
|
};
|
|
86
98
|
// Cross-file caller search: always set crossFileCallers so clients get a consistent shape
|
|
87
99
|
const crossFileCallers = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSymbolReferences.js","sourceRoot":"","sources":["../../src/tools/getSymbolReferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"getSymbolReferences.js","sourceRoot":"","sources":["../../src/tools/getSymbolReferences.ts"],"names":[],"mappings":"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"}
|