claude-crap 0.2.0 → 0.3.0
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 +33 -0
- package/README.md +4 -3
- package/dist/index.js +64 -1
- package/dist/index.js.map +1 -1
- package/dist/scanner/bootstrap.d.ts +89 -0
- package/dist/scanner/bootstrap.d.ts.map +1 -0
- package/dist/scanner/bootstrap.js +278 -0
- package/dist/scanner/bootstrap.js.map +1 -0
- package/dist/scanner/index.d.ts +1 -0
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/index.js +1 -0
- package/dist/scanner/index.js.map +1 -1
- package/dist/schemas/tool-schemas.d.ts +12 -0
- package/dist/schemas/tool-schemas.d.ts.map +1 -1
- package/dist/schemas/tool-schemas.js +12 -0
- package/dist/schemas/tool-schemas.js.map +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/bundle/mcp-server.mjs +280 -0
- package/plugin/bundle/mcp-server.mjs.map +4 -4
- package/plugin/package.json +1 -1
- package/src/index.ts +78 -0
- package/src/scanner/bootstrap.ts +383 -0
- package/src/scanner/index.ts +8 -0
- package/src/schemas/tool-schemas.ts +14 -0
- package/src/tests/integration/mcp-server.integration.test.ts +2 -1
- package/src/tests/scanner-bootstrap.test.ts +186 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,39 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.3.0] - 2026-04-12
|
|
9
|
+
|
|
10
|
+
Scanner bootstrapping and automated releases. Projects with no
|
|
11
|
+
scanner configured now get one installed automatically, and the
|
|
12
|
+
release pipeline is fully automated via GitHub Actions.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **`bootstrap_scanner` MCP tool** — detects the project type
|
|
17
|
+
(JavaScript, TypeScript, Python, Java, C#) and installs the
|
|
18
|
+
appropriate scanner:
|
|
19
|
+
- JS/TS → ESLint (`npm install --save-dev` + `eslint.config.mjs`)
|
|
20
|
+
- Python → Bandit (returns install instructions)
|
|
21
|
+
- Java / C# → Semgrep (returns install instructions)
|
|
22
|
+
- Unknown → Semgrep (polyglot fallback)
|
|
23
|
+
After installation, runs `auto_scan` to immediately ingest findings.
|
|
24
|
+
- **`src/scanner/bootstrap.ts`** — project-type detection aligned
|
|
25
|
+
with the five tree-sitter supported languages (`javascript`,
|
|
26
|
+
`typescript`, `python`, `java`, `c_sharp`), ESLint flat config
|
|
27
|
+
generation, and npm install orchestration.
|
|
28
|
+
- **`.github/workflows/release.yml`** — automated release pipeline.
|
|
29
|
+
Push a `v*` tag to trigger: typecheck → build → test → npm publish
|
|
30
|
+
→ GitHub Release with changelog extraction. Requires `NPM_TOKEN`
|
|
31
|
+
secret.
|
|
32
|
+
- **17 new tests** in `scanner-bootstrap.test.ts` for project-type
|
|
33
|
+
detection and ESLint config generation. Suite total: 225 tests,
|
|
34
|
+
37 suites.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- MCP tools count: 8 → 9 (added `bootstrap_scanner`).
|
|
39
|
+
- Test counts in README updated to 225 / 37.
|
|
40
|
+
|
|
8
41
|
## [0.2.0] - 2026-04-12
|
|
9
42
|
|
|
10
43
|
Built-in scanner auto-detection and execution. Users now get real
|
package/README.md
CHANGED
|
@@ -331,7 +331,7 @@ behind each component.
|
|
|
331
331
|
|
|
332
332
|
## MCP Tools
|
|
333
333
|
|
|
334
|
-
The MCP server exposes
|
|
334
|
+
The MCP server exposes nine deterministic tools and two resources.
|
|
335
335
|
Every tool has a strict JSON Schema (Draft-07) with
|
|
336
336
|
`additionalProperties: false`, `enum`, `pattern`, and numeric bounds,
|
|
337
337
|
so any drift from the contract produces a deterministic error the
|
|
@@ -362,6 +362,7 @@ platform is designed to be used:
|
|
|
362
362
|
| `require_test_harness` | Check whether a production source file has an accompanying test file in any of the supported conventions. | `filePath` |
|
|
363
363
|
| `score_project` | Aggregate the entire workspace into Maintainability / Reliability / Security / Overall A..E grades with Markdown and JSON output. | `format` (`markdown` / `json` / `both`) |
|
|
364
364
|
| `auto_scan` | Auto-detect available scanners (ESLint, Semgrep, Bandit, Stryker) in the workspace, run them, and ingest findings into the SARIF store. | (none — fully automatic) |
|
|
365
|
+
| `bootstrap_scanner` | Detect project type (JS/TS/Python/Java/C#), install the right scanner, create minimal config, and run auto_scan to verify. | (none — fully automatic) |
|
|
365
366
|
|
|
366
367
|
**Available MCP resources:**
|
|
367
368
|
|
|
@@ -456,7 +457,7 @@ npm run build:watch
|
|
|
456
457
|
# Run in dev mode (tsx, no build step)
|
|
457
458
|
npm run dev
|
|
458
459
|
|
|
459
|
-
# Full native test suite —
|
|
460
|
+
# Full native test suite — 225 tests across 37 suites
|
|
460
461
|
npm test
|
|
461
462
|
|
|
462
463
|
# Narrow the feedback loop to one domain while iterating
|
|
@@ -547,7 +548,7 @@ and paste the bundle as the issue body.
|
|
|
547
548
|
PreToolUse hook will block you if you try. Add a characterization
|
|
548
549
|
test that pins the current behavior, then the attack test that
|
|
549
550
|
demonstrates the bug, then the patch.
|
|
550
|
-
3. **Run `npm test`.** The full suite must stay at
|
|
551
|
+
3. **Run `npm test`.** The full suite must stay at 225 / 225 green.
|
|
551
552
|
If you add new tests, update the count in the
|
|
552
553
|
[Development](#development) section and in `CHANGELOG.md`.
|
|
553
554
|
4. **Update the `CHANGELOG.md`** with an entry describing your
|
package/dist/index.js
CHANGED
|
@@ -46,7 +46,8 @@ import { loadCrapConfig, CrapConfigError } from "./crap-config.js";
|
|
|
46
46
|
import { findTestFile } from "./tools/test-harness.js";
|
|
47
47
|
import { resolveWithinWorkspace } from "./workspace-guard.js";
|
|
48
48
|
import { autoScan } from "./scanner/auto-scan.js";
|
|
49
|
-
import {
|
|
49
|
+
import { bootstrapScanner } from "./scanner/bootstrap.js";
|
|
50
|
+
import { autoScanSchema, bootstrapScannerSchema, computeCrapSchema, computeTdrSchema, analyzeFileAstSchema, ingestSarifSchema, ingestScannerOutputSchema, requireTestHarnessSchema, scoreProjectSchema, } from "./schemas/tool-schemas.js";
|
|
50
51
|
// IMPORTANT: the MCP stdio transport uses stdout for JSON-RPC framing.
|
|
51
52
|
// Anything the server logs MUST go to stderr (fd 2) to avoid corrupting
|
|
52
53
|
// the wire format. We configure pino explicitly to write to fd 2.
|
|
@@ -165,6 +166,11 @@ async function main() {
|
|
|
165
166
|
description: "Auto-detect available scanners (ESLint, Semgrep, Bandit, Stryker) in the workspace, run them, and ingest findings into the SARIF store.",
|
|
166
167
|
inputSchema: autoScanSchema,
|
|
167
168
|
},
|
|
169
|
+
{
|
|
170
|
+
name: "bootstrap_scanner",
|
|
171
|
+
description: "Detect project type, install the right scanner (ESLint for JS/TS, Bandit for Python, Semgrep for Java/C#), create minimal config, and run auto_scan to verify.",
|
|
172
|
+
inputSchema: bootstrapScannerSchema,
|
|
173
|
+
},
|
|
168
174
|
],
|
|
169
175
|
}));
|
|
170
176
|
// ------------------------------------------------------------------
|
|
@@ -433,6 +439,32 @@ async function main() {
|
|
|
433
439
|
};
|
|
434
440
|
}
|
|
435
441
|
}
|
|
442
|
+
case "bootstrap_scanner": {
|
|
443
|
+
logger.info({ tool: "bootstrap_scanner" }, "Tool call received");
|
|
444
|
+
try {
|
|
445
|
+
const result = await bootstrapScanner(config.pluginRoot, sarifStore, logger);
|
|
446
|
+
const markdown = renderBootstrapMarkdown(result);
|
|
447
|
+
return {
|
|
448
|
+
content: [
|
|
449
|
+
{ type: "text", text: markdown },
|
|
450
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
451
|
+
],
|
|
452
|
+
isError: !result.success,
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
catch (err) {
|
|
456
|
+
logger.error({ err }, "bootstrap_scanner failed");
|
|
457
|
+
return {
|
|
458
|
+
content: [
|
|
459
|
+
{
|
|
460
|
+
type: "text",
|
|
461
|
+
text: JSON.stringify({ tool: "bootstrap_scanner", status: "error", message: err.message }, null, 2),
|
|
462
|
+
},
|
|
463
|
+
],
|
|
464
|
+
isError: true,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
}
|
|
436
468
|
case "auto_scan": {
|
|
437
469
|
logger.info({ tool: "auto_scan" }, "Tool call received");
|
|
438
470
|
try {
|
|
@@ -531,6 +563,37 @@ async function main() {
|
|
|
531
563
|
logger.warn({ err: err.message }, "auto-scan failed — continuing without it");
|
|
532
564
|
});
|
|
533
565
|
}
|
|
566
|
+
/**
|
|
567
|
+
* Render a human-readable Markdown summary of a bootstrap result.
|
|
568
|
+
*/
|
|
569
|
+
function renderBootstrapMarkdown(result) {
|
|
570
|
+
const lines = ["## claude-crap :: bootstrap scanner\n"];
|
|
571
|
+
lines.push(`**Project type:** ${result.projectType}`);
|
|
572
|
+
if (result.alreadyConfigured) {
|
|
573
|
+
lines.push(`**Status:** Scanner(s) already configured: ${result.existingScanners.join(", ")}`);
|
|
574
|
+
lines.push("\nNo installation needed. Run `auto_scan` to ingest findings.");
|
|
575
|
+
return lines.join("\n");
|
|
576
|
+
}
|
|
577
|
+
lines.push("");
|
|
578
|
+
if (result.steps.length > 0) {
|
|
579
|
+
lines.push("### Steps\n");
|
|
580
|
+
lines.push("| Action | Status | Detail |");
|
|
581
|
+
lines.push("| ------ | :----: | ------ |");
|
|
582
|
+
for (const s of result.steps) {
|
|
583
|
+
const status = s.success ? "ok" : "failed";
|
|
584
|
+
lines.push(`| ${s.action} | ${status} | ${s.detail} |`);
|
|
585
|
+
}
|
|
586
|
+
lines.push("");
|
|
587
|
+
}
|
|
588
|
+
if (result.autoScanResult) {
|
|
589
|
+
const r = result.autoScanResult;
|
|
590
|
+
const scanners = r.results.filter((s) => s.success).map((s) => s.scanner);
|
|
591
|
+
lines.push(`**Auto-scan:** ${r.totalFindings} finding(s) ingested from ${scanners.join(", ") || "no scanners"} in ${(r.totalDurationMs / 1000).toFixed(1)}s`);
|
|
592
|
+
lines.push("");
|
|
593
|
+
}
|
|
594
|
+
lines.push(`**Summary:** ${result.summary}`);
|
|
595
|
+
return lines.join("\n");
|
|
596
|
+
}
|
|
534
597
|
/**
|
|
535
598
|
* Render a human-readable Markdown summary of an auto-scan result.
|
|
536
599
|
*/
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bootstrap a scanner for projects that don't have one configured.
|
|
3
|
+
*
|
|
4
|
+
* Detects the project type from workspace signals (package.json,
|
|
5
|
+
* tsconfig.json, pyproject.toml, pom.xml, *.csproj, etc.), installs
|
|
6
|
+
* the appropriate scanner, creates a minimal config file, and runs
|
|
7
|
+
* `autoScan()` to verify and ingest findings immediately.
|
|
8
|
+
*
|
|
9
|
+
* Coverage maps to the five languages the tree-sitter engine supports:
|
|
10
|
+
*
|
|
11
|
+
* - JavaScript / TypeScript → ESLint (npm install + flat config)
|
|
12
|
+
* - Python → Bandit (install instructions only — virtualenv boundary)
|
|
13
|
+
* - Java → Semgrep (install instructions)
|
|
14
|
+
* - C# → Semgrep (install instructions)
|
|
15
|
+
* - Unknown → Semgrep (polyglot fallback)
|
|
16
|
+
*
|
|
17
|
+
* For JS/TS projects the tool runs `npm install --save-dev` and writes
|
|
18
|
+
* an `eslint.config.mjs`. For all other languages it returns manual
|
|
19
|
+
* install instructions rather than executing package managers whose
|
|
20
|
+
* environment assumptions may not hold.
|
|
21
|
+
*
|
|
22
|
+
* @module scanner/bootstrap
|
|
23
|
+
*/
|
|
24
|
+
import type { Logger } from "pino";
|
|
25
|
+
import { type AutoScanResult } from "./auto-scan.js";
|
|
26
|
+
import type { SarifStore } from "../sarif/sarif-store.js";
|
|
27
|
+
/**
|
|
28
|
+
* Detected project type, aligned with tree-sitter supported languages.
|
|
29
|
+
*/
|
|
30
|
+
export type ProjectType = "javascript" | "typescript" | "python" | "java" | "csharp" | "unknown";
|
|
31
|
+
/**
|
|
32
|
+
* A single step in the bootstrap process.
|
|
33
|
+
*/
|
|
34
|
+
export interface BootstrapStep {
|
|
35
|
+
/** What was attempted (e.g. "install eslint", "create eslint.config.mjs"). */
|
|
36
|
+
action: string;
|
|
37
|
+
/** Whether the step completed successfully. */
|
|
38
|
+
success: boolean;
|
|
39
|
+
/** Human-readable detail (command output, error message, or instruction). */
|
|
40
|
+
detail: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Complete result of a bootstrap_scanner invocation.
|
|
44
|
+
*/
|
|
45
|
+
export interface BootstrapResult {
|
|
46
|
+
/** Detected project type based on workspace signals. */
|
|
47
|
+
projectType: ProjectType;
|
|
48
|
+
/** Whether a scanner was already configured (detected by detector.ts). */
|
|
49
|
+
alreadyConfigured: boolean;
|
|
50
|
+
/** Which scanners were already available, if any. */
|
|
51
|
+
existingScanners: string[];
|
|
52
|
+
/** Steps executed (or instructions returned) during bootstrap. */
|
|
53
|
+
steps: BootstrapStep[];
|
|
54
|
+
/** The auto-scan result after installation (null if skipped). */
|
|
55
|
+
autoScanResult: AutoScanResult | null;
|
|
56
|
+
/** Whether the overall bootstrap succeeded. */
|
|
57
|
+
success: boolean;
|
|
58
|
+
/** Summary message suitable for display. */
|
|
59
|
+
summary: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Detect the project type from workspace signals.
|
|
63
|
+
*
|
|
64
|
+
* Checks in priority order: TypeScript, JavaScript, Python, Java,
|
|
65
|
+
* C#, then unknown. TypeScript wins over plain JavaScript because
|
|
66
|
+
* `tsconfig.json` implies a superset.
|
|
67
|
+
*/
|
|
68
|
+
export declare function detectProjectType(workspaceRoot: string): ProjectType;
|
|
69
|
+
/**
|
|
70
|
+
* Generate a minimal ESLint flat config (ESLint 9+).
|
|
71
|
+
*
|
|
72
|
+
* @param isTypeScript Include typescript-eslint when true.
|
|
73
|
+
* @returns The config file content as a string.
|
|
74
|
+
*/
|
|
75
|
+
export declare function generateEslintConfig(isTypeScript: boolean): string;
|
|
76
|
+
/**
|
|
77
|
+
* Bootstrap a scanner for the current workspace.
|
|
78
|
+
*
|
|
79
|
+
* 1. Check if a scanner is already configured (short-circuit if so)
|
|
80
|
+
* 2. Detect the project type
|
|
81
|
+
* 3. Install the recommended scanner (or return instructions)
|
|
82
|
+
* 4. Run auto_scan to verify and ingest findings
|
|
83
|
+
*
|
|
84
|
+
* @param workspaceRoot Absolute path to the project root.
|
|
85
|
+
* @param sarifStore Live SARIF store for auto-scan ingestion.
|
|
86
|
+
* @param logger Pino logger for progress reporting.
|
|
87
|
+
*/
|
|
88
|
+
export declare function bootstrapScanner(workspaceRoot: string, sarifStore: SarifStore, logger: Logger): Promise<BootstrapResult>;
|
|
89
|
+
//# sourceMappingURL=bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/scanner/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,WAAW,EAAE,WAAW,CAAC;IACzB,0EAA0E;IAC1E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kEAAkE;IAClE,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,iEAAiE;IACjE,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CA+BpE;AAID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAwBlE;AAuHD;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CA+F1B"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bootstrap a scanner for projects that don't have one configured.
|
|
3
|
+
*
|
|
4
|
+
* Detects the project type from workspace signals (package.json,
|
|
5
|
+
* tsconfig.json, pyproject.toml, pom.xml, *.csproj, etc.), installs
|
|
6
|
+
* the appropriate scanner, creates a minimal config file, and runs
|
|
7
|
+
* `autoScan()` to verify and ingest findings immediately.
|
|
8
|
+
*
|
|
9
|
+
* Coverage maps to the five languages the tree-sitter engine supports:
|
|
10
|
+
*
|
|
11
|
+
* - JavaScript / TypeScript → ESLint (npm install + flat config)
|
|
12
|
+
* - Python → Bandit (install instructions only — virtualenv boundary)
|
|
13
|
+
* - Java → Semgrep (install instructions)
|
|
14
|
+
* - C# → Semgrep (install instructions)
|
|
15
|
+
* - Unknown → Semgrep (polyglot fallback)
|
|
16
|
+
*
|
|
17
|
+
* For JS/TS projects the tool runs `npm install --save-dev` and writes
|
|
18
|
+
* an `eslint.config.mjs`. For all other languages it returns manual
|
|
19
|
+
* install instructions rather than executing package managers whose
|
|
20
|
+
* environment assumptions may not hold.
|
|
21
|
+
*
|
|
22
|
+
* @module scanner/bootstrap
|
|
23
|
+
*/
|
|
24
|
+
import { existsSync, writeFileSync, readdirSync } from "node:fs";
|
|
25
|
+
import { join } from "node:path";
|
|
26
|
+
import { execFile } from "node:child_process";
|
|
27
|
+
import { detectScanners } from "./detector.js";
|
|
28
|
+
import { autoScan } from "./auto-scan.js";
|
|
29
|
+
// ── Project type detection ─────────────────────────────────────────
|
|
30
|
+
/**
|
|
31
|
+
* Detect the project type from workspace signals.
|
|
32
|
+
*
|
|
33
|
+
* Checks in priority order: TypeScript, JavaScript, Python, Java,
|
|
34
|
+
* C#, then unknown. TypeScript wins over plain JavaScript because
|
|
35
|
+
* `tsconfig.json` implies a superset.
|
|
36
|
+
*/
|
|
37
|
+
export function detectProjectType(workspaceRoot) {
|
|
38
|
+
const has = (file) => existsSync(join(workspaceRoot, file));
|
|
39
|
+
// JS/TS detection — package.json is the anchor
|
|
40
|
+
if (has("package.json")) {
|
|
41
|
+
if (has("tsconfig.json"))
|
|
42
|
+
return "typescript";
|
|
43
|
+
return "javascript";
|
|
44
|
+
}
|
|
45
|
+
// Python detection
|
|
46
|
+
if (has("pyproject.toml") || has("setup.py") || has("requirements.txt")) {
|
|
47
|
+
return "python";
|
|
48
|
+
}
|
|
49
|
+
// Java detection
|
|
50
|
+
if (has("pom.xml") || has("build.gradle") || has("build.gradle.kts")) {
|
|
51
|
+
return "java";
|
|
52
|
+
}
|
|
53
|
+
// C# detection
|
|
54
|
+
if (has("Directory.Build.props"))
|
|
55
|
+
return "csharp";
|
|
56
|
+
try {
|
|
57
|
+
const entries = readdirSync(workspaceRoot);
|
|
58
|
+
if (entries.some((e) => e.endsWith(".csproj") || e.endsWith(".sln"))) {
|
|
59
|
+
return "csharp";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// readdirSync can fail on permissions — fall through
|
|
64
|
+
}
|
|
65
|
+
return "unknown";
|
|
66
|
+
}
|
|
67
|
+
// ── ESLint config generation ───────────────────────────────────────
|
|
68
|
+
/**
|
|
69
|
+
* Generate a minimal ESLint flat config (ESLint 9+).
|
|
70
|
+
*
|
|
71
|
+
* @param isTypeScript Include typescript-eslint when true.
|
|
72
|
+
* @returns The config file content as a string.
|
|
73
|
+
*/
|
|
74
|
+
export function generateEslintConfig(isTypeScript) {
|
|
75
|
+
if (isTypeScript) {
|
|
76
|
+
return `import js from "@eslint/js";
|
|
77
|
+
import tseslint from "typescript-eslint";
|
|
78
|
+
|
|
79
|
+
export default tseslint.config(
|
|
80
|
+
js.configs.recommended,
|
|
81
|
+
...tseslint.configs.recommended,
|
|
82
|
+
{
|
|
83
|
+
ignores: ["dist/", "node_modules/", "coverage/"],
|
|
84
|
+
},
|
|
85
|
+
);
|
|
86
|
+
`;
|
|
87
|
+
}
|
|
88
|
+
return `import js from "@eslint/js";
|
|
89
|
+
|
|
90
|
+
export default [
|
|
91
|
+
js.configs.recommended,
|
|
92
|
+
{
|
|
93
|
+
ignores: ["dist/", "node_modules/", "coverage/"],
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
`;
|
|
97
|
+
}
|
|
98
|
+
// ── Installation helpers ───────────────────────────────────────────
|
|
99
|
+
/**
|
|
100
|
+
* Run `npm install --save-dev` for the given packages.
|
|
101
|
+
*/
|
|
102
|
+
function npmInstall(workspaceRoot, packages) {
|
|
103
|
+
return new Promise((resolve) => {
|
|
104
|
+
execFile("npm", ["install", "--save-dev", ...packages], {
|
|
105
|
+
cwd: workspaceRoot,
|
|
106
|
+
timeout: 120_000,
|
|
107
|
+
env: { ...process.env, FORCE_COLOR: "0" },
|
|
108
|
+
}, (err, stdout, stderr) => {
|
|
109
|
+
if (err) {
|
|
110
|
+
resolve({
|
|
111
|
+
action: `npm install --save-dev ${packages.join(" ")}`,
|
|
112
|
+
success: false,
|
|
113
|
+
detail: stderr || err.message,
|
|
114
|
+
});
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
resolve({
|
|
118
|
+
action: `npm install --save-dev ${packages.join(" ")}`,
|
|
119
|
+
success: true,
|
|
120
|
+
detail: `installed ${packages.join(", ")}`,
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Write the ESLint config file to the workspace root.
|
|
127
|
+
* Returns failure if the file already exists.
|
|
128
|
+
*/
|
|
129
|
+
function writeEslintConfigFile(workspaceRoot, isTypeScript) {
|
|
130
|
+
const configPath = join(workspaceRoot, "eslint.config.mjs");
|
|
131
|
+
if (existsSync(configPath)) {
|
|
132
|
+
return {
|
|
133
|
+
action: "create eslint.config.mjs",
|
|
134
|
+
success: true,
|
|
135
|
+
detail: "eslint.config.mjs already exists — skipped",
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
try {
|
|
139
|
+
writeFileSync(configPath, generateEslintConfig(isTypeScript), "utf-8");
|
|
140
|
+
return {
|
|
141
|
+
action: "create eslint.config.mjs",
|
|
142
|
+
success: true,
|
|
143
|
+
detail: `created eslint.config.mjs (${isTypeScript ? "TypeScript" : "JavaScript"} template)`,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
return {
|
|
148
|
+
action: "create eslint.config.mjs",
|
|
149
|
+
success: false,
|
|
150
|
+
detail: err.message,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function getRecommendation(projectType) {
|
|
155
|
+
switch (projectType) {
|
|
156
|
+
case "javascript":
|
|
157
|
+
case "typescript":
|
|
158
|
+
return {
|
|
159
|
+
scanner: "eslint",
|
|
160
|
+
canAutoInstall: true,
|
|
161
|
+
installInstructions: "npm install --save-dev eslint @eslint/js",
|
|
162
|
+
};
|
|
163
|
+
case "python":
|
|
164
|
+
return {
|
|
165
|
+
scanner: "bandit",
|
|
166
|
+
canAutoInstall: false,
|
|
167
|
+
installInstructions: "pip install bandit (or: pipx install bandit, poetry add --group dev bandit)",
|
|
168
|
+
};
|
|
169
|
+
case "java":
|
|
170
|
+
case "csharp":
|
|
171
|
+
return {
|
|
172
|
+
scanner: "semgrep",
|
|
173
|
+
canAutoInstall: false,
|
|
174
|
+
installInstructions: "brew install semgrep (or: pip install semgrep, pipx install semgrep)",
|
|
175
|
+
};
|
|
176
|
+
case "unknown":
|
|
177
|
+
return {
|
|
178
|
+
scanner: "semgrep",
|
|
179
|
+
canAutoInstall: false,
|
|
180
|
+
installInstructions: "brew install semgrep (or: pip install semgrep, pipx install semgrep)",
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// ── Main orchestrator ──────────────────────────────────────────────
|
|
185
|
+
/**
|
|
186
|
+
* Bootstrap a scanner for the current workspace.
|
|
187
|
+
*
|
|
188
|
+
* 1. Check if a scanner is already configured (short-circuit if so)
|
|
189
|
+
* 2. Detect the project type
|
|
190
|
+
* 3. Install the recommended scanner (or return instructions)
|
|
191
|
+
* 4. Run auto_scan to verify and ingest findings
|
|
192
|
+
*
|
|
193
|
+
* @param workspaceRoot Absolute path to the project root.
|
|
194
|
+
* @param sarifStore Live SARIF store for auto-scan ingestion.
|
|
195
|
+
* @param logger Pino logger for progress reporting.
|
|
196
|
+
*/
|
|
197
|
+
export async function bootstrapScanner(workspaceRoot, sarifStore, logger) {
|
|
198
|
+
// 1. Check existing scanners
|
|
199
|
+
const detections = await detectScanners(workspaceRoot);
|
|
200
|
+
const available = detections.filter((d) => d.available);
|
|
201
|
+
if (available.length > 0) {
|
|
202
|
+
const existingScanners = available.map((d) => d.scanner);
|
|
203
|
+
logger.info({ existingScanners }, "bootstrap: scanner(s) already configured — skipping");
|
|
204
|
+
return {
|
|
205
|
+
projectType: detectProjectType(workspaceRoot),
|
|
206
|
+
alreadyConfigured: true,
|
|
207
|
+
existingScanners,
|
|
208
|
+
steps: [],
|
|
209
|
+
autoScanResult: null,
|
|
210
|
+
success: true,
|
|
211
|
+
summary: `Scanner(s) already configured: ${existingScanners.join(", ")}. Run auto_scan to ingest findings.`,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
// 2. Detect project type
|
|
215
|
+
const projectType = detectProjectType(workspaceRoot);
|
|
216
|
+
const recommendation = getRecommendation(projectType);
|
|
217
|
+
const steps = [];
|
|
218
|
+
logger.info({ projectType, scanner: recommendation.scanner }, "bootstrap: detected project type");
|
|
219
|
+
// 3. Install scanner
|
|
220
|
+
if (recommendation.canAutoInstall) {
|
|
221
|
+
// JS/TS: auto-install ESLint
|
|
222
|
+
const isTypeScript = projectType === "typescript";
|
|
223
|
+
const packages = isTypeScript
|
|
224
|
+
? ["eslint", "@eslint/js", "typescript-eslint"]
|
|
225
|
+
: ["eslint", "@eslint/js"];
|
|
226
|
+
const installStep = await npmInstall(workspaceRoot, packages);
|
|
227
|
+
steps.push(installStep);
|
|
228
|
+
if (installStep.success) {
|
|
229
|
+
const configStep = writeEslintConfigFile(workspaceRoot, isTypeScript);
|
|
230
|
+
steps.push(configStep);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
// Python / Java / C# / Unknown: return instructions
|
|
235
|
+
steps.push({
|
|
236
|
+
action: `suggest ${recommendation.scanner} install`,
|
|
237
|
+
success: true,
|
|
238
|
+
detail: recommendation.installInstructions,
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
// 4. Run auto_scan if installation succeeded
|
|
242
|
+
const installSucceeded = steps.every((s) => s.success);
|
|
243
|
+
let autoScanResult = null;
|
|
244
|
+
if (installSucceeded && recommendation.canAutoInstall) {
|
|
245
|
+
try {
|
|
246
|
+
autoScanResult = await autoScan(workspaceRoot, sarifStore, logger);
|
|
247
|
+
}
|
|
248
|
+
catch (err) {
|
|
249
|
+
logger.warn({ err: err.message }, "bootstrap: auto_scan after install failed");
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// 5. Build result
|
|
253
|
+
const findings = autoScanResult?.totalFindings ?? 0;
|
|
254
|
+
const scannerInstalled = recommendation.canAutoInstall && installSucceeded;
|
|
255
|
+
let summary;
|
|
256
|
+
if (scannerInstalled && autoScanResult) {
|
|
257
|
+
summary = `Installed ${recommendation.scanner} for ${projectType} project. Auto-scan found ${findings} finding(s).`;
|
|
258
|
+
}
|
|
259
|
+
else if (scannerInstalled) {
|
|
260
|
+
summary = `Installed ${recommendation.scanner} for ${projectType} project. Auto-scan did not run.`;
|
|
261
|
+
}
|
|
262
|
+
else if (!recommendation.canAutoInstall) {
|
|
263
|
+
summary = `Detected ${projectType} project. Install ${recommendation.scanner} manually: ${recommendation.installInstructions}`;
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
summary = `Failed to install ${recommendation.scanner}. Check the error details in the steps.`;
|
|
267
|
+
}
|
|
268
|
+
return {
|
|
269
|
+
projectType,
|
|
270
|
+
alreadyConfigured: false,
|
|
271
|
+
existingScanners: [],
|
|
272
|
+
steps,
|
|
273
|
+
autoScanResult,
|
|
274
|
+
success: installSucceeded,
|
|
275
|
+
summary,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/scanner/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner/index.d.ts
CHANGED
|
@@ -19,4 +19,5 @@
|
|
|
19
19
|
export { detectScanners, type ScannerDetection } from "./detector.js";
|
|
20
20
|
export { runScanner, type ScannerRunResult } from "./runner.js";
|
|
21
21
|
export { autoScan, type AutoScanResult, type ScannerResult } from "./auto-scan.js";
|
|
22
|
+
export { bootstrapScanner, detectProjectType, generateEslintConfig, type BootstrapResult, type BootstrapStep, type ProjectType, } from "./bootstrap.js";
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC"}
|