pub-mcp 0.2.0 → 0.2.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.
- package/CHANGELOG.md +39 -0
- package/dist/cli.js +5 -2
- package/dist/cli.js.map +1 -1
- package/dist/clients/githubClient.d.ts +2 -1
- package/dist/clients/githubClient.d.ts.map +1 -1
- package/dist/clients/githubClient.js +32 -16
- package/dist/clients/githubClient.js.map +1 -1
- package/dist/clients/pubClient.d.ts +1 -0
- package/dist/clients/pubClient.d.ts.map +1 -1
- package/dist/clients/pubClient.js +38 -2
- package/dist/clients/pubClient.js.map +1 -1
- package/dist/tools/index.d.ts +17 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +21 -1
- package/dist/tools/index.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +6 -1
- package/src/clients/githubClient.ts +66 -27
- package/src/clients/pubClient.ts +54 -3
- package/src/tools/index.ts +28 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,45 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [0.2.1] - 2024-04-09
|
|
11
|
+
|
|
12
|
+
### 🎉 Fixed
|
|
13
|
+
|
|
14
|
+
- **README fetching** - Now properly fetches README from GitHub subdirectories
|
|
15
|
+
- Fixed parsing of GitHub URLs like `github.com/org/repo/tree/main/path`
|
|
16
|
+
- Improved fallback to repository root README when subdirectory README not found
|
|
17
|
+
- Added support for `pubspec.repository` field (used by Flutter packages)
|
|
18
|
+
|
|
19
|
+
- **HTML detection** - Now properly handles when pub.dev returns HTML error pages
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## [0.2.0] - 2024-04-09
|
|
24
|
+
|
|
25
|
+
### 🎉 Fixed
|
|
26
|
+
|
|
27
|
+
- **README fetching** - Now properly fetches README from GitHub subdirectories
|
|
28
|
+
- Fixed parsing of GitHub URLs like `github.com/org/repo/tree/main/path`
|
|
29
|
+
- Improved fallback to repository root README when subdirectory README not found
|
|
30
|
+
- Added support for `pubspec.repository` field (used by Flutter packages)
|
|
31
|
+
|
|
32
|
+
- **HTML detection** - Now properly handles when pub.dev returns HTML error pages
|
|
33
|
+
|
|
34
|
+
### 📦 How to Use
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"mcpServers": {
|
|
39
|
+
"pub-mcp": {
|
|
40
|
+
"command": "npx",
|
|
41
|
+
"args": ["-y", "pub-mcp"]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
10
49
|
## [0.2.0] - 2024-04-09
|
|
11
50
|
|
|
12
51
|
### 🎉 Added
|
package/dist/cli.js
CHANGED
|
@@ -5,13 +5,13 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
5
5
|
import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
6
6
|
import { PubClient } from './clients/pubClient.js';
|
|
7
7
|
import { GitHubClient } from './clients/githubClient.js';
|
|
8
|
-
import { tools, handleSearchPackages, handleGetPackageInfo, handleGetPackageVersions, handleGetReadme, handleGetDependencies, handleGetPackageScore, handleGetChangelog, handleGetPackageMetrics, } from './tools/index.js';
|
|
8
|
+
import { tools, handleSearchPackages, handleGetPackageInfo, handleGetPackageVersions, handleGetReadme, handleGetDependencies, handleGetPackageScore, handleGetChangelog, handleGetPackageMetrics, handleGetExample, } from './tools/index.js';
|
|
9
9
|
import pino from 'pino';
|
|
10
10
|
import express from 'express';
|
|
11
11
|
import cors from 'cors';
|
|
12
12
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
13
13
|
const logger = pino({ level: process.env.LOG_LEVEL || 'info' });
|
|
14
|
-
const VERSION = '0.2.
|
|
14
|
+
const VERSION = '0.2.1';
|
|
15
15
|
const client = new PubClient();
|
|
16
16
|
const githubClient = new GitHubClient();
|
|
17
17
|
function createServer() {
|
|
@@ -131,6 +131,9 @@ function createServer() {
|
|
|
131
131
|
case 'get_package_metrics':
|
|
132
132
|
result = await handleGetPackageMetrics(client, args);
|
|
133
133
|
break;
|
|
134
|
+
case 'get_example':
|
|
135
|
+
result = await handleGetExample(client, args);
|
|
136
|
+
break;
|
|
134
137
|
default:
|
|
135
138
|
throw new Error(`Unknown tool: ${name}`);
|
|
136
139
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,KAAK,EACL,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export declare class GitHubClient {
|
|
|
13
13
|
private timeout;
|
|
14
14
|
constructor(options?: GitHubClientOptions);
|
|
15
15
|
private fetchWithTimeout;
|
|
16
|
-
getRepositoryReadme(owner: string, repo: string): Promise<string>;
|
|
16
|
+
getRepositoryReadme(owner: string, repo: string, path?: string): Promise<string>;
|
|
17
17
|
getChangelog(owner: string, repo: string): Promise<string>;
|
|
18
18
|
getLatestRelease(owner: string, repo: string): Promise<{
|
|
19
19
|
tag: string;
|
|
@@ -29,5 +29,6 @@ export declare class GitHubClient {
|
|
|
29
29
|
export declare function parseGitHubUrl(url: string): {
|
|
30
30
|
owner: string;
|
|
31
31
|
repo: string;
|
|
32
|
+
path?: string;
|
|
32
33
|
} | null;
|
|
33
34
|
//# sourceMappingURL=githubClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubClient.d.ts","sourceRoot":"","sources":["../../src/clients/githubClient.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"githubClient.d.ts","sourceRoot":"","sources":["../../src/clients/githubClient.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAGjC,UAAU,CAAC,EAAE,MAAM;gBAD1B,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA;CAK7B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,mBAAwB;YAM/B,gBAAgB;IAyBxB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BhF,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmC1D,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAsB1C,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;CA6BV;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA4BjG"}
|
|
@@ -37,16 +37,20 @@ export class GitHubClient {
|
|
|
37
37
|
clearTimeout(timeoutId);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
async getRepositoryReadme(owner, repo) {
|
|
41
|
-
const
|
|
40
|
+
async getRepositoryReadme(owner, repo, path) {
|
|
41
|
+
const readmePath = path ? `${path}/README.md` : 'README.md';
|
|
42
|
+
const url = `${this.baseUrl}/repos/${owner}/${repo}/contents/${readmePath}`;
|
|
42
43
|
const response = await this.fetchWithTimeout(url);
|
|
43
44
|
if (response.status === 404) {
|
|
45
|
+
if (path) {
|
|
46
|
+
return this.getRepositoryReadme(owner, repo);
|
|
47
|
+
}
|
|
44
48
|
return '';
|
|
45
49
|
}
|
|
46
50
|
if (!response.ok) {
|
|
47
51
|
throw new GitHubClientError(`Failed to fetch README: ${response.statusText}`, response.status);
|
|
48
52
|
}
|
|
49
|
-
const data = await response.json();
|
|
53
|
+
const data = (await response.json());
|
|
50
54
|
if (data.content) {
|
|
51
55
|
return Buffer.from(data.content, 'base64').toString('utf-8');
|
|
52
56
|
}
|
|
@@ -60,7 +64,7 @@ export class GitHubClient {
|
|
|
60
64
|
for (const altUrl of altUrls) {
|
|
61
65
|
const altResponse = await this.fetchWithTimeout(`${this.baseUrl}/repos/${owner}/${repo}/contents/${altUrl}`);
|
|
62
66
|
if (altResponse.ok) {
|
|
63
|
-
const data = await altResponse.json();
|
|
67
|
+
const data = (await altResponse.json());
|
|
64
68
|
if (data.content) {
|
|
65
69
|
return Buffer.from(data.content, 'base64').toString('utf-8');
|
|
66
70
|
}
|
|
@@ -71,7 +75,7 @@ export class GitHubClient {
|
|
|
71
75
|
if (!response.ok) {
|
|
72
76
|
throw new GitHubClientError(`Failed to fetch changelog: ${response.statusText}`, response.status);
|
|
73
77
|
}
|
|
74
|
-
const data = await response.json();
|
|
78
|
+
const data = (await response.json());
|
|
75
79
|
if (data.content) {
|
|
76
80
|
return Buffer.from(data.content, 'base64').toString('utf-8');
|
|
77
81
|
}
|
|
@@ -86,7 +90,7 @@ export class GitHubClient {
|
|
|
86
90
|
if (!response.ok) {
|
|
87
91
|
throw new GitHubClientError(`Failed to fetch release: ${response.statusText}`, response.status);
|
|
88
92
|
}
|
|
89
|
-
const data = await response.json();
|
|
93
|
+
const data = (await response.json());
|
|
90
94
|
return {
|
|
91
95
|
tag: data.tag_name || '',
|
|
92
96
|
body: data.body || '',
|
|
@@ -101,7 +105,7 @@ export class GitHubClient {
|
|
|
101
105
|
if (!response.ok) {
|
|
102
106
|
throw new GitHubClientError(`Failed to fetch repo info: ${response.statusText}`, response.status);
|
|
103
107
|
}
|
|
104
|
-
const data = await response.json();
|
|
108
|
+
const data = (await response.json());
|
|
105
109
|
return {
|
|
106
110
|
description: data.description || '',
|
|
107
111
|
stars: data.stargazers_count || 0,
|
|
@@ -111,16 +115,28 @@ export class GitHubClient {
|
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
export function parseGitHubUrl(url) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
if (
|
|
121
|
-
return
|
|
118
|
+
if (!url || !url.includes('github.com')) {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
try {
|
|
122
|
+
const urlObj = new URL(url);
|
|
123
|
+
const pathParts = urlObj.pathname.split('/').filter(Boolean);
|
|
124
|
+
if (pathParts.length < 2) {
|
|
125
|
+
return null;
|
|
122
126
|
}
|
|
127
|
+
const owner = pathParts[0];
|
|
128
|
+
const repo = pathParts[1].replace(/\.git$/, '');
|
|
129
|
+
let path;
|
|
130
|
+
if (pathParts.length > 2) {
|
|
131
|
+
const treeIndex = pathParts.indexOf('tree');
|
|
132
|
+
if (treeIndex !== -1 && treeIndex + 2 < pathParts.length) {
|
|
133
|
+
path = pathParts.slice(treeIndex + 2).join('/');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return { owner, repo, path: path || undefined };
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return null;
|
|
123
140
|
}
|
|
124
|
-
return null;
|
|
125
141
|
}
|
|
126
142
|
//# sourceMappingURL=githubClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubClient.js","sourceRoot":"","sources":["../../src/clients/githubClient.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"githubClient.js","sourceRoot":"","sources":["../../src/clients/githubClient.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAGjC;IAFT,YACE,OAAe,EACR,UAAmB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,eAAU,GAAV,UAAU,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IACf,OAAO,CAAS;IAChB,KAAK,CAAU;IACf,OAAO,CAAS;IAExB,YAAY,UAA+B,EAAE;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,wBAAwB,CAAC;QACzF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAAW,EAAE,UAAuB,EAAE;QACnE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErE,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,gCAAgC;YACxC,GAAG,CAAE,OAAO,CAAC,OAAkC,IAAI,EAAE,CAAC;SACvD,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,GAAG,OAAO;gBACV,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,IAAY,EAAE,IAAa;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;QAC5D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,UAAU,KAAK,IAAI,IAAI,aAAa,UAAU,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,iBAAiB,CACzB,2BAA2B,QAAQ,CAAC,UAAU,EAAE,EAChD,QAAQ,CAAC,MAAM,CAChB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;QAE7D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,IAAY;QAC5C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,UAAU,KAAK,IAAI,IAAI,wBAAwB,CAAC;QAC3E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAC7E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC7C,GAAG,IAAI,CAAC,OAAO,UAAU,KAAK,IAAI,IAAI,aAAa,MAAM,EAAE,CAC5D,CAAC;gBACF,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;oBACnB,MAAM,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,CAAyB,CAAC;oBAChE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,QAAQ,CAAC,UAAU,EAAE,EACnD,QAAQ,CAAC,MAAM,CAChB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC7D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,KAAa,EACb,IAAY;QAEZ,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,UAAU,KAAK,IAAI,IAAI,kBAAkB,CAAC;QACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,iBAAiB,CACzB,4BAA4B,QAAQ,CAAC,UAAU,EAAE,EACjD,QAAQ,CAAC,MAAM,CAChB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyC,CAAC;QAC7E,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;SACtB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,KAAa,EACb,IAAY;QAOZ,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,UAAU,KAAK,IAAI,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,QAAQ,CAAC,UAAU,EAAE,EACnD,QAAQ,CAAC,MAAM,CAChB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKlC,CAAC;QAEF,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,gBAAgB,IAAI,CAAC;YACjC,KAAK,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;SACzB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEhD,IAAI,IAAwB,CAAC;QAC7B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;gBACzD,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -24,5 +24,6 @@ export declare class PubClient {
|
|
|
24
24
|
getDependencies(name: string, version?: string): Promise<Record<string, string>>;
|
|
25
25
|
getPackageScore(name: string): Promise<PackageScore>;
|
|
26
26
|
getChangelog(name: string, version?: string): Promise<PackageChangelog | null>;
|
|
27
|
+
getExample(name: string, version?: string): Promise<string>;
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=pubClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubClient.d.ts","sourceRoot":"","sources":["../../src/clients/pubClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAM3B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAe,SAAQ,KAAK;IAG9B,UAAU,CAAC,EAAE,MAAM;IACnB,WAAW,EAAE,OAAO;gBAF3B,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,WAAW,GAAE,OAAe;CAKtC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,gBAAqB;YAM5B,gBAAgB;YAehB,cAAc;IAkC5B,OAAO,CAAC,KAAK;IAIP,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA8BxE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pubClient.d.ts","sourceRoot":"","sources":["../../src/clients/pubClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAM3B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAe,SAAQ,KAAK;IAG9B,UAAU,CAAC,EAAE,MAAM;IACnB,WAAW,EAAE,OAAO;gBAF3B,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,WAAW,GAAE,OAAe;CAKtC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,gBAAqB;YAM5B,gBAAgB;YAehB,cAAc;IAkC5B,OAAO,CAAC,KAAK;IAIP,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA8BxE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA0C9C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA2B3D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqC1D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAwBhF,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkCpD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAuC9E,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoClE"}
|
|
@@ -101,8 +101,8 @@ export class PubClient {
|
|
|
101
101
|
published: data.latest.published,
|
|
102
102
|
updated: data.latest.published,
|
|
103
103
|
publisher: data.publisher?.publisherName,
|
|
104
|
-
homepage: data.urls?.homepage,
|
|
105
|
-
repository: data.urls?.repository,
|
|
104
|
+
homepage: data.urls?.homepage || data.latest.pubspec?.homepage,
|
|
105
|
+
repository: data.urls?.repository || data.latest.pubspec?.repository,
|
|
106
106
|
issues: data.urls?.issues,
|
|
107
107
|
};
|
|
108
108
|
getPackageCache().set(cacheKey, result);
|
|
@@ -141,6 +141,12 @@ export class PubClient {
|
|
|
141
141
|
return '';
|
|
142
142
|
}
|
|
143
143
|
const content = await response.text();
|
|
144
|
+
if (content.includes('<!DOCTYPE html>') || content.includes('<html')) {
|
|
145
|
+
return '';
|
|
146
|
+
}
|
|
147
|
+
if (content.length < 10) {
|
|
148
|
+
return '';
|
|
149
|
+
}
|
|
144
150
|
getPackageCache().set(cacheKey, content);
|
|
145
151
|
return content;
|
|
146
152
|
}
|
|
@@ -219,5 +225,35 @@ export class PubClient {
|
|
|
219
225
|
throw error;
|
|
220
226
|
}
|
|
221
227
|
}
|
|
228
|
+
async getExample(name, version) {
|
|
229
|
+
const cacheKey = `example:${name}:${version || 'latest'}`;
|
|
230
|
+
const cached = getPackageCache().get(cacheKey);
|
|
231
|
+
if (cached) {
|
|
232
|
+
return cached;
|
|
233
|
+
}
|
|
234
|
+
const versionPart = version ? `/${version}` : '';
|
|
235
|
+
const url = `${this.baseUrl}/packages/${name}${versionPart}/example`;
|
|
236
|
+
try {
|
|
237
|
+
const response = await this.fetchWithRetry(url);
|
|
238
|
+
if (response.status === 404) {
|
|
239
|
+
return '';
|
|
240
|
+
}
|
|
241
|
+
const content = await response.text();
|
|
242
|
+
if (content.includes('<!DOCTYPE html>') || content.includes('<html')) {
|
|
243
|
+
return '';
|
|
244
|
+
}
|
|
245
|
+
if (content.length < 10) {
|
|
246
|
+
return '';
|
|
247
|
+
}
|
|
248
|
+
getPackageCache().set(cacheKey, content);
|
|
249
|
+
return content;
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
if (error instanceof PubClientError && error.statusCode === 404) {
|
|
253
|
+
return '';
|
|
254
|
+
}
|
|
255
|
+
throw error;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
222
258
|
}
|
|
223
259
|
//# sourceMappingURL=pubClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubClient.js","sourceRoot":"","sources":["../../src/clients/pubClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pubClient.js","sourceRoot":"","sources":["../../src/clients/pubClient.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -72,6 +72,16 @@ export declare const getPackageMetricsSchema: z.ZodObject<{
|
|
|
72
72
|
}, {
|
|
73
73
|
name: string;
|
|
74
74
|
}>;
|
|
75
|
+
export declare const getExampleSchema: z.ZodObject<{
|
|
76
|
+
name: z.ZodString;
|
|
77
|
+
version: z.ZodOptional<z.ZodString>;
|
|
78
|
+
}, "strip", z.ZodTypeAny, {
|
|
79
|
+
name: string;
|
|
80
|
+
version?: string | undefined;
|
|
81
|
+
}, {
|
|
82
|
+
name: string;
|
|
83
|
+
version?: string | undefined;
|
|
84
|
+
}>;
|
|
75
85
|
export type SearchPackagesInput = {
|
|
76
86
|
query: string;
|
|
77
87
|
limit?: number;
|
|
@@ -101,6 +111,10 @@ export type GetChangelogInput = {
|
|
|
101
111
|
export type GetPackageMetricsInput = {
|
|
102
112
|
name: string;
|
|
103
113
|
};
|
|
114
|
+
export type GetExampleInput = {
|
|
115
|
+
name: string;
|
|
116
|
+
version?: string;
|
|
117
|
+
};
|
|
104
118
|
export interface ToolDefinition {
|
|
105
119
|
name: string;
|
|
106
120
|
description: string;
|
|
@@ -133,6 +147,9 @@ export declare function handleGetDependencies(client: PubClient, input: GetDepen
|
|
|
133
147
|
}>;
|
|
134
148
|
export declare function handleGetPackageScore(client: PubClient, input: GetPackageScoreInput): Promise<import("../types/index.js").PackageScore>;
|
|
135
149
|
export declare function handleGetChangelog(client: PubClient, input: GetChangelogInput): Promise<import("../types/index.js").PackageChangelog>;
|
|
150
|
+
export declare function handleGetExample(client: PubClient, input: GetExampleInput): Promise<{
|
|
151
|
+
example: string;
|
|
152
|
+
}>;
|
|
136
153
|
export declare function handleGetPackageMetrics(client: PubClient, input: GetPackageMetricsInput): Promise<{
|
|
137
154
|
info: import("../types/index.js").PackageInfo;
|
|
138
155
|
score: import("../types/index.js").PackageScore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;EAEnC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;EAI1B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,uBAAuB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;CACvC,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACpD,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACnE,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -29,6 +29,10 @@ export const getChangelogSchema = z.object({
|
|
|
29
29
|
export const getPackageMetricsSchema = z.object({
|
|
30
30
|
name: z.string().min(1),
|
|
31
31
|
});
|
|
32
|
+
export const getExampleSchema = z.object({
|
|
33
|
+
name: z.string().min(1),
|
|
34
|
+
version: z.string().optional(),
|
|
35
|
+
});
|
|
32
36
|
export const tools = [
|
|
33
37
|
{
|
|
34
38
|
name: 'search_packages',
|
|
@@ -116,6 +120,18 @@ export const tools = [
|
|
|
116
120
|
required: ['name'],
|
|
117
121
|
},
|
|
118
122
|
},
|
|
123
|
+
{
|
|
124
|
+
name: 'get_example',
|
|
125
|
+
description: 'Get the example code of a package',
|
|
126
|
+
inputSchema: {
|
|
127
|
+
type: 'object',
|
|
128
|
+
properties: {
|
|
129
|
+
name: { type: 'string', description: 'Package name' },
|
|
130
|
+
version: { type: 'string', description: 'Specific version (optional, defaults to latest)' },
|
|
131
|
+
},
|
|
132
|
+
required: ['name'],
|
|
133
|
+
},
|
|
134
|
+
},
|
|
119
135
|
{
|
|
120
136
|
name: 'get_package_metrics',
|
|
121
137
|
description: 'Get comprehensive metrics for a package (info + score + versions)',
|
|
@@ -157,7 +173,7 @@ export async function handleGetReadme(client, githubClient, input) {
|
|
|
157
173
|
if (pkg.repository) {
|
|
158
174
|
const parsed = parseGitHubUrl(pkg.repository);
|
|
159
175
|
if (parsed) {
|
|
160
|
-
const githubReadme = await githubClient.getRepositoryReadme(parsed.owner, parsed.repo);
|
|
176
|
+
const githubReadme = await githubClient.getRepositoryReadme(parsed.owner, parsed.repo, parsed.path);
|
|
161
177
|
if (githubReadme) {
|
|
162
178
|
finalReadme = githubReadme;
|
|
163
179
|
source = 'github';
|
|
@@ -198,6 +214,10 @@ export async function handleGetChangelog(client, input) {
|
|
|
198
214
|
}
|
|
199
215
|
return changelog;
|
|
200
216
|
}
|
|
217
|
+
export async function handleGetExample(client, input) {
|
|
218
|
+
const example = await client.getExample(input.name, input.version);
|
|
219
|
+
return { example: example || 'No example available' };
|
|
220
|
+
}
|
|
201
221
|
export async function handleGetPackageMetrics(client, input) {
|
|
202
222
|
const [info, score, versions] = await Promise.all([
|
|
203
223
|
client.getPackage(input.name),
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;CAC5E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
handleGetPackageScore,
|
|
22
22
|
handleGetChangelog,
|
|
23
23
|
handleGetPackageMetrics,
|
|
24
|
+
handleGetExample,
|
|
24
25
|
} from './tools/index.js';
|
|
25
26
|
import pino from 'pino';
|
|
26
27
|
import express from 'express';
|
|
@@ -29,7 +30,7 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
|
|
|
29
30
|
|
|
30
31
|
const logger = pino({ level: process.env.LOG_LEVEL || 'info' });
|
|
31
32
|
|
|
32
|
-
const VERSION = '0.2.
|
|
33
|
+
const VERSION = '0.2.1';
|
|
33
34
|
|
|
34
35
|
const client = new PubClient();
|
|
35
36
|
const githubClient = new GitHubClient();
|
|
@@ -177,6 +178,10 @@ function createServer(): Server {
|
|
|
177
178
|
result = await handleGetPackageMetrics(client, args as { name: string });
|
|
178
179
|
break;
|
|
179
180
|
|
|
181
|
+
case 'get_example':
|
|
182
|
+
result = await handleGetExample(client, args as { name: string; version?: string });
|
|
183
|
+
break;
|
|
184
|
+
|
|
180
185
|
default:
|
|
181
186
|
throw new Error(`Unknown tool: ${name}`);
|
|
182
187
|
}
|
|
@@ -5,7 +5,10 @@ export interface GitHubClientOptions {
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
export class GitHubClientError extends Error {
|
|
8
|
-
constructor(
|
|
8
|
+
constructor(
|
|
9
|
+
message: string,
|
|
10
|
+
public statusCode?: number
|
|
11
|
+
) {
|
|
9
12
|
super(message);
|
|
10
13
|
this.name = 'GitHubClientError';
|
|
11
14
|
}
|
|
@@ -28,7 +31,7 @@ export class GitHubClient {
|
|
|
28
31
|
|
|
29
32
|
const headers: Record<string, string> = {
|
|
30
33
|
Accept: 'application/vnd.github.v3+json',
|
|
31
|
-
...(options.headers as Record<string, string> || {}),
|
|
34
|
+
...((options.headers as Record<string, string>) || {}),
|
|
32
35
|
};
|
|
33
36
|
|
|
34
37
|
if (this.token) {
|
|
@@ -47,19 +50,26 @@ export class GitHubClient {
|
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
|
|
50
|
-
async getRepositoryReadme(owner: string, repo: string): Promise<string> {
|
|
51
|
-
const
|
|
53
|
+
async getRepositoryReadme(owner: string, repo: string, path?: string): Promise<string> {
|
|
54
|
+
const readmePath = path ? `${path}/README.md` : 'README.md';
|
|
55
|
+
const url = `${this.baseUrl}/repos/${owner}/${repo}/contents/${readmePath}`;
|
|
52
56
|
const response = await this.fetchWithTimeout(url);
|
|
53
57
|
|
|
54
58
|
if (response.status === 404) {
|
|
59
|
+
if (path) {
|
|
60
|
+
return this.getRepositoryReadme(owner, repo);
|
|
61
|
+
}
|
|
55
62
|
return '';
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
if (!response.ok) {
|
|
59
|
-
throw new GitHubClientError(
|
|
66
|
+
throw new GitHubClientError(
|
|
67
|
+
`Failed to fetch README: ${response.statusText}`,
|
|
68
|
+
response.status
|
|
69
|
+
);
|
|
60
70
|
}
|
|
61
71
|
|
|
62
|
-
const data = await response.json() as { content?: string };
|
|
72
|
+
const data = (await response.json()) as { content?: string };
|
|
63
73
|
|
|
64
74
|
if (data.content) {
|
|
65
75
|
return Buffer.from(data.content, 'base64').toString('utf-8');
|
|
@@ -79,7 +89,7 @@ export class GitHubClient {
|
|
|
79
89
|
`${this.baseUrl}/repos/${owner}/${repo}/contents/${altUrl}`
|
|
80
90
|
);
|
|
81
91
|
if (altResponse.ok) {
|
|
82
|
-
const data = await altResponse.json() as { content?: string };
|
|
92
|
+
const data = (await altResponse.json()) as { content?: string };
|
|
83
93
|
if (data.content) {
|
|
84
94
|
return Buffer.from(data.content, 'base64').toString('utf-8');
|
|
85
95
|
}
|
|
@@ -89,10 +99,13 @@ export class GitHubClient {
|
|
|
89
99
|
}
|
|
90
100
|
|
|
91
101
|
if (!response.ok) {
|
|
92
|
-
throw new GitHubClientError(
|
|
102
|
+
throw new GitHubClientError(
|
|
103
|
+
`Failed to fetch changelog: ${response.statusText}`,
|
|
104
|
+
response.status
|
|
105
|
+
);
|
|
93
106
|
}
|
|
94
107
|
|
|
95
|
-
const data = await response.json() as { content?: string };
|
|
108
|
+
const data = (await response.json()) as { content?: string };
|
|
96
109
|
if (data.content) {
|
|
97
110
|
return Buffer.from(data.content, 'base64').toString('utf-8');
|
|
98
111
|
}
|
|
@@ -100,7 +113,10 @@ export class GitHubClient {
|
|
|
100
113
|
return '';
|
|
101
114
|
}
|
|
102
115
|
|
|
103
|
-
async getLatestRelease(
|
|
116
|
+
async getLatestRelease(
|
|
117
|
+
owner: string,
|
|
118
|
+
repo: string
|
|
119
|
+
): Promise<{ tag: string; body: string } | null> {
|
|
104
120
|
const url = `${this.baseUrl}/repos/${owner}/${repo}/releases/latest`;
|
|
105
121
|
const response = await this.fetchWithTimeout(url);
|
|
106
122
|
|
|
@@ -109,17 +125,23 @@ export class GitHubClient {
|
|
|
109
125
|
}
|
|
110
126
|
|
|
111
127
|
if (!response.ok) {
|
|
112
|
-
throw new GitHubClientError(
|
|
128
|
+
throw new GitHubClientError(
|
|
129
|
+
`Failed to fetch release: ${response.statusText}`,
|
|
130
|
+
response.status
|
|
131
|
+
);
|
|
113
132
|
}
|
|
114
133
|
|
|
115
|
-
const data = await response.json() as { tag_name?: string; body?: string };
|
|
134
|
+
const data = (await response.json()) as { tag_name?: string; body?: string };
|
|
116
135
|
return {
|
|
117
136
|
tag: data.tag_name || '',
|
|
118
137
|
body: data.body || '',
|
|
119
138
|
};
|
|
120
139
|
}
|
|
121
140
|
|
|
122
|
-
async getRepositoryInfo(
|
|
141
|
+
async getRepositoryInfo(
|
|
142
|
+
owner: string,
|
|
143
|
+
repo: string
|
|
144
|
+
): Promise<{
|
|
123
145
|
description: string;
|
|
124
146
|
stars: number;
|
|
125
147
|
forks: number;
|
|
@@ -133,10 +155,13 @@ export class GitHubClient {
|
|
|
133
155
|
}
|
|
134
156
|
|
|
135
157
|
if (!response.ok) {
|
|
136
|
-
throw new GitHubClientError(
|
|
158
|
+
throw new GitHubClientError(
|
|
159
|
+
`Failed to fetch repo info: ${response.statusText}`,
|
|
160
|
+
response.status
|
|
161
|
+
);
|
|
137
162
|
}
|
|
138
163
|
|
|
139
|
-
const data = await response.json() as {
|
|
164
|
+
const data = (await response.json()) as {
|
|
140
165
|
description?: string;
|
|
141
166
|
stargazers_count?: number;
|
|
142
167
|
forks_count?: number;
|
|
@@ -152,18 +177,32 @@ export class GitHubClient {
|
|
|
152
177
|
}
|
|
153
178
|
}
|
|
154
179
|
|
|
155
|
-
export function parseGitHubUrl(url: string): { owner: string; repo: string } | null {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
180
|
+
export function parseGitHubUrl(url: string): { owner: string; repo: string; path?: string } | null {
|
|
181
|
+
if (!url || !url.includes('github.com')) {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
try {
|
|
186
|
+
const urlObj = new URL(url);
|
|
187
|
+
const pathParts = urlObj.pathname.split('/').filter(Boolean);
|
|
160
188
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (match) {
|
|
164
|
-
return { owner: match[1], repo: match[2] };
|
|
189
|
+
if (pathParts.length < 2) {
|
|
190
|
+
return null;
|
|
165
191
|
}
|
|
166
|
-
}
|
|
167
192
|
|
|
168
|
-
|
|
169
|
-
|
|
193
|
+
const owner = pathParts[0];
|
|
194
|
+
const repo = pathParts[1].replace(/\.git$/, '');
|
|
195
|
+
|
|
196
|
+
let path: string | undefined;
|
|
197
|
+
if (pathParts.length > 2) {
|
|
198
|
+
const treeIndex = pathParts.indexOf('tree');
|
|
199
|
+
if (treeIndex !== -1 && treeIndex + 2 < pathParts.length) {
|
|
200
|
+
path = pathParts.slice(treeIndex + 2).join('/');
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
return { owner, repo, path: path || undefined };
|
|
205
|
+
} catch {
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
}
|
package/src/clients/pubClient.ts
CHANGED
|
@@ -137,7 +137,12 @@ export class PubClient {
|
|
|
137
137
|
|
|
138
138
|
const data = (await response.json()) as {
|
|
139
139
|
name: string;
|
|
140
|
-
latest: {
|
|
140
|
+
latest: {
|
|
141
|
+
version: string;
|
|
142
|
+
published: string;
|
|
143
|
+
description?: string;
|
|
144
|
+
pubspec?: { repository?: string; homepage?: string };
|
|
145
|
+
};
|
|
141
146
|
publisher?: { publisherName?: string };
|
|
142
147
|
urls?: { homepage?: string; repository?: string; issues?: string };
|
|
143
148
|
};
|
|
@@ -149,8 +154,8 @@ export class PubClient {
|
|
|
149
154
|
published: data.latest.published,
|
|
150
155
|
updated: data.latest.published,
|
|
151
156
|
publisher: data.publisher?.publisherName,
|
|
152
|
-
homepage: data.urls?.homepage,
|
|
153
|
-
repository: data.urls?.repository,
|
|
157
|
+
homepage: data.urls?.homepage || data.latest.pubspec?.homepage,
|
|
158
|
+
repository: data.urls?.repository || data.latest.pubspec?.repository,
|
|
154
159
|
issues: data.urls?.issues,
|
|
155
160
|
};
|
|
156
161
|
|
|
@@ -203,6 +208,15 @@ export class PubClient {
|
|
|
203
208
|
}
|
|
204
209
|
|
|
205
210
|
const content = await response.text();
|
|
211
|
+
|
|
212
|
+
if (content.includes('<!DOCTYPE html>') || content.includes('<html')) {
|
|
213
|
+
return '';
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
if (content.length < 10) {
|
|
217
|
+
return '';
|
|
218
|
+
}
|
|
219
|
+
|
|
206
220
|
getPackageCache().set(cacheKey, content);
|
|
207
221
|
return content;
|
|
208
222
|
} catch (error) {
|
|
@@ -309,4 +323,41 @@ export class PubClient {
|
|
|
309
323
|
throw error;
|
|
310
324
|
}
|
|
311
325
|
}
|
|
326
|
+
|
|
327
|
+
async getExample(name: string, version?: string): Promise<string> {
|
|
328
|
+
const cacheKey = `example:${name}:${version || 'latest'}`;
|
|
329
|
+
const cached = getPackageCache().get(cacheKey);
|
|
330
|
+
if (cached) {
|
|
331
|
+
return cached as string;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
const versionPart = version ? `/${version}` : '';
|
|
335
|
+
const url = `${this.baseUrl}/packages/${name}${versionPart}/example`;
|
|
336
|
+
|
|
337
|
+
try {
|
|
338
|
+
const response = await this.fetchWithRetry(url);
|
|
339
|
+
|
|
340
|
+
if (response.status === 404) {
|
|
341
|
+
return '';
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
const content = await response.text();
|
|
345
|
+
|
|
346
|
+
if (content.includes('<!DOCTYPE html>') || content.includes('<html')) {
|
|
347
|
+
return '';
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (content.length < 10) {
|
|
351
|
+
return '';
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
getPackageCache().set(cacheKey, content);
|
|
355
|
+
return content;
|
|
356
|
+
} catch (error) {
|
|
357
|
+
if (error instanceof PubClientError && error.statusCode === 404) {
|
|
358
|
+
return '';
|
|
359
|
+
}
|
|
360
|
+
throw error;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
312
363
|
}
|
package/src/tools/index.ts
CHANGED
|
@@ -40,6 +40,11 @@ export const getPackageMetricsSchema = z.object({
|
|
|
40
40
|
name: z.string().min(1),
|
|
41
41
|
});
|
|
42
42
|
|
|
43
|
+
export const getExampleSchema = z.object({
|
|
44
|
+
name: z.string().min(1),
|
|
45
|
+
version: z.string().optional(),
|
|
46
|
+
});
|
|
47
|
+
|
|
43
48
|
export type SearchPackagesInput = { query: string; limit?: number };
|
|
44
49
|
export type GetPackageInfoInput = { name: string };
|
|
45
50
|
export type GetPackageVersionsInput = { name: string };
|
|
@@ -52,6 +57,7 @@ export type GetDependenciesInput = { name: string; version?: string };
|
|
|
52
57
|
export type GetPackageScoreInput = { name: string };
|
|
53
58
|
export type GetChangelogInput = { name: string; version?: string };
|
|
54
59
|
export type GetPackageMetricsInput = { name: string };
|
|
60
|
+
export type GetExampleInput = { name: string; version?: string };
|
|
55
61
|
|
|
56
62
|
export interface ToolDefinition {
|
|
57
63
|
name: string;
|
|
@@ -150,6 +156,18 @@ export const tools: ToolDefinition[] = [
|
|
|
150
156
|
required: ['name'],
|
|
151
157
|
},
|
|
152
158
|
},
|
|
159
|
+
{
|
|
160
|
+
name: 'get_example',
|
|
161
|
+
description: 'Get the example code of a package',
|
|
162
|
+
inputSchema: {
|
|
163
|
+
type: 'object',
|
|
164
|
+
properties: {
|
|
165
|
+
name: { type: 'string', description: 'Package name' },
|
|
166
|
+
version: { type: 'string', description: 'Specific version (optional, defaults to latest)' },
|
|
167
|
+
},
|
|
168
|
+
required: ['name'],
|
|
169
|
+
},
|
|
170
|
+
},
|
|
153
171
|
{
|
|
154
172
|
name: 'get_package_metrics',
|
|
155
173
|
description: 'Get comprehensive metrics for a package (info + score + versions)',
|
|
@@ -201,7 +219,11 @@ export async function handleGetReadme(
|
|
|
201
219
|
if (pkg.repository) {
|
|
202
220
|
const parsed = parseGitHubUrl(pkg.repository);
|
|
203
221
|
if (parsed) {
|
|
204
|
-
const githubReadme = await githubClient.getRepositoryReadme(
|
|
222
|
+
const githubReadme = await githubClient.getRepositoryReadme(
|
|
223
|
+
parsed.owner,
|
|
224
|
+
parsed.repo,
|
|
225
|
+
parsed.path
|
|
226
|
+
);
|
|
205
227
|
if (githubReadme) {
|
|
206
228
|
finalReadme = githubReadme;
|
|
207
229
|
source = 'github';
|
|
@@ -250,6 +272,11 @@ export async function handleGetChangelog(client: PubClient, input: GetChangelogI
|
|
|
250
272
|
return changelog;
|
|
251
273
|
}
|
|
252
274
|
|
|
275
|
+
export async function handleGetExample(client: PubClient, input: GetExampleInput) {
|
|
276
|
+
const example = await client.getExample(input.name, input.version);
|
|
277
|
+
return { example: example || 'No example available' };
|
|
278
|
+
}
|
|
279
|
+
|
|
253
280
|
export async function handleGetPackageMetrics(client: PubClient, input: GetPackageMetricsInput) {
|
|
254
281
|
const [info, score, versions] = await Promise.all([
|
|
255
282
|
client.getPackage(input.name),
|