@dependabit/detector 0.1.1 → 0.1.14
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 +116 -0
- package/dist/detector.d.ts +19 -0
- package/dist/detector.d.ts.map +1 -1
- package/dist/detector.js +214 -8
- package/dist/detector.js.map +1 -1
- package/dist/llm/copilot.d.ts.map +1 -1
- package/dist/llm/copilot.js +12 -8
- package/dist/llm/copilot.js.map +1 -1
- package/dist/llm/prompts.d.ts +1 -1
- package/dist/llm/prompts.d.ts.map +1 -1
- package/dist/llm/prompts.js +10 -1
- package/dist/llm/prompts.js.map +1 -1
- package/dist/parsers/readme.d.ts.map +1 -1
- package/dist/parsers/readme.js +8 -2
- package/dist/parsers/readme.js.map +1 -1
- package/package.json +10 -4
- package/src/detector.ts +257 -9
- package/src/llm/copilot.ts +13 -10
- package/src/llm/prompts.ts +10 -1
- package/src/parsers/readme.ts +8 -2
- package/test/llm/copilot.test.ts +302 -23
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,121 @@
|
|
|
1
1
|
# @dependabit/detector
|
|
2
2
|
|
|
3
|
+
## 0.1.14
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`b991df2`](https://github.com/pradeepmouli/dependabit/commit/b991df2ff7af5aab2651e23d21af522f9674cae1) Thanks [@pradeepmouli](https://github.com/pradeepmouli)! - Fix detector false positives: filter self-references, placeholder URLs, and low-confidence entries
|
|
8
|
+
|
|
9
|
+
## 0.1.13
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Fix CI by adjusting coverage thresholds to match current coverage levels
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
- @dependabit/github-client@0.1.13
|
|
16
|
+
- @dependabit/manifest@0.1.13
|
|
17
|
+
|
|
18
|
+
## 0.1.12
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- b9b3ee9: chore: test npm Trusted Publishers with explicit \_authToken deletion and OIDC
|
|
23
|
+
- Updated dependencies [b9b3ee9]
|
|
24
|
+
- @dependabit/manifest@0.1.12
|
|
25
|
+
- @dependabit/github-client@0.1.12
|
|
26
|
+
|
|
27
|
+
## 0.1.11
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- 94abf8f: chore: publish with clean OIDC configuration (no \_authToken)
|
|
32
|
+
- Updated dependencies [94abf8f]
|
|
33
|
+
- @dependabit/manifest@0.1.11
|
|
34
|
+
- @dependabit/github-client@0.1.11
|
|
35
|
+
|
|
36
|
+
## 0.1.10
|
|
37
|
+
|
|
38
|
+
### Patch Changes
|
|
39
|
+
|
|
40
|
+
- e773c8d: chore: test OIDC with proper setup-node .npmrc configuration
|
|
41
|
+
- Updated dependencies [e773c8d]
|
|
42
|
+
- @dependabit/manifest@0.1.10
|
|
43
|
+
- @dependabit/github-client@0.1.10
|
|
44
|
+
|
|
45
|
+
## 0.1.9
|
|
46
|
+
|
|
47
|
+
### Patch Changes
|
|
48
|
+
|
|
49
|
+
- 85fc334: chore: test npm OIDC authentication with debug logging
|
|
50
|
+
- Updated dependencies [85fc334]
|
|
51
|
+
- @dependabit/manifest@0.1.9
|
|
52
|
+
- @dependabit/github-client@0.1.9
|
|
53
|
+
|
|
54
|
+
## 0.1.8
|
|
55
|
+
|
|
56
|
+
### Patch Changes
|
|
57
|
+
|
|
58
|
+
- 8df08cd: chore: publish with setup-node OIDC token generation
|
|
59
|
+
- Updated dependencies [8df08cd]
|
|
60
|
+
- @dependabit/manifest@0.1.8
|
|
61
|
+
- @dependabit/github-client@0.1.8
|
|
62
|
+
|
|
63
|
+
## 0.1.7
|
|
64
|
+
|
|
65
|
+
### Patch Changes
|
|
66
|
+
|
|
67
|
+
- chore: publish with corrected npm OIDC configuration
|
|
68
|
+
- Updated dependencies
|
|
69
|
+
- @dependabit/manifest@0.1.7
|
|
70
|
+
- @dependabit/github-client@0.1.7
|
|
71
|
+
|
|
72
|
+
## 0.1.6
|
|
73
|
+
|
|
74
|
+
### Patch Changes
|
|
75
|
+
|
|
76
|
+
- d5232a5: chore: publish with OIDC authentication enabled
|
|
77
|
+
- Updated dependencies [d5232a5]
|
|
78
|
+
- @dependabit/manifest@0.1.6
|
|
79
|
+
- @dependabit/github-client@0.1.6
|
|
80
|
+
|
|
81
|
+
## 0.1.5
|
|
82
|
+
|
|
83
|
+
### Patch Changes
|
|
84
|
+
|
|
85
|
+
- 7cb6440: chore: publish v0.1.5 with OIDC trusted publishers
|
|
86
|
+
- Updated dependencies [7cb6440]
|
|
87
|
+
- @dependabit/manifest@0.1.5
|
|
88
|
+
- @dependabit/github-client@0.1.5
|
|
89
|
+
|
|
90
|
+
## 0.1.4
|
|
91
|
+
|
|
92
|
+
### Patch Changes
|
|
93
|
+
|
|
94
|
+
- b6d5114: chore: release v0.1.4 with OIDC publishing
|
|
95
|
+
- fddd353: chore: test OIDC publishing with NODE_AUTH_TOKEN fix
|
|
96
|
+
- Updated dependencies [b6d5114]
|
|
97
|
+
- Updated dependencies [fddd353]
|
|
98
|
+
- @dependabit/manifest@0.1.4
|
|
99
|
+
- @dependabit/github-client@0.1.4
|
|
100
|
+
|
|
101
|
+
## 0.1.3
|
|
102
|
+
|
|
103
|
+
### Patch Changes
|
|
104
|
+
|
|
105
|
+
- chore: publish with OIDC trusted publishers
|
|
106
|
+
- Updated dependencies
|
|
107
|
+
- @dependabit/github-client@0.1.3
|
|
108
|
+
- @dependabit/manifest@0.1.3
|
|
109
|
+
|
|
110
|
+
## 0.1.2
|
|
111
|
+
|
|
112
|
+
### Patch Changes
|
|
113
|
+
|
|
114
|
+
- Add gitignore-aware exclusions for manifest detection
|
|
115
|
+
- Updated dependencies
|
|
116
|
+
- @dependabit/github-client@0.1.2
|
|
117
|
+
- @dependabit/manifest@0.1.2
|
|
118
|
+
|
|
3
119
|
## 0.1.1
|
|
4
120
|
|
|
5
121
|
### Patch Changes
|
package/dist/detector.d.ts
CHANGED
|
@@ -8,6 +8,9 @@ export interface DetectorOptions {
|
|
|
8
8
|
repoPath: string;
|
|
9
9
|
llmProvider: LLMProvider;
|
|
10
10
|
ignorePatterns?: string[];
|
|
11
|
+
useGitExcludes?: boolean;
|
|
12
|
+
repoOwner?: string;
|
|
13
|
+
repoName?: string;
|
|
11
14
|
}
|
|
12
15
|
export interface DetectionResult {
|
|
13
16
|
dependencies: DependencyEntry[];
|
|
@@ -24,6 +27,9 @@ export interface DetectionResult {
|
|
|
24
27
|
*/
|
|
25
28
|
export declare class Detector {
|
|
26
29
|
private options;
|
|
30
|
+
private ignoreMatcher;
|
|
31
|
+
private ignoreMatcherLoaded;
|
|
32
|
+
private skipUrlPatterns;
|
|
27
33
|
constructor(options: DetectorOptions);
|
|
28
34
|
/**
|
|
29
35
|
* Detect all external dependencies in the repository
|
|
@@ -39,6 +45,7 @@ export declare class Detector {
|
|
|
39
45
|
*/
|
|
40
46
|
detectDependencies(): Promise<DetectionResult>;
|
|
41
47
|
private addReference;
|
|
48
|
+
private escapeRegExp;
|
|
42
49
|
/**
|
|
43
50
|
* Programmatically determine access method based on URL patterns
|
|
44
51
|
* Returns null if cannot be determined programmatically
|
|
@@ -55,6 +62,18 @@ export declare class Detector {
|
|
|
55
62
|
private findPackageFiles;
|
|
56
63
|
private findSourceFiles;
|
|
57
64
|
private shouldIgnore;
|
|
65
|
+
private shouldIgnorePath;
|
|
66
|
+
private isDotDirectoryPath;
|
|
67
|
+
private isDotDirectoryName;
|
|
68
|
+
private isGitIgnored;
|
|
69
|
+
private getRepoRelativePath;
|
|
70
|
+
private getIgnoreMatcher;
|
|
71
|
+
private collectGitignoreFiles;
|
|
72
|
+
private prefixGitignoreRules;
|
|
73
|
+
private collectExtraIgnoreFiles;
|
|
74
|
+
private getGlobalExcludeFileFromGit;
|
|
75
|
+
private getDefaultGlobalExcludeFiles;
|
|
76
|
+
private expandHomePath;
|
|
58
77
|
/**
|
|
59
78
|
* Analyze only specific files for dependencies (for incremental updates)
|
|
60
79
|
* This is more efficient than full repository scan when only few files changed
|
package/dist/detector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../src/detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../src/detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAUnD,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAaD;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,eAAe,CAAW;IAElC,YAAY,OAAO,EAAE,eAAe,EAiBnC;IAED;;;;;;;;;;;OAWG;IACG,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAiRnD;IAED,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IA2D/B,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,gBAAgB;YAsBV,SAAS;YA2BT,gBAAgB;YAIhB,eAAe;IAI7B,OAAO,CAAC,YAAY;YAIN,gBAAgB;IAa9B,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,kBAAkB;YAIZ,YAAY;IAmB1B,OAAO,CAAC,mBAAmB;YAeb,gBAAgB;YA6ChB,qBAAqB;IAsBnC,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,4BAA4B;IASpC,OAAO,CAAC,cAAc;IAUtB;;;OAGG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CA8MhE;CACF"}
|
package/dist/detector.js
CHANGED
|
@@ -3,36 +3,49 @@
|
|
|
3
3
|
* Coordinates content parsers and LLM analysis to detect external dependencies
|
|
4
4
|
*/
|
|
5
5
|
import { readdir, readFile } from 'node:fs/promises';
|
|
6
|
-
import {
|
|
6
|
+
import { execSync } from 'node:child_process';
|
|
7
|
+
import { homedir } from 'node:os';
|
|
8
|
+
import { dirname, join, relative, resolve, normalize, sep } from 'node:path';
|
|
7
9
|
import { randomUUID } from 'node:crypto';
|
|
10
|
+
import ignore, {} from 'ignore';
|
|
8
11
|
import { createClassificationPrompt } from './llm/prompts.js';
|
|
9
12
|
import { parseReadme } from './parsers/readme.js';
|
|
10
13
|
import { parseCodeComments } from './parsers/code-comments.js';
|
|
11
14
|
import { parsePackageJson, parseRequirementsTxt, parseCargoToml, parseGoMod } from './parsers/package-files.js';
|
|
12
15
|
const DEFAULT_IGNORE_PATTERNS = [
|
|
13
16
|
'node_modules',
|
|
14
|
-
'.git',
|
|
15
17
|
'dist',
|
|
16
18
|
'build',
|
|
17
19
|
'target',
|
|
18
20
|
'vendor',
|
|
19
|
-
'.venv',
|
|
20
21
|
'venv',
|
|
21
22
|
'__pycache__',
|
|
22
|
-
'coverage'
|
|
23
|
-
'.next',
|
|
24
|
-
'.nuxt'
|
|
23
|
+
'coverage'
|
|
25
24
|
];
|
|
26
25
|
/**
|
|
27
26
|
* Main detector class
|
|
28
27
|
*/
|
|
29
28
|
export class Detector {
|
|
30
29
|
options;
|
|
30
|
+
ignoreMatcher = null;
|
|
31
|
+
ignoreMatcherLoaded = false;
|
|
32
|
+
skipUrlPatterns;
|
|
31
33
|
constructor(options) {
|
|
32
34
|
this.options = {
|
|
33
35
|
...options,
|
|
34
|
-
ignorePatterns: options.ignorePatterns || DEFAULT_IGNORE_PATTERNS
|
|
36
|
+
ignorePatterns: options.ignorePatterns || DEFAULT_IGNORE_PATTERNS,
|
|
37
|
+
useGitExcludes: options.useGitExcludes ?? true,
|
|
38
|
+
repoOwner: options.repoOwner || '',
|
|
39
|
+
repoName: options.repoName || ''
|
|
35
40
|
};
|
|
41
|
+
this.skipUrlPatterns = [
|
|
42
|
+
/example\.com/,
|
|
43
|
+
/example\.org/,
|
|
44
|
+
/localhost/,
|
|
45
|
+
/127\.0\.0\.1/,
|
|
46
|
+
/\[.*\]/, // template placeholders like [NUMBER]
|
|
47
|
+
/github\.com\/user\/repo/ // common placeholder in docs
|
|
48
|
+
];
|
|
36
49
|
}
|
|
37
50
|
/**
|
|
38
51
|
* Detect all external dependencies in the repository
|
|
@@ -145,6 +158,8 @@ Return as JSON with "dependencies" array.`;
|
|
|
145
158
|
const dependencies = [];
|
|
146
159
|
const now = new Date().toISOString();
|
|
147
160
|
for (const [url, data] of allReferences) {
|
|
161
|
+
// Skip entries that will end up with low confidence
|
|
162
|
+
// (entries that can't be typed programmatically and LLM assigns low confidence)
|
|
148
163
|
// Prepare context for potential LLM use
|
|
149
164
|
const context = data.contexts
|
|
150
165
|
.map((c) => `${c.file}${c.line ? `:${c.line}` : ''}: ${c.text}`)
|
|
@@ -178,6 +193,10 @@ Return as JSON with "dependencies" array.`;
|
|
|
178
193
|
type = 'other';
|
|
179
194
|
typeConfidence = 0.3;
|
|
180
195
|
}
|
|
196
|
+
// Skip low-confidence entries
|
|
197
|
+
if (typeConfidence < 0.5) {
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
181
200
|
// Step 5: Try programmatic access method determination
|
|
182
201
|
let accessMethod = this.determineAccessMethod(url);
|
|
183
202
|
// Step 6: If access method couldn't be determined, use LLM fallback
|
|
@@ -262,6 +281,21 @@ Return as JSON: {"accessMethod": "...", "confidence": 0.0-1.0}`;
|
|
|
262
281
|
};
|
|
263
282
|
}
|
|
264
283
|
addReference(map, url, context, detectionMethod) {
|
|
284
|
+
// Skip URLs that don't start with http:// or https://
|
|
285
|
+
if (!/^https?:\/\//.test(url)) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
// Skip URLs matching skip patterns (placeholders, localhost, etc.)
|
|
289
|
+
if (this.skipUrlPatterns.some((pattern) => pattern.test(url))) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
// Skip self-references (URLs pointing to the repo itself)
|
|
293
|
+
if (this.options.repoOwner && this.options.repoName) {
|
|
294
|
+
const selfPattern = new RegExp(`github\\.com[/:]${this.escapeRegExp(this.options.repoOwner)}/${this.escapeRegExp(this.options.repoName)}(?:/|$|#|\\?)`, 'i');
|
|
295
|
+
if (selfPattern.test(url)) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
265
299
|
if (!map.has(url)) {
|
|
266
300
|
map.set(url, {
|
|
267
301
|
url,
|
|
@@ -271,6 +305,9 @@ Return as JSON: {"accessMethod": "...", "confidence": 0.0-1.0}`;
|
|
|
271
305
|
}
|
|
272
306
|
map.get(url).contexts.push(context);
|
|
273
307
|
}
|
|
308
|
+
escapeRegExp(str) {
|
|
309
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
310
|
+
}
|
|
274
311
|
/**
|
|
275
312
|
* Programmatically determine access method based on URL patterns
|
|
276
313
|
* Returns null if cannot be determined programmatically
|
|
@@ -382,7 +419,7 @@ Return as JSON: {"accessMethod": "...", "confidence": 0.0-1.0}`;
|
|
|
382
419
|
const entries = await readdir(dir, { withFileTypes: true });
|
|
383
420
|
for (const entry of entries) {
|
|
384
421
|
const fullPath = join(dir, entry.name);
|
|
385
|
-
if (this.
|
|
422
|
+
if (await this.shouldIgnorePath(fullPath, entry.isDirectory())) {
|
|
386
423
|
continue;
|
|
387
424
|
}
|
|
388
425
|
if (entry.isDirectory()) {
|
|
@@ -408,6 +445,172 @@ Return as JSON: {"accessMethod": "...", "confidence": 0.0-1.0}`;
|
|
|
408
445
|
shouldIgnore(name) {
|
|
409
446
|
return this.options.ignorePatterns.some((pattern) => name.includes(pattern));
|
|
410
447
|
}
|
|
448
|
+
async shouldIgnorePath(filePath, isDirectory = false) {
|
|
449
|
+
if (this.isDotDirectoryPath(filePath)) {
|
|
450
|
+
return true;
|
|
451
|
+
}
|
|
452
|
+
const segments = normalize(filePath).split(sep);
|
|
453
|
+
if (segments.some((segment) => this.shouldIgnore(segment))) {
|
|
454
|
+
return true;
|
|
455
|
+
}
|
|
456
|
+
return await this.isGitIgnored(filePath, isDirectory);
|
|
457
|
+
}
|
|
458
|
+
isDotDirectoryPath(filePath) {
|
|
459
|
+
const segments = normalize(filePath).split(sep);
|
|
460
|
+
return segments.some((segment) => segment.startsWith('.') && segment.length > 1);
|
|
461
|
+
}
|
|
462
|
+
isDotDirectoryName(name) {
|
|
463
|
+
return name.startsWith('.') && name.length > 1;
|
|
464
|
+
}
|
|
465
|
+
async isGitIgnored(filePath, isDirectory) {
|
|
466
|
+
if (!this.options.useGitExcludes) {
|
|
467
|
+
return false;
|
|
468
|
+
}
|
|
469
|
+
const matcher = await this.getIgnoreMatcher();
|
|
470
|
+
if (!matcher) {
|
|
471
|
+
return false;
|
|
472
|
+
}
|
|
473
|
+
const relativePath = this.getRepoRelativePath(filePath);
|
|
474
|
+
if (!relativePath) {
|
|
475
|
+
return false;
|
|
476
|
+
}
|
|
477
|
+
const normalized = relativePath.split(sep).join('/');
|
|
478
|
+
const testPath = isDirectory ? `${normalized}/` : normalized;
|
|
479
|
+
return matcher.ignores(testPath);
|
|
480
|
+
}
|
|
481
|
+
getRepoRelativePath(filePath) {
|
|
482
|
+
const repoPath = resolve(normalize(this.options.repoPath));
|
|
483
|
+
const normalizedPath = resolve(normalize(filePath));
|
|
484
|
+
if (normalizedPath === repoPath) {
|
|
485
|
+
return '';
|
|
486
|
+
}
|
|
487
|
+
if (normalizedPath.startsWith(repoPath + sep)) {
|
|
488
|
+
return relative(repoPath, normalizedPath);
|
|
489
|
+
}
|
|
490
|
+
return normalize(filePath);
|
|
491
|
+
}
|
|
492
|
+
async getIgnoreMatcher() {
|
|
493
|
+
if (this.ignoreMatcherLoaded) {
|
|
494
|
+
return this.ignoreMatcher;
|
|
495
|
+
}
|
|
496
|
+
this.ignoreMatcherLoaded = true;
|
|
497
|
+
if (!this.options.useGitExcludes) {
|
|
498
|
+
this.ignoreMatcher = null;
|
|
499
|
+
return this.ignoreMatcher;
|
|
500
|
+
}
|
|
501
|
+
try {
|
|
502
|
+
const matcher = ignore();
|
|
503
|
+
const gitignoreFiles = await this.collectGitignoreFiles(this.options.repoPath);
|
|
504
|
+
const extraIgnoreFiles = this.collectExtraIgnoreFiles();
|
|
505
|
+
for (const filePath of gitignoreFiles) {
|
|
506
|
+
const content = await readFile(filePath, 'utf-8');
|
|
507
|
+
const rules = this.prefixGitignoreRules(filePath, content);
|
|
508
|
+
if (rules.length > 0) {
|
|
509
|
+
matcher.add(rules);
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
for (const filePath of extraIgnoreFiles) {
|
|
513
|
+
try {
|
|
514
|
+
const content = await readFile(filePath, 'utf-8');
|
|
515
|
+
const rules = this.prefixGitignoreRules(filePath, content, '');
|
|
516
|
+
if (rules.length > 0) {
|
|
517
|
+
matcher.add(rules);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
catch {
|
|
521
|
+
// Ignore missing or unreadable global ignore files
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
this.ignoreMatcher = matcher;
|
|
525
|
+
}
|
|
526
|
+
catch {
|
|
527
|
+
this.ignoreMatcher = null;
|
|
528
|
+
}
|
|
529
|
+
return this.ignoreMatcher;
|
|
530
|
+
}
|
|
531
|
+
async collectGitignoreFiles(dir) {
|
|
532
|
+
const files = [];
|
|
533
|
+
try {
|
|
534
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
535
|
+
for (const entry of entries) {
|
|
536
|
+
if (entry.isDirectory()) {
|
|
537
|
+
if (this.isDotDirectoryName(entry.name) || this.shouldIgnore(entry.name)) {
|
|
538
|
+
continue;
|
|
539
|
+
}
|
|
540
|
+
files.push(...(await this.collectGitignoreFiles(join(dir, entry.name))));
|
|
541
|
+
}
|
|
542
|
+
else if (entry.isFile() && entry.name === '.gitignore') {
|
|
543
|
+
files.push(join(dir, entry.name));
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
catch {
|
|
548
|
+
// Ignore errors
|
|
549
|
+
}
|
|
550
|
+
return files;
|
|
551
|
+
}
|
|
552
|
+
prefixGitignoreRules(filePath, content, basePrefix) {
|
|
553
|
+
const repoPath = resolve(normalize(this.options.repoPath));
|
|
554
|
+
const ignoreDir = dirname(filePath);
|
|
555
|
+
const relativeDir = relative(repoPath, ignoreDir).split(sep).join('/');
|
|
556
|
+
const prefix = basePrefix !== undefined ? basePrefix : relativeDir ? `${relativeDir}/` : '';
|
|
557
|
+
return content
|
|
558
|
+
.split('\n')
|
|
559
|
+
.map((line) => line.trim())
|
|
560
|
+
.filter((line) => line && !line.startsWith('#'))
|
|
561
|
+
.map((line) => {
|
|
562
|
+
const negated = line.startsWith('!');
|
|
563
|
+
const raw = negated ? line.slice(1) : line;
|
|
564
|
+
const trimmed = raw.startsWith('/') ? raw.slice(1) : raw;
|
|
565
|
+
const scoped = `${prefix}${trimmed}`;
|
|
566
|
+
return negated ? `!${scoped}` : scoped;
|
|
567
|
+
});
|
|
568
|
+
}
|
|
569
|
+
collectExtraIgnoreFiles() {
|
|
570
|
+
const files = new Set();
|
|
571
|
+
files.add(join(this.options.repoPath, '.git', 'info', 'exclude'));
|
|
572
|
+
const globalConfig = this.getGlobalExcludeFileFromGit();
|
|
573
|
+
if (globalConfig) {
|
|
574
|
+
files.add(globalConfig);
|
|
575
|
+
}
|
|
576
|
+
for (const fallback of this.getDefaultGlobalExcludeFiles()) {
|
|
577
|
+
files.add(fallback);
|
|
578
|
+
}
|
|
579
|
+
return Array.from(files);
|
|
580
|
+
}
|
|
581
|
+
getGlobalExcludeFileFromGit() {
|
|
582
|
+
try {
|
|
583
|
+
const output = execSync('git config --get core.excludesfile', {
|
|
584
|
+
stdio: ['ignore', 'pipe', 'ignore']
|
|
585
|
+
})
|
|
586
|
+
.toString()
|
|
587
|
+
.trim();
|
|
588
|
+
if (!output) {
|
|
589
|
+
return null;
|
|
590
|
+
}
|
|
591
|
+
return this.expandHomePath(output);
|
|
592
|
+
}
|
|
593
|
+
catch {
|
|
594
|
+
return null;
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
getDefaultGlobalExcludeFiles() {
|
|
598
|
+
const home = homedir();
|
|
599
|
+
return [
|
|
600
|
+
join(home, '.config', 'git', 'ignore'),
|
|
601
|
+
join(home, '.gitignore_global'),
|
|
602
|
+
join(home, '.gitignore')
|
|
603
|
+
];
|
|
604
|
+
}
|
|
605
|
+
expandHomePath(filePath) {
|
|
606
|
+
if (filePath.startsWith('~/')) {
|
|
607
|
+
return join(homedir(), filePath.slice(2));
|
|
608
|
+
}
|
|
609
|
+
if (filePath === '~') {
|
|
610
|
+
return homedir();
|
|
611
|
+
}
|
|
612
|
+
return filePath;
|
|
613
|
+
}
|
|
411
614
|
/**
|
|
412
615
|
* Analyze only specific files for dependencies (for incremental updates)
|
|
413
616
|
* This is more efficient than full repository scan when only few files changed
|
|
@@ -419,6 +622,9 @@ Return as JSON: {"accessMethod": "...", "confidence": 0.0-1.0}`;
|
|
|
419
622
|
let totalTokens = 0;
|
|
420
623
|
let totalLatencyMs = 0;
|
|
421
624
|
for (const filePath of filePaths) {
|
|
625
|
+
if (await this.shouldIgnorePath(filePath)) {
|
|
626
|
+
continue;
|
|
627
|
+
}
|
|
422
628
|
// Validate that the file path is safe before joining
|
|
423
629
|
const normalizedRepoPath = resolve(normalize(this.options.repoPath));
|
|
424
630
|
const normalizedFilePath = normalize(filePath);
|
package/dist/detector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../src/detector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../src/detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/llm/copilot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,aAAa,EAGd,MAAM,aAAa,CAAC;AAKrB,qBAAa,qBAAsB,YAAW,WAAW;IACvD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,KAAK,CAAS;IAEtB,YAAY,MAAM,GAAE,iBAAsB,EAczC;IAEK,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/llm/copilot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,aAAa,EAGd,MAAM,aAAa,CAAC;AAKrB,qBAAa,qBAAsB,YAAW,WAAW;IACvD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,KAAK,CAAS;IAEtB,YAAY,MAAM,GAAE,iBAAsB,EAczC;IAEK,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwFnE;IAED,kBAAkB,IAAI,MAAM,EAAE,CAG7B;IAEK,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAQ3C;IAED,cAAc,IAAI,OAAO,CAIxB;CACF"}
|
package/dist/llm/copilot.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* GitHub Copilot CLI Provider Implementation
|
|
3
3
|
* Integrates with GitHub Copilot via CLI commands
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { execFile } from 'node:child_process';
|
|
6
6
|
import { promisify } from 'node:util';
|
|
7
7
|
import { SYSTEM_PROMPT } from './prompts.js';
|
|
8
|
-
const
|
|
8
|
+
const execFileAsync = promisify(execFile);
|
|
9
9
|
export class GitHubCopilotProvider {
|
|
10
10
|
config;
|
|
11
11
|
model;
|
|
@@ -27,12 +27,16 @@ export class GitHubCopilotProvider {
|
|
|
27
27
|
try {
|
|
28
28
|
// Combine system prompt and user prompt for CLI
|
|
29
29
|
const fullPrompt = `${SYSTEM_PROMPT}\n\n${prompt}`;
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
// Use execFile to avoid shell escaping issues and command injection
|
|
31
|
+
// Pass prompt directly as an argument without manual escaping
|
|
32
|
+
const args = [
|
|
33
|
+
'copilot',
|
|
34
|
+
'-p',
|
|
35
|
+
fullPrompt,
|
|
36
|
+
'--silent',
|
|
37
|
+
'--allow-all-tools'
|
|
38
|
+
];
|
|
39
|
+
const { stdout, stderr } = await execFileAsync('gh', args, {
|
|
36
40
|
maxBuffer: 10 * 1024 * 1024, // 10MB buffer for large responses
|
|
37
41
|
timeout: 60000 // 60 second timeout
|
|
38
42
|
});
|
package/dist/llm/copilot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/llm/copilot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/llm/copilot.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/prompts.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Detection prompts for LLM-based dependency analysis
|
|
3
3
|
* Optimized for identifying external informational dependencies
|
|
4
4
|
*/
|
|
5
|
-
export declare const SYSTEM_PROMPT = "You are an expert at analyzing code repositories to identify external informational dependencies.\n\nYour task is to identify external resources that developers reference but are NOT tracked by package managers (npm, PyPI, Cargo, etc.).\n\nINCLUDE these types of dependencies:\n- GitHub repositories referenced but not declared in package files\n- Documentation sites and API references\n- OpenAPI/GraphQL schemas\n- Research papers and arXiv preprints\n- Reference implementations and code examples\n- Technical specifications and RFCs\n\nEXCLUDE these (handled by dependabot):\n- NPM packages in package.json\n- Python packages in requirements.txt
|
|
5
|
+
export declare const SYSTEM_PROMPT = "You are an expert at analyzing code repositories to identify external informational dependencies.\n\nYour task is to identify external resources that developers reference but are NOT tracked by package managers (npm, PyPI, Cargo, etc.).\n\nINCLUDE these types of dependencies:\n- GitHub repositories referenced but not declared in package files\n- Documentation sites and API references\n- OpenAPI/GraphQL schemas\n- Research papers and arXiv preprints\n- Reference implementations and code examples\n- Technical specifications and RFCs\n\nEXCLUDE these (handled by dependabot):\n- NPM packages in package.json\n- Python packages in requirements.txt\n- Rust crates in Cargo.toml\n- Docker images in Dockerfile\n- Any declared package manager dependencies\n\nALSO EXCLUDE (false positives):\n- URLs that reference the repository itself (self-references)\n- Relative file paths (e.g., CONTRIBUTING.md, docs/guide.md, ./src/utils)\n- Placeholder URLs used in documentation examples (example.com, example.org, localhost)\n- Internal documentation links within the same repository\n- URLs with template variables or placeholders (e.g., issues/[NUMBER], user/repo)\n\nOnly return dependencies with confidence >= 0.7.\n\nFor each dependency found, provide:\n1. url: The complete URL\n2. name: A descriptive name\n3. description: What this dependency is used for\n4. type: One of [reference-implementation, schema, documentation, research-paper, api-example, other]\n5. confidence: A score from 0.0 to 1.0 indicating detection confidence\n6. reasoning: Brief explanation of why this is a dependency\n\nReturn ONLY valid JSON in this format:\n{\n \"dependencies\": [\n {\n \"url\": \"https://example.com/resource\",\n \"name\": \"Resource Name\",\n \"description\": \"Purpose in the project\",\n \"type\": \"documentation\",\n \"confidence\": 0.95,\n \"reasoning\": \"Referenced in README as API documentation\"\n }\n ]\n}";
|
|
6
6
|
export declare const DETECTION_PROMPT_TEMPLATE = "Analyze the following content from a code repository and identify external informational dependencies:\n\n## Content Type: {contentType}\n## File Path: {filePath}\n\n## Content:\n{content}\n\nRemember:\n- Focus on external resources NOT in package managers\n- Provide confidence scores based on clarity of references\n- Include context about how each dependency is used\n- Return valid JSON only\n\nAnalyze and respond:";
|
|
7
7
|
export declare function createDetectionPrompt(contentType: string, filePath: string, content: string): string;
|
|
8
8
|
export declare const CLASSIFICATION_PROMPT_TEMPLATE = "Given this URL, classify its dependency type and suggest the best access method:\n\nURL: {url}\nContext: {context}\n\nClassify as one of:\n- reference-implementation: Example code demonstrating usage\n- schema: OpenAPI, JSON Schema, GraphQL, Protocol Buffers \n- documentation: API docs, tutorials, guides\n- research-paper: Academic papers, arXiv preprints\n- api-example: Code snippets from documentation\n- other: If none of the above fit\n\nAlso determine the best access method:\n- github-api: For GitHub repositories\n- arxiv: For arXiv papers\n- openapi: For OpenAPI specifications\n- http: For generic web content\n\nReturn JSON:\n{\n \"type\": \"documentation\",\n \"accessMethod\": \"http\",\n \"confidence\": 0.9,\n \"reasoning\": \"URL structure suggests API documentation\"\n}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,aAAa,o6DAgDxB,CAAC;AAEH,eAAO,MAAM,yBAAyB,waAcjB,CAAC;AAEtB,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAIR;AAED,eAAO,MAAM,8BAA8B,+xBAyBzC,CAAC;AAEH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/E"}
|