hackmyagent 0.2.3 → 0.3.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/README.md CHANGED
@@ -16,6 +16,8 @@ npx hackmyagent check @publisher/skill # verify a skill before installing
16
16
  npx hackmyagent secure # harden your agent setup (100 checks)
17
17
  npx hackmyagent secure --fix # auto-fix security issues
18
18
  npx hackmyagent scan example.com # scan for exposed infrastructure
19
+ npx hackmyagent attack --local # red team with 55 attack payloads
20
+ npx hackmyagent benchmark --benchmark oasb-1 # run OASB-1 security benchmark
19
21
  ```
20
22
 
21
23
  ## Two Ways to Scan
@@ -135,6 +137,88 @@ hackmyagent scan example.com --json
135
137
 
136
138
  **Scoring:** A (90-100), B (80-89), C (70-79), D (60-69), F (<60)
137
139
 
140
+ ### `hackmyagent attack`
141
+
142
+ Red team your AI agent with adversarial security testing. 55 attack payloads across 5 categories.
143
+
144
+ ```bash
145
+ # Local simulation (no API calls - test payloads locally)
146
+ hackmyagent attack --local
147
+ hackmyagent attack --local --system-prompt "You are a helpful assistant"
148
+
149
+ # Test an API endpoint
150
+ hackmyagent attack https://api.example.com/v1/chat
151
+ hackmyagent attack https://api.example.com --api-format anthropic
152
+
153
+ # Filter by category or intensity
154
+ hackmyagent attack --local --category prompt-injection
155
+ hackmyagent attack --local --intensity aggressive
156
+
157
+ # Output formats
158
+ hackmyagent attack --local -f json
159
+ hackmyagent attack --local -f sarif -o results.sarif
160
+
161
+ # Verbose mode (show each payload result)
162
+ hackmyagent attack --local --verbose
163
+ ```
164
+
165
+ **Attack Categories:**
166
+
167
+ | Category | Payloads | Description |
168
+ |----------|----------|-------------|
169
+ | `prompt-injection` | 12 | Manipulate agent behavior via malicious input |
170
+ | `jailbreak` | 12 | Bypass safety guardrails and restrictions |
171
+ | `data-exfiltration` | 11 | Extract sensitive information from the agent |
172
+ | `capability-abuse` | 10 | Misuse agent tools and capabilities |
173
+ | `context-manipulation` | 10 | Poison agent context or memory |
174
+
175
+ **Intensity Levels:**
176
+
177
+ | Level | Description |
178
+ |-------|-------------|
179
+ | `passive` | Observation only, minimal risk |
180
+ | `active` | Standard attack payloads (default) |
181
+ | `aggressive` | Creative/risky payloads, full suite |
182
+
183
+ **Output Formats:**
184
+ - `text` - Human-readable report (default)
185
+ - `json` - Machine-readable JSON
186
+ - `sarif` - SARIF 2.1.0 for GitHub Security tab integration
187
+
188
+ **Risk Scoring:**
189
+ - 0-24: LOW - Minor issues, agent is reasonably secure
190
+ - 25-49: MEDIUM - Some vulnerabilities, review recommended
191
+ - 50-69: HIGH - Significant vulnerabilities, action required
192
+ - 70-100: CRITICAL - Severe vulnerabilities, immediate action needed
193
+
194
+ ### `hackmyagent benchmark`
195
+
196
+ Run the OASB-1 (OpenA2A Security Benchmark) against your agent configuration.
197
+
198
+ ```bash
199
+ # Run benchmark
200
+ hackmyagent benchmark --benchmark oasb-1
201
+
202
+ # Target specific directory
203
+ hackmyagent benchmark --benchmark oasb-1 ./my-project
204
+
205
+ # Output formats
206
+ hackmyagent benchmark --benchmark oasb-1 -f json
207
+ hackmyagent benchmark --benchmark oasb-1 -f sarif -o results.sarif
208
+ hackmyagent benchmark --benchmark oasb-1 -f html -o report.html
209
+ hackmyagent benchmark --benchmark oasb-1 -f asp -o profile.asp.json
210
+
211
+ # CI/CD with fail threshold
212
+ hackmyagent benchmark --benchmark oasb-1 --fail-below 70
213
+ ```
214
+
215
+ **Output Formats:**
216
+ - `text` - Human-readable report (default)
217
+ - `json` - Machine-readable JSON
218
+ - `sarif` - SARIF 2.1.0 for GitHub/IDE integration
219
+ - `html` - Standalone HTML report
220
+ - `asp` - Agent Security Profile (HackMyAgent format)
221
+
138
222
  ### `hackmyagent secure-openclaw`
139
223
 
140
224
  Scan OpenClaw/Moltbot installations with 34 specialized security checks and auto-remediation.
@@ -209,6 +293,38 @@ jobs:
209
293
  path: security-report.json
210
294
  ```
211
295
 
296
+ ### GitHub Actions with Attack Mode (SARIF)
297
+
298
+ ```yaml
299
+ name: AI Agent Security
300
+ on: [push, pull_request]
301
+
302
+ jobs:
303
+ attack-scan:
304
+ runs-on: ubuntu-latest
305
+ steps:
306
+ - uses: actions/checkout@v4
307
+ - uses: actions/setup-node@v4
308
+ with:
309
+ node-version: '20'
310
+ - name: Run attack simulation
311
+ run: npx hackmyagent attack --local -f sarif -o attack-results.sarif
312
+ - name: Upload SARIF to GitHub Security
313
+ uses: github/codeql-action/upload-sarif@v3
314
+ with:
315
+ sarif_file: attack-results.sarif
316
+
317
+ benchmark:
318
+ runs-on: ubuntu-latest
319
+ steps:
320
+ - uses: actions/checkout@v4
321
+ - uses: actions/setup-node@v4
322
+ with:
323
+ node-version: '20'
324
+ - name: Run OASB-1 benchmark
325
+ run: npx hackmyagent benchmark --benchmark oasb-1 --fail-below 70
326
+ ```
327
+
212
328
  ### Pre-commit Hook
213
329
 
214
330
  ```bash
package/dist/index.js CHANGED
@@ -173,11 +173,505 @@ function groupFindingsBySeverity(findings) {
173
173
  }
174
174
  return grouped;
175
175
  }
176
+ function generateBenchmarkReport(findings, level, categoryFilter) {
177
+ // Get controls for the specified level
178
+ let controls = (0, hackmyagent_core_1.getControlsForLevel)(level);
179
+ // Filter by category if specified
180
+ if (categoryFilter) {
181
+ const categoryControls = (0, hackmyagent_core_1.getControlsForCategory)(categoryFilter);
182
+ if (categoryControls.length === 0) {
183
+ console.error(`Error: Unknown category '${categoryFilter}'.`);
184
+ console.error(`Available categories: ${hackmyagent_core_1.OASB_1_CATEGORIES.map((c) => c.name).join(', ')}`);
185
+ process.exit(1);
186
+ }
187
+ controls = controls.filter((c) => c.category.toLowerCase() === categoryFilter.toLowerCase());
188
+ }
189
+ // Build a map of checkId -> finding for quick lookup
190
+ const findingsByCheckId = new Map();
191
+ for (const finding of findings) {
192
+ findingsByCheckId.set(finding.checkId, finding);
193
+ }
194
+ // Evaluate each control
195
+ const controlResults = [];
196
+ let l1Passed = 0, l1Total = 0;
197
+ let l2Passed = 0, l2Total = 0;
198
+ let l3Passed = 0, l3Total = 0;
199
+ let passedCount = 0, failedCount = 0, unverifiedCount = 0;
200
+ for (const control of controls) {
201
+ let status;
202
+ const relatedFindings = [];
203
+ let remediation;
204
+ if (control.verification === 'manual' || control.verification === 'forward') {
205
+ // Manual/forward controls are unverified (human must check)
206
+ status = 'unverified';
207
+ unverifiedCount++;
208
+ // Use control's remediation for manual/forward controls
209
+ remediation = control.remediation;
210
+ }
211
+ else if (control.checkIds.length === 0) {
212
+ // No automated checks defined
213
+ status = 'unverified';
214
+ unverifiedCount++;
215
+ remediation = control.remediation;
216
+ }
217
+ else {
218
+ // Check all mapped check IDs
219
+ let hasAnyFinding = false;
220
+ let hasFailure = false;
221
+ for (const checkId of control.checkIds) {
222
+ const finding = findingsByCheckId.get(checkId);
223
+ if (finding) {
224
+ hasAnyFinding = true;
225
+ if (!finding.passed) {
226
+ hasFailure = true;
227
+ relatedFindings.push(`${checkId}: ${finding.description}`);
228
+ if (finding.fix) {
229
+ remediation = remediation || finding.fix;
230
+ }
231
+ }
232
+ }
233
+ }
234
+ // Only mark as passed if we actually verified something
235
+ // Missing findings = unverified (not passed)
236
+ if (!hasAnyFinding) {
237
+ status = 'unverified';
238
+ unverifiedCount++;
239
+ remediation = control.remediation;
240
+ }
241
+ else if (hasFailure) {
242
+ status = 'failed';
243
+ failedCount++;
244
+ remediation = remediation || control.remediation;
245
+ }
246
+ else {
247
+ status = 'passed';
248
+ passedCount++;
249
+ }
250
+ }
251
+ // Count by level for compliance calculation
252
+ if (control.scored && status !== 'unverified') {
253
+ if (control.level === 'L1') {
254
+ l1Total++;
255
+ if (status === 'passed')
256
+ l1Passed++;
257
+ }
258
+ else if (control.level === 'L2') {
259
+ l2Total++;
260
+ if (status === 'passed')
261
+ l2Passed++;
262
+ }
263
+ else if (control.level === 'L3') {
264
+ l3Total++;
265
+ if (status === 'passed')
266
+ l3Passed++;
267
+ }
268
+ }
269
+ controlResults.push({ control, status, findings: relatedFindings, remediation });
270
+ }
271
+ // Calculate compliance percentages
272
+ const l1Compliance = l1Total > 0 ? Math.round((l1Passed / l1Total) * 100) : 100;
273
+ const l2Compliance = l2Total > 0 ? Math.round((l2Passed / l2Total) * 100) : 100;
274
+ const l3Compliance = l3Total > 0 ? Math.round((l3Passed / l3Total) * 100) : 100;
275
+ const totalScored = l1Total + l2Total + l3Total;
276
+ const totalPassed = l1Passed + l2Passed + l3Passed;
277
+ const overallCompliance = totalScored > 0 ? Math.round((totalPassed / totalScored) * 100) : 100;
278
+ // Group results by category
279
+ const categoryResults = [];
280
+ for (const category of hackmyagent_core_1.OASB_1_CATEGORIES) {
281
+ if (categoryFilter && category.name.toLowerCase() !== categoryFilter.toLowerCase())
282
+ continue;
283
+ const catControls = controlResults.filter((r) => r.control.category === category.name);
284
+ if (catControls.length === 0)
285
+ continue;
286
+ const passed = catControls.filter((r) => r.status === 'passed').length;
287
+ const failed = catControls.filter((r) => r.status === 'failed').length;
288
+ const unverified = catControls.filter((r) => r.status === 'unverified').length;
289
+ const compliance = (passed + failed) > 0 ? Math.round((passed / (passed + failed)) * 100) : 100;
290
+ categoryResults.push({
291
+ category: category.name,
292
+ compliance,
293
+ passed,
294
+ failed,
295
+ unverified,
296
+ controls: catControls.map((r) => ({
297
+ controlId: r.control.id,
298
+ name: r.control.name,
299
+ level: r.control.level,
300
+ status: r.status,
301
+ findings: r.findings,
302
+ remediation: r.remediation,
303
+ })),
304
+ });
305
+ }
306
+ const rating = (0, hackmyagent_core_1.calculateRating)(l1Compliance, l2Compliance, l3Compliance, level);
307
+ return {
308
+ benchmark: hackmyagent_core_1.OASB_1_NAME,
309
+ version: hackmyagent_core_1.OASB_1_VERSION,
310
+ level,
311
+ timestamp: new Date(),
312
+ compliance: overallCompliance,
313
+ l1Compliance,
314
+ l2Compliance,
315
+ l3Compliance,
316
+ rating,
317
+ categories: categoryResults,
318
+ totalControls: controls.length,
319
+ passedControls: passedCount,
320
+ failedControls: failedCount,
321
+ unverifiedControls: unverifiedCount,
322
+ };
323
+ }
324
+ // SARIF 2.1.0 output for GitHub Security tab and IDE integration
325
+ function generateSarifOutput(benchmarkResult, findings, targetDir) {
326
+ const rules = [];
327
+ const results = [];
328
+ // Build rules and results from benchmark controls
329
+ for (const cat of benchmarkResult.categories) {
330
+ for (const ctrl of cat.controls) {
331
+ if (ctrl.status === 'failed') {
332
+ const ruleId = `OASB-1/${ctrl.controlId}`;
333
+ const severityScore = ctrl.level === 'L1' ? '8.0' : ctrl.level === 'L2' ? '6.0' : '4.0';
334
+ const sarifLevel = ctrl.level === 'L1' ? 'error' : ctrl.level === 'L2' ? 'warning' : 'note';
335
+ rules.push({
336
+ id: ruleId,
337
+ name: ctrl.name.replace(/\s+/g, ''),
338
+ shortDescription: { text: ctrl.name },
339
+ fullDescription: { text: `OASB-1 ${ctrl.level} Control: ${ctrl.name}` },
340
+ help: {
341
+ text: ctrl.remediation || `Fix the ${ctrl.name} control to achieve compliance.`,
342
+ markdown: ctrl.remediation ? `**Remediation:** ${ctrl.remediation}` : undefined,
343
+ },
344
+ helpUri: `https://oasb.ai/controls/${ctrl.controlId}`,
345
+ defaultConfiguration: { level: sarifLevel },
346
+ properties: {
347
+ 'security-severity': severityScore,
348
+ tags: ['security', 'oasb-1', ctrl.level.toLowerCase()],
349
+ },
350
+ });
351
+ // Find related findings for locations
352
+ const relatedFindings = findings.filter(f => ctrl.findings.some(cf => cf.includes(f.checkId)));
353
+ if (relatedFindings.length > 0) {
354
+ for (const finding of relatedFindings) {
355
+ results.push({
356
+ ruleId,
357
+ level: sarifLevel,
358
+ message: { text: finding.description },
359
+ locations: finding.file ? [{
360
+ physicalLocation: {
361
+ artifactLocation: { uri: finding.file.replace(targetDir + '/', '') },
362
+ region: finding.line ? { startLine: finding.line } : undefined,
363
+ },
364
+ }] : undefined,
365
+ });
366
+ }
367
+ }
368
+ else {
369
+ // No specific location, just report the control failure
370
+ results.push({
371
+ ruleId,
372
+ level: sarifLevel,
373
+ message: { text: ctrl.findings.join('; ') || `Control ${ctrl.controlId} failed` },
374
+ });
375
+ }
376
+ }
377
+ }
378
+ }
379
+ const sarif = {
380
+ $schema: 'https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json',
381
+ version: '2.1.0',
382
+ runs: [{
383
+ tool: {
384
+ driver: {
385
+ name: 'HackMyAgent',
386
+ version: hackmyagent_core_1.VERSION,
387
+ informationUri: 'https://hackmyagent.com',
388
+ rules,
389
+ },
390
+ },
391
+ results,
392
+ }],
393
+ };
394
+ return JSON.stringify(sarif, null, 2);
395
+ }
396
+ // HTML report for shareable compliance documentation
397
+ function generateHtmlReport(result) {
398
+ const ratingColor = {
399
+ 'Certified': '#22c55e',
400
+ 'Compliant': '#22c55e',
401
+ 'Passing': '#eab308',
402
+ 'Needs Improvement': '#f97316',
403
+ 'Failing': '#ef4444',
404
+ }[result.rating];
405
+ const categoryRows = result.categories.map(cat => {
406
+ const statusIcon = cat.failed === 0 ? '✅' : cat.passed > 0 ? '⚠️' : '❌';
407
+ const barWidth = cat.compliance;
408
+ const barColor = cat.compliance >= 90 ? '#22c55e' : cat.compliance >= 70 ? '#eab308' : '#ef4444';
409
+ const controlRows = cat.controls.map(ctrl => {
410
+ const statusEmoji = ctrl.status === 'passed' ? '✅' : ctrl.status === 'failed' ? '❌' : '⚪';
411
+ const findingsList = ctrl.findings.length > 0
412
+ ? `<ul class="findings">${ctrl.findings.map(f => `<li>${escapeHtml(f)}</li>`).join('')}</ul>`
413
+ : '';
414
+ const remediation = ctrl.remediation
415
+ ? `<div class="remediation"><strong>Fix:</strong> ${escapeHtml(ctrl.remediation)}</div>`
416
+ : '';
417
+ return `
418
+ <tr class="control-row ${ctrl.status}">
419
+ <td>${statusEmoji}</td>
420
+ <td>${ctrl.controlId}</td>
421
+ <td>${escapeHtml(ctrl.name)}</td>
422
+ <td><span class="level-badge level-${ctrl.level.toLowerCase()}">${ctrl.level}</span></td>
423
+ <td>${findingsList}${remediation}</td>
424
+ </tr>`;
425
+ }).join('');
426
+ return `
427
+ <div class="category">
428
+ <div class="category-header">
429
+ <span class="category-icon">${statusIcon}</span>
430
+ <span class="category-name">${escapeHtml(cat.category)}</span>
431
+ <span class="category-score">${cat.passed}/${cat.passed + cat.failed} (${cat.compliance}%)</span>
432
+ </div>
433
+ <div class="progress-bar">
434
+ <div class="progress-fill" style="width: ${barWidth}%; background: ${barColor};"></div>
435
+ </div>
436
+ <table class="controls-table">
437
+ <thead><tr><th></th><th>ID</th><th>Control</th><th>Level</th><th>Details</th></tr></thead>
438
+ <tbody>${controlRows}</tbody>
439
+ </table>
440
+ </div>`;
441
+ }).join('');
442
+ return `<!DOCTYPE html>
443
+ <html lang="en">
444
+ <head>
445
+ <meta charset="UTF-8">
446
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
447
+ <title>OASB-1 Compliance Report</title>
448
+ <style>
449
+ * { box-sizing: border-box; margin: 0; padding: 0; }
450
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0f172a; color: #e2e8f0; line-height: 1.6; padding: 2rem; }
451
+ .container { max-width: 1200px; margin: 0 auto; }
452
+ .header { text-align: center; margin-bottom: 2rem; padding: 2rem; background: #1e293b; border-radius: 12px; }
453
+ .header h1 { font-size: 1.5rem; margin-bottom: 0.5rem; }
454
+ .header .version { color: #94a3b8; font-size: 0.875rem; }
455
+ .summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
456
+ .summary-card { background: #1e293b; padding: 1.5rem; border-radius: 8px; text-align: center; }
457
+ .summary-card .value { font-size: 2rem; font-weight: bold; }
458
+ .summary-card .label { color: #94a3b8; font-size: 0.875rem; }
459
+ .rating { color: ${ratingColor}; }
460
+ .category { background: #1e293b; border-radius: 8px; margin-bottom: 1rem; overflow: hidden; }
461
+ .category-header { display: flex; align-items: center; gap: 0.75rem; padding: 1rem; font-weight: 600; }
462
+ .category-icon { font-size: 1.25rem; }
463
+ .category-name { flex: 1; }
464
+ .category-score { color: #94a3b8; }
465
+ .progress-bar { height: 4px; background: #334155; }
466
+ .progress-fill { height: 100%; transition: width 0.3s; }
467
+ .controls-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
468
+ .controls-table th, .controls-table td { padding: 0.75rem 1rem; text-align: left; border-top: 1px solid #334155; }
469
+ .controls-table th { background: #0f172a; color: #94a3b8; font-weight: 500; }
470
+ .control-row.failed { background: rgba(239, 68, 68, 0.1); }
471
+ .control-row.unverified { opacity: 0.6; }
472
+ .level-badge { padding: 0.125rem 0.5rem; border-radius: 4px; font-size: 0.75rem; font-weight: 600; }
473
+ .level-l1 { background: #7c3aed; color: white; }
474
+ .level-l2 { background: #2563eb; color: white; }
475
+ .level-l3 { background: #059669; color: white; }
476
+ .findings { margin: 0.5rem 0; padding-left: 1.25rem; color: #f87171; }
477
+ .remediation { margin-top: 0.5rem; padding: 0.5rem; background: #334155; border-radius: 4px; font-size: 0.8rem; }
478
+ .footer { text-align: center; margin-top: 2rem; color: #64748b; font-size: 0.875rem; }
479
+ </style>
480
+ </head>
481
+ <body>
482
+ <div class="container">
483
+ <div class="header">
484
+ <h1>📋 ${escapeHtml(result.benchmark)}</h1>
485
+ <div class="version">Version ${result.version} • Generated ${new Date(result.timestamp).toISOString()}</div>
486
+ </div>
487
+
488
+ <div class="summary">
489
+ <div class="summary-card">
490
+ <div class="value rating">${result.rating}</div>
491
+ <div class="label">Rating</div>
492
+ </div>
493
+ <div class="summary-card">
494
+ <div class="value">${result.compliance}%</div>
495
+ <div class="label">Compliance</div>
496
+ </div>
497
+ <div class="summary-card">
498
+ <div class="value">${result.passedControls}/${result.passedControls + result.failedControls}</div>
499
+ <div class="label">Controls Passed</div>
500
+ </div>
501
+ <div class="summary-card">
502
+ <div class="value">Level ${result.level.replace('L', '')}</div>
503
+ <div class="label">${result.level === 'L1' ? 'Essential' : result.level === 'L2' ? 'Standard' : 'Hardened'}</div>
504
+ </div>
505
+ </div>
506
+
507
+ ${categoryRows}
508
+
509
+ <div class="footer">
510
+ Generated by <a href="https://hackmyagent.com" style="color: #60a5fa;">HackMyAgent</a> •
511
+ <a href="https://oasb.ai" style="color: #60a5fa;">OASB-1 Specification</a>
512
+ </div>
513
+ </div>
514
+ </body>
515
+ </html>`;
516
+ }
517
+ function escapeHtml(str) {
518
+ return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
519
+ }
520
+ // Agent Security Profile (ASP) - our differentiator format
521
+ function generateAspOutput(benchmarkResult, scanResult, targetDir) {
522
+ const fs = require('fs');
523
+ const path = require('path');
524
+ // Try to get agent name from package.json or directory name
525
+ let agentName = path.basename(targetDir);
526
+ let agentVersion = '0.0.0';
527
+ try {
528
+ const pkgPath = path.join(targetDir, 'package.json');
529
+ if (fs.existsSync(pkgPath)) {
530
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
531
+ agentName = pkg.name || agentName;
532
+ agentVersion = pkg.version || agentVersion;
533
+ }
534
+ }
535
+ catch { /* ignore */ }
536
+ // Analyze capabilities from findings
537
+ const capabilities = {};
538
+ const hasFilesystemAccess = scanResult.findings.some(f => f.checkId.includes('FS-') || f.description.toLowerCase().includes('filesystem'));
539
+ const hasNetworkAccess = scanResult.findings.some(f => f.checkId.includes('NET-') || f.description.toLowerCase().includes('network'));
540
+ const hasShellAccess = scanResult.findings.some(f => f.checkId.includes('SHELL-') || f.description.toLowerCase().includes('shell') || f.description.toLowerCase().includes('exec'));
541
+ capabilities['filesystem'] = hasFilesystemAccess ? 'detected' : 'none';
542
+ capabilities['network'] = hasNetworkAccess ? 'detected' : 'none';
543
+ capabilities['shell'] = hasShellAccess ? 'detected' : 'none';
544
+ // Credential hygiene
545
+ const credentialFindings = scanResult.findings.filter(f => f.checkId.startsWith('CRED-'));
546
+ const hardcodedCreds = credentialFindings.filter(f => !f.passed).length;
547
+ // Supply chain status
548
+ const supplyChainFindings = scanResult.findings.filter(f => f.checkId.startsWith('SKILL-') || f.checkId.startsWith('HEARTBEAT-') || f.checkId.startsWith('DEP-'));
549
+ const signedSkills = !supplyChainFindings.some(f => f.checkId === 'SKILL-001' && !f.passed);
550
+ const pinnedDeps = !supplyChainFindings.some(f => f.checkId === 'DEP-001' && !f.passed);
551
+ const asp = {
552
+ specVersion: '1.0.0',
553
+ generatedAt: new Date().toISOString(),
554
+ generator: {
555
+ name: 'HackMyAgent',
556
+ version: hackmyagent_core_1.VERSION,
557
+ url: 'https://hackmyagent.com',
558
+ },
559
+ agent: {
560
+ name: agentName,
561
+ version: agentVersion,
562
+ type: scanResult.projectType,
563
+ path: targetDir,
564
+ },
565
+ securityPosture: {
566
+ benchmark: 'OASB-1',
567
+ benchmarkVersion: benchmarkResult.version,
568
+ level: benchmarkResult.level,
569
+ compliance: benchmarkResult.compliance,
570
+ rating: benchmarkResult.rating,
571
+ l1Compliance: benchmarkResult.l1Compliance,
572
+ l2Compliance: benchmarkResult.l2Compliance,
573
+ l3Compliance: benchmarkResult.l3Compliance,
574
+ },
575
+ capabilities,
576
+ credentials: {
577
+ hardcodedSecrets: hardcodedCreds,
578
+ recommendation: hardcodedCreds > 0 ? 'Move secrets to environment variables or secrets manager' : 'No hardcoded credentials detected',
579
+ },
580
+ supplyChain: {
581
+ signedComponents: signedSkills,
582
+ pinnedDependencies: pinnedDeps,
583
+ issues: supplyChainFindings.filter(f => !f.passed).map(f => ({
584
+ id: f.checkId,
585
+ description: f.description,
586
+ remediation: f.fix,
587
+ })),
588
+ },
589
+ categories: benchmarkResult.categories.map(cat => ({
590
+ name: cat.category,
591
+ compliance: cat.compliance,
592
+ passed: cat.passed,
593
+ failed: cat.failed,
594
+ unverified: cat.unverified,
595
+ })),
596
+ failedControls: benchmarkResult.categories.flatMap(cat => cat.controls.filter(c => c.status === 'failed').map(c => ({
597
+ id: c.controlId,
598
+ name: c.name,
599
+ level: c.level,
600
+ findings: c.findings,
601
+ remediation: c.remediation,
602
+ }))),
603
+ // Attestation placeholder - could be signed in future
604
+ attestation: {
605
+ timestamp: new Date().toISOString(),
606
+ // signature: null, // Future: GPG or Sigstore signature
607
+ },
608
+ };
609
+ return JSON.stringify(asp, null, 2);
610
+ }
611
+ function printBenchmarkReport(result, verbose) {
612
+ const ratingColors = {
613
+ 'Certified': colors.green,
614
+ 'Compliant': colors.green,
615
+ 'Passing': colors.yellow,
616
+ 'Needs Improvement': colors.yellow,
617
+ 'Failing': colors.red,
618
+ };
619
+ // Header
620
+ console.log(`\n📋 ${result.benchmark} v${result.version}`);
621
+ console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
622
+ // Level and rating
623
+ const levelNames = {
624
+ 'L1': 'Level 1 - Essential',
625
+ 'L2': 'Level 2 - Standard',
626
+ 'L3': 'Level 3 - Hardened',
627
+ };
628
+ console.log(`Level: ${levelNames[result.level]}`);
629
+ console.log(`Rating: ${ratingColors[result.rating]}${result.rating}${RESET()}`);
630
+ console.log(`Compliance: ${result.compliance}% (${result.passedControls}/${result.passedControls + result.failedControls} verified controls)`);
631
+ if (result.unverifiedControls > 0) {
632
+ console.log(`Unverified: ${result.unverifiedControls} controls require manual/forward verification`);
633
+ }
634
+ console.log();
635
+ // Category breakdown
636
+ console.log(`Categories:`);
637
+ for (const catResult of result.categories) {
638
+ const statusIcon = catResult.failed === 0 ? '✅' : (catResult.passed > 0 ? '🟡' : '❌');
639
+ console.log(` ${statusIcon} ${catResult.category}: ${catResult.passed}/${catResult.passed + catResult.failed} (${catResult.compliance}%)`);
640
+ // Show failed controls
641
+ if (verbose || catResult.failed > 0) {
642
+ for (const ctrl of catResult.controls) {
643
+ if (ctrl.status === 'failed') {
644
+ console.log(` ❌ ${ctrl.controlId}: ${ctrl.name}`);
645
+ if (verbose) {
646
+ for (const finding of ctrl.findings) {
647
+ console.log(` └─ ${finding}`);
648
+ }
649
+ }
650
+ }
651
+ else if (verbose && ctrl.status === 'passed') {
652
+ console.log(` ✅ ${ctrl.controlId}: ${ctrl.name}`);
653
+ }
654
+ else if (verbose && ctrl.status === 'unverified') {
655
+ console.log(` ⚪ ${ctrl.controlId}: ${ctrl.name} (manual/forward)`);
656
+ }
657
+ }
658
+ }
659
+ }
660
+ console.log();
661
+ console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
662
+ // Compliance breakdown by level
663
+ if (verbose) {
664
+ console.log(`\nCompliance by level: L1=${result.l1Compliance}% L2=${result.l2Compliance}% L3=${result.l3Compliance}%`);
665
+ console.log(`Legend: ⚪ = Manual/Forward verification required`);
666
+ }
667
+ console.log(`\nRun 'hackmyagent secure --benchmark oasb-1 --level L2' for stricter checks.`);
668
+ console.log(`Spec: https://oasb.ai/oasb-1\n`);
669
+ }
176
670
  program
177
671
  .command('secure')
178
672
  .description(`Scan and harden your agent setup
179
673
 
180
- Performs 100 security checks across 24 categories:
674
+ Performs 100+ security checks across 24 categories:
181
675
  • Credentials: API key exposure, secrets in configs
182
676
  • MCP: Server configs, tool permissions, secrets
183
677
  • Network: TLS, interface bindings, CORS
@@ -185,22 +679,41 @@ Performs 100 security checks across 24 categories:
185
679
  • Encryption: At-rest encryption, secure hashing
186
680
  • And 19 more categories...
187
681
 
682
+ Benchmark mode (--benchmark oasb-1):
683
+ Run OASB-1 compliance checks with L1/L2/L3 levels.
684
+ L1 = Essential (baseline), L2 = Standard, L3 = Hardened
685
+
686
+ Output formats (--format):
687
+ text Human-readable terminal output (default)
688
+ json Machine-readable JSON
689
+ sarif GitHub Security tab / IDE integration
690
+ html Shareable compliance report
691
+ asp Agent Security Profile (our format)
692
+
188
693
  Severities: critical, high, medium, low
189
- Exit code 1 if critical/high issues found.
694
+ Exit code 1 if critical/high issues found (or non-compliant in benchmark mode).
190
695
 
191
696
  Examples:
192
- $ hackmyagent secure Scan current directory
193
- $ hackmyagent secure ./my-project Scan specific directory
194
- $ hackmyagent secure --fix Auto-fix issues
195
- $ hackmyagent secure --fix --dry-run Preview fixes
196
- $ hackmyagent secure --ignore CRED-001 Skip specific checks
197
- $ hackmyagent secure --json JSON output for CI`)
697
+ $ hackmyagent secure Scan current directory
698
+ $ hackmyagent secure ./my-project Scan specific directory
699
+ $ hackmyagent secure --fix Auto-fix issues
700
+ $ hackmyagent secure -b oasb-1 OASB-1 L1 compliance
701
+ $ hackmyagent secure -b oasb-1 -l L2 OASB-1 L2 compliance
702
+ $ hackmyagent secure -b oasb-1 -f sarif SARIF for GitHub
703
+ $ hackmyagent secure -b oasb-1 -f html -o report.html
704
+ $ hackmyagent secure -b oasb-1 --fail-below 80 CI threshold`)
198
705
  .argument('[directory]', 'Directory to scan (defaults to current directory)', '.')
199
706
  .option('--fix', 'Automatically fix issues where possible')
200
707
  .option('--dry-run', 'Preview fixes without applying them (use with --fix)')
201
708
  .option('--ignore <checks>', 'Comma-separated check IDs to skip (e.g., CRED-001,GIT-002)')
202
- .option('--json', 'Output as JSON (for scripting/CI)')
709
+ .option('--json', 'Output as JSON (deprecated: use --format json)')
710
+ .option('-f, --format <format>', 'Output format: text, json, sarif, html, asp (default: text)', 'text')
711
+ .option('-o, --output <file>', 'Write output to file instead of stdout')
712
+ .option('--fail-below <percent>', 'Exit 1 if compliance below threshold (0-100)')
203
713
  .option('-v, --verbose', 'Show all checks including passed ones')
714
+ .option('-b, --benchmark <name>', 'Run benchmark compliance check (e.g., oasb-1)')
715
+ .option('-l, --level <level>', 'Benchmark level: L1 (Essential), L2 (Standard), L3 (Hardened)', 'L1')
716
+ .option('-c, --category <name>', 'Filter to specific benchmark category')
204
717
  .action(async (directory, options) => {
205
718
  try {
206
719
  const targetDir = directory.startsWith('/') ? directory : process.cwd() + '/' + directory;
@@ -208,11 +721,39 @@ Examples:
208
721
  const ignoreList = options.ignore
209
722
  ? options.ignore.split(',').map((s) => s.trim()).filter(Boolean)
210
723
  : [];
211
- if (options.dryRun) {
212
- console.log(`\n🔍 Scanning ${targetDir} (dry-run)...\n`);
724
+ // Validate benchmark flag if provided
725
+ if (options.benchmark && !(0, hackmyagent_core_1.isValidBenchmark)(options.benchmark)) {
726
+ console.error(`Error: Unknown benchmark '${options.benchmark}'. Available: ${hackmyagent_core_1.AVAILABLE_BENCHMARKS.join(', ')}`);
727
+ process.exit(1);
213
728
  }
214
- else {
215
- console.log(`\n🔍 Scanning ${targetDir}...\n`);
729
+ // Validate level if benchmark mode
730
+ const validLevels = ['L1', 'L2', 'L3'];
731
+ const level = (options.level?.toUpperCase() || 'L1');
732
+ if (options.benchmark && !validLevels.includes(level)) {
733
+ console.error(`Error: Invalid level '${options.level}'. Use: L1, L2, or L3`);
734
+ process.exit(1);
735
+ }
736
+ // Determine output format (--json is deprecated alias for --format json)
737
+ const validFormats = ['text', 'json', 'sarif', 'html', 'asp'];
738
+ const format = options.json ? 'json' : (options.format || 'text');
739
+ if (!validFormats.includes(format)) {
740
+ console.error(`Error: Invalid format '${format}'. Use: ${validFormats.join(', ')}`);
741
+ process.exit(1);
742
+ }
743
+ // Parse fail threshold
744
+ const failBelow = options.failBelow ? parseInt(options.failBelow, 10) : undefined;
745
+ if (failBelow !== undefined && (isNaN(failBelow) || failBelow < 0 || failBelow > 100)) {
746
+ console.error(`Error: --fail-below must be a number between 0 and 100`);
747
+ process.exit(1);
748
+ }
749
+ // Only show progress for text output
750
+ if (format === 'text') {
751
+ if (options.dryRun) {
752
+ console.log(`\n🔍 Scanning ${targetDir} (dry-run)...\n`);
753
+ }
754
+ else {
755
+ console.log(`\n🔍 Scanning ${targetDir}...\n`);
756
+ }
216
757
  }
217
758
  const scanner = new hackmyagent_core_1.HardeningScanner();
218
759
  const result = await scanner.scan({
@@ -221,7 +762,51 @@ Examples:
221
762
  dryRun: options.dryRun ?? false,
222
763
  ignore: ignoreList,
223
764
  });
224
- if (options.json) {
765
+ // Benchmark mode - output compliance report
766
+ if (options.benchmark) {
767
+ // Use allFindings (unfiltered) for accurate benchmark evaluation
768
+ const benchmarkResult = generateBenchmarkReport(result.allFindings || result.findings, level, options.category);
769
+ // Output based on format
770
+ let output;
771
+ switch (format) {
772
+ case 'json':
773
+ output = JSON.stringify(benchmarkResult, null, 2);
774
+ break;
775
+ case 'sarif':
776
+ output = generateSarifOutput(benchmarkResult, result.findings, targetDir);
777
+ break;
778
+ case 'html':
779
+ output = generateHtmlReport(benchmarkResult);
780
+ break;
781
+ case 'asp':
782
+ output = generateAspOutput(benchmarkResult, result, targetDir);
783
+ break;
784
+ default: // text
785
+ printBenchmarkReport(benchmarkResult, options.verbose ?? false);
786
+ output = '';
787
+ }
788
+ // Write output
789
+ if (output) {
790
+ if (options.output) {
791
+ require('fs').writeFileSync(options.output, output);
792
+ console.error(`Report written to ${options.output}`);
793
+ }
794
+ else {
795
+ console.log(output);
796
+ }
797
+ }
798
+ // Check fail threshold
799
+ if (failBelow !== undefined && benchmarkResult.compliance < failBelow) {
800
+ console.error(`Compliance ${benchmarkResult.compliance}% is below threshold ${failBelow}%`);
801
+ process.exit(1);
802
+ }
803
+ // Exit with non-zero if failing or needs improvement (default behavior)
804
+ if (failBelow === undefined && (benchmarkResult.rating === 'Failing' || benchmarkResult.rating === 'Needs Improvement')) {
805
+ process.exit(1);
806
+ }
807
+ return;
808
+ }
809
+ if (format === 'json') {
225
810
  console.log(JSON.stringify(result, null, 2));
226
811
  return;
227
812
  }
@@ -622,5 +1207,250 @@ Examples:
622
1207
  process.exit(1);
623
1208
  }
624
1209
  });
1210
+ // Attack command - adversarial security testing
1211
+ const ATTACK_CATEGORY_NAMES = Object.keys(hackmyagent_core_1.ATTACK_CATEGORIES);
1212
+ program
1213
+ .command('attack')
1214
+ .description(`Adversarial security testing for AI agents
1215
+
1216
+ Red team your AI agent with ${hackmyagent_core_1.PAYLOAD_STATS.total} attack payloads across 5 categories:
1217
+ • Prompt Injection: ${hackmyagent_core_1.PAYLOAD_STATS.byCategory['prompt-injection']} payloads
1218
+ • Jailbreaking: ${hackmyagent_core_1.PAYLOAD_STATS.byCategory['jailbreak']} payloads
1219
+ • Data Exfiltration: ${hackmyagent_core_1.PAYLOAD_STATS.byCategory['data-exfiltration']} payloads
1220
+ • Capability Abuse: ${hackmyagent_core_1.PAYLOAD_STATS.byCategory['capability-abuse']} payloads
1221
+ • Context Manipulation: ${hackmyagent_core_1.PAYLOAD_STATS.byCategory['context-manipulation']} payloads
1222
+
1223
+ Intensity levels:
1224
+ passive Observation only, minimal risk
1225
+ active Standard attack payloads (default)
1226
+ aggressive Creative/risky payloads
1227
+
1228
+ Examples:
1229
+ $ hackmyagent attack https://api.example.com/v1/chat
1230
+ $ hackmyagent attack https://api.example.com --intensity aggressive
1231
+ $ hackmyagent attack https://api.example.com --category prompt-injection
1232
+ $ hackmyagent attack --local --system-prompt "You are a helpful assistant"
1233
+ $ hackmyagent attack https://api.example.com -f sarif -o results.sarif`)
1234
+ .argument('[target]', 'API endpoint to test (or use --local for simulation)')
1235
+ .option('-i, --intensity <level>', 'Attack intensity: passive, active, aggressive', 'active')
1236
+ .option('-c, --category <categories>', 'Comma-separated categories to test')
1237
+ .option('--local', 'Run in local simulation mode (no actual API calls)')
1238
+ .option('--api-format <format>', 'API format: openai, anthropic, custom', 'openai')
1239
+ .option('--model <model>', 'Model to test (for API targets)')
1240
+ .option('--system-prompt <prompt>', 'System prompt (for local testing)')
1241
+ .option('-H, --header <headers>', 'Headers in format "Key: Value" (can be used multiple times)')
1242
+ .option('--timeout <ms>', 'Request timeout in milliseconds', '30000')
1243
+ .option('--delay <ms>', 'Delay between requests in milliseconds', '1000')
1244
+ .option('--stop-on-success', 'Stop after first successful attack')
1245
+ .option('-f, --format <format>', 'Output format: text, json, sarif', 'text')
1246
+ .option('-o, --output <file>', 'Write output to file')
1247
+ .option('-v, --verbose', 'Show detailed output for each payload')
1248
+ .action(async (targetUrl, options) => {
1249
+ try {
1250
+ // Validate target
1251
+ if (!targetUrl && !options.local) {
1252
+ console.error('Error: Target URL required (or use --local for simulation)');
1253
+ process.exit(1);
1254
+ }
1255
+ // Validate intensity
1256
+ const validIntensities = ['passive', 'active', 'aggressive'];
1257
+ const intensity = (options.intensity || 'active');
1258
+ if (!validIntensities.includes(intensity)) {
1259
+ console.error(`Error: Invalid intensity '${options.intensity}'. Use: ${validIntensities.join(', ')}`);
1260
+ process.exit(1);
1261
+ }
1262
+ // Parse categories
1263
+ let categories;
1264
+ if (options.category) {
1265
+ categories = options.category.split(',').map(c => c.trim());
1266
+ for (const cat of categories) {
1267
+ if (!ATTACK_CATEGORY_NAMES.includes(cat)) {
1268
+ console.error(`Error: Invalid category '${cat}'. Use: ${ATTACK_CATEGORY_NAMES.join(', ')}`);
1269
+ process.exit(1);
1270
+ }
1271
+ }
1272
+ }
1273
+ // Parse headers
1274
+ const headers = {};
1275
+ if (options.header) {
1276
+ const headerList = Array.isArray(options.header) ? options.header : [options.header];
1277
+ for (const h of headerList) {
1278
+ const [key, ...valueParts] = h.split(':');
1279
+ if (key && valueParts.length > 0) {
1280
+ headers[key.trim()] = valueParts.join(':').trim();
1281
+ }
1282
+ }
1283
+ }
1284
+ // Build target
1285
+ const target = {
1286
+ url: targetUrl || '',
1287
+ type: options.local ? 'local' : 'api',
1288
+ headers: Object.keys(headers).length > 0 ? headers : undefined,
1289
+ apiFormat: (options.apiFormat || 'openai'),
1290
+ model: options.model,
1291
+ systemPrompt: options.systemPrompt,
1292
+ };
1293
+ // Validate format
1294
+ const validFormats = ['text', 'json', 'sarif'];
1295
+ const format = options.format || 'text';
1296
+ if (!validFormats.includes(format)) {
1297
+ console.error(`Error: Invalid format '${format}'. Use: ${validFormats.join(', ')}`);
1298
+ process.exit(1);
1299
+ }
1300
+ // Show header for text output
1301
+ if (format === 'text') {
1302
+ console.log(`\n⚔️ HackMyAgent Attack Mode`);
1303
+ console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
1304
+ console.log(`Target: ${target.type === 'local' ? 'Local Simulation' : targetUrl}`);
1305
+ console.log(`Intensity: ${intensity}`);
1306
+ console.log(`Categories: ${categories ? categories.join(', ') : 'all'}`);
1307
+ console.log();
1308
+ }
1309
+ // Run attack
1310
+ const scanner = new hackmyagent_core_1.AttackScanner();
1311
+ const report = await scanner.scan(target, {
1312
+ intensity,
1313
+ categories,
1314
+ timeout: parseInt(options.timeout || '30000', 10),
1315
+ delay: parseInt(options.delay || '1000', 10),
1316
+ stopOnSuccess: options.stopOnSuccess,
1317
+ verbose: options.verbose,
1318
+ });
1319
+ // Output results
1320
+ let output;
1321
+ switch (format) {
1322
+ case 'json':
1323
+ output = JSON.stringify(report, null, 2);
1324
+ break;
1325
+ case 'sarif':
1326
+ output = generateAttackSarif(report);
1327
+ break;
1328
+ default: // text
1329
+ printAttackReport(report, options.verbose ?? false);
1330
+ output = '';
1331
+ }
1332
+ // Write output
1333
+ if (output) {
1334
+ if (options.output) {
1335
+ require('fs').writeFileSync(options.output, output);
1336
+ console.error(`Report written to ${options.output}`);
1337
+ }
1338
+ else {
1339
+ console.log(output);
1340
+ }
1341
+ }
1342
+ // Exit with non-zero if critical/high vulnerabilities found
1343
+ if (report.riskRating === 'critical' || report.riskRating === 'high') {
1344
+ process.exit(1);
1345
+ }
1346
+ }
1347
+ catch (error) {
1348
+ console.error(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
1349
+ process.exit(1);
1350
+ }
1351
+ });
1352
+ // Attack report formatting
1353
+ function printAttackReport(report, verbose) {
1354
+ const riskColors = {
1355
+ 'critical': colors.brightRed,
1356
+ 'high': colors.red,
1357
+ 'medium': colors.yellow,
1358
+ 'low': colors.green,
1359
+ 'secure': colors.green,
1360
+ };
1361
+ // Summary
1362
+ console.log(`Risk Score: ${riskColors[report.riskRating]}${report.riskScore}/100 (${report.riskRating.toUpperCase()})${RESET()}`);
1363
+ console.log(`Duration: ${report.duration}ms`);
1364
+ console.log();
1365
+ // Attack summary
1366
+ console.log(`Attacks: ${report.summary.total} total | ${colors.red}${report.summary.successful} successful${RESET()} | ${colors.green}${report.summary.blocked} blocked${RESET()} | ${report.summary.inconclusive} inconclusive`);
1367
+ console.log();
1368
+ // Category breakdown
1369
+ console.log(`Categories:`);
1370
+ for (const [cat, stats] of Object.entries(report.summary.byCategory)) {
1371
+ if (stats.total === 0)
1372
+ continue;
1373
+ const catInfo = hackmyagent_core_1.ATTACK_CATEGORIES[cat];
1374
+ const icon = stats.successful > 0 ? '❌' : '✅';
1375
+ console.log(` ${icon} ${catInfo.name}: ${stats.successful}/${stats.total} successful`);
1376
+ }
1377
+ console.log();
1378
+ // Successful attacks
1379
+ const successful = report.results.filter(r => r.success);
1380
+ if (successful.length > 0) {
1381
+ console.log(`${colors.red}Successful Attacks:${RESET()}`);
1382
+ for (const r of successful) {
1383
+ const sevColor = r.payload.severity === 'critical' ? colors.brightRed :
1384
+ r.payload.severity === 'high' ? colors.red :
1385
+ r.payload.severity === 'medium' ? colors.yellow : colors.green;
1386
+ console.log(` ${sevColor}[${r.payload.severity.toUpperCase()}]${RESET()} ${r.payload.id}: ${r.payload.name}`);
1387
+ if (verbose) {
1388
+ console.log(` Evidence: ${r.evidence}`);
1389
+ console.log(` Remediation: ${r.payload.remediation}`);
1390
+ }
1391
+ }
1392
+ console.log();
1393
+ }
1394
+ // Blocked attacks (only in verbose)
1395
+ if (verbose) {
1396
+ const blocked = report.results.filter(r => r.blocked);
1397
+ if (blocked.length > 0) {
1398
+ console.log(`${colors.green}Blocked Attacks (${blocked.length}):${RESET()}`);
1399
+ for (const r of blocked) {
1400
+ console.log(` ✅ ${r.payload.id}: ${r.payload.name}`);
1401
+ }
1402
+ console.log();
1403
+ }
1404
+ }
1405
+ console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
1406
+ console.log(`\nUse --verbose for detailed attack results.`);
1407
+ console.log(`Use --intensity aggressive for advanced attacks.\n`);
1408
+ }
1409
+ // Generate SARIF output for attack results
1410
+ function generateAttackSarif(report) {
1411
+ const rules = report.results
1412
+ .filter(r => r.success)
1413
+ .map(r => ({
1414
+ id: r.payload.id,
1415
+ name: r.payload.name.replace(/\s+/g, ''),
1416
+ shortDescription: { text: r.payload.name },
1417
+ fullDescription: { text: r.payload.description },
1418
+ help: { text: r.payload.remediation },
1419
+ helpUri: `https://oasb.ai/attacks/${r.payload.id}`,
1420
+ defaultConfiguration: {
1421
+ level: r.payload.severity === 'critical' || r.payload.severity === 'high' ? 'error' :
1422
+ r.payload.severity === 'medium' ? 'warning' : 'note',
1423
+ },
1424
+ properties: {
1425
+ 'security-severity': r.payload.severity === 'critical' ? '9.0' :
1426
+ r.payload.severity === 'high' ? '7.0' :
1427
+ r.payload.severity === 'medium' ? '5.0' : '3.0',
1428
+ tags: ['security', 'ai-agent', r.payload.category],
1429
+ },
1430
+ }));
1431
+ const results = report.results
1432
+ .filter(r => r.success)
1433
+ .map(r => ({
1434
+ ruleId: r.payload.id,
1435
+ level: r.payload.severity === 'critical' || r.payload.severity === 'high' ? 'error' :
1436
+ r.payload.severity === 'medium' ? 'warning' : 'note',
1437
+ message: { text: `${r.payload.name}: ${r.evidence}` },
1438
+ }));
1439
+ return JSON.stringify({
1440
+ $schema: 'https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json',
1441
+ version: '2.1.0',
1442
+ runs: [{
1443
+ tool: {
1444
+ driver: {
1445
+ name: 'HackMyAgent',
1446
+ version: hackmyagent_core_1.VERSION,
1447
+ informationUri: 'https://hackmyagent.com',
1448
+ rules,
1449
+ },
1450
+ },
1451
+ results,
1452
+ }],
1453
+ }, null, 2);
1454
+ }
625
1455
  program.parse();
626
1456
  //# sourceMappingURL=index.js.map
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hackmyagent",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "description": "Security toolkit for AI agents - verify skills, harden setups, scan for exposures",
5
5
  "bin": {
6
6
  "hackmyagent": "dist/index.js"
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "commander": "^12.0.0",
21
- "hackmyagent-core": "^0.1.3"
21
+ "hackmyagent-core": "^0.3.1"
22
22
  },
23
23
  "devDependencies": {
24
24
  "typescript": "^5.3.3"