@promptci/core 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.
|
@@ -14,7 +14,15 @@
|
|
|
14
14
|
* are always skipped. File paths need a recognisable extension; a directory or
|
|
15
15
|
* extension-less path in a code span is only checked when its FIRST segment
|
|
16
16
|
* exists in the repository (so `owner/repo`, `origin/main`, `@scope/pkg` and
|
|
17
|
-
* paths describing some other project stay silent)
|
|
17
|
+
* paths describing some other project stay silent); one three or more levels
|
|
18
|
+
* below its first segment also needs its second segment to exist. A bare
|
|
19
|
+
* filename in a code span (`ci.yml`) resolves against any committed file of
|
|
20
|
+
* that name in the repository.
|
|
21
|
+
*
|
|
22
|
+
* Every lookup stays inside the scan root and matches names with exact case
|
|
23
|
+
* (pcic-xhzb, see RepoTree): references that leave the root are not checked,
|
|
24
|
+
* and a directory that cannot be listed leaves its references unchecked and
|
|
25
|
+
* named in one "check incomplete" warning instead of reported as broken.
|
|
18
26
|
*
|
|
19
27
|
* Findings are heuristic — wording is intentionally cautious.
|
|
20
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dead-references.d.ts","sourceRoot":"","sources":["../src/dead-references.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dead-references.d.ts","sourceRoot":"","sources":["../src/dead-references.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyTjE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD;AA2wBD;;;;;GAKG;AACH;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EAAE,EACxB,QAAQ,EAAE,MAAM,GACf,aAAa,EAAE,CAsHjB"}
|
package/dist/dead-references.js
CHANGED
|
@@ -14,7 +14,15 @@
|
|
|
14
14
|
* are always skipped. File paths need a recognisable extension; a directory or
|
|
15
15
|
* extension-less path in a code span is only checked when its FIRST segment
|
|
16
16
|
* exists in the repository (so `owner/repo`, `origin/main`, `@scope/pkg` and
|
|
17
|
-
* paths describing some other project stay silent)
|
|
17
|
+
* paths describing some other project stay silent); one three or more levels
|
|
18
|
+
* below its first segment also needs its second segment to exist. A bare
|
|
19
|
+
* filename in a code span (`ci.yml`) resolves against any committed file of
|
|
20
|
+
* that name in the repository.
|
|
21
|
+
*
|
|
22
|
+
* Every lookup stays inside the scan root and matches names with exact case
|
|
23
|
+
* (pcic-xhzb, see RepoTree): references that leave the root are not checked,
|
|
24
|
+
* and a directory that cannot be listed leaves its references unchecked and
|
|
25
|
+
* named in one "check incomplete" warning instead of reported as broken.
|
|
18
26
|
*
|
|
19
27
|
* Findings are heuristic — wording is intentionally cautious.
|
|
20
28
|
*/
|
|
@@ -24,7 +32,7 @@ import * as crypto from 'node:crypto';
|
|
|
24
32
|
import fg from 'fast-glob';
|
|
25
33
|
import { fencedBlocks, scanFencedLines } from './markdown-fences.js';
|
|
26
34
|
import { createGitIgnoreChecker } from './gitignore.js';
|
|
27
|
-
import { isWithinRoot } from './path-containment.js';
|
|
35
|
+
import { isWithinRoot, realPath } from './path-containment.js';
|
|
28
36
|
// ── Patterns ──────────────────────────────────────────────────────────────────
|
|
29
37
|
/** Matches markdown inline links: [label](target) — captures target (may include a title). */
|
|
30
38
|
const MD_LINK_RE = /\[(?:[^\]]*)\]\(([^)]+)\)/g;
|
|
@@ -208,6 +216,10 @@ function isPlaceholderRef(ref) {
|
|
|
208
216
|
// These are pattern descriptions, not real file paths.
|
|
209
217
|
if (/\{[A-Za-z][A-Za-z0-9_-]*\}/.test(ref))
|
|
210
218
|
return true;
|
|
219
|
+
// pcic-mh72: Brace alternation names several files at once, like a glob:
|
|
220
|
+
// `translations/{de,en,ru}.json`. It is a pattern, not a single path.
|
|
221
|
+
if (/\{[^{}/\\]*,[^{}/\\]*\}/.test(ref))
|
|
222
|
+
return true;
|
|
211
223
|
// BUG-006 (eval): Ellipsis segments ("...") are glob placeholders, not real path components.
|
|
212
224
|
// e.g. "src/test/java/.../unit/" is a structural description, not a literal path.
|
|
213
225
|
if (ref.split('/').includes('...'))
|
|
@@ -309,14 +321,6 @@ function isExtensionlessPathRef(ref) {
|
|
|
309
321
|
function stripFragment(ref) {
|
|
310
322
|
return ref.split('#')[0].split('?')[0].trim();
|
|
311
323
|
}
|
|
312
|
-
function fileExists(p) {
|
|
313
|
-
try {
|
|
314
|
-
return fs.existsSync(p);
|
|
315
|
-
}
|
|
316
|
-
catch {
|
|
317
|
-
return false;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
324
|
/**
|
|
321
325
|
* BUG-C1: Source-code file extensions. When a path has one of these extensions
|
|
322
326
|
* and its parent directory exists (but the file itself doesn't), the reference
|
|
@@ -359,16 +363,14 @@ const SKIP_SOURCE_BACKTICK_FILE_TYPES = new Set([
|
|
|
359
363
|
'readme', 'claude', 'agents', 'cursor', 'windsurf', 'copilot', 'gemini', 'cline', 'persona',
|
|
360
364
|
'docs', 'prompt', 'unknown',
|
|
361
365
|
]);
|
|
366
|
+
/**
|
|
367
|
+
* pcic-mh72: how many missing levels a code-span path may have below a first
|
|
368
|
+
* segment that is the only part of it present in this repository. Deeper than
|
|
369
|
+
* this, the first segment alone does not show the path belongs to this tree.
|
|
370
|
+
*/
|
|
371
|
+
const MAX_UNANCHORED_DEPTH = 2;
|
|
362
372
|
/** Minimum confidence to emit a dead-reference issue. Below this the signal is too noisy. */
|
|
363
373
|
const MIN_CONFIDENCE = 0.45;
|
|
364
|
-
function parentDirExists(p) {
|
|
365
|
-
try {
|
|
366
|
-
return fs.existsSync(path.dirname(p));
|
|
367
|
-
}
|
|
368
|
-
catch {
|
|
369
|
-
return false;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
374
|
function issueId(normRef) {
|
|
373
375
|
const key = `dead-ref:${normRef}`;
|
|
374
376
|
const hash = crypto.createHash('sha1').update(key).digest('hex').slice(0, 12);
|
|
@@ -554,6 +556,7 @@ function collectRefs(content, opts = {}) {
|
|
|
554
556
|
evidence: `\`${ref}\``,
|
|
555
557
|
line: lineForOffset(lineOffsets, m.index),
|
|
556
558
|
kind: rooted ? 'rootedSource' : 'file',
|
|
559
|
+
codeSpan: true,
|
|
557
560
|
});
|
|
558
561
|
}
|
|
559
562
|
}
|
|
@@ -618,18 +621,181 @@ function segmentsOf(ref) {
|
|
|
618
621
|
function underOutputDir(ref) {
|
|
619
622
|
return segmentsOf(ref).some((s) => OUTPUT_DIRS.has(s.toLowerCase()));
|
|
620
623
|
}
|
|
624
|
+
/** The `code` of a filesystem error (`EACCES`, `ENOENT`, …), when it has one. */
|
|
625
|
+
function errorCode(err) {
|
|
626
|
+
const code = err?.code;
|
|
627
|
+
return typeof code === 'string' ? code : undefined;
|
|
628
|
+
}
|
|
629
|
+
/** Links followed for one lookup before it gives up (a cycle, or a chain no real tree has). */
|
|
630
|
+
const MAX_LINK_HOPS = 40;
|
|
621
631
|
/**
|
|
622
|
-
*
|
|
623
|
-
*
|
|
632
|
+
* pcic-xhzb: the only way the detector asks the filesystem about a reference.
|
|
633
|
+
*
|
|
634
|
+
* - Contained. A path is looked up by listing the directories from the scan
|
|
635
|
+
* root down to it, so nothing outside the root is ever listed, stat'ed or
|
|
636
|
+
* opened. A committed link is read (`readlink`, a property of the link,
|
|
637
|
+
* which lives in the tree) and followed only while its target stays inside
|
|
638
|
+
* the root; a link out of the tree makes the lookup `outside` without
|
|
639
|
+
* touching what it points at. A hosted scan runs against a server temp
|
|
640
|
+
* directory, and an existence check outside it would tell whoever wrote the
|
|
641
|
+
* scanned repository whether a server path exists.
|
|
642
|
+
* - Exact case. A segment matches a directory entry of exactly that name, so
|
|
643
|
+
* `Deploy_PR.yml` does not resolve to `deploy_pr.yml` on a case-insensitive
|
|
644
|
+
* filesystem (Windows, macOS). The result is the same on every platform, and
|
|
645
|
+
* the same as on Linux and GitHub, where the reference is broken.
|
|
646
|
+
* - Honest about failure. A directory that cannot be listed makes the lookup
|
|
647
|
+
* `unreadable`, never `missing`, and is recorded so the scan can say so.
|
|
648
|
+
*
|
|
649
|
+
* Listings are cached for the scan, so each directory is read at most once.
|
|
624
650
|
*/
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
651
|
+
class RepoTree {
|
|
652
|
+
root;
|
|
653
|
+
/** The root's real path, when it differs (a root under a symlink, like macOS `/var`). */
|
|
654
|
+
realRoot;
|
|
655
|
+
listings = new Map();
|
|
656
|
+
/** What could not be read, as shown in the report (`dir/` or a link's path) → why. */
|
|
657
|
+
unreadable = new Map();
|
|
658
|
+
constructor(repoRoot) {
|
|
659
|
+
this.root = path.resolve(repoRoot);
|
|
660
|
+
const real = realPath(this.root);
|
|
661
|
+
this.realRoot = real !== null && real !== this.root ? real : undefined;
|
|
662
|
+
}
|
|
663
|
+
/** Forward-slash path relative to the root (`.` for the root itself); never absolute. */
|
|
664
|
+
relative(abs) {
|
|
665
|
+
return path.relative(this.root, abs).split(path.sep).join('/') || '.';
|
|
629
666
|
}
|
|
630
|
-
|
|
667
|
+
/** Record what could not be read: a directory (shown as `dir/`) or a link (shown as its path). */
|
|
668
|
+
noteUnreadable(p, reason, kind = 'dir') {
|
|
669
|
+
const abs = path.resolve(this.root, p);
|
|
670
|
+
// Only in-root names are ever recorded: the report must not carry a server path.
|
|
671
|
+
if (!isWithinRoot(this.root, abs))
|
|
672
|
+
return;
|
|
673
|
+
const rel = this.relative(abs);
|
|
674
|
+
const shown = kind === 'link' ? rel : rel === '.' ? './' : `${rel}/`;
|
|
675
|
+
if (!this.unreadable.has(shown))
|
|
676
|
+
this.unreadable.set(shown, reason);
|
|
677
|
+
}
|
|
678
|
+
/** The entries of an in-root directory, by exact name. */
|
|
679
|
+
list(dir) {
|
|
680
|
+
let listing = this.listings.get(dir);
|
|
681
|
+
if (listing === undefined) {
|
|
682
|
+
try {
|
|
683
|
+
listing = new Map(fs.readdirSync(dir, { withFileTypes: true }).map((d) => [d.name, d]));
|
|
684
|
+
}
|
|
685
|
+
catch (err) {
|
|
686
|
+
const code = errorCode(err);
|
|
687
|
+
if (code === 'ENOENT' || code === 'ENOTDIR') {
|
|
688
|
+
listing = 'missing';
|
|
689
|
+
}
|
|
690
|
+
else {
|
|
691
|
+
listing = 'unreadable';
|
|
692
|
+
this.noteUnreadable(dir, code ?? 'error');
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
this.listings.set(dir, listing);
|
|
696
|
+
}
|
|
697
|
+
return listing;
|
|
698
|
+
}
|
|
699
|
+
/** In-root equivalent of a link target written against the root's real path. */
|
|
700
|
+
fromRealRoot(p) {
|
|
701
|
+
if (this.realRoot === undefined || isWithinRoot(this.root, p) || !isWithinRoot(this.realRoot, p))
|
|
702
|
+
return p;
|
|
703
|
+
return path.join(this.root, path.relative(this.realRoot, p));
|
|
704
|
+
}
|
|
705
|
+
lookup(candidate) {
|
|
706
|
+
let target = path.resolve(this.root, candidate);
|
|
707
|
+
let lastLink = '';
|
|
708
|
+
for (let hop = 0; hop <= MAX_LINK_HOPS; hop++) {
|
|
709
|
+
// Lexical containment first: `..`, absolute, other-drive and UNC paths stop here.
|
|
710
|
+
if (!isWithinRoot(this.root, target))
|
|
711
|
+
return { state: 'outside' };
|
|
712
|
+
const parts = path.relative(this.root, target).split(path.sep).filter(Boolean);
|
|
713
|
+
let dir = this.root;
|
|
714
|
+
let isDir = true;
|
|
715
|
+
let next;
|
|
716
|
+
for (let i = 0; i < parts.length; i++) {
|
|
717
|
+
if (!isDir)
|
|
718
|
+
return { state: 'missing' }; // a file in the middle of a path
|
|
719
|
+
const listing = this.list(dir);
|
|
720
|
+
if (listing === 'missing')
|
|
721
|
+
return { state: 'missing' };
|
|
722
|
+
if (listing === 'unreadable')
|
|
723
|
+
return { state: 'unreadable' };
|
|
724
|
+
const name = parts[i];
|
|
725
|
+
const entry = listing.get(name);
|
|
726
|
+
if (!entry)
|
|
727
|
+
return { state: 'missing' };
|
|
728
|
+
const entryPath = path.join(dir, name);
|
|
729
|
+
if (entry.isSymbolicLink()) {
|
|
730
|
+
let link;
|
|
731
|
+
try {
|
|
732
|
+
link = fs.readlinkSync(entryPath);
|
|
733
|
+
}
|
|
734
|
+
catch (err) {
|
|
735
|
+
this.noteUnreadable(entryPath, errorCode(err) ?? 'unreadable link', 'link');
|
|
736
|
+
return { state: 'unreadable' };
|
|
737
|
+
}
|
|
738
|
+
lastLink = entryPath;
|
|
739
|
+
// Resolved lexically against the link's own directory, then re-walked
|
|
740
|
+
// from the root: the containment check above runs before anything
|
|
741
|
+
// under the target is touched.
|
|
742
|
+
next = path.join(this.fromRealRoot(path.resolve(dir, link)), ...parts.slice(i + 1));
|
|
743
|
+
break;
|
|
744
|
+
}
|
|
745
|
+
isDir = entry.isDirectory();
|
|
746
|
+
dir = entryPath;
|
|
747
|
+
}
|
|
748
|
+
if (next === undefined)
|
|
749
|
+
return { state: 'found', path: dir, isDir };
|
|
750
|
+
target = next;
|
|
751
|
+
}
|
|
752
|
+
// More links than the kernel itself follows (Linux MAXSYMLINKS): a cycle.
|
|
753
|
+
this.noteUnreadable(lastLink, 'symlink loop', 'link');
|
|
754
|
+
return { state: 'unreadable' };
|
|
755
|
+
}
|
|
756
|
+
isDir(candidate) {
|
|
757
|
+
const found = this.lookup(candidate);
|
|
758
|
+
return found.state === 'found' && found.isDir;
|
|
759
|
+
}
|
|
760
|
+
/**
|
|
761
|
+
* An extension-less module path names the file that carries the extension:
|
|
762
|
+
* `src/lib/db` is `src/lib/db.ts`. True when the directory holds `<name>.*`.
|
|
763
|
+
*/
|
|
764
|
+
hasStemSibling(candidate) {
|
|
765
|
+
const dir = this.lookup(path.dirname(candidate));
|
|
766
|
+
if (dir.state !== 'found' || !dir.isDir)
|
|
767
|
+
return false;
|
|
768
|
+
const listing = this.list(dir.path);
|
|
769
|
+
if (typeof listing === 'string')
|
|
770
|
+
return false;
|
|
771
|
+
const prefix = `${path.basename(candidate)}.`;
|
|
772
|
+
for (const name of listing.keys())
|
|
773
|
+
if (name.startsWith(prefix))
|
|
774
|
+
return true;
|
|
631
775
|
return false;
|
|
632
776
|
}
|
|
777
|
+
/**
|
|
778
|
+
* fast-glob's directory reads, routed through node:fs here so a directory the
|
|
779
|
+
* walk cannot list is recorded instead of silently dropping out of the result.
|
|
780
|
+
* The walk itself (`cwd` = root, links not followed) never leaves the root.
|
|
781
|
+
*/
|
|
782
|
+
walkFs(onError) {
|
|
783
|
+
const readdirSync = (dir, options) => {
|
|
784
|
+
try {
|
|
785
|
+
return options ? fs.readdirSync(dir, options) : fs.readdirSync(dir);
|
|
786
|
+
}
|
|
787
|
+
catch (err) {
|
|
788
|
+
const code = errorCode(err);
|
|
789
|
+
// A directory deleted mid-walk has nothing left to miss.
|
|
790
|
+
if (code !== 'ENOENT') {
|
|
791
|
+
this.noteUnreadable(dir, code ?? 'error');
|
|
792
|
+
onError();
|
|
793
|
+
}
|
|
794
|
+
throw err;
|
|
795
|
+
}
|
|
796
|
+
};
|
|
797
|
+
return { readdirSync: readdirSync };
|
|
798
|
+
}
|
|
633
799
|
}
|
|
634
800
|
/** Trees never searched for an abbreviated path (dependencies, VCS, worktrees, engine caches). */
|
|
635
801
|
const SUFFIX_SEARCH_IGNORE = [
|
|
@@ -638,13 +804,39 @@ const SUFFIX_SEARCH_IGNORE = [
|
|
|
638
804
|
'.venv', 'venv', '__pycache__', 'Pods', '.gradle', '.cache', '.idea',
|
|
639
805
|
].map((d) => `**/${d}/**`),
|
|
640
806
|
];
|
|
807
|
+
/**
|
|
808
|
+
* Runs one repository walk. `complete` is false when any directory could not
|
|
809
|
+
* be listed: what the walk did not find may still exist (pcic-xhzb).
|
|
810
|
+
*/
|
|
811
|
+
function walk(tree, patterns, onlyFiles) {
|
|
812
|
+
let complete = true;
|
|
813
|
+
let entries = [];
|
|
814
|
+
try {
|
|
815
|
+
entries = fg.sync(patterns, {
|
|
816
|
+
cwd: tree.root,
|
|
817
|
+
dot: true,
|
|
818
|
+
onlyFiles,
|
|
819
|
+
followSymbolicLinks: false,
|
|
820
|
+
// Errors are recorded by walkFs and the walk goes on past them.
|
|
821
|
+
suppressErrors: true,
|
|
822
|
+
ignore: SUFFIX_SEARCH_IGNORE,
|
|
823
|
+
fs: tree.walkFs(() => { complete = false; }),
|
|
824
|
+
});
|
|
825
|
+
}
|
|
826
|
+
catch (err) {
|
|
827
|
+
tree.noteUnreadable('.', errorCode(err) ?? 'walk failed');
|
|
828
|
+
complete = false;
|
|
829
|
+
}
|
|
830
|
+
return { entries, complete };
|
|
831
|
+
}
|
|
641
832
|
/**
|
|
642
833
|
* True when the path exists somewhere below the repo root as a suffix — an
|
|
643
834
|
* abbreviated reference such as `Scripts/Interfaces/` for Unity's
|
|
644
835
|
* `Assets/Scripts/Interfaces/`, or a package-relative `src/lib/db.ts` in a
|
|
645
836
|
* monorepo's root instructions. Such a path is imprecise, not stale.
|
|
837
|
+
* `unknown` when it was not found but the walk could not list everything.
|
|
646
838
|
*/
|
|
647
|
-
function existsAsSuffix(
|
|
839
|
+
function existsAsSuffix(tree, segments, moduleStyle, cache) {
|
|
648
840
|
const rel = segments.join('/');
|
|
649
841
|
const key = `${moduleStyle ? 'm' : 'x'}:${rel}`;
|
|
650
842
|
const cached = cache.get(key);
|
|
@@ -654,31 +846,39 @@ function existsAsSuffix(repoRoot, segments, moduleStyle, cache) {
|
|
|
654
846
|
const patterns = [`**/${escaped}`];
|
|
655
847
|
if (moduleStyle)
|
|
656
848
|
patterns.push(`**/${escaped}.*`);
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
found = fg.sync(patterns, {
|
|
660
|
-
cwd: repoRoot,
|
|
661
|
-
dot: true,
|
|
662
|
-
onlyFiles: false,
|
|
663
|
-
followSymbolicLinks: false,
|
|
664
|
-
suppressErrors: true,
|
|
665
|
-
ignore: SUFFIX_SEARCH_IGNORE,
|
|
666
|
-
}).length > 0;
|
|
667
|
-
}
|
|
668
|
-
catch {
|
|
669
|
-
found = false;
|
|
670
|
-
}
|
|
849
|
+
const { entries, complete } = walk(tree, patterns, false);
|
|
850
|
+
const found = entries.length > 0 ? true : complete ? false : 'unknown';
|
|
671
851
|
cache.set(key, found);
|
|
672
852
|
return found;
|
|
673
853
|
}
|
|
854
|
+
function buildNameIndex(tree) {
|
|
855
|
+
const paths = new Map();
|
|
856
|
+
const { entries, complete } = walk(tree, ['**'], true);
|
|
857
|
+
for (const rel of entries) {
|
|
858
|
+
const name = rel.slice(rel.lastIndexOf('/') + 1);
|
|
859
|
+
const list = paths.get(name);
|
|
860
|
+
if (list)
|
|
861
|
+
list.push(rel);
|
|
862
|
+
else
|
|
863
|
+
paths.set(name, [rel]);
|
|
864
|
+
}
|
|
865
|
+
return { paths, complete };
|
|
866
|
+
}
|
|
674
867
|
/** Probe name used to ask the gitignore matcher whether a DIRECTORY is ignored. */
|
|
675
868
|
const DIR_PROBE = '__promptci_dir_probe__';
|
|
676
869
|
/**
|
|
677
|
-
*
|
|
678
|
-
*
|
|
679
|
-
* enough to judge.
|
|
870
|
+
* Returned when part of the tree the verdict depends on could not be read: the
|
|
871
|
+
* reference is neither resolved nor reported, and the scan says what it skipped.
|
|
680
872
|
*/
|
|
681
|
-
|
|
873
|
+
const UNJUDGED = 'unjudged';
|
|
874
|
+
/**
|
|
875
|
+
* Confidence that `ref` is a dead reference; `null` when it resolves, is
|
|
876
|
+
* expected to be absent (gitignored, generated output), lies outside the scan
|
|
877
|
+
* root, or is not specific enough to judge; {@link UNJUDGED} when the answer
|
|
878
|
+
* depends on a directory that could not be listed.
|
|
879
|
+
*/
|
|
880
|
+
function judgeReference(ref, kind, codeSpan, fileDir, ctx) {
|
|
881
|
+
const { tree, isIgnored } = ctx;
|
|
682
882
|
// `.git/…` is a directory in one checkout and a file in a worktree.
|
|
683
883
|
if (segmentsOf(ref)[0] === '.git')
|
|
684
884
|
return null;
|
|
@@ -689,65 +889,115 @@ function judgeReference(ref, kind, fileDir, repoRoot, isIgnored, suffixCache) {
|
|
|
689
889
|
return null;
|
|
690
890
|
const pathLike = kind === 'rootedPath' || kind === 'linkPath';
|
|
691
891
|
const target = pathLike ? stripFragment(ref) : ref;
|
|
692
|
-
|
|
693
|
-
|
|
892
|
+
// pcic-xhzb: only candidates inside the scan root are looked up. One that
|
|
893
|
+
// leaves it — `../../etc/x.md`, `/etc/x.md`, `C:\x.md`, `\\host\share\x.md`,
|
|
894
|
+
// or a path through a committed link out of the tree — is dropped before
|
|
895
|
+
// any filesystem access, and a reference with no candidate left is not
|
|
896
|
+
// judged at all: not resolved, not reported. Reporting it would claim a
|
|
897
|
+
// file is missing without having looked; a monorepo package scanned on its
|
|
898
|
+
// own legitimately points at `../../AGENTS.md`. Skipping is also what the
|
|
899
|
+
// directory kinds below and home-rooted paths (`~/…`) already did.
|
|
900
|
+
// An absolute path is skipped even when it happens to point into the root:
|
|
901
|
+
// its verdict would depend on where the repository is checked out, and the
|
|
902
|
+
// same input must give the same report. Both platforms' forms count (`/x`,
|
|
903
|
+
// `C:\x`, `\\host\share\x`), so a Windows and a Linux scan agree, and a
|
|
904
|
+
// Windows scan never opens an SMB connection for `\\host\…`.
|
|
905
|
+
// A drive-relative `C:notes.md` is skipped too: Windows resolves it against
|
|
906
|
+
// that drive's working directory, Linux reads it as a file name.
|
|
907
|
+
if (path.posix.isAbsolute(target) || path.win32.isAbsolute(target) || /^[A-Za-z]:/.test(target))
|
|
908
|
+
return null;
|
|
909
|
+
const lookups = [];
|
|
910
|
+
for (const abs of new Set([path.resolve(fileDir, target), path.resolve(tree.root, target)])) {
|
|
911
|
+
if (!isWithinRoot(tree.root, abs))
|
|
912
|
+
continue;
|
|
913
|
+
const found = tree.lookup(abs);
|
|
914
|
+
if (found.state !== 'outside')
|
|
915
|
+
lookups.push({ abs, found });
|
|
916
|
+
}
|
|
917
|
+
if (lookups.length === 0)
|
|
918
|
+
return null;
|
|
694
919
|
// The repository's own ignore rules say the path is local state (pcic-2b6.8,
|
|
695
920
|
// same matcher the skills detector uses).
|
|
696
|
-
for (const
|
|
697
|
-
const rel = path.relative(
|
|
921
|
+
for (const { abs } of lookups) {
|
|
922
|
+
const rel = path.relative(tree.root, abs).replace(/\\/g, '/');
|
|
698
923
|
if (!rel)
|
|
699
924
|
continue;
|
|
700
925
|
if (isIgnored(rel) || (pathLike && isIgnored(`${rel}/${DIR_PROBE}`)))
|
|
701
926
|
return null;
|
|
702
927
|
}
|
|
928
|
+
const moduleStyle = pathLike && !target.endsWith('/');
|
|
929
|
+
if (lookups.some(({ abs, found }) => found.state === 'found' || (moduleStyle && tree.hasStemSibling(abs)))) {
|
|
930
|
+
return null;
|
|
931
|
+
}
|
|
932
|
+
if (lookups.some(({ found }) => found.state === 'unreadable'))
|
|
933
|
+
return UNJUDGED;
|
|
703
934
|
if (kind === 'file') {
|
|
704
|
-
|
|
705
|
-
|
|
935
|
+
// pcic-mh72: a bare filename in a code span (`deploy_pr.yml`,
|
|
936
|
+
// `verify-release.mjs`) names a file, not a location. Prose says "`ci.yml`
|
|
937
|
+
// runs the tests" about `.github/workflows/ci.yml`, so the name resolves
|
|
938
|
+
// wherever the repository commits a file by that exact name (case
|
|
939
|
+
// included, on every platform: pcic-xhzb). A name that exists nowhere, or
|
|
940
|
+
// only under a dependency or output tree or a gitignored path, is still
|
|
941
|
+
// reported. The trade-off: a bare name stays silent while ANY file carries
|
|
942
|
+
// it, so a stale `ci.yml` goes unreported if another `ci.yml` exists.
|
|
943
|
+
// Names too generic to judge (`index.ts`, `package.json`) were already
|
|
944
|
+
// skipped by isPlaceholderRef.
|
|
945
|
+
if (codeSpan && !/[/\\]/.test(target)) {
|
|
946
|
+
const index = ctx.nameIndex();
|
|
947
|
+
if (index.paths.get(target)?.some((rel) => !isIgnored(rel)))
|
|
948
|
+
return null;
|
|
949
|
+
// pcic-xhzb: a walk that could not list everything is no evidence of absence.
|
|
950
|
+
if (!index.complete)
|
|
951
|
+
return UNJUDGED;
|
|
952
|
+
}
|
|
706
953
|
// BUG-C1: Source-code paths whose parent directory exists → lower confidence
|
|
707
954
|
// (likely documentation references, not broken links).
|
|
708
955
|
const ext = path.extname(ref.split('#')[0] ?? '').toLowerCase();
|
|
709
956
|
const isSourceCodeRef = SOURCE_CODE_EXTENSIONS.has(ext);
|
|
710
|
-
const anyParentExists =
|
|
957
|
+
const anyParentExists = lookups.some(({ abs }) => tree.isDir(path.dirname(abs)));
|
|
711
958
|
return isSourceCodeRef && anyParentExists ? 0.5 : 0.85;
|
|
712
959
|
}
|
|
713
|
-
// pcic-2b6.8 kinds: only paths that stay inside the repository are judged.
|
|
714
|
-
if (inRoot.length === 0)
|
|
715
|
-
return null;
|
|
716
|
-
const moduleStyle = pathLike && !target.endsWith('/');
|
|
717
|
-
if (inRoot.some((c) => fileExists(c) || (moduleStyle && stemSiblingExists(c))))
|
|
718
|
-
return null;
|
|
719
960
|
if (kind === 'linkPath')
|
|
720
961
|
return 0.8;
|
|
721
962
|
// Code-span paths: report only when the path's FIRST segment exists here, so
|
|
722
963
|
// the reference demonstrably names part of THIS repository — `owner/repo`,
|
|
723
964
|
// `origin/main`, `@scope/pkg` and another project's `internal/x/y.go` stay silent.
|
|
965
|
+
// A `..` anywhere (`../shared/`, `src/../x/`) is not a path into this tree.
|
|
724
966
|
const segments = segmentsOf(ref);
|
|
725
|
-
if (segments.length < 2 || segments
|
|
967
|
+
if (segments.length < 2 || segments.includes('..'))
|
|
726
968
|
return null;
|
|
727
969
|
// The first segment must be a DIRECTORY here (`package.json/scripts` is not a path).
|
|
728
|
-
const anchorBases = [fileDir,
|
|
970
|
+
const anchorBases = [fileDir, tree.root].filter((base) => tree.isDir(path.join(base, segments[0])));
|
|
729
971
|
if (anchorBases.length === 0)
|
|
730
972
|
return null;
|
|
973
|
+
// pcic-mh72: a lone top-level match is a weak anchor. Almost every project has
|
|
974
|
+
// a `src/`, so `src/main/java/edu/harvard/iq/dataverse/api/` (another
|
|
975
|
+
// project's layout, described in prose) matches here on `src` alone. When the
|
|
976
|
+
// second segment is not a directory here and the path continues three or more
|
|
977
|
+
// levels below the first segment, it is treated as describing some other tree.
|
|
978
|
+
// A shorter tail (`src/payments/`, `src/services/billing.ts`) is still checked.
|
|
979
|
+
// The trade-off: a deep path under a removed intermediate directory
|
|
980
|
+
// (`src/features/auth/components/` with `src/features/` gone) is not reported.
|
|
981
|
+
if (segments.length - 1 > MAX_UNANCHORED_DEPTH &&
|
|
982
|
+
!anchorBases.some((base) => tree.isDir(path.join(base, segments[0], segments[1])))) {
|
|
983
|
+
return null;
|
|
984
|
+
}
|
|
731
985
|
if (kind === 'rootedPath') {
|
|
732
986
|
// `docs/update-readme`, `test/flaky-fix`: a branch name unless written as a directory.
|
|
733
987
|
if (BRANCH_PREFIXES.has(segments[0].toLowerCase()) && !target.endsWith('/'))
|
|
734
988
|
return null;
|
|
735
989
|
// `client/server`, `public/private`: alternatives when both halves exist side by side.
|
|
736
|
-
if (segments.length === 2 && anchorBases.some((base) =>
|
|
990
|
+
if (segments.length === 2 && anchorBases.some((base) => tree.lookup(path.join(base, segments[1])).state === 'found')) {
|
|
737
991
|
return null;
|
|
992
|
+
}
|
|
738
993
|
}
|
|
739
|
-
|
|
994
|
+
const suffix = existsAsSuffix(tree, segments, moduleStyle, ctx.suffixCache);
|
|
995
|
+
if (suffix === true)
|
|
740
996
|
return null;
|
|
997
|
+
if (suffix === 'unknown')
|
|
998
|
+
return UNJUDGED;
|
|
741
999
|
return 0.6;
|
|
742
1000
|
}
|
|
743
|
-
function dirExists(p) {
|
|
744
|
-
try {
|
|
745
|
-
return fs.statSync(p).isDirectory();
|
|
746
|
-
}
|
|
747
|
-
catch {
|
|
748
|
-
return false;
|
|
749
|
-
}
|
|
750
|
-
}
|
|
751
1001
|
// ── Detector ─────────────────────────────────────────────────────────────────
|
|
752
1002
|
/**
|
|
753
1003
|
* Detect broken file references across all instruction files.
|
|
@@ -767,14 +1017,18 @@ function dirExists(p) {
|
|
|
767
1017
|
export function detectDeadReferences(files, repoRoot) {
|
|
768
1018
|
// normRef → { displayRef, filePaths, fileLines, evidenceLines, minConfidence }
|
|
769
1019
|
const byRef = new Map();
|
|
770
|
-
|
|
771
|
-
|
|
1020
|
+
const tree = new RepoTree(repoRoot);
|
|
1021
|
+
let ctx;
|
|
1022
|
+
let nameIndexCache;
|
|
1023
|
+
const nameIndex = () => (nameIndexCache ??= buildNameIndex(tree));
|
|
1024
|
+
// pcic-xhzb: references left unjudged because part of the tree could not be listed.
|
|
1025
|
+
const unjudged = new Map();
|
|
772
1026
|
for (const file of files) {
|
|
773
1027
|
const fileDir = path.dirname(file.path);
|
|
774
1028
|
const refs = collectRefs(file.content, {
|
|
775
1029
|
skipSourceBackticks: SKIP_SOURCE_BACKTICK_FILE_TYPES.has(file.fileType),
|
|
776
1030
|
});
|
|
777
|
-
for (const { ref, evidence, line, kind } of refs) {
|
|
1031
|
+
for (const { ref, evidence, line, kind, codeSpan } of refs) {
|
|
778
1032
|
// BUG-009: Skip obvious placeholder/example filenames (foo.ts, bar.go, etc.)
|
|
779
1033
|
if (isPlaceholderRef(ref))
|
|
780
1034
|
continue;
|
|
@@ -785,10 +1039,20 @@ export function detectDeadReferences(files, repoRoot) {
|
|
|
785
1039
|
if (isHomeRooted(ref))
|
|
786
1040
|
continue;
|
|
787
1041
|
// Resolve relative to the instruction file first, then repo root.
|
|
788
|
-
|
|
789
|
-
const confidence = judgeReference(ref, kind,
|
|
1042
|
+
ctx ??= { tree, isIgnored: createGitIgnoreChecker(repoRoot), suffixCache: new Map(), nameIndex };
|
|
1043
|
+
const confidence = judgeReference(ref, kind, codeSpan ?? false, fileDir, ctx);
|
|
790
1044
|
if (confidence === null)
|
|
791
1045
|
continue;
|
|
1046
|
+
if (confidence === UNJUDGED) {
|
|
1047
|
+
const evidenceText = `Not checked: ${evidence}`;
|
|
1048
|
+
const entry = unjudged.get(evidenceText) ?? { filePaths: new Set(), fileLines: new Map(), evidence: evidenceText };
|
|
1049
|
+
entry.filePaths.add(file.path);
|
|
1050
|
+
const seen = entry.fileLines.get(file.path);
|
|
1051
|
+
if (seen === undefined || line < seen)
|
|
1052
|
+
entry.fileLines.set(file.path, line);
|
|
1053
|
+
unjudged.set(evidenceText, entry);
|
|
1054
|
+
continue;
|
|
1055
|
+
}
|
|
792
1056
|
// Normalise for deduplication (case-insensitive, forward slashes). Directory
|
|
793
1057
|
// forms also drop `./` and the trailing slash, so `src/api/`, `./src/api`
|
|
794
1058
|
// and a link to `./src/api/` are one finding.
|
|
@@ -849,6 +1113,55 @@ export function detectDeadReferences(files, repoRoot) {
|
|
|
849
1113
|
confidence: minConfidence,
|
|
850
1114
|
});
|
|
851
1115
|
}
|
|
1116
|
+
if (unjudged.size > 0)
|
|
1117
|
+
issues.push(incompleteCheckIssue(tree, [...unjudged.values()]));
|
|
852
1118
|
return issues;
|
|
853
1119
|
}
|
|
1120
|
+
/** Evidence lines listed per kind before the rest is summarised. */
|
|
1121
|
+
const MAX_INCOMPLETE_EVIDENCE = 10;
|
|
1122
|
+
/**
|
|
1123
|
+
* pcic-xhzb: a directory the scan could not list is named, never turned into
|
|
1124
|
+
* findings. Without this, an unreadable directory emptied the name index (or
|
|
1125
|
+
* part of it) and every bare name filed there was reported as broken, with no
|
|
1126
|
+
* sign the scan had failed. The gap is a `warning`, the severity of the
|
|
1127
|
+
* findings it stands in for, so a `--fail-on warning` gate that a broken
|
|
1128
|
+
* reference would have tripped is not passed silently by a scan that could
|
|
1129
|
+
* not look (the supply-chain scan's `unscanned-files` likewise warns about
|
|
1130
|
+
* content it could not read). Paths are repo-relative, so a hosted scan never
|
|
1131
|
+
* shows its temp dir.
|
|
1132
|
+
*/
|
|
1133
|
+
function incompleteCheckIssue(tree, refs) {
|
|
1134
|
+
const capped = (lines, noun) => lines.length > MAX_INCOMPLETE_EVIDENCE
|
|
1135
|
+
? [...lines.slice(0, MAX_INCOMPLETE_EVIDENCE), `…and ${lines.length - MAX_INCOMPLETE_EVIDENCE} more ${noun}`]
|
|
1136
|
+
: lines;
|
|
1137
|
+
const dirs = [...tree.unreadable].sort(([a], [b]) => a.localeCompare(b));
|
|
1138
|
+
const dirLines = dirs.map(([shown, reason]) => `Could not read: ${shown} (${reason})`);
|
|
1139
|
+
const filePaths = [...new Set(refs.flatMap((r) => [...r.filePaths]))];
|
|
1140
|
+
const firstLine = new Map();
|
|
1141
|
+
for (const r of refs) {
|
|
1142
|
+
for (const [fp, line] of r.fileLines) {
|
|
1143
|
+
const seen = firstLine.get(fp);
|
|
1144
|
+
if (seen === undefined || line < seen)
|
|
1145
|
+
firstLine.set(fp, line);
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
return {
|
|
1149
|
+
id: issueId('(dead-reference check incomplete)'),
|
|
1150
|
+
severity: 'warning',
|
|
1151
|
+
category: 'structure',
|
|
1152
|
+
title: 'Dead-reference check incomplete: part of the repository could not be read',
|
|
1153
|
+
summary: `${refs.length} reference(s) were not checked because part of the repository could not be read ` +
|
|
1154
|
+
`(${dirs.length} location${dirs.length === 1 ? '' : 's'}). They may or may not exist; ` +
|
|
1155
|
+
'no broken-reference finding was reported for them.',
|
|
1156
|
+
filePaths,
|
|
1157
|
+
locations: filePaths.map((fp) => {
|
|
1158
|
+
const startLine = firstLine.get(fp);
|
|
1159
|
+
return startLine !== undefined ? { filePath: fp, startLine } : { filePath: fp };
|
|
1160
|
+
}),
|
|
1161
|
+
evidence: [...capped(dirLines, 'locations'), ...capped(refs.map((r) => r.evidence), 'references')],
|
|
1162
|
+
recommendation: 'Make the listed locations readable by the user running the scan (or fix the symlink), then scan again to ' +
|
|
1163
|
+
'check these references.',
|
|
1164
|
+
confidence: 0.8,
|
|
1165
|
+
};
|
|
1166
|
+
}
|
|
854
1167
|
//# sourceMappingURL=dead-references.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dead-references.js","sourceRoot":"","sources":["../src/dead-references.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dead-references.js","sourceRoot":"","sources":["../src/dead-references.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptci/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Deterministic scanner for AI coding instruction files (CLAUDE.md, AGENTS.md, .cursorrules) — detectors, scoring, and report generation",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|