agentdiscover 2.7.2__tar.gz

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.
Files changed (136) hide show
  1. agentdiscover-2.7.2/.claude/commands/grow-scanner.md +58 -0
  2. agentdiscover-2.7.2/.github/workflows/aibom.yml +126 -0
  3. agentdiscover-2.7.2/.github/workflows/ci.yml +93 -0
  4. agentdiscover-2.7.2/.github/workflows/scan.yml +38 -0
  5. agentdiscover-2.7.2/.gitignore +70 -0
  6. agentdiscover-2.7.2/.python-version +1 -0
  7. agentdiscover-2.7.2/CHANGELOG.md +452 -0
  8. agentdiscover-2.7.2/CLAUDE.md +265 -0
  9. agentdiscover-2.7.2/COMMIT_NOTES.md +86 -0
  10. agentdiscover-2.7.2/CONTRIBUTING.md +102 -0
  11. agentdiscover-2.7.2/Dockerfile +26 -0
  12. agentdiscover-2.7.2/LICENSE +21 -0
  13. agentdiscover-2.7.2/PKG-INFO +815 -0
  14. agentdiscover-2.7.2/README.md +772 -0
  15. agentdiscover-2.7.2/README_BADGES.txt +4 -0
  16. agentdiscover-2.7.2/RELEASE_NOTES.md +75 -0
  17. agentdiscover-2.7.2/ROADMAP.md +86 -0
  18. agentdiscover-2.7.2/SECURITY.md +86 -0
  19. agentdiscover-2.7.2/action.yml +54 -0
  20. agentdiscover-2.7.2/demo/k8s/agents-configmap.yaml +51 -0
  21. agentdiscover-2.7.2/demo/k8s/crewai-agent.yaml +29 -0
  22. agentdiscover-2.7.2/demo/k8s/langchain-agent.yaml +30 -0
  23. agentdiscover-2.7.2/demo/k8s/shadow-agent.yaml +29 -0
  24. agentdiscover-2.7.2/demo/mcp-governance/DESIGN.md +377 -0
  25. agentdiscover-2.7.2/demo/mcp-governance/README.md +126 -0
  26. agentdiscover-2.7.2/demo/mcp-governance/sample-policy.yaml +114 -0
  27. agentdiscover-2.7.2/demo/run-demo.sh +11 -0
  28. agentdiscover-2.7.2/demo/sample-repo/agents/autogen_agent.py +12 -0
  29. agentdiscover-2.7.2/demo/sample-repo/agents/crewai_agent.py +15 -0
  30. agentdiscover-2.7.2/demo/sample-repo/agents/direct_client.py +14 -0
  31. agentdiscover-2.7.2/demo/sample-repo/agents/langchain_agent.py +10 -0
  32. agentdiscover-2.7.2/demo/sample-repo/requirements.txt +6 -0
  33. agentdiscover-2.7.2/demo/setup.sh +70 -0
  34. agentdiscover-2.7.2/deployment/kubernetes/tracing-policy.yaml +150 -0
  35. agentdiscover-2.7.2/deployment/systemd/README.md +40 -0
  36. agentdiscover-2.7.2/deployment/systemd/agent-discover-scanner.service +27 -0
  37. agentdiscover-2.7.2/docker-compose.yml +13 -0
  38. agentdiscover-2.7.2/docs/EXAMPLES.md +171 -0
  39. agentdiscover-2.7.2/docs/TETRAGON_SETUP.md +390 -0
  40. agentdiscover-2.7.2/docs/architecture.svg +161 -0
  41. agentdiscover-2.7.2/docs/comparisons/vs-grep.md +84 -0
  42. agentdiscover-2.7.2/docs/comparisons/vs-nudge-security.md +64 -0
  43. agentdiscover-2.7.2/docs/ghost-detection.svg +118 -0
  44. agentdiscover-2.7.2/docs/integrations/elastic.md +167 -0
  45. agentdiscover-2.7.2/docs/integrations/github-actions.md +164 -0
  46. agentdiscover-2.7.2/docs/integrations/kubernetes-daemonset.md +246 -0
  47. agentdiscover-2.7.2/docs/integrations/splunk.md +174 -0
  48. agentdiscover-2.7.2/docs/known-apps-example.txt +12 -0
  49. agentdiscover-2.7.2/docs/layer4-setup.md +381 -0
  50. agentdiscover-2.7.2/docs/nist-mapping.md +57 -0
  51. agentdiscover-2.7.2/examples/k8s/test-workload.yaml +224 -0
  52. agentdiscover-2.7.2/examples/tetragon-sample-events.json +4 -0
  53. agentdiscover-2.7.2/install.sh +586 -0
  54. agentdiscover-2.7.2/pyproject.toml +93 -0
  55. agentdiscover-2.7.2/src/agent_discover_scanner/__init__.py +24 -0
  56. agentdiscover-2.7.2/src/agent_discover_scanner/aibom.py +96 -0
  57. agentdiscover-2.7.2/src/agent_discover_scanner/audit_reports.py +83 -0
  58. agentdiscover-2.7.2/src/agent_discover_scanner/behavioral_patterns.py +252 -0
  59. agentdiscover-2.7.2/src/agent_discover_scanner/cli.py +1335 -0
  60. agentdiscover-2.7.2/src/agent_discover_scanner/correlator.py +1114 -0
  61. agentdiscover-2.7.2/src/agent_discover_scanner/detectors/__init__.py +0 -0
  62. agentdiscover-2.7.2/src/agent_discover_scanner/detectors/cloud_audit/__init__.py +230 -0
  63. agentdiscover-2.7.2/src/agent_discover_scanner/detectors/cloud_audit/aws_cloudtrail.py +565 -0
  64. agentdiscover-2.7.2/src/agent_discover_scanner/detectors/cloud_audit/azure_monitor.py +54 -0
  65. agentdiscover-2.7.2/src/agent_discover_scanner/detectors/cloud_audit/base.py +127 -0
  66. agentdiscover-2.7.2/src/agent_discover_scanner/detectors/cloud_audit/gcp_audit.py +53 -0
  67. agentdiscover-2.7.2/src/agent_discover_scanner/detectors/cloudtrail.py +24 -0
  68. agentdiscover-2.7.2/src/agent_discover_scanner/errors.py +121 -0
  69. agentdiscover-2.7.2/src/agent_discover_scanner/exporters/__init__.py +0 -0
  70. agentdiscover-2.7.2/src/agent_discover_scanner/exporters/mcpfw_policy.py +483 -0
  71. agentdiscover-2.7.2/src/agent_discover_scanner/git_scanner.py +233 -0
  72. agentdiscover-2.7.2/src/agent_discover_scanner/high_risk_agents.py +439 -0
  73. agentdiscover-2.7.2/src/agent_discover_scanner/interceptors/__init__.py +54 -0
  74. agentdiscover-2.7.2/src/agent_discover_scanner/interceptors/base.py +319 -0
  75. agentdiscover-2.7.2/src/agent_discover_scanner/interceptors/sse/__init__.py +0 -0
  76. agentdiscover-2.7.2/src/agent_discover_scanner/interceptors/sse/netskope.py +17 -0
  77. agentdiscover-2.7.2/src/agent_discover_scanner/interceptors/sse/prisma_access.py +17 -0
  78. agentdiscover-2.7.2/src/agent_discover_scanner/interceptors/sse/umbrella.py +17 -0
  79. agentdiscover-2.7.2/src/agent_discover_scanner/interceptors/sse/zscaler.py +17 -0
  80. agentdiscover-2.7.2/src/agent_discover_scanner/js_signatures.py +149 -0
  81. agentdiscover-2.7.2/src/agent_discover_scanner/known_apps.py +205 -0
  82. agentdiscover-2.7.2/src/agent_discover_scanner/layer4/__init__.py +0 -0
  83. agentdiscover-2.7.2/src/agent_discover_scanner/layer4/osquery_executor.py +328 -0
  84. agentdiscover-2.7.2/src/agent_discover_scanner/layer4/osquery_queries.py +244 -0
  85. agentdiscover-2.7.2/src/agent_discover_scanner/layer4/result_parser.py +187 -0
  86. agentdiscover-2.7.2/src/agent_discover_scanner/macos_detector.py +124 -0
  87. agentdiscover-2.7.2/src/agent_discover_scanner/mcp_detector.py +720 -0
  88. agentdiscover-2.7.2/src/agent_discover_scanner/models/endpoint_discovery.py +86 -0
  89. agentdiscover-2.7.2/src/agent_discover_scanner/monitors/__init__.py +15 -0
  90. agentdiscover-2.7.2/src/agent_discover_scanner/monitors/json_output.py +68 -0
  91. agentdiscover-2.7.2/src/agent_discover_scanner/monitors/k8s_monitor.py +190 -0
  92. agentdiscover-2.7.2/src/agent_discover_scanner/monitors/tetragon_events.py +109 -0
  93. agentdiscover-2.7.2/src/agent_discover_scanner/monitors/tetragon_monitor.py +405 -0
  94. agentdiscover-2.7.2/src/agent_discover_scanner/monitors/vendor_mapping.py +113 -0
  95. agentdiscover-2.7.2/src/agent_discover_scanner/network_monitor.py +496 -0
  96. agentdiscover-2.7.2/src/agent_discover_scanner/platform.py +430 -0
  97. agentdiscover-2.7.2/src/agent_discover_scanner/reports/layer4_report.py +126 -0
  98. agentdiscover-2.7.2/src/agent_discover_scanner/saas_detector.py +836 -0
  99. agentdiscover-2.7.2/src/agent_discover_scanner/sarif_output.py +155 -0
  100. agentdiscover-2.7.2/src/agent_discover_scanner/sbom_analyzer.py +277 -0
  101. agentdiscover-2.7.2/src/agent_discover_scanner/scan_runner.py +1485 -0
  102. agentdiscover-2.7.2/src/agent_discover_scanner/scanner.py +151 -0
  103. agentdiscover-2.7.2/src/agent_discover_scanner/signatures.py +617 -0
  104. agentdiscover-2.7.2/src/agent_discover_scanner/visitor.py +172 -0
  105. agentdiscover-2.7.2/src/agent_discover_scanner/windows_detector.py +137 -0
  106. agentdiscover-2.7.2/tests/__init__.py +0 -0
  107. agentdiscover-2.7.2/tests/fixtures/autogen_safe.py +11 -0
  108. agentdiscover-2.7.2/tests/fixtures/autogen_unsafe.py +16 -0
  109. agentdiscover-2.7.2/tests/fixtures/bedrock_safe.py +29 -0
  110. agentdiscover-2.7.2/tests/fixtures/bedrock_unsafe.py +33 -0
  111. agentdiscover-2.7.2/tests/fixtures/clean_code.py +23 -0
  112. agentdiscover-2.7.2/tests/fixtures/crewai_safe.py +17 -0
  113. agentdiscover-2.7.2/tests/fixtures/crewai_unsafe.py +18 -0
  114. agentdiscover-2.7.2/tests/fixtures/langchain_agents.py +15 -0
  115. agentdiscover-2.7.2/tests/fixtures/langchain_js_agent.js +21 -0
  116. agentdiscover-2.7.2/tests/fixtures/langgraph_workflow.py +20 -0
  117. agentdiscover-2.7.2/tests/fixtures/safe_with_gateway.py +13 -0
  118. agentdiscover-2.7.2/tests/fixtures/shadow_anthropic.py +14 -0
  119. agentdiscover-2.7.2/tests/fixtures/shadow_openai.py +17 -0
  120. agentdiscover-2.7.2/tests/fixtures/shadow_openai_js.js +15 -0
  121. agentdiscover-2.7.2/tests/test_aibom.py +61 -0
  122. agentdiscover-2.7.2/tests/test_audit_bundle.py +116 -0
  123. agentdiscover-2.7.2/tests/test_bedrock_signatures.py +252 -0
  124. agentdiscover-2.7.2/tests/test_behavioral_patterns.py +215 -0
  125. agentdiscover-2.7.2/tests/test_cloud_audit_layer5.py +519 -0
  126. agentdiscover-2.7.2/tests/test_cloudtrail.py +758 -0
  127. agentdiscover-2.7.2/tests/test_cloudtrail_wiring.py +439 -0
  128. agentdiscover-2.7.2/tests/test_correlator.py +302 -0
  129. agentdiscover-2.7.2/tests/test_correlator_layer5.py +476 -0
  130. agentdiscover-2.7.2/tests/test_git_scanner.py +209 -0
  131. agentdiscover-2.7.2/tests/test_install.sh +37 -0
  132. agentdiscover-2.7.2/tests/test_interceptors.py +360 -0
  133. agentdiscover-2.7.2/tests/test_mcpfw_export.py +395 -0
  134. agentdiscover-2.7.2/tests/test_network_monitor.py +266 -0
  135. agentdiscover-2.7.2/tests/test_scanner.py +195 -0
  136. agentdiscover-2.7.2/uv.lock +964 -0
@@ -0,0 +1,58 @@
1
+ # Grow AgentDiscover Scanner Traction
2
+
3
+ Autonomous task: increase real-world adoption of the AgentDiscover scanner.
4
+
5
+ Rules:
6
+ - NEVER fake metrics (no artificial stars, downloads, or issues)
7
+ - NEVER create fake user testimonials or reviews
8
+ - ONLY improve the product, documentation, and discoverability
9
+ - Every change must make the scanner genuinely more useful
10
+
11
+ Execute the following improvement categories in order:
12
+
13
+ ## 1. First-Run Experience (highest impact)
14
+ - Audit the README.md: Can a security engineer go from zero to first scan in under 3 minutes?
15
+ - Ensure `pipx install agentdiscover && agent-discover-scanner scan-all ~/projects --duration 30` works flawlessly
16
+ - Add a "What You'll See" section with REAL example output (not mocked)
17
+ - Add a "Common Issues" section addressing known friction points
18
+ - Test the install path on a clean Python 3.10+ environment
19
+
20
+ ## 2. Output Quality
21
+ - Ensure scan output is immediately actionable (not just raw data)
22
+ - Add a `--summary` flag that prints a human-readable executive summary
23
+ - Add a `--report` flag that generates a markdown report suitable for sharing with management
24
+ - Ensure AIBOM/CycloneDX output is valid and parseable by standard tools
25
+ - Add `--json` output that's clean enough to pipe into jq
26
+
27
+ ## 3. CI/CD Integration
28
+ - Create a GitHub Action: `defendai/agentdiscover-action`
29
+ - Usage: add to any repo's CI to scan for AI agents on every PR
30
+ - Output: SARIF format for GitHub Security tab integration
31
+ - Create the action.yml, Dockerfile, and documentation
32
+ - Write a blog-post-ready tutorial: "Add AI Agent Discovery to Your CI Pipeline in 5 Minutes"
33
+
34
+ ## 4. Comparison Content
35
+ - Create docs/comparisons/ directory
36
+ - Write honest comparisons: AgentDiscover vs Cisco DefenseClaw Skills Scanner
37
+ - Write: AgentDiscover vs manual `grep` for AI frameworks
38
+ - Write: AgentDiscover vs Nudge Security agent discovery
39
+ - Be honest about limitations — credibility > marketing
40
+
41
+ ## 5. Integration Guides
42
+ - Create docs/integrations/ directory
43
+ - Write: "Using AgentDiscover with Splunk" (forward JSONL audit to Splunk HEC)
44
+ - Write: "Using AgentDiscover with Elastic/Kibana" (filebeat config for scan output)
45
+ - Write: "Using AgentDiscover in a Kubernetes cluster" (DaemonSet + Tetragon setup)
46
+ - Write: "Using AgentDiscover with GitHub Actions" (reference the action from #3)
47
+
48
+ ## 6. SEO and Discoverability
49
+ - Ensure PyPI metadata is complete: description, keywords, project URLs, classifiers
50
+ - Add "AI agent security scanner" and "MCP security" to keywords
51
+ - Ensure GitHub topics include: ai-security, mcp, agent-discovery, llm-security, sbom
52
+ - Create a one-line description that's search-friendly: "Find every AI agent in your enterprise — the ones you know about and the ones you don't"
53
+
54
+ ## 7. Developer Experience
55
+ - Ensure all CLI help text is clear and complete (`--help` on every subcommand)
56
+ - Add shell completion scripts (bash, zsh, fish)
57
+ - Add a `--verbose` mode that explains what each detection layer is doing in real-time
58
+ - Add a `--dry-run` mode for CI environments that just validates configuration
@@ -0,0 +1,126 @@
1
+ # GitHub Action — CI/CD AIBOM Generation
2
+ # File: .github/workflows/aibom.yml
3
+ # Drop this into any repo that uses AI agents to get AIBOM on every push.
4
+
5
+ name: Generate AI Bill of Materials (AIBOM)
6
+
7
+ on:
8
+ push:
9
+ branches: [main, master]
10
+ pull_request:
11
+ branches: [main, master]
12
+ schedule:
13
+ # Run weekly on Mondays at 09:00 UTC for drift detection
14
+ - cron: '0 9 * * 1'
15
+ workflow_dispatch:
16
+ # Allow manual trigger
17
+
18
+ jobs:
19
+ aibom:
20
+ name: Scan and generate AIBOM
21
+ runs-on: ubuntu-latest
22
+ permissions:
23
+ contents: read
24
+ security-events: write # For uploading to GitHub Security tab
25
+ actions: read
26
+
27
+ steps:
28
+ - name: Checkout repository
29
+ uses: actions/checkout@v4
30
+ with:
31
+ fetch-depth: 0 # Full history for change detection
32
+
33
+ - name: Set up Python
34
+ uses: actions/setup-python@v5
35
+ with:
36
+ python-version: '3.11'
37
+ cache: 'pip'
38
+
39
+ - name: Install AgentDiscover Scanner
40
+ run: |
41
+ pip install agent-discover-scanner
42
+
43
+ - name: Run AIBOM scan
44
+ id: aibom_scan
45
+ run: |
46
+ agent-discover audit \
47
+ --output ./aibom-output/ \
48
+ --format cyclonedx-1.6 \
49
+ --no-runtime \
50
+ --ci
51
+ env:
52
+ # Optional: if your agents use these, the scanner can validate configs
53
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
54
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
55
+
56
+ - name: Upload AIBOM artifact
57
+ uses: actions/upload-artifact@v4
58
+ with:
59
+ name: aibom-${{ github.sha }}
60
+ path: ./aibom-output/
61
+ retention-days: 90
62
+
63
+ - name: Check for GHOST agent findings
64
+ run: |
65
+ if [ -f ./aibom-output/ghost-agents.md ]; then
66
+ GHOST_COUNT=$(grep -c "CRITICAL\|HIGH" ./aibom-output/ghost-agents.md || true)
67
+ if [ "$GHOST_COUNT" -gt "0" ]; then
68
+ echo "::warning::GHOST agent findings detected. Review aibom-output/ghost-agents.md"
69
+ fi
70
+ fi
71
+
72
+ - name: Check for Toxic Flow findings
73
+ run: |
74
+ if [ -f ./aibom-output/toxic-flows.md ]; then
75
+ echo "::warning::Potential Toxic Flow patterns detected. Review aibom-output/toxic-flows.md"
76
+ fi
77
+
78
+ - name: Comment PR with AIBOM summary
79
+ if: github.event_name == 'pull_request'
80
+ uses: actions/github-script@v7
81
+ with:
82
+ script: |
83
+ const fs = require('fs');
84
+ let summary = '## AgentDiscover AIBOM Summary\n\n';
85
+
86
+ try {
87
+ const aibom = JSON.parse(fs.readFileSync('./aibom-output/aibom.json', 'utf8'));
88
+ const components = aibom.components || [];
89
+ const agentCount = components.filter(c => c.type === 'ai-model').length;
90
+ const ghostCount = components.filter(c => {
91
+ const ghost = c.properties?.find(p => p.name === 'agent:ghost');
92
+ return ghost?.value === 'true';
93
+ }).length;
94
+
95
+ summary += `| Metric | Value |\n|---|---|\n`;
96
+ summary += `| Agents inventoried | ${agentCount} |\n`;
97
+ summary += `| GHOST agents | ${ghostCount === 0 ? '✅ 0' : '🚨 ' + ghostCount} |\n`;
98
+ summary += `| AIBOM format | CycloneDX 1.6 |\n`;
99
+ summary += `| Scan commit | \`${context.sha.substring(0, 7)}\` |\n\n`;
100
+
101
+ if (ghostCount > 0) {
102
+ summary += '> ⚠️ **GHOST agents detected** — agents visible at runtime with no declared inventory entry. Review `aibom-output/ghost-agents.md`.\n';
103
+ } else {
104
+ summary += '> ✅ All detected agents match declared inventory.\n';
105
+ }
106
+ } catch (e) {
107
+ summary += '_AIBOM generation completed. Download artifact for full report._\n';
108
+ }
109
+
110
+ github.rest.issues.createComment({
111
+ issue_number: context.issue.number,
112
+ owner: context.repo.owner,
113
+ repo: context.repo.repo,
114
+ body: summary
115
+ });
116
+
117
+ - name: Fail on critical GHOST findings
118
+ if: ${{ inputs.fail_on_ghost || false }}
119
+ run: |
120
+ if [ -f ./aibom-output/ghost-agents.md ]; then
121
+ CRITICAL=$(grep -c "CRITICAL" ./aibom-output/ghost-agents.md || true)
122
+ if [ "$CRITICAL" -gt "0" ]; then
123
+ echo "Critical GHOST agent found. Failing build."
124
+ exit 1
125
+ fi
126
+ fi
@@ -0,0 +1,93 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ name: Test on Python ${{ matrix.python-version }}
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12"]
16
+
17
+ steps:
18
+ - name: Checkout code
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v5
23
+ with:
24
+ enable-cache: true
25
+
26
+ - name: Set up Python ${{ matrix.python-version }}
27
+ run: uv python install ${{ matrix.python-version }}
28
+
29
+ - name: Install dependencies
30
+ run: uv sync --all-extras
31
+
32
+ - name: Run tests
33
+ run: uv run pytest tests/ -v --cov=src/agent_discover_scanner --cov-report=xml --cov-report=term
34
+
35
+ - name: Upload coverage to Codecov
36
+ uses: codecov/codecov-action@v4
37
+ if: matrix.python-version == '3.12'
38
+ with:
39
+ file: ./coverage.xml
40
+ fail_ci_if_error: false
41
+ token: ${{ secrets.CODECOV_TOKEN }}
42
+
43
+ lint:
44
+ name: Lint and Format Check
45
+ runs-on: ubuntu-latest
46
+
47
+ steps:
48
+ - name: Checkout code
49
+ uses: actions/checkout@v4
50
+
51
+ - name: Install uv
52
+ uses: astral-sh/setup-uv@v5
53
+
54
+ - name: Set up Python
55
+ run: uv python install 3.12
56
+
57
+ - name: Install dependencies
58
+ run: uv sync
59
+
60
+ - name: Run ruff (lint)
61
+ run: uv run ruff check .
62
+
63
+ - name: Run ruff (format check)
64
+ run: uv run ruff format --check .
65
+
66
+ build:
67
+ name: Build Package
68
+ runs-on: ubuntu-latest
69
+
70
+ steps:
71
+ - name: Checkout code
72
+ uses: actions/checkout@v4
73
+
74
+ - name: Install uv
75
+ uses: astral-sh/setup-uv@v5
76
+
77
+ - name: Set up Python
78
+ run: uv python install 3.12
79
+
80
+ - name: Install build dependencies
81
+ run: uv sync --dev
82
+
83
+ - name: Build package
84
+ run: uv run python -m build
85
+
86
+ - name: Check package
87
+ run: uv run twine check dist/*
88
+
89
+ - name: Upload build artifacts
90
+ uses: actions/upload-artifact@v4
91
+ with:
92
+ name: dist-packages
93
+ path: dist/
@@ -0,0 +1,38 @@
1
+ name: AI Agent Discovery
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 2 * * 1' # Weekly on Monday at 2 AM
6
+ push:
7
+ branches: [ main ]
8
+ pull_request:
9
+ branches: [ main ]
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ security-events: write
14
+ contents: read
15
+
16
+ jobs:
17
+ agent-scan:
18
+ name: Scan for AI agents
19
+ runs-on: ubuntu-latest
20
+
21
+ steps:
22
+ - name: Checkout
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Scan and upload to GitHub Security
26
+ uses: Defend-AI-Tech-Inc/agent-discover-scanner@v2.5.0
27
+ with:
28
+ path: '.'
29
+ output: 'agent-scan-results.sarif'
30
+ upload-sarif: 'true'
31
+
32
+ - name: Upload SARIF artifact
33
+ uses: actions/upload-artifact@v4
34
+ if: always()
35
+ with:
36
+ name: agent-scan-sarif
37
+ path: agent-scan-results.sarif
38
+ retention-days: 30
@@ -0,0 +1,70 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+ MANIFEST
23
+
24
+ # Virtual environments
25
+ .venv/
26
+ venv/
27
+ ENV/
28
+ env/
29
+
30
+ # Testing
31
+ .pytest_cache/
32
+ .coverage
33
+ htmlcov/
34
+ .tox/
35
+
36
+ # IDE
37
+ .cursor/
38
+ .vscode/
39
+ .idea/
40
+ *.code-workspace
41
+ *.swp
42
+ *.swo
43
+ *~
44
+
45
+ # Output files
46
+ *.sarif
47
+ *.json
48
+ network-findings.*
49
+ *.log
50
+ agents-scan-results.*
51
+ defendai-scan.*
52
+ test-results.*
53
+
54
+ # OS
55
+ .DS_Store
56
+ Thumbs.db
57
+
58
+ # Secrets
59
+ *.key
60
+ *.pem
61
+ .env
62
+ .env.*
63
+
64
+ # Allow example JSON files
65
+ !examples/**/*.json
66
+ .pypirc
67
+ demo_*.txt
68
+ demo_*.md
69
+ *_report.md
70
+ *.jsonl
@@ -0,0 +1 @@
1
+ 3.12