@promptci/core 0.1.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/dist/action-pinning.d.ts +37 -0
- package/dist/action-pinning.d.ts.map +1 -0
- package/dist/action-pinning.js +277 -0
- package/dist/action-pinning.js.map +1 -0
- package/dist/agent-practices.d.ts +1 -1
- package/dist/agent-practices.d.ts.map +1 -1
- package/dist/agent-practices.js +107 -43
- package/dist/agent-practices.js.map +1 -1
- package/dist/ai-config.d.ts +42 -3
- package/dist/ai-config.d.ts.map +1 -1
- package/dist/ai-config.js +210 -12
- package/dist/ai-config.js.map +1 -1
- package/dist/alias-files.d.ts +33 -0
- package/dist/alias-files.d.ts.map +1 -0
- package/dist/alias-files.js +60 -0
- package/dist/alias-files.js.map +1 -0
- package/dist/buried-critical.d.ts.map +1 -1
- package/dist/buried-critical.js +4 -9
- package/dist/buried-critical.js.map +1 -1
- package/dist/canonical-owner.d.ts.map +1 -1
- package/dist/canonical-owner.js +45 -25
- package/dist/canonical-owner.js.map +1 -1
- package/dist/ci-alignment.d.ts.map +1 -1
- package/dist/ci-alignment.js +3 -2
- package/dist/ci-alignment.js.map +1 -1
- package/dist/command-validity.d.ts +16 -0
- package/dist/command-validity.d.ts.map +1 -1
- package/dist/command-validity.js +337 -63
- package/dist/command-validity.js.map +1 -1
- package/dist/conflicts.d.ts.map +1 -1
- package/dist/conflicts.js +3 -2
- package/dist/conflicts.js.map +1 -1
- package/dist/context-bloat.d.ts +1 -1
- package/dist/context-bloat.d.ts.map +1 -1
- package/dist/context-bloat.js +18 -7
- package/dist/context-bloat.js.map +1 -1
- package/dist/context-optimizer.d.ts.map +1 -1
- package/dist/context-optimizer.js +5 -2
- package/dist/context-optimizer.js.map +1 -1
- package/dist/custom-rules.d.ts.map +1 -1
- package/dist/custom-rules.js +6 -1
- package/dist/custom-rules.js.map +1 -1
- package/dist/dead-references.d.ts +16 -2
- package/dist/dead-references.d.ts.map +1 -1
- package/dist/dead-references.js +635 -77
- package/dist/dead-references.js.map +1 -1
- package/dist/dependency-staleness.d.ts +35 -0
- package/dist/dependency-staleness.d.ts.map +1 -0
- package/dist/dependency-staleness.js +1001 -0
- package/dist/dependency-staleness.js.map +1 -0
- package/dist/detectors.d.ts.map +1 -1
- package/dist/detectors.js +31 -6
- package/dist/detectors.js.map +1 -1
- package/dist/duplicates.d.ts.map +1 -1
- package/dist/duplicates.js +5 -4
- package/dist/duplicates.js.map +1 -1
- package/dist/evidence.d.ts +11 -0
- package/dist/evidence.d.ts.map +1 -1
- package/dist/evidence.js +40 -0
- package/dist/evidence.js.map +1 -1
- package/dist/finding-id.d.ts +21 -0
- package/dist/finding-id.d.ts.map +1 -0
- package/dist/finding-id.js +31 -0
- package/dist/finding-id.js.map +1 -0
- package/dist/frameworks/dotnet.js +2 -2
- package/dist/frameworks/dotnet.js.map +1 -1
- package/dist/frameworks/rust.d.ts.map +1 -1
- package/dist/frameworks/rust.js +2 -1
- package/dist/frameworks/rust.js.map +1 -1
- package/dist/git-symlinks.d.ts +30 -0
- package/dist/git-symlinks.d.ts.map +1 -0
- package/dist/git-symlinks.js +161 -0
- package/dist/git-symlinks.js.map +1 -0
- package/dist/gitignore.d.ts +22 -0
- package/dist/gitignore.d.ts.map +1 -0
- package/dist/gitignore.js +157 -0
- package/dist/gitignore.js.map +1 -0
- package/dist/health-score.d.ts.map +1 -1
- package/dist/health-score.js +34 -5
- package/dist/health-score.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/makefile.d.ts +37 -0
- package/dist/makefile.d.ts.map +1 -0
- package/dist/makefile.js +156 -0
- package/dist/makefile.js.map +1 -0
- package/dist/manifest-consistency.d.ts.map +1 -1
- package/dist/manifest-consistency.js +52 -8
- package/dist/manifest-consistency.js.map +1 -1
- package/dist/negative-instructions.d.ts.map +1 -1
- package/dist/negative-instructions.js +4 -9
- package/dist/negative-instructions.js.map +1 -1
- package/dist/path-containment.d.ts +29 -0
- package/dist/path-containment.d.ts.map +1 -1
- package/dist/path-containment.js +70 -0
- package/dist/path-containment.js.map +1 -1
- package/dist/prompt-cache.d.ts.map +1 -1
- package/dist/prompt-cache.js +8 -6
- package/dist/prompt-cache.js.map +1 -1
- package/dist/repo-context.d.ts +53 -0
- package/dist/repo-context.d.ts.map +1 -1
- package/dist/repo-context.js +134 -11
- package/dist/repo-context.js.map +1 -1
- package/dist/report.d.ts +7 -0
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +36 -7
- package/dist/report.js.map +1 -1
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +41 -2
- package/dist/scan.js.map +1 -1
- package/dist/scanner.d.ts +49 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +323 -38
- package/dist/scanner.js.map +1 -1
- package/dist/security-pack.d.ts.map +1 -1
- package/dist/security-pack.js +6 -4
- package/dist/security-pack.js.map +1 -1
- package/dist/skill-supply-chain.d.ts +132 -0
- package/dist/skill-supply-chain.d.ts.map +1 -0
- package/dist/skill-supply-chain.js +2954 -0
- package/dist/skill-supply-chain.js.map +1 -0
- package/dist/skills-detector.d.ts +7 -3
- package/dist/skills-detector.d.ts.map +1 -1
- package/dist/skills-detector.js +98 -22
- package/dist/skills-detector.js.map +1 -1
- package/dist/stale-instructions.d.ts.map +1 -1
- package/dist/stale-instructions.js +2 -1
- package/dist/stale-instructions.js.map +1 -1
- package/dist/suppression.d.ts +2 -0
- package/dist/suppression.d.ts.map +1 -1
- package/dist/suppression.js +5 -2
- package/dist/suppression.js.map +1 -1
- package/dist/types.d.ts +35 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -1
- package/dist/vague-guidance.d.ts.map +1 -1
- package/dist/vague-guidance.js +2 -1
- package/dist/vague-guidance.js.map +1 -1
- package/dist/windsurf-detector.d.ts.map +1 -1
- package/dist/windsurf-detector.js +15 -6
- package/dist/windsurf-detector.js.map +1 -1
- package/dist/within-section-dedup.d.ts.map +1 -1
- package/dist/within-section-dedup.js +4 -9
- package/dist/within-section-dedup.js.map +1 -1
- package/dist/workspace-manifests.d.ts +80 -0
- package/dist/workspace-manifests.d.ts.map +1 -0
- package/dist/workspace-manifests.js +333 -0
- package/dist/workspace-manifests.js.map +1 -0
- package/package.json +1 -1
package/dist/command-validity.js
CHANGED
|
@@ -2,6 +2,10 @@ import * as fs from 'node:fs';
|
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import * as crypto from 'node:crypto';
|
|
4
4
|
import { fencedBlocks, scanFencedLines } from './markdown-fences.js';
|
|
5
|
+
import { fileIdPath } from './finding-id.js';
|
|
6
|
+
import { anyWorkspaceHasScript, isKnownBinary, selectWorkspaces } from './workspace-manifests.js';
|
|
7
|
+
import { makefileDefines, readMakefile } from './makefile.js';
|
|
8
|
+
import { realPathWithinRoot } from './path-containment.js';
|
|
5
9
|
/**
|
|
6
10
|
* Command Validity Detector
|
|
7
11
|
*
|
|
@@ -37,7 +41,18 @@ function fileExists(repoRoot, relativePath) {
|
|
|
37
41
|
return false;
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
|
-
function
|
|
44
|
+
function isDirectory(repoRoot, relativePath) {
|
|
45
|
+
try {
|
|
46
|
+
return fs.statSync(path.resolve(repoRoot, relativePath)).isDirectory();
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function readPackageScripts(repoRoot, packageJsonPath) {
|
|
53
|
+
// A manifest committed as a symlink to a file outside the repo is not read.
|
|
54
|
+
if (!realPathWithinRoot(repoRoot, packageJsonPath))
|
|
55
|
+
return null;
|
|
41
56
|
try {
|
|
42
57
|
const raw = fs.readFileSync(packageJsonPath, 'utf8');
|
|
43
58
|
const parsed = JSON.parse(raw);
|
|
@@ -102,8 +117,14 @@ function workspaceHasScript(context, selector, scriptName) {
|
|
|
102
117
|
const normalizedSelector = normalizePnpmFilter(selector);
|
|
103
118
|
if (!normalizedSelector)
|
|
104
119
|
return false;
|
|
120
|
+
// Workspace manifests discovered while building the context (declared
|
|
121
|
+
// `workspaces` globs, any layout). The path-based lookup below is only for
|
|
122
|
+
// contexts built without them.
|
|
123
|
+
if (context.workspaces) {
|
|
124
|
+
return selectWorkspaces(context, normalizedSelector).some((ws) => !!ws.scripts[scriptName]);
|
|
125
|
+
}
|
|
105
126
|
for (const candidate of workspacePackageJsonCandidates(context.repoRoot, normalizedSelector)) {
|
|
106
|
-
const pkg = readPackageScripts(candidate);
|
|
127
|
+
const pkg = readPackageScripts(context.repoRoot, candidate);
|
|
107
128
|
if (!pkg)
|
|
108
129
|
continue;
|
|
109
130
|
const packageDir = path.dirname(candidate).replace(/\\/g, '/');
|
|
@@ -130,17 +151,32 @@ const PNPM_BUILTINS = new Set([
|
|
|
130
151
|
'install', 'i', 'add', 'remove', 'uninstall', 'test', 'it', 'init',
|
|
131
152
|
'create', 'publish', 'link', 'unlink', 'outdated', 'audit', 'update',
|
|
132
153
|
'up', 'exec', 'dlx', 'run', 'store', 'list', 'ls', 'why', 'pack',
|
|
133
|
-
'recursive', 'm', 'multi', 'prune', 'version',
|
|
154
|
+
'recursive', 'm', 'multi', 'prune', 'version', 'run-script',
|
|
155
|
+
'env', 'config', 'fetch', 'rebuild', 'rb', 'patch', 'patch-commit', 'deploy',
|
|
156
|
+
'import', 'licenses', 'root', 'bin', 'setup', 'self-update', 'dedupe', 'doctor',
|
|
157
|
+
'approve-builds', 'sbom', 'cache',
|
|
134
158
|
]);
|
|
135
159
|
const NPM_BUILTINS = new Set([
|
|
136
160
|
'install', 'i', 'ci', 'uninstall', 'remove', 'update', 'outdated',
|
|
137
161
|
'audit', 'start', 'stop', 'restart', 'test', 'it', 'init', 'create',
|
|
138
|
-
'publish', 'link', 'unlink', 'pack', 'exec', 'run', 'version',
|
|
162
|
+
'publish', 'link', 'unlink', 'pack', 'exec', 'run', 'run-script', 'version',
|
|
139
163
|
]);
|
|
140
164
|
const YARN_BUILTINS = new Set([
|
|
141
165
|
'install', 'add', 'remove', 'upgrade', 'outdated', 'audit', 'init',
|
|
142
166
|
'create', 'publish', 'link', 'unlink', 'why', 'pack', 'run', 'version',
|
|
167
|
+
'run-script', 'workspaces', 'exec', 'dlx', 'up', 'info', 'config', 'cache',
|
|
168
|
+
'bin', 'set', 'node', 'global', 'dedupe', 'patch', 'rebuild', 'plugin',
|
|
169
|
+
'constraints', 'unplug', 'npm',
|
|
170
|
+
]);
|
|
171
|
+
/** `bun <name>` runs a script (or file) only when <name> is not one of bun's own commands. */
|
|
172
|
+
export const BUN_BUILTINS = new Set([
|
|
173
|
+
'install', 'i', 'add', 'a', 'remove', 'rm', 'update', 'test', 'build', 'init',
|
|
174
|
+
'create', 'c', 'x', 'bunx', 'pm', 'link', 'unlink', 'upgrade', 'repl', 'outdated',
|
|
175
|
+
'publish', 'patch', 'audit', 'info', 'why', 'completions', 'help', 'feedback',
|
|
176
|
+
'run', 'exec',
|
|
143
177
|
]);
|
|
178
|
+
/** npm and pnpm treat `run-script` as an alias of `run`. */
|
|
179
|
+
const RUN_ALIASES = new Set(['run', 'run-script']);
|
|
144
180
|
/**
|
|
145
181
|
* CV6: Resolves a `cd <target>` against the current repo-relative directory so
|
|
146
182
|
* that a `cd apps/web && pnpm test:e2e` line validates `test:e2e` against
|
|
@@ -155,6 +191,10 @@ function resolveCwd(current, target) {
|
|
|
155
191
|
if (!cleaned || cleaned.startsWith('/') || cleaned.startsWith('~') || /^[a-zA-Z]:[\\/]/.test(cleaned)) {
|
|
156
192
|
return null; // absolute or home path — not resolvable to a repo-relative dir
|
|
157
193
|
}
|
|
194
|
+
// `cd -`, `cd $DIR`, `cd "$(git rev-parse --show-toplevel)"`, `cd %TEMP%`,
|
|
195
|
+
// `cd <dir>`: computed or placeholder targets name no knowable directory.
|
|
196
|
+
if (/^-|[$`%<>{}*?]/.test(cleaned))
|
|
197
|
+
return null;
|
|
158
198
|
const parts = current === '.' ? [] : current.split('/');
|
|
159
199
|
for (const seg of cleaned.replace(/\\/g, '/').split('/')) {
|
|
160
200
|
if (seg === '' || seg === '.')
|
|
@@ -255,7 +295,7 @@ function extractCommands(content) {
|
|
|
255
295
|
if (cdMatch) {
|
|
256
296
|
lineCwd = resolveCwd(lineCwd, cdMatch[1].trim());
|
|
257
297
|
}
|
|
258
|
-
commands.push({ text: seg, line: block.contentStartLine + j, cwd: lineCwd });
|
|
298
|
+
commands.push({ text: seg, line: block.contentStartLine + j, cwd: lineCwd, fenced: true });
|
|
259
299
|
}
|
|
260
300
|
}
|
|
261
301
|
}
|
|
@@ -303,10 +343,15 @@ const PLACEHOLDER_RE = /[<{]|\.{3,}|your-file|your-script|example|placeholder/i;
|
|
|
303
343
|
* like `--filter` or `--loader` gets mistaken for the subcommand, and its
|
|
304
344
|
* VALUE (a package name or loader module) gets mistaken for a file path.
|
|
305
345
|
*/
|
|
306
|
-
const FLAGS_WITH_VALUE = new Set([
|
|
346
|
+
const FLAGS_WITH_VALUE = new Set([
|
|
347
|
+
'--filter', '-F', '--cwd', '-C', '--dir', '--loader', '--require', '-r', '--workspace', '--prefix',
|
|
348
|
+
]);
|
|
307
349
|
function flagTakesValue(tool, flag) {
|
|
308
350
|
if (tool === 'pnpm' && flag === '-r')
|
|
309
351
|
return false;
|
|
352
|
+
// npm `-w <workspace>` takes a value; pnpm's `-w` (workspace root) does not.
|
|
353
|
+
if (flag === '-w')
|
|
354
|
+
return tool === 'npm';
|
|
310
355
|
return FLAGS_WITH_VALUE.has(flag);
|
|
311
356
|
}
|
|
312
357
|
/**
|
|
@@ -320,8 +365,8 @@ function flagTakesValue(tool, flag) {
|
|
|
320
365
|
* "ts-node/esm" (the loader flag's VALUE, which happens to contain a slash)
|
|
321
366
|
* as the file being executed, instead of the real target "src/x.ts".
|
|
322
367
|
*/
|
|
323
|
-
function firstNonFlagArgIndex(parts) {
|
|
324
|
-
let idx =
|
|
368
|
+
function firstNonFlagArgIndex(parts, startIdx = 1) {
|
|
369
|
+
let idx = startIdx;
|
|
325
370
|
const tool = parts[0] ?? '';
|
|
326
371
|
while (idx < parts.length) {
|
|
327
372
|
const p = parts[idx];
|
|
@@ -334,30 +379,72 @@ function firstNonFlagArgIndex(parts) {
|
|
|
334
379
|
}
|
|
335
380
|
return idx;
|
|
336
381
|
}
|
|
337
|
-
/**
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
382
|
+
/** The `--filter`/`-F` (pnpm, bun) or `-w`/`--workspace` (npm) selector, if any. */
|
|
383
|
+
function workspaceSelector(tool, parts) {
|
|
384
|
+
const filter = pnpmFilterValue(parts);
|
|
385
|
+
if (filter)
|
|
386
|
+
return filter;
|
|
387
|
+
if (tool !== 'npm')
|
|
388
|
+
return undefined;
|
|
389
|
+
for (let i = 1; i < parts.length; i++) {
|
|
390
|
+
const part = parts[i];
|
|
391
|
+
if (part === '-w' || part === '--workspace')
|
|
392
|
+
return parts[i + 1];
|
|
393
|
+
if (part.startsWith('--workspace='))
|
|
394
|
+
return part.slice('--workspace='.length);
|
|
395
|
+
}
|
|
396
|
+
return undefined;
|
|
397
|
+
}
|
|
398
|
+
/** `pnpm -r` / `pnpm --recursive` / `npm --workspaces`: the script may live in any workspace. */
|
|
399
|
+
function runsInAllWorkspaces(tool, parts) {
|
|
400
|
+
if (tool === 'pnpm')
|
|
401
|
+
return parts.some((p) => p === '-r' || p === '--recursive');
|
|
402
|
+
if (tool === 'npm')
|
|
403
|
+
return parts.some((p) => p === '--workspaces' || p === '-ws');
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
/** A directory override (`--cwd`, `-C`, `--prefix`) re-roots the command like a `cd` would. */
|
|
407
|
+
function cwdOverride(parts) {
|
|
408
|
+
for (let i = 1; i < parts.length; i++) {
|
|
409
|
+
const part = parts[i];
|
|
410
|
+
if (part === '--cwd' || part === '-C' || part === '--dir' || part === '--prefix')
|
|
411
|
+
return parts[i + 1];
|
|
412
|
+
const eq = /^(?:--cwd|--dir|--prefix)=(.+)$/.exec(part);
|
|
413
|
+
if (eq)
|
|
414
|
+
return eq[1];
|
|
415
|
+
}
|
|
416
|
+
return undefined;
|
|
417
|
+
}
|
|
418
|
+
function findMissingScript(context, cwd, parts, scriptName, builtins, tool, lookup, onScript) {
|
|
355
419
|
const names = scriptName.includes('/')
|
|
356
420
|
? scriptName.split('/').map((s) => s.trim()).filter(Boolean)
|
|
357
421
|
: [scriptName];
|
|
422
|
+
// Recorded before any early return so callers know this command was judged —
|
|
423
|
+
// including when it could not be checked (unknown working directory).
|
|
424
|
+
for (const name of names)
|
|
425
|
+
onScript?.(name);
|
|
426
|
+
// Unknown working directory (unresolvable `cd`) — cannot verify.
|
|
427
|
+
if (cwd === null)
|
|
428
|
+
return null;
|
|
429
|
+
const override = cwdOverride(parts);
|
|
430
|
+
if (override !== undefined) {
|
|
431
|
+
const resolved = resolveCwd(cwd, override);
|
|
432
|
+
if (resolved === null)
|
|
433
|
+
return null;
|
|
434
|
+
cwd = resolved;
|
|
435
|
+
}
|
|
436
|
+
const selector = lookup.workspaceName ?? workspaceSelector(tool, parts);
|
|
437
|
+
const allWorkspaces = runsInAllWorkspaces(tool, parts);
|
|
438
|
+
const inWorkspaceScope = (name) => allWorkspaces ? anyWorkspaceHasScript(context, name) : workspaceHasScript(context, selector, name);
|
|
439
|
+
// With discovered workspaces, an explicit selector means ONLY the selected
|
|
440
|
+
// packages: the root manifest's same-named script is not what runs, and a
|
|
441
|
+
// selector that matches no package is itself the error.
|
|
442
|
+
const selectedWorkspaces = selector && context.workspaces && !allWorkspaces
|
|
443
|
+
? selectWorkspaces(context, selector.replace(/^['"]|['"]$/g, '').replace(/^\.\.\./, '').replace(/\.\.\.$/, '').trim())
|
|
444
|
+
: undefined;
|
|
358
445
|
const inSubdir = cwd !== '.' && cwd !== '';
|
|
359
446
|
const dirPkg = inSubdir
|
|
360
|
-
? readPackageScripts(path.join(context.repoRoot, cwd, 'package.json'))
|
|
447
|
+
? readPackageScripts(context.repoRoot, path.join(context.repoRoot, cwd, 'package.json'))
|
|
361
448
|
: null;
|
|
362
449
|
// cd'd into a directory whose package.json we can't read — don't guess.
|
|
363
450
|
if (inSubdir && !dirPkg)
|
|
@@ -369,6 +456,23 @@ function findMissingScript(context, cwd, parts, scriptName, builtins, tool) {
|
|
|
369
456
|
for (const name of names) {
|
|
370
457
|
if (builtins.has(name))
|
|
371
458
|
continue;
|
|
459
|
+
// `pnpm vitest run`, `yarn tsc --noEmit`: no script of that name, but it is
|
|
460
|
+
// an installed dependency's binary — the package manager runs that instead.
|
|
461
|
+
if (lookup.allowBinary && isKnownBinary(context, name))
|
|
462
|
+
continue;
|
|
463
|
+
if (selectedWorkspaces) {
|
|
464
|
+
if (selectedWorkspaces.length === 0) {
|
|
465
|
+
if (context.workspacesTruncated)
|
|
466
|
+
continue; // only a sample of the workspace was read
|
|
467
|
+
return `no workspace matches "${selector}" for ${tool} script "${name}"`;
|
|
468
|
+
}
|
|
469
|
+
if (selectedWorkspaces.some((ws) => !!ws.scripts[name]))
|
|
470
|
+
continue;
|
|
471
|
+
const target = selectedWorkspaces.length === 1
|
|
472
|
+
? `${selectedWorkspaces[0].name ?? selectedWorkspaces[0].dir} (${selectedWorkspaces[0].dir}/package.json)`
|
|
473
|
+
: `the ${selectedWorkspaces.length} workspaces selected by "${selector}"`;
|
|
474
|
+
return `${tool} script "${name}" does not appear in ${target} scripts`;
|
|
475
|
+
}
|
|
372
476
|
if (dirPkg) {
|
|
373
477
|
// A command that runs inside a subdir resolves scripts ONLY from that
|
|
374
478
|
// subdir's manifest (pnpm/npm/yarn do not search parent directories) or
|
|
@@ -377,12 +481,12 @@ function findMissingScript(context, cwd, parts, scriptName, builtins, tool) {
|
|
|
377
481
|
// script.
|
|
378
482
|
if (dirPkg.scripts[name])
|
|
379
483
|
continue;
|
|
380
|
-
if (
|
|
484
|
+
if (inWorkspaceScope(name))
|
|
381
485
|
continue;
|
|
382
486
|
return `${tool} script "${name}" does not appear in ${cwd}/package.json scripts`;
|
|
383
487
|
}
|
|
384
|
-
// Repo-root context: the
|
|
385
|
-
if (
|
|
488
|
+
// Repo-root context: the workspace target(s) or the root manifest.
|
|
489
|
+
if (inWorkspaceScope(name))
|
|
386
490
|
continue;
|
|
387
491
|
if (context.packageJson.scripts[name])
|
|
388
492
|
continue;
|
|
@@ -390,6 +494,141 @@ function findMissingScript(context, cwd, parts, scriptName, builtins, tool) {
|
|
|
390
494
|
}
|
|
391
495
|
return null;
|
|
392
496
|
}
|
|
497
|
+
const BUILTINS_BY_TOOL = {
|
|
498
|
+
pnpm: PNPM_BUILTINS,
|
|
499
|
+
npm: NPM_BUILTINS,
|
|
500
|
+
yarn: YARN_BUILTINS,
|
|
501
|
+
// bun's own commands are filtered before this lookup (bare form only), so
|
|
502
|
+
// `bun run test` is judged against the manifest like any other script.
|
|
503
|
+
bun: new Set(),
|
|
504
|
+
};
|
|
505
|
+
/**
|
|
506
|
+
* Resolves which script (or file, for bun) a `pnpm`/`npm`/`yarn`/`bun` command
|
|
507
|
+
* invokes and checks it. Handles the `run` / `run-script` forms, the bare
|
|
508
|
+
* `pnpm <script>` / `yarn <script>` / `bun <script>` forms (which fall through
|
|
509
|
+
* to an installed binary), `yarn workspace <name> <script>`, and workspace or
|
|
510
|
+
* directory selectors.
|
|
511
|
+
*/
|
|
512
|
+
function validatePackageManagerScript(tool, parts, context, cwd, baseDir, onScript) {
|
|
513
|
+
const subIdx = firstNonFlagArgIndex(parts);
|
|
514
|
+
const sub = parts[subIdx];
|
|
515
|
+
if (!sub)
|
|
516
|
+
return null;
|
|
517
|
+
let explicitRun = false;
|
|
518
|
+
let nameIdx = subIdx;
|
|
519
|
+
let workspaceName;
|
|
520
|
+
if (RUN_ALIASES.has(sub)) {
|
|
521
|
+
explicitRun = true;
|
|
522
|
+
nameIdx = firstNonFlagArgIndex(parts, subIdx + 1);
|
|
523
|
+
}
|
|
524
|
+
else if (tool === 'npm') {
|
|
525
|
+
return null; // a bare `npm <x>` is an npm command, never a script
|
|
526
|
+
}
|
|
527
|
+
else if (tool === 'yarn' && sub === 'workspace') {
|
|
528
|
+
workspaceName = parts[subIdx + 1];
|
|
529
|
+
nameIdx = subIdx + 2;
|
|
530
|
+
if (RUN_ALIASES.has(parts[nameIdx] ?? '')) {
|
|
531
|
+
explicitRun = true;
|
|
532
|
+
nameIdx++;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
const scriptName = parts[nameIdx];
|
|
536
|
+
if (!scriptName || scriptName.startsWith('-'))
|
|
537
|
+
return null;
|
|
538
|
+
if (tool === 'bun') {
|
|
539
|
+
// `bun <x>` / `bun run <x>` also run files — a path is not a script name.
|
|
540
|
+
if (!explicitRun && BUN_BUILTINS.has(scriptName))
|
|
541
|
+
return null;
|
|
542
|
+
if (isLikelyFilePath(scriptName)) {
|
|
543
|
+
if (baseDir && /\.[cm]?[jt]sx?$/.test(scriptName) && !fileExists(baseDir, scriptName)) {
|
|
544
|
+
return `File "${scriptName}" referenced by "bun" does not appear to exist in the repository`;
|
|
545
|
+
}
|
|
546
|
+
return null;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
return findMissingScript(context, cwd, parts, scriptName, BUILTINS_BY_TOOL[tool], tool,
|
|
550
|
+
// npm/pnpm `run` only run scripts; every other form can fall through to a binary.
|
|
551
|
+
{ allowBinary: !(explicitRun && (tool === 'npm' || tool === 'pnpm')), workspaceName }, onScript);
|
|
552
|
+
}
|
|
553
|
+
// ── make targets ──────────────────────────────────────────────────────────────
|
|
554
|
+
/** make options whose value is the NEXT token (unless attached: `-Cdir`, `-j4`). */
|
|
555
|
+
const MAKE_FLAGS_WITH_VALUE = new Set([
|
|
556
|
+
'-C', '-f', '-o', '-W', '-I', '-E', '--directory', '--file', '--makefile', '--old-file', '--what-if',
|
|
557
|
+
'--include-dir', '--new-file', '--assume-old', '--assume-new', '--eval',
|
|
558
|
+
]);
|
|
559
|
+
/** Words that follow "make" in English prose (`make sure`), never checked as targets in a code span. */
|
|
560
|
+
const MAKE_PROSE_WORDS = new Set([
|
|
561
|
+
'sure', 'it', 'this', 'that', 'them', 'these', 'those', 'certain', 'sense', 'changes', 'room', 'use', 'way',
|
|
562
|
+
]);
|
|
563
|
+
/** make options with an OPTIONAL numeric value (`-j`, `-j 4`, `-l 2.5`). */
|
|
564
|
+
const MAKE_FLAGS_WITH_OPTIONAL_NUMBER = new Set(['-j', '-l', '--jobs', '--load-average', '--max-load']);
|
|
565
|
+
/**
|
|
566
|
+
* pcic-2b6.10: `make <target>` against the Makefile make would read. Reports a
|
|
567
|
+
* target only when a Makefile exists in the command's directory, this reader
|
|
568
|
+
* could enumerate every target it defines (no `include`, no computed names),
|
|
569
|
+
* and neither an explicit target, a `.PHONY` name nor a pattern rule covers it.
|
|
570
|
+
* Variable assignments (`make X=1`), file-path goals (`make build/app.o`) and
|
|
571
|
+
* names make could build from a same-stem source via its built-in implicit
|
|
572
|
+
* rules (`make hello` next to `hello.c`) are never reported.
|
|
573
|
+
*/
|
|
574
|
+
function validateMakeTargets(parts, context, cwd, makefileFor) {
|
|
575
|
+
let dir = cwd;
|
|
576
|
+
const goals = [];
|
|
577
|
+
for (let i = 1; i < parts.length; i++) {
|
|
578
|
+
const p = parts[i];
|
|
579
|
+
// Shell plumbing ends the make invocation.
|
|
580
|
+
if (/^(?:[|&<>#]|\d*>)/.test(p))
|
|
581
|
+
break;
|
|
582
|
+
if (p.startsWith('-')) {
|
|
583
|
+
const eq = p.indexOf('=');
|
|
584
|
+
const name = eq === -1 ? p : p.slice(0, eq);
|
|
585
|
+
if (name === '-f' || name === '--file' || name === '--makefile' || /^-f./.test(p))
|
|
586
|
+
return null; // another file
|
|
587
|
+
let value;
|
|
588
|
+
if (MAKE_FLAGS_WITH_VALUE.has(name)) {
|
|
589
|
+
value = eq !== -1 ? p.slice(eq + 1) : parts[++i];
|
|
590
|
+
}
|
|
591
|
+
else if (/^-C./.test(p)) {
|
|
592
|
+
value = p.slice(2);
|
|
593
|
+
}
|
|
594
|
+
else if (MAKE_FLAGS_WITH_OPTIONAL_NUMBER.has(p) && /^\d+(?:\.\d+)?$/.test(parts[i + 1] ?? '')) {
|
|
595
|
+
i++;
|
|
596
|
+
}
|
|
597
|
+
if ((name === '-C' || name === '--directory' || /^-C./.test(p)) && value !== undefined) {
|
|
598
|
+
dir = resolveCwd(dir, value);
|
|
599
|
+
}
|
|
600
|
+
continue;
|
|
601
|
+
}
|
|
602
|
+
if (p.includes('='))
|
|
603
|
+
continue; // `make CC=clang build`
|
|
604
|
+
goals.push(p);
|
|
605
|
+
}
|
|
606
|
+
if (dir === null || goals.length === 0)
|
|
607
|
+
return null;
|
|
608
|
+
const facts = makefileFor(dir);
|
|
609
|
+
if (!facts || facts.unverifiable)
|
|
610
|
+
return null;
|
|
611
|
+
const baseDir = dir === '.' ? context.repoRoot : path.join(context.repoRoot, dir);
|
|
612
|
+
let entries;
|
|
613
|
+
for (const goal of goals) {
|
|
614
|
+
const target = goal.replace(/^['"]|['"]$/g, '');
|
|
615
|
+
if (!target || isLikelyFilePath(target) || !/^[A-Za-z0-9_.+-]+$/.test(target))
|
|
616
|
+
continue;
|
|
617
|
+
if (makefileDefines(facts, target))
|
|
618
|
+
continue;
|
|
619
|
+
// make can build `target` from `target.c` etc. with its built-in rules.
|
|
620
|
+
try {
|
|
621
|
+
entries ??= fs.readdirSync(baseDir);
|
|
622
|
+
}
|
|
623
|
+
catch {
|
|
624
|
+
entries = [];
|
|
625
|
+
}
|
|
626
|
+
if (entries.some((e) => e === target || e.startsWith(`${target}.`)))
|
|
627
|
+
continue;
|
|
628
|
+
return `make target "${target}" does not appear in ${facts.file}`;
|
|
629
|
+
}
|
|
630
|
+
return null;
|
|
631
|
+
}
|
|
393
632
|
/**
|
|
394
633
|
* Validates a single command segment against the repo context.
|
|
395
634
|
* Returns a human-readable error string, or null if the command looks valid.
|
|
@@ -397,7 +636,7 @@ function findMissingScript(context, cwd, parts, scriptName, builtins, tool) {
|
|
|
397
636
|
* @param cwd Repo-relative directory the command runs in ('.' = root, null =
|
|
398
637
|
* unknown after an unresolvable `cd` — validation is skipped).
|
|
399
638
|
*/
|
|
400
|
-
function validateSegment(seg, context, cwd = '.') {
|
|
639
|
+
function validateSegment(seg, context, cwd = '.', onScript, opts = {}) {
|
|
401
640
|
if (PLACEHOLDER_RE.test(seg))
|
|
402
641
|
return null;
|
|
403
642
|
const parts = seg.trim().split(/\s+/);
|
|
@@ -411,35 +650,8 @@ function validateSegment(seg, context, cwd = '.') {
|
|
|
411
650
|
? path.join(context.repoRoot, cwd)
|
|
412
651
|
: context.repoRoot;
|
|
413
652
|
// ── Package manager scripts ────────────────────────────────────────────────
|
|
414
|
-
if (tool === 'pnpm') {
|
|
415
|
-
|
|
416
|
-
const sub = parts[subIdx];
|
|
417
|
-
if (!sub)
|
|
418
|
-
return null;
|
|
419
|
-
const scriptName = sub === 'run' ? parts[subIdx + 1] : sub;
|
|
420
|
-
if (!scriptName)
|
|
421
|
-
return null;
|
|
422
|
-
return findMissingScript(context, cwd, parts, scriptName, PNPM_BUILTINS, 'pnpm');
|
|
423
|
-
}
|
|
424
|
-
if (tool === 'npm') {
|
|
425
|
-
const subIdx = firstNonFlagArgIndex(parts);
|
|
426
|
-
if (parts[subIdx] === 'run' && parts[subIdx + 1]) {
|
|
427
|
-
return findMissingScript(context, cwd, parts, parts[subIdx + 1], NPM_BUILTINS, 'npm');
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
if (tool === 'yarn') {
|
|
431
|
-
const subIdx = firstNonFlagArgIndex(parts);
|
|
432
|
-
const sub = parts[subIdx];
|
|
433
|
-
if (!sub)
|
|
434
|
-
return null;
|
|
435
|
-
const scriptName = sub === 'run'
|
|
436
|
-
? parts[subIdx + 1]
|
|
437
|
-
: sub === 'workspace'
|
|
438
|
-
? parts[subIdx + 2]
|
|
439
|
-
: sub;
|
|
440
|
-
if (!scriptName)
|
|
441
|
-
return null;
|
|
442
|
-
return findMissingScript(context, cwd, parts, scriptName, YARN_BUILTINS, 'yarn');
|
|
653
|
+
if (tool === 'pnpm' || tool === 'npm' || tool === 'yarn' || tool === 'bun') {
|
|
654
|
+
return validatePackageManagerScript(tool, parts, context, cwd, baseDir, onScript);
|
|
443
655
|
}
|
|
444
656
|
// ── File-executing commands ────────────────────────────────────────────────
|
|
445
657
|
const FILE_EXECUTORS = ['node', 'tsx', 'ts-node', 'bash', 'sh', 'python', 'python3'];
|
|
@@ -451,8 +663,29 @@ function validateSegment(seg, context, cwd = '.') {
|
|
|
451
663
|
return `File "${filePart}" referenced by "${tool}" does not appear to exist in the repository`;
|
|
452
664
|
}
|
|
453
665
|
}
|
|
666
|
+
// ── make <target> ──────────────────────────────────────────────────────────
|
|
667
|
+
if (tool === 'make' && cwd !== null && opts.makefileFor) {
|
|
668
|
+
// An instruction file that sits next to its own Makefile (`tools/AGENTS.md`
|
|
669
|
+
// beside `tools/Makefile`) documents that one, not the root's.
|
|
670
|
+
const fileDir = opts.fileDir ?? '.';
|
|
671
|
+
const makeCwd = cwd === '.' && fileDir !== '.' && opts.makefileFor(fileDir) ? fileDir : cwd;
|
|
672
|
+
// A code span like `make sure` is English, not a make invocation.
|
|
673
|
+
if (!opts.fenced && parts.length === 2 && MAKE_PROSE_WORDS.has(parts[1].toLowerCase()))
|
|
674
|
+
return null;
|
|
675
|
+
return validateMakeTargets(parts, context, makeCwd, opts.makefileFor);
|
|
676
|
+
}
|
|
454
677
|
// ── Direct script invocations: ./scripts/foo.sh ───────────────────────────
|
|
455
678
|
if (baseDir && (tool.startsWith('./') || tool.startsWith('../'))) {
|
|
679
|
+
// pcic-2b6.8: a bare `./src` or `./docs/` in an inline code span is a
|
|
680
|
+
// directory mention, not a script invocation — it is dead-references' to
|
|
681
|
+
// judge. Only a shell-fence line (meant to be run) still reports an absent
|
|
682
|
+
// extensionless `./gradlew`; an existing directory is never a missing script.
|
|
683
|
+
if (parts.length === 1 && path.extname(tool.replace(/\/+$/, '')) === '') {
|
|
684
|
+
if (isDirectory(baseDir, tool))
|
|
685
|
+
return null;
|
|
686
|
+
if (!opts.fenced || tool.endsWith('/'))
|
|
687
|
+
return null;
|
|
688
|
+
}
|
|
456
689
|
if (!fileExists(baseDir, tool)) {
|
|
457
690
|
return `Script "${tool}" does not appear to exist in the repository`;
|
|
458
691
|
}
|
|
@@ -489,12 +722,53 @@ function validateSegment(seg, context, cwd = '.') {
|
|
|
489
722
|
* out of scope.
|
|
490
723
|
*/
|
|
491
724
|
export function detectCommandValidity(context) {
|
|
725
|
+
// Copies: the cached analysis is shared with manifest-consistency.
|
|
726
|
+
return analyzeCommands(context).issues.map((issue) => ({ ...issue }));
|
|
727
|
+
}
|
|
728
|
+
/**
|
|
729
|
+
* Both command-validity and manifest-consistency need the analysis; compute it
|
|
730
|
+
* once per context.
|
|
731
|
+
*/
|
|
732
|
+
const analysisCache = new WeakMap();
|
|
733
|
+
export function analyzeCommands(context) {
|
|
734
|
+
let analysis = analysisCache.get(context);
|
|
735
|
+
if (!analysis) {
|
|
736
|
+
analysis = computeCommandAnalysis(context);
|
|
737
|
+
analysisCache.set(context, analysis);
|
|
738
|
+
}
|
|
739
|
+
return analysis;
|
|
740
|
+
}
|
|
741
|
+
function computeCommandAnalysis(context) {
|
|
492
742
|
const issues = [];
|
|
743
|
+
const evaluatedScripts = new Map();
|
|
493
744
|
const reported = new Set();
|
|
745
|
+
// Makefiles by repo-relative directory: the root one comes from the context,
|
|
746
|
+
// subdirectory ones (`make -C dir`, `cd dir && make`) are read once each.
|
|
747
|
+
const makefiles = new Map();
|
|
748
|
+
const makefileFor = (dir) => {
|
|
749
|
+
if (dir === '.' || dir === '')
|
|
750
|
+
return context.makefile;
|
|
751
|
+
if (!makefiles.has(dir))
|
|
752
|
+
makefiles.set(dir, readMakefile(context.repoRoot, dir));
|
|
753
|
+
return makefiles.get(dir);
|
|
754
|
+
};
|
|
494
755
|
for (const file of context.files) {
|
|
495
756
|
const commands = extractCommands(file.content);
|
|
757
|
+
const evaluated = new Set();
|
|
758
|
+
const fileDir = path.relative(context.repoRoot, path.dirname(file.path)).replace(/\\/g, '/') || '.';
|
|
759
|
+
evaluatedScripts.set(file.path, evaluated);
|
|
496
760
|
for (const cmd of commands) {
|
|
497
|
-
|
|
761
|
+
// pcic-2b6.13: `cmd.cwd ?? '.'` used to turn an unknown directory (null,
|
|
762
|
+
// after `cd /srv/app` or `cd $DIR`) into the repo root and validate the
|
|
763
|
+
// command against the root manifest. Only a command with no cwd at all
|
|
764
|
+
// (prose, which never carries a `cd`) runs from the root; null stays
|
|
765
|
+
// unverifiable.
|
|
766
|
+
const cwd = cmd.cwd === undefined ? '.' : cmd.cwd;
|
|
767
|
+
const error = validateSegment(cmd.text, context, cwd, (name) => evaluated.add(`${cmd.line}:${name}`), {
|
|
768
|
+
fenced: cmd.fenced === true,
|
|
769
|
+
makefileFor,
|
|
770
|
+
fileDir: fileDir.startsWith('..') ? '.' : fileDir,
|
|
771
|
+
});
|
|
498
772
|
if (!error)
|
|
499
773
|
continue;
|
|
500
774
|
// Deduplicate same command text appearing twice in the same file
|
|
@@ -503,7 +777,7 @@ export function detectCommandValidity(context) {
|
|
|
503
777
|
continue;
|
|
504
778
|
reported.add(dedupeKey);
|
|
505
779
|
issues.push({
|
|
506
|
-
id: issueId(file
|
|
780
|
+
id: issueId(fileIdPath(file), cmd.text),
|
|
507
781
|
severity: 'warning',
|
|
508
782
|
category: 'command_validity',
|
|
509
783
|
title: `Possible reference to missing command or file: \`${cmd.text.split(/\s+/).slice(0, 3).join(' ')}\``,
|
|
@@ -517,6 +791,6 @@ export function detectCommandValidity(context) {
|
|
|
517
791
|
});
|
|
518
792
|
}
|
|
519
793
|
}
|
|
520
|
-
return issues;
|
|
794
|
+
return { issues, evaluatedScripts };
|
|
521
795
|
}
|
|
522
796
|
//# sourceMappingURL=command-validity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-validity.js","sourceRoot":"","sources":["../src/command-validity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-validity.js","sourceRoot":"","sources":["../src/command-validity.ts"],"names":[],"mappings":"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"}
|