mne-docs-mcp 1.0.17 → 1.0.20
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/README.md +90 -25
- package/dist/github/client.d.ts +1 -0
- package/dist/github/client.d.ts.map +1 -1
- package/dist/github/client.js +19 -7
- package/dist/github/client.js.map +1 -1
- package/dist/tools/getMneDoc.d.ts.map +1 -1
- package/dist/tools/getMneDoc.js +11 -12
- package/dist/tools/getMneDoc.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,8 @@ cd mne-docs-mcp
|
|
|
11
11
|
npm install
|
|
12
12
|
|
|
13
13
|
# Set GitHub token (required)
|
|
14
|
-
export MNE_GITHUB_TOKEN=ghp_your_token_here
|
|
14
|
+
export MNE_GITHUB_TOKEN=ghp_your_token_here # Linux/macOS
|
|
15
|
+
$env:MNE_GITHUB_TOKEN="ghp_your_token_here" # Windows PowerShell
|
|
15
16
|
|
|
16
17
|
# Start server
|
|
17
18
|
npm start
|
|
@@ -19,6 +20,8 @@ npm start
|
|
|
19
20
|
|
|
20
21
|
Server runs on `http://localhost:8000`. Verify with `curl http://localhost:8000/health`.
|
|
21
22
|
|
|
23
|
+
> **Prerequisites:** Node.js ≥ 20 and Python 3 (used for AST parsing — no pip packages required).
|
|
24
|
+
|
|
22
25
|
## MCP Client Integration
|
|
23
26
|
|
|
24
27
|
### Claude Desktop / Kiro / Claude Code
|
|
@@ -40,7 +43,7 @@ Add to your MCP config (`claude_desktop_config.json`, `.kiro/settings/mcp.json`,
|
|
|
40
43
|
}
|
|
41
44
|
```
|
|
42
45
|
|
|
43
|
-
> **
|
|
46
|
+
> **Note:** On Windows, `MNE_PYTHON_PATH` defaults to `python` automatically.
|
|
44
47
|
|
|
45
48
|
### Remote HTTP Server
|
|
46
49
|
|
|
@@ -48,7 +51,7 @@ If you're running the server on a VPS or remote host:
|
|
|
48
51
|
|
|
49
52
|
**Claude Code CLI:**
|
|
50
53
|
```bash
|
|
51
|
-
claude mcp add
|
|
54
|
+
claude mcp add --transport http mne-docs https://your-server.com/mcp
|
|
52
55
|
```
|
|
53
56
|
|
|
54
57
|
**Config file** (`.mcp.json` or `~/.claude.json`):
|
|
@@ -70,22 +73,43 @@ MNE_TRANSPORT=http npm start
|
|
|
70
73
|
# Connect to http://localhost:8000/mcp
|
|
71
74
|
```
|
|
72
75
|
|
|
76
|
+
**HTTP endpoints:**
|
|
77
|
+
|
|
78
|
+
| Endpoint | Description |
|
|
79
|
+
|----------|-------------|
|
|
80
|
+
| `POST /mcp` | MCP protocol (JSON-RPC) |
|
|
81
|
+
| `GET /health` | Health check — returns `{"status":"ok"}` |
|
|
82
|
+
| `GET /metrics` | Runtime metrics (request counts, cache hit rate, GitHub rate limit) |
|
|
83
|
+
|
|
73
84
|
### Docker
|
|
74
85
|
|
|
75
86
|
```bash
|
|
76
|
-
docker run -p 8000:8000 -e MNE_GITHUB_TOKEN=ghp_your_token mne-docs-mcp
|
|
87
|
+
docker run -p 8000:8000 -e MNE_GITHUB_TOKEN=ghp_your_token ghcr.io/weiyongxu/mne-docs-mcp:latest
|
|
77
88
|
```
|
|
78
89
|
|
|
90
|
+
Multi-arch images available for both `linux/amd64` and `linux/arm64`.
|
|
91
|
+
|
|
79
92
|
### Docker Compose
|
|
80
93
|
|
|
94
|
+
Create a `docker-compose.yml`:
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
services:
|
|
98
|
+
mne-docs-mcp:
|
|
99
|
+
image: ghcr.io/weiyongxu/mne-docs-mcp:latest
|
|
100
|
+
container_name: mne-docs-mcp
|
|
101
|
+
ports:
|
|
102
|
+
- "8000:8000"
|
|
103
|
+
environment:
|
|
104
|
+
- MNE_GITHUB_TOKEN=${MNE_GITHUB_TOKEN:?MNE_GITHUB_TOKEN is required}
|
|
105
|
+
restart: unless-stopped
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Then run:
|
|
109
|
+
|
|
81
110
|
```bash
|
|
82
|
-
# Set your token
|
|
83
111
|
export MNE_GITHUB_TOKEN=ghp_your_token_here
|
|
84
|
-
|
|
85
|
-
# Start
|
|
86
112
|
docker-compose up -d
|
|
87
|
-
|
|
88
|
-
# View logs
|
|
89
113
|
docker-compose logs -f
|
|
90
114
|
```
|
|
91
115
|
|
|
@@ -115,13 +139,15 @@ All tools support a `package` parameter to query across the MNE ecosystem: `mne-
|
|
|
115
139
|
|
|
116
140
|
| Variable | Description | Default |
|
|
117
141
|
|----------|-------------|---------|
|
|
118
|
-
| `MNE_GITHUB_TOKEN` | GitHub PAT (required) |
|
|
119
|
-
| `MNE_PORT` | Server port | `8000` |
|
|
142
|
+
| `MNE_GITHUB_TOKEN` | GitHub PAT (**required**) | — |
|
|
143
|
+
| `MNE_PORT` | Server port (HTTP mode) | `8000` |
|
|
120
144
|
| `MNE_TRANSPORT` | `http` or `stdio` | `http` |
|
|
121
|
-
| `
|
|
122
|
-
| `
|
|
145
|
+
| `MNE_DEFAULT_PACKAGE` | Default MNE package | `mne-python` |
|
|
146
|
+
| `MNE_PYTHON_PATH` | Python executable path | `python` (Win) / `python3` (Unix) |
|
|
147
|
+
| `MNE_LOG_LEVEL` | `debug` / `info` / `warn` / `error` | `info` |
|
|
148
|
+
| `MNE_LOG_JSON` | Emit logs as JSON (useful for log aggregators) | `false` |
|
|
123
149
|
|
|
124
|
-
See `.env.example` for
|
|
150
|
+
See `.env.example` for advanced options: cache TTLs (`MNE_CACHE_TTL_MINUTES`, `MNE_SYMBOL_CACHE_TTL_MINUTES`, `MNE_FILE_CACHE_TTL_MINUTES`), timeouts (`MNE_GITHUB_TIMEOUT`, `MNE_PARSER_TIMEOUT`, `MNE_FORUM_TIMEOUT`), and API base URLs.
|
|
125
151
|
|
|
126
152
|
## Architecture
|
|
127
153
|
|
|
@@ -152,26 +178,65 @@ npm run lint # ESLint
|
|
|
152
178
|
|
|
153
179
|
## Releasing
|
|
154
180
|
|
|
155
|
-
|
|
181
|
+
### One-command release
|
|
182
|
+
|
|
156
183
|
```bash
|
|
157
|
-
npm
|
|
158
|
-
npm
|
|
184
|
+
npm run release:patch # 1.0.0 → 1.0.1 (bug fixes)
|
|
185
|
+
npm run release:minor # 1.0.0 → 1.1.0 (new features)
|
|
186
|
+
npm run release:major # 1.0.0 → 2.0.0 (breaking changes)
|
|
159
187
|
```
|
|
160
188
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
189
|
+
This script (`scripts/release.js`) does everything locally:
|
|
190
|
+
1. Bumps version in `package.json` and `server.json`
|
|
191
|
+
2. Commits both files
|
|
192
|
+
3. Creates a `v*` git tag
|
|
193
|
+
4. Pushes the commit and tag
|
|
194
|
+
|
|
195
|
+
Pushing the tag triggers the release pipeline automatically — no further action needed.
|
|
196
|
+
|
|
197
|
+
### CI/CD pipeline
|
|
198
|
+
|
|
199
|
+
Two GitHub Actions workflows handle all automation:
|
|
200
|
+
|
|
201
|
+
**`ci.yml`** — runs on every push and pull request:
|
|
202
|
+
- TypeScript type checking + ESLint
|
|
203
|
+
- Full test suite (Vitest)
|
|
204
|
+
- Build verification
|
|
205
|
+
- Docker image build test (no push)
|
|
206
|
+
|
|
207
|
+
**`release.yml`** — runs only when a `v*` tag is pushed:
|
|
208
|
+
|
|
166
209
|
```
|
|
210
|
+
test ──┬── docker (linux/amd64) ──┐
|
|
211
|
+
│ ├── docker manifest (semver tags) ──┐
|
|
212
|
+
│── docker (linux/arm64) ──┘ ├── GitHub Release
|
|
213
|
+
│ │
|
|
214
|
+
├── npm publish ── MCP Registry ──────────────────────────────┘
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Published artefacts per release:
|
|
218
|
+
|
|
219
|
+
| Platform | Tag / identifier |
|
|
220
|
+
|----------|-----------------|
|
|
221
|
+
| GHCR Docker | `ghcr.io/weiyongxu/mne-docs-mcp:1.x.y`, `:1.x`, `:latest` |
|
|
222
|
+
| npm | `mne-docs-mcp@1.x.y` |
|
|
223
|
+
| MCP Registry | `io.github.weiyongxu/mne-docs@1.x.y` |
|
|
224
|
+
| GitHub Releases | auto-generated changelog |
|
|
225
|
+
|
|
226
|
+
### Required repository secrets
|
|
227
|
+
|
|
228
|
+
| Secret | Purpose |
|
|
229
|
+
|--------|---------|
|
|
230
|
+
| `NPM_TOKEN` | Publish to npm registry |
|
|
231
|
+
| `GITHUB_TOKEN` | Push Docker to GHCR + create GitHub Release (auto-provided) |
|
|
167
232
|
|
|
168
|
-
|
|
233
|
+
OIDC is used for MCP Registry authentication (no extra secret needed).
|
|
169
234
|
|
|
170
235
|
## Troubleshooting
|
|
171
236
|
|
|
172
237
|
- **Rate limits:** Ensure `MNE_GITHUB_TOKEN` is set
|
|
173
|
-
- **Parser fails:** Check Python 3 is installed
|
|
174
|
-
- **Test setup:** Run `npx tsx examples/mcp-client.ts` to verify
|
|
238
|
+
- **Parser fails:** Check Python 3 is installed (path auto-detected per platform)
|
|
239
|
+
- **Test setup:** Run `npx tsx examples/mcp-client.ts` to verify (requires dev dependencies — run `npm install` first)
|
|
175
240
|
|
|
176
241
|
## Security
|
|
177
242
|
|
package/dist/github/client.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACgB,sBAAsB,EACpB,iBAAiB,EACtC,kBAAkB,EAAa,aAAa,EAC/C,MAAM,YAAY,CAAC;AAIpB,qBAAa,YAAY;IACrB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAA8B;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACgB,sBAAsB,EACpB,iBAAiB,EACtC,kBAAkB,EAAa,aAAa,EAC/C,MAAM,YAAY,CAAC;AAIpB,qBAAa,YAAY;IACrB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAA8B;IAInD,OAAO,CAAC,eAAe,CAAkC;gBAE7C,MAAM,EAAE,MAAM;IAI1B,OAAO,CAAC,OAAO;IAIf,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAIxC,OAAO,CAAC,eAAe;YAkBT,eAAe;YAef,OAAO;IAoCf,aAAa,CAAC,KAAK,GAAE,MAAW,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAU9E,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMvD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA8BvF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlF,UAAU,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAC1F,OAAO,CAAC,sBAAsB,CAAC;IAS5B,YAAY,CACd,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/G,OAAO,CAAC,eAAe,EAAE,CAAC;IA2BvB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAyBtF,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAkBnG"}
|
package/dist/github/client.js
CHANGED
|
@@ -5,6 +5,10 @@ export class GitHubClient {
|
|
|
5
5
|
config;
|
|
6
6
|
logger = getLogger();
|
|
7
7
|
rateLimitInfo = null;
|
|
8
|
+
// Caches the resolved git tag for a given (repo, version) pair so that
|
|
9
|
+
// fetchFile never triggers a redundant fetchVersions() network call when
|
|
10
|
+
// the same version is requested multiple times within a single tool call.
|
|
11
|
+
versionTagCache = new Map();
|
|
8
12
|
constructor(config) {
|
|
9
13
|
this.config = config;
|
|
10
14
|
}
|
|
@@ -35,14 +39,16 @@ export class GitHubClient {
|
|
|
35
39
|
const reset = response.headers.get('x-ratelimit-reset');
|
|
36
40
|
if (reset) {
|
|
37
41
|
const waitTime = parseInt(reset, 10) * 1000 - Date.now();
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
// Cap at 60 s so a far-future reset timestamp never hangs the server.
|
|
43
|
+
const cappedWait = Math.min(Math.max(0, waitTime + 1000), 60_000);
|
|
44
|
+
if (cappedWait > 0) {
|
|
45
|
+
this.logger.warn(`Rate limited. Waiting ${cappedWait}ms`);
|
|
46
|
+
await new Promise(resolve => setTimeout(resolve, cappedWait));
|
|
41
47
|
}
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
}
|
|
45
|
-
async request(url, options = {}) {
|
|
51
|
+
async request(url, options = {}, retryCount = 0) {
|
|
46
52
|
const fullUrl = url.startsWith('http') ? url : `${this.config.githubApiBase}${url}`;
|
|
47
53
|
const headers = {
|
|
48
54
|
Authorization: `Bearer ${this.config.githubToken}`,
|
|
@@ -60,9 +66,9 @@ export class GitHubClient {
|
|
|
60
66
|
});
|
|
61
67
|
this.updateRateLimit(response);
|
|
62
68
|
if (!response.ok) {
|
|
63
|
-
if (response.status === 403 || response.status === 429) {
|
|
69
|
+
if ((response.status === 403 || response.status === 429) && retryCount < 3) {
|
|
64
70
|
await this.handleRateLimit(response);
|
|
65
|
-
return this.request(url, options);
|
|
71
|
+
return this.request(url, options, retryCount + 1);
|
|
66
72
|
}
|
|
67
73
|
throw new Error(`GitHub API error: ${response.status} ${response.statusText}`);
|
|
68
74
|
}
|
|
@@ -91,16 +97,22 @@ export class GitHubClient {
|
|
|
91
97
|
async fetchFile(path, version, packageName) {
|
|
92
98
|
const repo = this.getRepo(packageName);
|
|
93
99
|
let refParam;
|
|
94
|
-
|
|
100
|
+
const cacheKey = `${repo}:${version ?? '__latest__'}`;
|
|
101
|
+
if (this.versionTagCache.has(cacheKey)) {
|
|
102
|
+
refParam = this.versionTagCache.get(cacheKey);
|
|
103
|
+
}
|
|
104
|
+
else if (version) {
|
|
95
105
|
const versions = await this.fetchVersions(20, packageName);
|
|
96
106
|
const match = versions.find(v => v.version === version || v.tag === version);
|
|
97
107
|
refParam = match?.tag || (version.startsWith('v') ? version : `v${version}`);
|
|
108
|
+
this.versionTagCache.set(cacheKey, refParam);
|
|
98
109
|
}
|
|
99
110
|
else {
|
|
100
111
|
const versions = await this.fetchVersions(1, packageName);
|
|
101
112
|
if (versions.length === 0)
|
|
102
113
|
throw new Error('No versions found');
|
|
103
114
|
refParam = versions[0].tag;
|
|
115
|
+
this.versionTagCache.set(cacheKey, refParam);
|
|
104
116
|
}
|
|
105
117
|
try {
|
|
106
118
|
const data = await this.request(`/repos/${repo}/contents/${path}?ref=${refParam}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,MAAM,cAAc,CAAC;AAOtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,MAAM,OAAO,YAAY;IACL,MAAM,CAAS;IACvB,MAAM,GAAG,SAAS,EAAE,CAAC;IACrB,aAAa,GAAyB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMneDoc.d.ts","sourceRoot":"","sources":["../../src/tools/getMneDoc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA0B,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"getMneDoc.d.ts","sourceRoot":"","sources":["../../src/tools/getMneDoc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA0B,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAWrG,MAAM,WAAW,4BAA6B,SAAQ,eAAe;IACjE,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,SAAS,CAC3B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,4BAA4B,GAAG,oBAAoB,CAAC,CA4F9D"}
|
package/dist/tools/getMneDoc.js
CHANGED
|
@@ -21,7 +21,7 @@ export async function getMneDoc(params, context) {
|
|
|
21
21
|
return result;
|
|
22
22
|
}
|
|
23
23
|
// Resolve symbol path
|
|
24
|
-
let location = await resolveSymbolPath(context.github,
|
|
24
|
+
let location = await resolveSymbolPath(context.github, symbol, resolvedVersion);
|
|
25
25
|
// If not found, try fuzzy search fallback
|
|
26
26
|
if (!location) {
|
|
27
27
|
const fuzzyResult = await fuzzySymbolSearch(context.github, symbol, resolvedVersion);
|
|
@@ -122,26 +122,25 @@ async function fuzzySymbolSearch(github, symbol, version) {
|
|
|
122
122
|
}
|
|
123
123
|
return null;
|
|
124
124
|
}
|
|
125
|
-
async function resolveSymbolPath(github,
|
|
125
|
+
async function resolveSymbolPath(github, symbol, version) {
|
|
126
126
|
const parts = symbol.split('.');
|
|
127
127
|
const shortName = parts.pop() || symbol;
|
|
128
128
|
const modulePath = parts.length > 0 ? parts.join('.') : 'mne';
|
|
129
|
-
// Strategy 1: Check __init__.py
|
|
129
|
+
// Strategy 1: Check __init__.py — only if the symbol is actually DEFINED there.
|
|
130
|
+
// The Python parser (ast_extractor) only collects ClassDef/FunctionDef nodes,
|
|
131
|
+
// not import statements, so calling parseFile() on an __init__.py that merely
|
|
132
|
+
// re-exports the symbol always returns no match while still spawning a full
|
|
133
|
+
// Python subprocess. A simple string search is both faster and equivalent.
|
|
130
134
|
const initPath = modulePath.replace(/\./g, '/') + '/__init__.py';
|
|
131
135
|
try {
|
|
132
136
|
const initContent = await github.fetchFile(initPath, version);
|
|
133
|
-
if (initContent)
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
// Check if symbol is defined in __init__.py directly
|
|
137
|
-
const directMatch = symbols.find((s) => s.name === shortName);
|
|
138
|
-
if (directMatch) {
|
|
139
|
-
return { filePath: initPath, moduleName: modulePath };
|
|
140
|
-
}
|
|
137
|
+
if (initContent && (initContent.includes(`class ${shortName}`) ||
|
|
138
|
+
initContent.includes(`def ${shortName}`))) {
|
|
139
|
+
return { filePath: initPath, moduleName: modulePath };
|
|
141
140
|
}
|
|
142
141
|
}
|
|
143
142
|
catch {
|
|
144
|
-
// Continue to next strategy if
|
|
143
|
+
// Continue to next strategy if fetch fails
|
|
145
144
|
}
|
|
146
145
|
// Strategy 2: Check if modulePath is a file (e.g., mne.filter -> mne/filter.py)
|
|
147
146
|
const moduleFilePath = modulePath.replace(/\./g, '/') + '.py';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMneDoc.js","sourceRoot":"","sources":["../../src/tools/getMneDoc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAmB,QAAQ,EAA+C,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"getMneDoc.js","sourceRoot":"","sources":["../../src/tools/getMneDoc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED