@owasp-aghast/aghast 0.8.3 → 0.9.0-rc.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/config/pricing.json +39 -9
- package/dist/build-config.d.ts.map +1 -1
- package/dist/build-config.js +101 -2
- package/dist/build-config.js.map +1 -1
- package/dist/check-library.d.ts +25 -0
- package/dist/check-library.d.ts.map +1 -1
- package/dist/check-library.js +172 -1
- package/dist/check-library.js.map +1 -1
- package/dist/ci-metadata.d.ts +42 -0
- package/dist/ci-metadata.d.ts.map +1 -0
- package/dist/ci-metadata.js +131 -0
- package/dist/ci-metadata.js.map +1 -0
- package/dist/claude-code-provider.d.ts +7 -0
- package/dist/claude-code-provider.d.ts.map +1 -1
- package/dist/claude-code-provider.js +65 -1
- package/dist/claude-code-provider.js.map +1 -1
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/concurrency.d.ts +18 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +39 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/cost-tracker.d.ts +45 -0
- package/dist/cost-tracker.d.ts.map +1 -0
- package/dist/cost-tracker.js +56 -0
- package/dist/cost-tracker.js.map +1 -0
- package/dist/discoveries/glob-discovery.d.ts +21 -0
- package/dist/discoveries/glob-discovery.d.ts.map +1 -0
- package/dist/discoveries/glob-discovery.js +215 -0
- package/dist/discoveries/glob-discovery.js.map +1 -0
- package/dist/discoveries/script-discovery.d.ts +117 -0
- package/dist/discoveries/script-discovery.d.ts.map +1 -0
- package/dist/discoveries/script-discovery.js +593 -0
- package/dist/discoveries/script-discovery.js.map +1 -0
- package/dist/docs-url.d.ts +14 -0
- package/dist/docs-url.d.ts.map +1 -0
- package/dist/docs-url.js +17 -0
- package/dist/docs-url.js.map +1 -0
- package/dist/error-codes.d.ts +12 -1
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +16 -2
- package/dist/error-codes.js.map +1 -1
- package/dist/formatters/csv-formatter.d.ts +45 -0
- package/dist/formatters/csv-formatter.d.ts.map +1 -0
- package/dist/formatters/csv-formatter.js +176 -0
- package/dist/formatters/csv-formatter.js.map +1 -0
- package/dist/formatters/html-formatter.d.ts +39 -0
- package/dist/formatters/html-formatter.d.ts.map +1 -0
- package/dist/formatters/html-formatter.js +432 -0
- package/dist/formatters/html-formatter.js.map +1 -0
- package/dist/formatters/index.d.ts.map +1 -1
- package/dist/formatters/index.js +6 -0
- package/dist/formatters/index.js.map +1 -1
- package/dist/formatters/markdown-formatter.d.ts +61 -0
- package/dist/formatters/markdown-formatter.d.ts.map +1 -0
- package/dist/formatters/markdown-formatter.js +557 -0
- package/dist/formatters/markdown-formatter.js.map +1 -0
- package/dist/formatters/sarif-formatter.d.ts +7 -0
- package/dist/formatters/sarif-formatter.d.ts.map +1 -1
- package/dist/formatters/sarif-formatter.js +80 -0
- package/dist/formatters/sarif-formatter.js.map +1 -1
- package/dist/formatters/types.d.ts +24 -0
- package/dist/formatters/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +365 -10
- package/dist/index.js.map +1 -1
- package/dist/issue-file-writer.d.ts +21 -0
- package/dist/issue-file-writer.d.ts.map +1 -0
- package/dist/issue-file-writer.js +307 -0
- package/dist/issue-file-writer.js.map +1 -0
- package/dist/judge.d.ts +62 -0
- package/dist/judge.d.ts.map +1 -0
- package/dist/judge.js +305 -0
- package/dist/judge.js.map +1 -0
- package/dist/mock-agent-provider.d.ts +3 -0
- package/dist/mock-agent-provider.d.ts.map +1 -1
- package/dist/mock-agent-provider.js +13 -0
- package/dist/mock-agent-provider.js.map +1 -1
- package/dist/new-check.d.ts.map +1 -1
- package/dist/new-check.js +334 -22
- package/dist/new-check.js.map +1 -1
- package/dist/opencode-provider.d.ts.map +1 -1
- package/dist/opencode-provider.js +33 -0
- package/dist/opencode-provider.js.map +1 -1
- package/dist/repo-scan.d.ts +80 -0
- package/dist/repo-scan.d.ts.map +1 -0
- package/dist/repo-scan.js +250 -0
- package/dist/repo-scan.js.map +1 -0
- package/dist/result-handlers/pr-comment-handler.d.ts +136 -0
- package/dist/result-handlers/pr-comment-handler.d.ts.map +1 -0
- package/dist/result-handlers/pr-comment-handler.js +381 -0
- package/dist/result-handlers/pr-comment-handler.js.map +1 -0
- package/dist/retry.d.ts +128 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +261 -0
- package/dist/retry.js.map +1 -0
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +62 -0
- package/dist/runtime-config.js.map +1 -1
- package/dist/scan-runner.d.ts +31 -22
- package/dist/scan-runner.d.ts.map +1 -1
- package/dist/scan-runner.js +145 -100
- package/dist/scan-runner.js.map +1 -1
- package/dist/semgrep-runner.js +6 -4
- package/dist/semgrep-runner.js.map +1 -1
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +4 -1
- package/dist/stats.js.map +1 -1
- package/dist/types.d.ts +149 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/new-check.js
CHANGED
|
@@ -17,6 +17,7 @@ import { createRequire } from 'node:module';
|
|
|
17
17
|
import { ERROR_CODES, formatError, formatFatalError } from './error-codes.js';
|
|
18
18
|
import { getCheckType, getValidCheckTypes } from './check-types.js';
|
|
19
19
|
import { DEFAULT_MODEL } from './types.js';
|
|
20
|
+
import { docsFooter } from './docs-url.js';
|
|
20
21
|
const ID_PREFIX = 'aghast-';
|
|
21
22
|
const SUPPORTED_LANGUAGES = {
|
|
22
23
|
python: { semgrepId: 'python', extension: '.py', commentPrefix: '#' },
|
|
@@ -45,9 +46,20 @@ const CLI_FLAG_MAP = {
|
|
|
45
46
|
'--semgrep-rules': 'semgrepRules',
|
|
46
47
|
'--opengrep-rules': 'semgrepRules',
|
|
47
48
|
'--sarif-file': 'sarifFile',
|
|
49
|
+
'--glob': 'glob',
|
|
48
50
|
'--analysis-mode': 'analysisMode',
|
|
49
51
|
'--max-targets': 'maxTargets',
|
|
50
52
|
'--language': 'language',
|
|
53
|
+
'--script': 'script',
|
|
54
|
+
'--script-type': 'scriptType',
|
|
55
|
+
'--output-format': 'outputFormat',
|
|
56
|
+
'--cwd': 'cwd',
|
|
57
|
+
'--timeout-ms': 'timeoutMs',
|
|
58
|
+
'--priority': 'priority',
|
|
59
|
+
'--match-file-types': 'matchFileTypes',
|
|
60
|
+
'--match-paths': 'matchPaths',
|
|
61
|
+
'--match-files': 'matchFiles',
|
|
62
|
+
'--match-tags': 'matchTags',
|
|
51
63
|
'--config-dir': 'configDir',
|
|
52
64
|
};
|
|
53
65
|
function parseFlags(args) {
|
|
@@ -131,6 +143,14 @@ async function promptForMissing(flags) {
|
|
|
131
143
|
rl.close();
|
|
132
144
|
process.exit(1);
|
|
133
145
|
}
|
|
146
|
+
// Yes/no gate. Defaults to "no" on empty input. Non-interactive callers never
|
|
147
|
+
// reach this (they gate on whether flags were supplied instead).
|
|
148
|
+
async function askYesNo(label) {
|
|
149
|
+
if (!rl)
|
|
150
|
+
return false;
|
|
151
|
+
const answer = await rl.question(`${label} (y/N): `);
|
|
152
|
+
return /^y(es)?$/i.test(answer.trim());
|
|
153
|
+
}
|
|
134
154
|
// Phase 1: Basic identity
|
|
135
155
|
const result = {
|
|
136
156
|
id: await ask('Check ID (e.g. aghast-xss)', flags.id),
|
|
@@ -149,21 +169,42 @@ async function promptForMissing(flags) {
|
|
|
149
169
|
analysisMode: '',
|
|
150
170
|
semgrepRules: '',
|
|
151
171
|
sarifFile: '',
|
|
172
|
+
glob: '',
|
|
152
173
|
maxTargets: '',
|
|
153
174
|
language: '',
|
|
175
|
+
script: '',
|
|
176
|
+
scriptType: '',
|
|
177
|
+
outputFormat: '',
|
|
178
|
+
cwd: '',
|
|
179
|
+
timeoutMs: '',
|
|
180
|
+
priority: '',
|
|
181
|
+
matchFileTypes: '',
|
|
182
|
+
matchPaths: '',
|
|
183
|
+
matchFiles: '',
|
|
184
|
+
matchTags: '',
|
|
154
185
|
};
|
|
155
186
|
// Phase 2: Check type, discovery, and analysis mode (determines what other questions to ask)
|
|
156
187
|
result.checkType = await askChoice('Check type', getValidCheckTypes(), 'targeted', flags.checkType);
|
|
157
188
|
if (result.checkType === 'targeted' || result.checkType === 'static') {
|
|
158
189
|
const discoveryChoices = result.checkType === 'targeted'
|
|
159
|
-
? ['semgrep', 'opengrep', 'openant', 'sarif']
|
|
190
|
+
? ['semgrep', 'opengrep', 'openant', 'sarif', 'glob', 'script']
|
|
160
191
|
: ['semgrep', 'opengrep'];
|
|
161
192
|
result.discovery = await askChoice('Discovery method', discoveryChoices, 'semgrep', flags.discovery);
|
|
162
193
|
result.maxTargets = await askOptional('Max targets', flags.maxTargets);
|
|
163
194
|
if (result.checkType === 'targeted') {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
195
|
+
let modeChoices;
|
|
196
|
+
if (result.discovery === 'openant') {
|
|
197
|
+
modeChoices = ['custom', 'general-vuln-discovery'];
|
|
198
|
+
}
|
|
199
|
+
else if (result.discovery === 'glob' || result.discovery === 'script') {
|
|
200
|
+
// glob/script discovery do not support false-positive-validation (no
|
|
201
|
+
// per-target tool finding to validate); offer custom and
|
|
202
|
+
// general-vuln-discovery.
|
|
203
|
+
modeChoices = ['custom', 'general-vuln-discovery'];
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
modeChoices = ['custom', 'false-positive-validation', 'general-vuln-discovery'];
|
|
207
|
+
}
|
|
167
208
|
result.analysisMode = await askChoice('Analysis mode', modeChoices, 'custom', flags.analysisMode);
|
|
168
209
|
}
|
|
169
210
|
if (result.discovery === 'semgrep' || result.discovery === 'opengrep') {
|
|
@@ -183,12 +224,49 @@ async function promptForMissing(flags) {
|
|
|
183
224
|
? flags.sarifFile
|
|
184
225
|
: await ask('SARIF file path (relative to target repo, e.g. ./sast-results.sarif)', flags.sarifFile);
|
|
185
226
|
}
|
|
227
|
+
else if (result.discovery === 'glob') {
|
|
228
|
+
result.glob = flags.glob !== undefined
|
|
229
|
+
? flags.glob
|
|
230
|
+
: await ask('Glob pattern (e.g. src/routes/**/*.ts)', flags.glob);
|
|
231
|
+
}
|
|
232
|
+
else if (result.discovery === 'script') {
|
|
233
|
+
result.scriptType = await askChoice('Script runtime', ['node', 'bash'], 'node', flags.scriptType);
|
|
234
|
+
result.outputFormat = await askChoice('Script output format', ['lines', 'json-array', 'json-object'], 'json-array', flags.outputFormat);
|
|
235
|
+
// Empty script path means "generate a starter script" (mirrors the
|
|
236
|
+
// semgrep-rules empty→template behaviour above).
|
|
237
|
+
result.script = flags.script !== undefined
|
|
238
|
+
? flags.script
|
|
239
|
+
: await askOptional('Script file path (relative to check folder, or Enter to generate a starter script)', undefined);
|
|
240
|
+
result.cwd = await askOptional('Working directory (relative to repo root, default: repo root)', flags.cwd);
|
|
241
|
+
result.timeoutMs = await askOptional('Script timeout in ms (default: 30000)', flags.timeoutMs);
|
|
242
|
+
}
|
|
186
243
|
}
|
|
187
244
|
// Phase 3: Severity, confidence, model, repositories
|
|
188
245
|
result.severity = await askChoice('Severity', ['critical', 'high', 'medium', 'low', 'informational'], 'high', flags.severity);
|
|
189
246
|
result.confidence = await askChoice('Confidence', ['high', 'medium', 'low'], 'medium', flags.confidence);
|
|
190
247
|
result.model = flags.model !== undefined ? flags.model : await askOptional(`AI model override (default: ${DEFAULT_MODEL})`, undefined);
|
|
191
248
|
result.repositories = flags.repositories !== undefined ? flags.repositories : await askOptional('Repositories (comma-separated URLs, or empty for all)', undefined);
|
|
249
|
+
// Phase 3.5: Registry-level fields (Layer 1) — execution ordering and dynamic
|
|
250
|
+
// repository matching. Apply to every check type.
|
|
251
|
+
result.priority = flags.priority !== undefined
|
|
252
|
+
? flags.priority
|
|
253
|
+
: await askOptional('Execution priority (non-negative integer, lower runs first)', undefined);
|
|
254
|
+
const matchFlagsProvided = flags.matchFileTypes !== undefined || flags.matchPaths !== undefined ||
|
|
255
|
+
flags.matchFiles !== undefined || flags.matchTags !== undefined;
|
|
256
|
+
if (matchFlagsProvided) {
|
|
257
|
+
// Non-interactive / flag-driven: take whatever flags were supplied.
|
|
258
|
+
result.matchFileTypes = flags.matchFileTypes ?? '';
|
|
259
|
+
result.matchPaths = flags.matchPaths ?? '';
|
|
260
|
+
result.matchFiles = flags.matchFiles ?? '';
|
|
261
|
+
result.matchTags = flags.matchTags ?? '';
|
|
262
|
+
}
|
|
263
|
+
else if (await askYesNo('Add repository match criteria?')) {
|
|
264
|
+
// Interactive gate said yes — prompt for each sub-field.
|
|
265
|
+
result.matchFileTypes = await askOptional(' Match file types (comma-separated extensions, e.g. .ts,.tsx)', undefined);
|
|
266
|
+
result.matchPaths = await askOptional(' Match paths (comma-separated glob patterns; any match)', undefined);
|
|
267
|
+
result.matchFiles = await askOptional(' Require files (comma-separated paths/globs; all must exist)', undefined);
|
|
268
|
+
result.matchTags = await askOptional(' Require tags (comma-separated; all must be present)', undefined);
|
|
269
|
+
}
|
|
192
270
|
// Phase 4: Instructions (only for check types/modes that need custom instructions)
|
|
193
271
|
const builtInAnalysisMode = result.analysisMode === 'false-positive-validation'
|
|
194
272
|
|| result.analysisMode === 'general-vuln-discovery';
|
|
@@ -214,14 +292,11 @@ async function loadExistingRegistry(registryPath) {
|
|
|
214
292
|
const raw = await readFile(registryPath, 'utf-8');
|
|
215
293
|
return JSON.parse(raw);
|
|
216
294
|
}
|
|
217
|
-
function validateInputs(inputs
|
|
295
|
+
function validateInputs(inputs) {
|
|
218
296
|
const errors = [];
|
|
219
297
|
if (!inputs.id) {
|
|
220
298
|
errors.push('Check ID is required');
|
|
221
299
|
}
|
|
222
|
-
if (registry.checks.some((c) => c.id === inputs.id)) {
|
|
223
|
-
errors.push(`Check ID "${inputs.id}" already exists in config`);
|
|
224
|
-
}
|
|
225
300
|
const validSeverities = ['critical', 'high', 'medium', 'low', 'informational'];
|
|
226
301
|
if (inputs.severity && !validSeverities.includes(inputs.severity)) {
|
|
227
302
|
errors.push(`Invalid severity "${inputs.severity}". Must be one of: ${validSeverities.join(', ')}`);
|
|
@@ -240,9 +315,36 @@ function validateInputs(inputs, registry) {
|
|
|
240
315
|
errors.push(`Invalid maxTargets "${inputs.maxTargets}". Must be a positive integer`);
|
|
241
316
|
}
|
|
242
317
|
}
|
|
318
|
+
if (inputs.timeoutMs) {
|
|
319
|
+
const parsed = parseInt(inputs.timeoutMs, 10);
|
|
320
|
+
if (isNaN(parsed) || parsed <= 0) {
|
|
321
|
+
errors.push(`Invalid timeoutMs "${inputs.timeoutMs}". Must be a positive integer`);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
if (inputs.priority) {
|
|
325
|
+
const parsed = parseInt(inputs.priority, 10);
|
|
326
|
+
if (isNaN(parsed) || parsed < 0 || String(parsed) !== inputs.priority.trim()) {
|
|
327
|
+
errors.push(`Invalid priority "${inputs.priority}". Must be a non-negative integer`);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
// A blank/whitespace/comma-only match-* value would otherwise scaffold an
|
|
331
|
+
// empty-array matchCriteria sub-field, which fails loadCheckRegistry's
|
|
332
|
+
// "at least one of ..." check for the *whole* registry, not just this
|
|
333
|
+
// check. Reject it here instead, at scaffold time.
|
|
334
|
+
const matchFieldChecks = [
|
|
335
|
+
['--match-file-types', inputs.matchFileTypes, splitList(inputs.matchFileTypes)],
|
|
336
|
+
['--match-paths', inputs.matchPaths, splitGlobList(inputs.matchPaths)],
|
|
337
|
+
['--match-files', inputs.matchFiles, splitGlobList(inputs.matchFiles)],
|
|
338
|
+
['--match-tags', inputs.matchTags, splitList(inputs.matchTags)],
|
|
339
|
+
];
|
|
340
|
+
for (const [label, raw, split] of matchFieldChecks) {
|
|
341
|
+
if (raw && split.length === 0) {
|
|
342
|
+
errors.push(`${label} "${raw}" contains no usable values after parsing; provide at least one non-empty, comma-separated value or omit the flag`);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
243
345
|
if ((inputs.checkType === 'targeted' || inputs.checkType === 'static') && inputs.checkType) {
|
|
244
346
|
const validDiscoveries = inputs.checkType === 'targeted'
|
|
245
|
-
? ['semgrep', 'opengrep', 'openant', 'sarif']
|
|
347
|
+
? ['semgrep', 'opengrep', 'openant', 'sarif', 'glob', 'script']
|
|
246
348
|
: ['semgrep', 'opengrep'];
|
|
247
349
|
if (!inputs.discovery || !validDiscoveries.includes(inputs.discovery)) {
|
|
248
350
|
errors.push(`Invalid discovery "${inputs.discovery}" for check type "${inputs.checkType}". Must be one of: ${validDiscoveries.join(', ')}`);
|
|
@@ -250,10 +352,27 @@ function validateInputs(inputs, registry) {
|
|
|
250
352
|
if (inputs.discovery === 'sarif' && !inputs.sarifFile) {
|
|
251
353
|
errors.push('sarifFile is required for sarif discovery');
|
|
252
354
|
}
|
|
355
|
+
if (inputs.discovery === 'glob' && !inputs.glob) {
|
|
356
|
+
errors.push('glob pattern is required for glob discovery');
|
|
357
|
+
}
|
|
358
|
+
if (inputs.discovery === 'script') {
|
|
359
|
+
const validScriptTypes = ['node', 'bash'];
|
|
360
|
+
if (!inputs.scriptType || !validScriptTypes.includes(inputs.scriptType)) {
|
|
361
|
+
errors.push(`Invalid scriptType "${inputs.scriptType}" for script discovery. Must be one of: ${validScriptTypes.join(', ')}`);
|
|
362
|
+
}
|
|
363
|
+
const validOutputFormats = ['lines', 'json-array', 'json-object'];
|
|
364
|
+
if (!inputs.outputFormat || !validOutputFormats.includes(inputs.outputFormat)) {
|
|
365
|
+
errors.push(`Invalid outputFormat "${inputs.outputFormat}" for script discovery. Must be one of: ${validOutputFormats.join(', ')}`);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
253
368
|
if (inputs.analysisMode) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
369
|
+
let validModes;
|
|
370
|
+
if (inputs.discovery === 'openant' || inputs.discovery === 'glob' || inputs.discovery === 'script') {
|
|
371
|
+
validModes = ['custom', 'general-vuln-discovery'];
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
validModes = ['custom', 'false-positive-validation', 'general-vuln-discovery'];
|
|
375
|
+
}
|
|
257
376
|
if (!validModes.includes(inputs.analysisMode)) {
|
|
258
377
|
errors.push(`Invalid analysis mode "${inputs.analysisMode}" for ${inputs.discovery} discovery. Must be one of: ${validModes.join(', ')}`);
|
|
259
378
|
}
|
|
@@ -298,6 +417,86 @@ ${comment} ok: ${checkId}
|
|
|
298
417
|
${comment} TODO: Add code that should NOT be matched by the rule
|
|
299
418
|
`;
|
|
300
419
|
}
|
|
420
|
+
// --- Script Discovery Template ---
|
|
421
|
+
/** File extension for a generated starter discovery script. */
|
|
422
|
+
function scriptExtension(scriptType) {
|
|
423
|
+
return scriptType === 'bash' ? '.sh' : '.js';
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Generate a starter discovery script for `script` discovery. The body matches
|
|
427
|
+
* the chosen `outputFormat` and the output contract is documented in comments
|
|
428
|
+
* (see docs/configuration.md#script-discovery).
|
|
429
|
+
*/
|
|
430
|
+
function generateDiscoveryScript(checkId, scriptType, outputFormat) {
|
|
431
|
+
if (scriptType === 'bash') {
|
|
432
|
+
// Runs in the target repo (cwd = repo root by default). Print targets to
|
|
433
|
+
// stdout; write diagnostics to stderr. A non-zero exit fails the check.
|
|
434
|
+
const header = `#!/usr/bin/env bash
|
|
435
|
+
# Discovery script for ${checkId}.
|
|
436
|
+
# Runs inside the target repo (cwd = repo root by default).
|
|
437
|
+
# Output contract: print discovery targets to stdout in the "${outputFormat}" format.
|
|
438
|
+
# - Only the "file" field is required; it must be a repo-relative path that
|
|
439
|
+
# stays inside the repo (no absolute paths, no ".." escape).
|
|
440
|
+
# - Optional fields: startLine, endLine, message, snippet.
|
|
441
|
+
# Write diagnostics to stderr. A non-zero exit status fails the check.
|
|
442
|
+
# The environment is curated: API keys/tokens are NOT available to this script.
|
|
443
|
+
set -euo pipefail
|
|
444
|
+
`;
|
|
445
|
+
if (outputFormat === 'lines') {
|
|
446
|
+
return `${header}
|
|
447
|
+
# TODO: replace with real discovery logic — one repo-relative file path per line.
|
|
448
|
+
# printf '%s\\n' 'src/example.ts'
|
|
449
|
+
`;
|
|
450
|
+
}
|
|
451
|
+
if (outputFormat === 'json-object') {
|
|
452
|
+
return `${header}
|
|
453
|
+
# TODO: replace with real discovery logic — emit a JSON object with a "targets" array.
|
|
454
|
+
echo '{ "targets": [] }'
|
|
455
|
+
`;
|
|
456
|
+
}
|
|
457
|
+
return `${header}
|
|
458
|
+
# TODO: replace with real discovery logic — emit a JSON array of target objects.
|
|
459
|
+
# echo '[{ "file": "src/example.ts", "startLine": 1, "endLine": 20, "message": "example target" }]'
|
|
460
|
+
echo '[]'
|
|
461
|
+
`;
|
|
462
|
+
}
|
|
463
|
+
// node
|
|
464
|
+
const header = `#!/usr/bin/env node
|
|
465
|
+
// Discovery script for ${checkId}.
|
|
466
|
+
// Runs inside the target repo (cwd = repo root by default).
|
|
467
|
+
// Output contract: print discovery targets to stdout in the "${outputFormat}" format.
|
|
468
|
+
// - Only the "file" field is required; it must be a repo-relative path that
|
|
469
|
+
// stays inside the repo (no absolute paths, no ".." escape).
|
|
470
|
+
// - Optional fields: startLine, endLine, message, snippet.
|
|
471
|
+
// Write diagnostics to stderr (console.error). A non-zero exit fails the check.
|
|
472
|
+
// The environment is curated: API keys/tokens are NOT available to this script.
|
|
473
|
+
`;
|
|
474
|
+
if (outputFormat === 'lines') {
|
|
475
|
+
return `${header}
|
|
476
|
+
// TODO: replace with real discovery logic — one repo-relative file path per line.
|
|
477
|
+
const files = [
|
|
478
|
+
// 'src/example.ts',
|
|
479
|
+
];
|
|
480
|
+
process.stdout.write(files.join('\\n'));
|
|
481
|
+
`;
|
|
482
|
+
}
|
|
483
|
+
if (outputFormat === 'json-object') {
|
|
484
|
+
return `${header}
|
|
485
|
+
// TODO: replace with real discovery logic.
|
|
486
|
+
const targets = [
|
|
487
|
+
// { file: 'src/example.ts', startLine: 1, endLine: 20, message: 'example target' },
|
|
488
|
+
];
|
|
489
|
+
process.stdout.write(JSON.stringify({ targets }));
|
|
490
|
+
`;
|
|
491
|
+
}
|
|
492
|
+
return `${header}
|
|
493
|
+
// TODO: replace with real discovery logic.
|
|
494
|
+
const targets = [
|
|
495
|
+
// { file: 'src/example.ts', startLine: 1, endLine: 20, message: 'example target' },
|
|
496
|
+
];
|
|
497
|
+
process.stdout.write(JSON.stringify(targets));
|
|
498
|
+
`;
|
|
499
|
+
}
|
|
301
500
|
// --- File Generation ---
|
|
302
501
|
function generateMarkdown(inputs) {
|
|
303
502
|
const items = inputs.checkItems
|
|
@@ -359,6 +558,23 @@ function generateCheckDefinition(inputs) {
|
|
|
359
558
|
else if (inputs.discovery === 'sarif') {
|
|
360
559
|
checkTarget.sarifFile = inputs.sarifFile;
|
|
361
560
|
}
|
|
561
|
+
else if (inputs.discovery === 'glob') {
|
|
562
|
+
checkTarget.glob = inputs.glob;
|
|
563
|
+
}
|
|
564
|
+
else if (inputs.discovery === 'script') {
|
|
565
|
+
// When no explicit script path is given, a starter script named after the
|
|
566
|
+
// check id + runtime extension is generated (see runNewCheck).
|
|
567
|
+
const scriptType = (inputs.scriptType || 'node');
|
|
568
|
+
checkTarget.script = inputs.script || `${inputs.id}${scriptExtension(scriptType)}`;
|
|
569
|
+
checkTarget.scriptType = scriptType;
|
|
570
|
+
checkTarget.outputFormat = inputs.outputFormat || 'json-array';
|
|
571
|
+
if (inputs.cwd) {
|
|
572
|
+
checkTarget.cwd = inputs.cwd;
|
|
573
|
+
}
|
|
574
|
+
if (inputs.timeoutMs) {
|
|
575
|
+
checkTarget.timeoutMs = parseInt(inputs.timeoutMs, 10);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
362
578
|
if (inputs.analysisMode && inputs.analysisMode !== 'custom') {
|
|
363
579
|
checkTarget.analysisMode = inputs.analysisMode;
|
|
364
580
|
}
|
|
@@ -369,14 +585,67 @@ function generateCheckDefinition(inputs) {
|
|
|
369
585
|
}
|
|
370
586
|
return def;
|
|
371
587
|
}
|
|
588
|
+
/** Split a comma-separated flag value into a trimmed, non-empty list. */
|
|
589
|
+
function splitList(value) {
|
|
590
|
+
return value.split(',').map((v) => v.trim()).filter(Boolean);
|
|
591
|
+
}
|
|
592
|
+
/**
|
|
593
|
+
* Split a comma-separated list of glob patterns, brace-aware: commas inside
|
|
594
|
+
* `{...}` brace-expansion groups (e.g. `src/**\/*.{ts,tsx}`) are not treated
|
|
595
|
+
* as list separators, so a single pattern using brace expansion survives
|
|
596
|
+
* intact instead of being torn into two malformed patterns. Otherwise
|
|
597
|
+
* behaves like splitList (trims and drops empty segments).
|
|
598
|
+
*/
|
|
599
|
+
function splitGlobList(value) {
|
|
600
|
+
const parts = [];
|
|
601
|
+
let depth = 0;
|
|
602
|
+
let current = '';
|
|
603
|
+
for (const char of value) {
|
|
604
|
+
if (char === '{')
|
|
605
|
+
depth++;
|
|
606
|
+
else if (char === '}')
|
|
607
|
+
depth = Math.max(0, depth - 1);
|
|
608
|
+
if (char === ',' && depth === 0) {
|
|
609
|
+
parts.push(current);
|
|
610
|
+
current = '';
|
|
611
|
+
}
|
|
612
|
+
else {
|
|
613
|
+
current += char;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
parts.push(current);
|
|
617
|
+
return parts.map((v) => v.trim()).filter(Boolean);
|
|
618
|
+
}
|
|
372
619
|
function generateRegistryEntry(inputs) {
|
|
373
|
-
|
|
620
|
+
const entry = {
|
|
374
621
|
id: inputs.id,
|
|
375
|
-
repositories: inputs.repositories
|
|
376
|
-
? inputs.repositories.split(',').map((r) => r.trim()).filter(Boolean)
|
|
377
|
-
: [],
|
|
622
|
+
repositories: inputs.repositories ? splitList(inputs.repositories) : [],
|
|
378
623
|
enabled: true,
|
|
379
624
|
};
|
|
625
|
+
if (inputs.priority) {
|
|
626
|
+
entry.priority = parseInt(inputs.priority, 10);
|
|
627
|
+
}
|
|
628
|
+
// matchCriteria (Layer 1) — include only the sub-fields that produced at
|
|
629
|
+
// least one item after splitting (a blank/whitespace/comma-only value must
|
|
630
|
+
// not scaffold an empty array — see validateInputs, which rejects that
|
|
631
|
+
// case before we get here).
|
|
632
|
+
const matchCriteria = {};
|
|
633
|
+
const fileTypes = splitList(inputs.matchFileTypes);
|
|
634
|
+
const paths = splitGlobList(inputs.matchPaths);
|
|
635
|
+
const files = splitGlobList(inputs.matchFiles);
|
|
636
|
+
const tags = splitList(inputs.matchTags);
|
|
637
|
+
if (fileTypes.length > 0)
|
|
638
|
+
matchCriteria.hasFileTypes = fileTypes;
|
|
639
|
+
if (paths.length > 0)
|
|
640
|
+
matchCriteria.hasPaths = paths;
|
|
641
|
+
if (files.length > 0)
|
|
642
|
+
matchCriteria.hasFiles = files;
|
|
643
|
+
if (tags.length > 0)
|
|
644
|
+
matchCriteria.tags = tags;
|
|
645
|
+
if (Object.keys(matchCriteria).length > 0) {
|
|
646
|
+
entry.matchCriteria = matchCriteria;
|
|
647
|
+
}
|
|
648
|
+
return entry;
|
|
380
649
|
}
|
|
381
650
|
// --- Main ---
|
|
382
651
|
const NEW_CHECK_HELP = `Usage: aghast new-check --config-dir <path> [options]
|
|
@@ -405,9 +674,21 @@ Options:
|
|
|
405
674
|
--semgrep-rules <paths> Comma-separated rule file paths (for semgrep/opengrep discovery)
|
|
406
675
|
--opengrep-rules <paths> Alias for --semgrep-rules; do not pass both (error)
|
|
407
676
|
--sarif-file <path> SARIF file path in check definition, relative to repo (for sarif discovery)
|
|
677
|
+
--glob <pattern> Glob pattern (for glob discovery, e.g. "src/routes/**/*.ts")
|
|
678
|
+
--script <path> Script path relative to the check folder (for script
|
|
679
|
+
discovery; omit to generate a starter script)
|
|
680
|
+
--script-type <type> Script runtime: node or bash (for script discovery)
|
|
681
|
+
--output-format <format> Script stdout format: lines, json-array, json-object
|
|
682
|
+
--cwd <path> Working directory for the script, relative to repo root
|
|
683
|
+
--timeout-ms <n> Script timeout in milliseconds (default: 30000)
|
|
408
684
|
--analysis-mode <mode> Analysis mode for targeted checks (default: custom). See below
|
|
409
685
|
--max-targets <n> Maximum number of targets to analyze
|
|
410
686
|
--language <lang> Language for Semgrep/Opengrep template: python, javascript, typescript
|
|
687
|
+
--priority <n> Execution order (non-negative integer, lower runs first)
|
|
688
|
+
--match-file-types <exts> matchCriteria: comma-separated file extensions (e.g. .ts,.tsx)
|
|
689
|
+
--match-paths <globs> matchCriteria: comma-separated glob patterns (any match)
|
|
690
|
+
--match-files <paths> matchCriteria: comma-separated paths/globs (all must exist)
|
|
691
|
+
--match-tags <tags> matchCriteria: comma-separated repo tags (all must be present)
|
|
411
692
|
-h, --help Show this help message
|
|
412
693
|
|
|
413
694
|
Environment variables:
|
|
@@ -423,17 +704,27 @@ Discovery mechanisms:
|
|
|
423
704
|
opengrep Opengrep (Semgrep fork) rules find targets (targeted or static)
|
|
424
705
|
openant OpenAnt code analysis finds units (targeted only)
|
|
425
706
|
sarif External SARIF file provides findings (targeted only)
|
|
707
|
+
glob File path glob pattern selects whole-file targets (targeted only)
|
|
708
|
+
script User-provided node/bash script emits targets (targeted only)
|
|
426
709
|
|
|
427
710
|
Analysis modes (targeted checks only):
|
|
428
711
|
custom Use a custom instructions markdown file (default)
|
|
429
712
|
false-positive-validation AI validates each finding as true/false positive (semgrep, opengrep, sarif)
|
|
430
713
|
general-vuln-discovery AI scans each target for general security vulnerabilities (all)
|
|
431
714
|
|
|
715
|
+
Repository matching / ordering (registry-level, all check types):
|
|
716
|
+
--priority Lower values run first; unset checks run last
|
|
717
|
+
--match-* Add repos dynamically via matchCriteria in addition to
|
|
718
|
+
the explicit --repositories list
|
|
719
|
+
|
|
432
720
|
Examples:
|
|
433
721
|
aghast new-check --config-dir ./my-checks
|
|
434
722
|
aghast new-check --config-dir ./my-checks --id xss --name "XSS Prevention"
|
|
435
723
|
aghast new-check --config-dir ./my-checks --check-type targeted --discovery semgrep --language typescript
|
|
436
|
-
aghast new-check --config-dir ./my-checks --check-type targeted --discovery sarif --sarif-file ./sast-results.sarif
|
|
724
|
+
aghast new-check --config-dir ./my-checks --check-type targeted --discovery sarif --sarif-file ./sast-results.sarif
|
|
725
|
+
aghast new-check --config-dir ./my-checks --check-type targeted --discovery script --script-type node --output-format json-array
|
|
726
|
+
|
|
727
|
+
${docsFooter('creating-checks.md')}`;
|
|
437
728
|
export async function runNewCheck(args) {
|
|
438
729
|
if (args.includes('--help') || args.includes('-h')) {
|
|
439
730
|
console.log(NEW_CHECK_HELP);
|
|
@@ -464,19 +755,29 @@ export async function runNewCheck(args) {
|
|
|
464
755
|
console.log(`Created new config: ${registryPath}`);
|
|
465
756
|
registry = emptyRegistry;
|
|
466
757
|
}
|
|
467
|
-
const validationErrors = validateInputs(inputs
|
|
758
|
+
const validationErrors = validateInputs(inputs);
|
|
468
759
|
if (validationErrors.length > 0) {
|
|
469
760
|
for (const err of validationErrors) {
|
|
470
761
|
console.error(formatError(ERROR_CODES.E2004, err));
|
|
471
762
|
}
|
|
472
763
|
process.exit(1);
|
|
473
764
|
}
|
|
765
|
+
// Script discovery with scriptType "bash" can never run on Windows
|
|
766
|
+
// (E7106) — warn now, at scaffold time, rather than let the author
|
|
767
|
+
// discover it only after a failed scan.
|
|
768
|
+
if (inputs.discovery === 'script' && (inputs.scriptType || 'node') === 'bash' && process.platform === 'win32') {
|
|
769
|
+
console.warn(`Warning: --script-type bash is not supported on Windows (${ERROR_CODES.E7106.code}); this check will fail at scan time on this machine. Use --script-type node, or run scans from Linux/macOS/WSL.`);
|
|
770
|
+
}
|
|
474
771
|
// Create check folder
|
|
475
772
|
const checkFolder = resolve(checksDir, inputs.id);
|
|
476
773
|
if (await checkFileExists(checkFolder)) {
|
|
477
774
|
console.error(formatError(ERROR_CODES.E2004, `Check folder already exists: ${checkFolder}`));
|
|
478
775
|
process.exit(1);
|
|
479
776
|
}
|
|
777
|
+
const isAlreadyRegistered = registry.checks.some((check) => check.id === inputs.id);
|
|
778
|
+
if (isAlreadyRegistered) {
|
|
779
|
+
console.warn(`Check ID "${inputs.id}" already exists in checks-config.json; creating the missing check files without changing its registry entry.`);
|
|
780
|
+
}
|
|
480
781
|
await mkdir(checkFolder, { recursive: true });
|
|
481
782
|
// Generate and write check.json (Layer 2)
|
|
482
783
|
const checkDef = generateCheckDefinition(inputs);
|
|
@@ -507,11 +808,22 @@ export async function runNewCheck(args) {
|
|
|
507
808
|
console.log(`Created: ${checkFolder}/tests/${testFileName} (test scaffold — edit before running)`);
|
|
508
809
|
}
|
|
509
810
|
}
|
|
811
|
+
// Generate a starter discovery script when the author didn't supply their own.
|
|
812
|
+
if (inputs.discovery === 'script' && !inputs.script) {
|
|
813
|
+
const scriptType = (inputs.scriptType || 'node');
|
|
814
|
+
const outputFormat = (inputs.outputFormat || 'json-array');
|
|
815
|
+
const scriptName = `${inputs.id}${scriptExtension(scriptType)}`;
|
|
816
|
+
const scriptPath = resolve(checkFolder, scriptName);
|
|
817
|
+
await writeFile(scriptPath, generateDiscoveryScript(inputs.id, scriptType, outputFormat), 'utf-8');
|
|
818
|
+
console.log(`Created: ${checkFolder}/${scriptName} (starter script — edit before running)`);
|
|
819
|
+
}
|
|
510
820
|
// Update registry (Layer 1)
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
821
|
+
if (!isAlreadyRegistered) {
|
|
822
|
+
const registryEntry = generateRegistryEntry(inputs);
|
|
823
|
+
registry.checks.push(registryEntry);
|
|
824
|
+
await writeFile(registryPath, JSON.stringify(registry, null, 2) + '\n', 'utf-8');
|
|
825
|
+
console.log(`Updated: ${registryPath}`);
|
|
826
|
+
}
|
|
515
827
|
console.log(`\nNew check "${inputs.id}" created successfully.`);
|
|
516
828
|
}
|
|
517
829
|
// Auto-run when executed directly (npm run new-check / tsx src/new-check.ts), but not when imported by cli.ts.
|
package/dist/new-check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-check.js","sourceRoot":"","sources":["../src/new-check.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"new-check.js","sourceRoot":"","sources":["../src/new-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-provider.d.ts","sourceRoot":"","sources":["../src/opencode-provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAiB,iBAAiB,EAAc,MAAM,YAAY,CAAC;AAmK7H,KAAK,cAAc,GAAG,YAAY,CAAC,CAAC,cAAc,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE7F,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAA2B;IAChD;gGAC4F;IAC5F,OAAO,CAAC,cAAc,CAA6B;IACnD;mFAC+E;IAC/E,OAAO,CAAC,WAAW,CAAoC;IACvD,wFAAwF;IACxF,OAAO,CAAC,iBAAiB,CAAU;gBAEvB,OAAO,CAAC,EAAE,uBAAuB;IAO7C,kBAAkB,IAAI,IAAI;IAIpB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YA+CzC,aAAa;IA0BrB,UAAU,IAAI,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;IAwBzD,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B,sFAAsF;YACxE,cAAc;IAY5B;;;;;sDAKkD;YACpC,mBAAmB;IAwCjC;uDACmD;YACrC,oBAAoB;IA0BlC;;6EAEyE;IACzE,OAAO,CAAC,kBAAkB;IAWpB,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,OAAO,CAAC,aAAa,CAAC;YAkBX,iBAAiB;
|
|
1
|
+
{"version":3,"file":"opencode-provider.d.ts","sourceRoot":"","sources":["../src/opencode-provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAiB,iBAAiB,EAAc,MAAM,YAAY,CAAC;AAmK7H,KAAK,cAAc,GAAG,YAAY,CAAC,CAAC,cAAc,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE7F,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAA2B;IAChD;gGAC4F;IAC5F,OAAO,CAAC,cAAc,CAA6B;IACnD;mFAC+E;IAC/E,OAAO,CAAC,WAAW,CAAoC;IACvD,wFAAwF;IACxF,OAAO,CAAC,iBAAiB,CAAU;gBAEvB,OAAO,CAAC,EAAE,uBAAuB;IAO7C,kBAAkB,IAAI,IAAI;IAIpB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YA+CzC,aAAa;IA0BrB,UAAU,IAAI,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;IAwBzD,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B,sFAAsF;YACxE,cAAc;IAY5B;;;;;sDAKkD;YACpC,mBAAmB;IAwCjC;uDACmD;YACrC,oBAAoB;IA0BlC;;6EAEyE;IACzE,OAAO,CAAC,kBAAkB;IAWpB,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,OAAO,CAAC,aAAa,CAAC;YAkBX,iBAAiB;IA8SzB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC,6DAA6D;IAC7D,OAAO,CAAC,WAAW;IAyBb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA4C/B"}
|