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