Skip to content

Commit 07c32de

Browse files
authored
Merge pull request #46 from FuzzingLabs/dev
Refactor hub integration and enhance TUI with new features
2 parents c6e9557 + bc5e937 commit 07c32de

File tree

168 files changed

+7080
-9137
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

168 files changed

+7080
-9137
lines changed

.github/workflows/ci.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, dev, feature/*]
6+
pull_request:
7+
branches: [main, dev]
8+
workflow_dispatch:
9+
10+
jobs:
11+
lint-and-typecheck:
12+
name: Lint & Type Check
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Install uv
18+
uses: astral-sh/setup-uv@v5
19+
with:
20+
version: "latest"
21+
22+
- name: Set up Python
23+
run: uv python install 3.14
24+
25+
- name: Install dependencies
26+
run: uv sync
27+
28+
- name: Ruff check (fuzzforge-cli)
29+
run: |
30+
cd fuzzforge-cli
31+
uv run --extra lints ruff check src/
32+
33+
- name: Ruff check (fuzzforge-mcp)
34+
run: |
35+
cd fuzzforge-mcp
36+
uv run --extra lints ruff check src/
37+
38+
- name: Ruff check (fuzzforge-common)
39+
run: |
40+
cd fuzzforge-common
41+
uv run --extra lints ruff check src/
42+
43+
- name: Mypy type check (fuzzforge-cli)
44+
run: |
45+
cd fuzzforge-cli
46+
uv run --extra lints mypy src/
47+
48+
- name: Mypy type check (fuzzforge-mcp)
49+
run: |
50+
cd fuzzforge-mcp
51+
uv run --extra lints mypy src/
52+
53+
# NOTE: Mypy check for fuzzforge-common temporarily disabled
54+
# due to 37 pre-existing type errors in legacy code.
55+
# TODO: Fix type errors and re-enable strict checking
56+
#- name: Mypy type check (fuzzforge-common)
57+
# run: |
58+
# cd fuzzforge-common
59+
# uv run --extra lints mypy src/
60+
61+
test:
62+
name: Tests
63+
runs-on: ubuntu-latest
64+
steps:
65+
- uses: actions/checkout@v4
66+
67+
- name: Install uv
68+
uses: astral-sh/setup-uv@v5
69+
with:
70+
version: "latest"
71+
72+
- name: Set up Python
73+
run: uv python install 3.14
74+
75+
- name: Install dependencies
76+
run: uv sync --all-extras
77+
78+
- name: Run MCP tests
79+
run: |
80+
cd fuzzforge-mcp
81+
uv run --extra tests pytest -v
82+
83+
- name: Run common tests
84+
run: |
85+
cd fuzzforge-common
86+
uv run --extra tests pytest -v

.github/workflows/mcp-server.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: MCP Server Smoke Test
2+
3+
on:
4+
push:
5+
branches: [main, dev]
6+
pull_request:
7+
branches: [main, dev]
8+
workflow_dispatch:
9+
10+
jobs:
11+
mcp-server:
12+
name: MCP Server Test
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Install uv
18+
uses: astral-sh/setup-uv@v5
19+
with:
20+
version: "latest"
21+
22+
- name: Set up Python
23+
run: uv python install 3.14
24+
25+
- name: Install dependencies
26+
run: uv sync --all-extras
27+
28+
- name: Start MCP server in background
29+
run: |
30+
cd fuzzforge-mcp
31+
nohup uv run python -m fuzzforge_mcp.server > server.log 2>&1 &
32+
echo $! > server.pid
33+
sleep 3
34+
35+
- name: Run MCP tool tests
36+
run: |
37+
cd fuzzforge-mcp
38+
uv run --extra tests pytest tests/test_resources.py -v
39+
40+
- name: Stop MCP server
41+
if: always()
42+
run: |
43+
if [ -f fuzzforge-mcp/server.pid ]; then
44+
kill $(cat fuzzforge-mcp/server.pid) || true
45+
fi
46+
47+
- name: Show server logs
48+
if: failure()
49+
run: cat fuzzforge-mcp/server.log || true

CONTRIBUTING.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Contributing to FuzzForge OSS
1+
# Contributing to FuzzForge AI
22

3-
Thank you for your interest in contributing to FuzzForge OSS! We welcome contributions from the community and are excited to collaborate with you.
3+
Thank you for your interest in contributing to FuzzForge AI! We welcome contributions from the community and are excited to collaborate with you.
44

55
**Our Vision**: FuzzForge aims to be a **universal platform for security research** across all cybersecurity domains. Through our modular architecture, any security tool—from fuzzing engines to cloud scanners, from mobile app analyzers to IoT security tools—can be integrated as a containerized module and controlled via AI agents.
66

@@ -360,8 +360,8 @@ Beyond modules, you can contribute to FuzzForge's core components.
360360

361361
1. **Clone and Install**
362362
```bash
363-
git clone https://github.com/FuzzingLabs/fuzzforge-oss.git
364-
cd fuzzforge-oss
363+
git clone https://github.com/FuzzingLabs/fuzzforge_ai.git
364+
cd fuzzforge_ai
365365
uv sync --all-extras
366366
```
367367

@@ -538,7 +538,7 @@ Before submitting a new module:
538538

539539
## License
540540

541-
By contributing to FuzzForge OSS, you agree that your contributions will be licensed under the same license as the project (see [LICENSE](LICENSE)).
541+
By contributing to FuzzForge AI, you agree that your contributions will be licensed under the same license as the project (see [LICENSE](LICENSE)).
542542

543543
For module contributions:
544544
- Modules you create remain under the project license

Makefile

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
.PHONY: help install sync format lint typecheck test build-modules clean
1+
.PHONY: help install sync format lint typecheck test build-hub-images clean
22

33
SHELL := /bin/bash
44

55
# Default target
66
help:
7-
@echo "FuzzForge OSS Development Commands"
7+
@echo "FuzzForge AI Development Commands"
88
@echo ""
99
@echo " make install - Install all dependencies"
1010
@echo " make sync - Sync shared packages from upstream"
1111
@echo " make format - Format code with ruff"
1212
@echo " make lint - Lint code with ruff"
1313
@echo " make typecheck - Type check with mypy"
1414
@echo " make test - Run all tests"
15-
@echo " make build-modules - Build all module container images"
16-
@echo " make clean - Clean build artifacts"
15+
@echo " make build-hub-images - Build all mcp-security-hub images"
16+
@echo " make clean - Clean build artifacts"
1717
@echo ""
1818

1919
# Install all dependencies
@@ -64,34 +64,9 @@ test:
6464
fi \
6565
done
6666

67-
# Build all module container images
68-
# Uses Docker by default, or Podman if FUZZFORGE_ENGINE=podman
69-
build-modules:
70-
@echo "Building FuzzForge module images..."
71-
@if [ "$$FUZZFORGE_ENGINE" = "podman" ]; then \
72-
if [ -n "$$SNAP" ]; then \
73-
echo "Using Podman with isolated storage (Snap detected)"; \
74-
CONTAINER_CMD="podman --root ~/.fuzzforge/containers/storage --runroot ~/.fuzzforge/containers/run"; \
75-
else \
76-
echo "Using Podman"; \
77-
CONTAINER_CMD="podman"; \
78-
fi; \
79-
else \
80-
echo "Using Docker"; \
81-
CONTAINER_CMD="docker"; \
82-
fi; \
83-
for module in fuzzforge-modules/*/; do \
84-
if [ -f "$$module/Dockerfile" ] && \
85-
[ "$$module" != "fuzzforge-modules/fuzzforge-modules-sdk/" ] && \
86-
[ "$$module" != "fuzzforge-modules/fuzzforge-module-template/" ]; then \
87-
name=$$(basename $$module); \
88-
version=$$(grep 'version' "$$module/pyproject.toml" 2>/dev/null | head -1 | sed 's/.*"\(.*\\)".*/\\1/' || echo "0.1.0"); \
89-
echo "Building $$name:$$version..."; \
90-
$$CONTAINER_CMD build -t "fuzzforge-$$name:$$version" "$$module" || exit 1; \
91-
fi \
92-
done
93-
@echo ""
94-
@echo "✓ All modules built successfully!"
67+
# Build all mcp-security-hub images for the firmware analysis pipeline
68+
build-hub-images:
69+
@bash scripts/build-hub-images.sh
9570

9671
# Clean build artifacts
9772
clean:

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<h1 align="center"> FuzzForge OSS</h1>
1+
<h1 align="center"> FuzzForge AI</h1>
22
<h3 align="center">AI-Powered Security Research Orchestration via MCP</h3>
33

44
<p align="center">
@@ -26,13 +26,13 @@
2626

2727
---
2828

29-
> 🚧 **FuzzForge OSS is under active development.** Expect breaking changes and new features!
29+
> 🚧 **FuzzForge AI is under active development.** Expect breaking changes and new features!
3030
3131
---
3232

3333
## 🚀 Overview
3434

35-
**FuzzForge OSS** is an open-source runtime that enables AI agents (GitHub Copilot, Claude, etc.) to orchestrate security research workflows through the **Model Context Protocol (MCP)**.
35+
**FuzzForge AI** is an open-source runtime that enables AI agents (GitHub Copilot, Claude, etc.) to orchestrate security research workflows through the **Model Context Protocol (MCP)**.
3636

3737
### The Core: Modules
3838

@@ -43,7 +43,7 @@ At the heart of FuzzForge are **modules** - containerized security tools that AI
4343
- **🔗 Composable**: Chain modules together into automated workflows
4444
- **📦 Extensible**: Build custom modules with the Python SDK
4545

46-
The OSS runtime handles module discovery, execution, and result collection. Security modules (developed separately) provide the actual security tooling - from static analyzers to fuzzers to crash triagers.
46+
FuzzForge AI handles module discovery, execution, and result collection. Security modules (developed separately) provide the actual security tooling - from static analyzers to fuzzers to crash triagers.
4747

4848
Instead of manually running security tools, describe what you want and let your AI assistant handle it.
4949

@@ -171,11 +171,11 @@ FuzzForge modules are containerized security tools that AI agents can orchestrat
171171

172172
### Module Ecosystem
173173

174-
| | FuzzForge OSS | FuzzForge Enterprise Modules |
174+
| | FuzzForge AI | FuzzForge Enterprise Modules |
175175
|---|---|---|
176176
| **What** | Runtime & MCP server | Security research modules |
177177
| **License** | Apache 2.0 | BSL 1.1 (Business Source License) |
178-
| **Compatibility** | ✅ Runs any compatible module | ✅ Works with OSS runtime |
178+
| **Compatibility** | ✅ Runs any compatible module | ✅ Works with FuzzForge AI |
179179

180180
**Enterprise modules** are developed separately and provide production-ready security tooling:
181181

@@ -187,7 +187,7 @@ FuzzForge modules are containerized security tools that AI agents can orchestrat
187187
| 🔐 **Vulnerability Detection** | Pattern Matcher, Taint Analyzer | Security vulnerability scanning |
188188
| 📝 **Reporting** | Report Generator, SARIF Exporter | Automated security report generation |
189189

190-
> 💡 **Build your own modules!** The FuzzForge SDK allows you to create custom modules that integrate seamlessly with the OSS runtime. See [Creating Custom Modules](#-creating-custom-modules).
190+
> 💡 **Build your own modules!** The FuzzForge SDK allows you to create custom modules that integrate seamlessly with FuzzForge AI. See [Creating Custom Modules](#-creating-custom-modules).
191191
192192
### Execution Modes
193193

ROADMAP.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# FuzzForge OSS Roadmap
1+
# FuzzForge AI Roadmap
22

3-
This document outlines the planned features and development direction for FuzzForge OSS.
3+
This document outlines the planned features and development direction for FuzzForge AI.
44

55
---
66

0 commit comments

Comments
 (0)