spectrum-security 1.35.0__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.
@@ -0,0 +1,207 @@
1
+ Metadata-Version: 2.4
2
+ Name: spectrum-security
3
+ Version: 1.35.0
4
+ Summary: Autonomous Cyber Reasoning System - Red Team & Blue Team AI agents
5
+ Author-email: William Jiang <jiangwilliam30@gmail.com>
6
+ License: MIT
7
+ Keywords: cybersecurity,red-team,blue-team,LLM,autonomous-agent
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Topic :: Security
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Requires-Python: >=3.10
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: flask
18
+ Requires-Dist: gradio
19
+ Requires-Dist: rich
20
+ Requires-Dist: requests
21
+
22
+ # Spectrum – Red/Blue Team AI Framework
23
+
24
+ A dual‑mode autonomous security platform.
25
+ Run as **Red Team** to attack a target, or as **Blue Team** to monitor, detect intrusions and hot‑patch vulnerabilities.
26
+ Powered by Hugging Face (or AMD Cloud) models.
27
+
28
+ ---
29
+
30
+ ## Prerequisites
31
+
32
+ - Python 3.10 or newer
33
+ - pip
34
+ - A Hugging Face account ([hf.co](https://hf.co)) and an API token
35
+ - Git (optional – you can also download the ZIP)
36
+
37
+ ---
38
+
39
+ ## Clone the project
40
+
41
+ ~~~bash
42
+ git clone https://github.com/yourusername/spectrum.git
43
+ cd spectrum
44
+ ~~~
45
+
46
+ If you downloaded a ZIP, extract it and open a terminal inside the extracted folder.
47
+
48
+ ---
49
+
50
+ ## Install dependencies
51
+
52
+ Create and activate a virtual environment (recommended):
53
+
54
+ ~~~bash
55
+ python3 -m venv venv
56
+ source venv/bin/activate # macOS / Linux
57
+ venv\Scripts\activate # Windows
58
+ ~~~
59
+
60
+ Install the required packages:
61
+
62
+ ~~~bash
63
+ pip install -r requirements.txt
64
+ ~~~
65
+
66
+ On macOS with Homebrew Python you may need:
67
+
68
+ ~~~bash
69
+ pip install --break-system-packages -r requirements.txt
70
+ ~~~
71
+
72
+ ---
73
+
74
+ ## Configuration
75
+
76
+ ### API Provider & Token
77
+
78
+ On the first run, Spectrum asks which provider you want to use:
79
+
80
+ 1. **Hugging Face** – you will be prompted for your `HF_TOKEN`.
81
+ 2. **AMD Cloud** – you will be prompted for your `AMD_API_KEY`.
82
+
83
+ The token is saved in a `.env` file.
84
+ You can also create that file manually:
85
+
86
+ ~~~bash
87
+ echo "HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxx" > .env
88
+ ~~~
89
+
90
+ (Replace `hf_xxxxxxxxxxxxxxxxxxxx` with your actual token.)
91
+
92
+ ### Model selection (`config.json`)
93
+
94
+ The default models work out of the box.
95
+ You can change `final_model_id` (the main agent) and `sentinel_model_id` (the lightweight Blue Team watcher) inside `config.json`.
96
+
97
+ Example excerpt:
98
+
99
+ ~~~json
100
+ {
101
+ "final_model_id": "deepseek-ai/DeepSeek-V4-Flash",
102
+ "sentinel_model_id": "Qwen/Qwen2.5-3B-Instruct"
103
+ }
104
+ ~~~
105
+
106
+ ---
107
+
108
+ ## Run a vulnerable target (optional)
109
+
110
+ The project includes a deliberately vulnerable Flask application (`lab.py`).
111
+ Start it in a separate terminal to give the agents something to attack/defend:
112
+
113
+ ~~~bash
114
+ python3 lab.py
115
+ ~~~
116
+
117
+ It listens on `http://127.0.0.1:4999` (or the port printed in the terminal).
118
+
119
+ ---
120
+
121
+ ## Launch Spectrum
122
+
123
+ ~~~bash
124
+ python3 main.py
125
+ ~~~
126
+
127
+ You will see the Spectrum banner. Press **Enter** to continue.
128
+
129
+ ### Choose your mode
130
+
131
+ ~~~text
132
+ Select Operational Module:
133
+ 1. Red Team (Offensive)
134
+ 2. Blue Team (Defensive)
135
+ 3. Exit
136
+ ~~~
137
+
138
+ ---
139
+
140
+ ### Red Team Mode
141
+
142
+ 1. Enter a target / objective, for example:
143
+ `Find the hidden flag on http://127.0.0.1:4999`
144
+ 2. The agent will plan, execute terminal commands, write scripts, and attempt to breach the target.
145
+ 3. **Ctrl+C** to pause, then:
146
+ - `s` – steer the agent (give an instruction)
147
+ - `p` – pause and save the session
148
+ - `Enter` – resume
149
+
150
+ ---
151
+
152
+ ### Blue Team Mode
153
+
154
+ 1. Enter the URL to defend, for example:
155
+ `http://127.0.0.1:4999`
156
+ 2. The Blue Team will:
157
+ - Kill the existing server (if any) and restart it with logging enabled.
158
+ - Start a Sentinel (small AI model) that watches the log file every few seconds.
159
+ - When an attack is detected:
160
+ - Record the attacker IP (in `blocked_ips.txt`).
161
+ - Ask the main model to classify the attack.
162
+ - Automatically patch the vulnerable code (SQLi, command injection, SSTI, etc.).
163
+ - Restart the server with a fresh log.
164
+ 3. **Ctrl+C** to pause, same steering options as Red Team.
165
+
166
+ ---
167
+
168
+ ## File structure (key files)
169
+
170
+ ~~~
171
+ spectrum/
172
+ ├── main.py # Entry point, mode selector
173
+ ├── redteamer.py # Offensive agent logic
174
+ ├── blueteamer.py # Defensive agent (Sentinel + patcher)
175
+ ├── tools.py # Tool implementations (shell, HTTP, file I/O, patch engine)
176
+ ├── lab.py # Vulnerable SAAS lab (for testing)
177
+ ├── config.json # Model IDs and provider settings
178
+ ├── requirements.txt # Python dependencies
179
+ ├── tutorials/ # Optional playbooks loaded by agents
180
+ │ ├── BLUE_DEFENSE_PLAYBOOK.md
181
+ │ └── VULNERABLE_APP_SOURCE.txt
182
+ ├── blocked_ips.txt # IPs blocked during Blue Team sessions
183
+ ├── attacks.log # Record of detected attacks
184
+ ├── server.log # Flask output (created at runtime)
185
+ ├── session.md # Live session log (viewed by viewer.py)
186
+ └── thoughts.json # Agent reasoning trail
187
+ ~~~
188
+
189
+ ---
190
+
191
+ ## Troubleshooting
192
+
193
+ - **ModuleNotFoundError** → run `pip install -r requirements.txt` again.
194
+ - **API Quota Exhausted** → wait a few minutes or switch to another model in `config.json`.
195
+ - **Blue Team doesn't detect attacks** → ensure the target was started with logging (the Blue Team does this automatically for `lab.py`).
196
+ - **Terminal output looks broken** → run `main.py` in a standard terminal; Rich formatting works best there.
197
+
198
+ ---
199
+
200
+ ## Deployment (Hugging Face Spaces / Streamlit Cloud)
201
+
202
+ The repository includes `app.py` for Streamlit deployment and a `Dockerfile` for Docker Spaces.
203
+ Refer to the comments in those files for details.
204
+
205
+ ---
206
+
207
+ For questions or contributions, open an issue on the project's GitHub page.
@@ -0,0 +1,186 @@
1
+ # Spectrum – Red/Blue Team AI Framework
2
+
3
+ A dual‑mode autonomous security platform.
4
+ Run as **Red Team** to attack a target, or as **Blue Team** to monitor, detect intrusions and hot‑patch vulnerabilities.
5
+ Powered by Hugging Face (or AMD Cloud) models.
6
+
7
+ ---
8
+
9
+ ## Prerequisites
10
+
11
+ - Python 3.10 or newer
12
+ - pip
13
+ - A Hugging Face account ([hf.co](https://hf.co)) and an API token
14
+ - Git (optional – you can also download the ZIP)
15
+
16
+ ---
17
+
18
+ ## Clone the project
19
+
20
+ ~~~bash
21
+ git clone https://github.com/yourusername/spectrum.git
22
+ cd spectrum
23
+ ~~~
24
+
25
+ If you downloaded a ZIP, extract it and open a terminal inside the extracted folder.
26
+
27
+ ---
28
+
29
+ ## Install dependencies
30
+
31
+ Create and activate a virtual environment (recommended):
32
+
33
+ ~~~bash
34
+ python3 -m venv venv
35
+ source venv/bin/activate # macOS / Linux
36
+ venv\Scripts\activate # Windows
37
+ ~~~
38
+
39
+ Install the required packages:
40
+
41
+ ~~~bash
42
+ pip install -r requirements.txt
43
+ ~~~
44
+
45
+ On macOS with Homebrew Python you may need:
46
+
47
+ ~~~bash
48
+ pip install --break-system-packages -r requirements.txt
49
+ ~~~
50
+
51
+ ---
52
+
53
+ ## Configuration
54
+
55
+ ### API Provider & Token
56
+
57
+ On the first run, Spectrum asks which provider you want to use:
58
+
59
+ 1. **Hugging Face** – you will be prompted for your `HF_TOKEN`.
60
+ 2. **AMD Cloud** – you will be prompted for your `AMD_API_KEY`.
61
+
62
+ The token is saved in a `.env` file.
63
+ You can also create that file manually:
64
+
65
+ ~~~bash
66
+ echo "HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxx" > .env
67
+ ~~~
68
+
69
+ (Replace `hf_xxxxxxxxxxxxxxxxxxxx` with your actual token.)
70
+
71
+ ### Model selection (`config.json`)
72
+
73
+ The default models work out of the box.
74
+ You can change `final_model_id` (the main agent) and `sentinel_model_id` (the lightweight Blue Team watcher) inside `config.json`.
75
+
76
+ Example excerpt:
77
+
78
+ ~~~json
79
+ {
80
+ "final_model_id": "deepseek-ai/DeepSeek-V4-Flash",
81
+ "sentinel_model_id": "Qwen/Qwen2.5-3B-Instruct"
82
+ }
83
+ ~~~
84
+
85
+ ---
86
+
87
+ ## Run a vulnerable target (optional)
88
+
89
+ The project includes a deliberately vulnerable Flask application (`lab.py`).
90
+ Start it in a separate terminal to give the agents something to attack/defend:
91
+
92
+ ~~~bash
93
+ python3 lab.py
94
+ ~~~
95
+
96
+ It listens on `http://127.0.0.1:4999` (or the port printed in the terminal).
97
+
98
+ ---
99
+
100
+ ## Launch Spectrum
101
+
102
+ ~~~bash
103
+ python3 main.py
104
+ ~~~
105
+
106
+ You will see the Spectrum banner. Press **Enter** to continue.
107
+
108
+ ### Choose your mode
109
+
110
+ ~~~text
111
+ Select Operational Module:
112
+ 1. Red Team (Offensive)
113
+ 2. Blue Team (Defensive)
114
+ 3. Exit
115
+ ~~~
116
+
117
+ ---
118
+
119
+ ### Red Team Mode
120
+
121
+ 1. Enter a target / objective, for example:
122
+ `Find the hidden flag on http://127.0.0.1:4999`
123
+ 2. The agent will plan, execute terminal commands, write scripts, and attempt to breach the target.
124
+ 3. **Ctrl+C** to pause, then:
125
+ - `s` – steer the agent (give an instruction)
126
+ - `p` – pause and save the session
127
+ - `Enter` – resume
128
+
129
+ ---
130
+
131
+ ### Blue Team Mode
132
+
133
+ 1. Enter the URL to defend, for example:
134
+ `http://127.0.0.1:4999`
135
+ 2. The Blue Team will:
136
+ - Kill the existing server (if any) and restart it with logging enabled.
137
+ - Start a Sentinel (small AI model) that watches the log file every few seconds.
138
+ - When an attack is detected:
139
+ - Record the attacker IP (in `blocked_ips.txt`).
140
+ - Ask the main model to classify the attack.
141
+ - Automatically patch the vulnerable code (SQLi, command injection, SSTI, etc.).
142
+ - Restart the server with a fresh log.
143
+ 3. **Ctrl+C** to pause, same steering options as Red Team.
144
+
145
+ ---
146
+
147
+ ## File structure (key files)
148
+
149
+ ~~~
150
+ spectrum/
151
+ ├── main.py # Entry point, mode selector
152
+ ├── redteamer.py # Offensive agent logic
153
+ ├── blueteamer.py # Defensive agent (Sentinel + patcher)
154
+ ├── tools.py # Tool implementations (shell, HTTP, file I/O, patch engine)
155
+ ├── lab.py # Vulnerable SAAS lab (for testing)
156
+ ├── config.json # Model IDs and provider settings
157
+ ├── requirements.txt # Python dependencies
158
+ ├── tutorials/ # Optional playbooks loaded by agents
159
+ │ ├── BLUE_DEFENSE_PLAYBOOK.md
160
+ │ └── VULNERABLE_APP_SOURCE.txt
161
+ ├── blocked_ips.txt # IPs blocked during Blue Team sessions
162
+ ├── attacks.log # Record of detected attacks
163
+ ├── server.log # Flask output (created at runtime)
164
+ ├── session.md # Live session log (viewed by viewer.py)
165
+ └── thoughts.json # Agent reasoning trail
166
+ ~~~
167
+
168
+ ---
169
+
170
+ ## Troubleshooting
171
+
172
+ - **ModuleNotFoundError** → run `pip install -r requirements.txt` again.
173
+ - **API Quota Exhausted** → wait a few minutes or switch to another model in `config.json`.
174
+ - **Blue Team doesn't detect attacks** → ensure the target was started with logging (the Blue Team does this automatically for `lab.py`).
175
+ - **Terminal output looks broken** → run `main.py` in a standard terminal; Rich formatting works best there.
176
+
177
+ ---
178
+
179
+ ## Deployment (Hugging Face Spaces / Streamlit Cloud)
180
+
181
+ The repository includes `app.py` for Streamlit deployment and a `Dockerfile` for Docker Spaces.
182
+ Refer to the comments in those files for details.
183
+
184
+ ---
185
+
186
+ For questions or contributions, open an issue on the project's GitHub page.
@@ -0,0 +1,36 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "spectrum-security"
7
+ version = "1.35.0"
8
+ description = "Autonomous Cyber Reasoning System - Red Team & Blue Team AI agents"
9
+ readme = "README.md"
10
+ license = {text = "MIT"}
11
+ authors = [
12
+ {name = "William Jiang", email = "jiangwilliam30@gmail.com"}
13
+ ]
14
+ keywords = ["cybersecurity", "red-team", "blue-team", "LLM", "autonomous-agent"]
15
+ classifiers = [
16
+ "Development Status :: 4 - Beta",
17
+ "Intended Audience :: Developers",
18
+ "Topic :: Security",
19
+ "License :: OSI Approved :: MIT License",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ ]
24
+ requires-python = ">=3.10"
25
+ dependencies = [
26
+ "flask",
27
+ "gradio",
28
+ "rich",
29
+ "requests",
30
+ ]
31
+
32
+ [project.scripts]
33
+ spectrum = "spectrum.main:main"
34
+
35
+ [tool.setuptools.packages.find]
36
+ include = ["spectrum*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,207 @@
1
+ Metadata-Version: 2.4
2
+ Name: spectrum-security
3
+ Version: 1.35.0
4
+ Summary: Autonomous Cyber Reasoning System - Red Team & Blue Team AI agents
5
+ Author-email: William Jiang <jiangwilliam30@gmail.com>
6
+ License: MIT
7
+ Keywords: cybersecurity,red-team,blue-team,LLM,autonomous-agent
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Topic :: Security
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Requires-Python: >=3.10
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: flask
18
+ Requires-Dist: gradio
19
+ Requires-Dist: rich
20
+ Requires-Dist: requests
21
+
22
+ # Spectrum – Red/Blue Team AI Framework
23
+
24
+ A dual‑mode autonomous security platform.
25
+ Run as **Red Team** to attack a target, or as **Blue Team** to monitor, detect intrusions and hot‑patch vulnerabilities.
26
+ Powered by Hugging Face (or AMD Cloud) models.
27
+
28
+ ---
29
+
30
+ ## Prerequisites
31
+
32
+ - Python 3.10 or newer
33
+ - pip
34
+ - A Hugging Face account ([hf.co](https://hf.co)) and an API token
35
+ - Git (optional – you can also download the ZIP)
36
+
37
+ ---
38
+
39
+ ## Clone the project
40
+
41
+ ~~~bash
42
+ git clone https://github.com/yourusername/spectrum.git
43
+ cd spectrum
44
+ ~~~
45
+
46
+ If you downloaded a ZIP, extract it and open a terminal inside the extracted folder.
47
+
48
+ ---
49
+
50
+ ## Install dependencies
51
+
52
+ Create and activate a virtual environment (recommended):
53
+
54
+ ~~~bash
55
+ python3 -m venv venv
56
+ source venv/bin/activate # macOS / Linux
57
+ venv\Scripts\activate # Windows
58
+ ~~~
59
+
60
+ Install the required packages:
61
+
62
+ ~~~bash
63
+ pip install -r requirements.txt
64
+ ~~~
65
+
66
+ On macOS with Homebrew Python you may need:
67
+
68
+ ~~~bash
69
+ pip install --break-system-packages -r requirements.txt
70
+ ~~~
71
+
72
+ ---
73
+
74
+ ## Configuration
75
+
76
+ ### API Provider & Token
77
+
78
+ On the first run, Spectrum asks which provider you want to use:
79
+
80
+ 1. **Hugging Face** – you will be prompted for your `HF_TOKEN`.
81
+ 2. **AMD Cloud** – you will be prompted for your `AMD_API_KEY`.
82
+
83
+ The token is saved in a `.env` file.
84
+ You can also create that file manually:
85
+
86
+ ~~~bash
87
+ echo "HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxx" > .env
88
+ ~~~
89
+
90
+ (Replace `hf_xxxxxxxxxxxxxxxxxxxx` with your actual token.)
91
+
92
+ ### Model selection (`config.json`)
93
+
94
+ The default models work out of the box.
95
+ You can change `final_model_id` (the main agent) and `sentinel_model_id` (the lightweight Blue Team watcher) inside `config.json`.
96
+
97
+ Example excerpt:
98
+
99
+ ~~~json
100
+ {
101
+ "final_model_id": "deepseek-ai/DeepSeek-V4-Flash",
102
+ "sentinel_model_id": "Qwen/Qwen2.5-3B-Instruct"
103
+ }
104
+ ~~~
105
+
106
+ ---
107
+
108
+ ## Run a vulnerable target (optional)
109
+
110
+ The project includes a deliberately vulnerable Flask application (`lab.py`).
111
+ Start it in a separate terminal to give the agents something to attack/defend:
112
+
113
+ ~~~bash
114
+ python3 lab.py
115
+ ~~~
116
+
117
+ It listens on `http://127.0.0.1:4999` (or the port printed in the terminal).
118
+
119
+ ---
120
+
121
+ ## Launch Spectrum
122
+
123
+ ~~~bash
124
+ python3 main.py
125
+ ~~~
126
+
127
+ You will see the Spectrum banner. Press **Enter** to continue.
128
+
129
+ ### Choose your mode
130
+
131
+ ~~~text
132
+ Select Operational Module:
133
+ 1. Red Team (Offensive)
134
+ 2. Blue Team (Defensive)
135
+ 3. Exit
136
+ ~~~
137
+
138
+ ---
139
+
140
+ ### Red Team Mode
141
+
142
+ 1. Enter a target / objective, for example:
143
+ `Find the hidden flag on http://127.0.0.1:4999`
144
+ 2. The agent will plan, execute terminal commands, write scripts, and attempt to breach the target.
145
+ 3. **Ctrl+C** to pause, then:
146
+ - `s` – steer the agent (give an instruction)
147
+ - `p` – pause and save the session
148
+ - `Enter` – resume
149
+
150
+ ---
151
+
152
+ ### Blue Team Mode
153
+
154
+ 1. Enter the URL to defend, for example:
155
+ `http://127.0.0.1:4999`
156
+ 2. The Blue Team will:
157
+ - Kill the existing server (if any) and restart it with logging enabled.
158
+ - Start a Sentinel (small AI model) that watches the log file every few seconds.
159
+ - When an attack is detected:
160
+ - Record the attacker IP (in `blocked_ips.txt`).
161
+ - Ask the main model to classify the attack.
162
+ - Automatically patch the vulnerable code (SQLi, command injection, SSTI, etc.).
163
+ - Restart the server with a fresh log.
164
+ 3. **Ctrl+C** to pause, same steering options as Red Team.
165
+
166
+ ---
167
+
168
+ ## File structure (key files)
169
+
170
+ ~~~
171
+ spectrum/
172
+ ├── main.py # Entry point, mode selector
173
+ ├── redteamer.py # Offensive agent logic
174
+ ├── blueteamer.py # Defensive agent (Sentinel + patcher)
175
+ ├── tools.py # Tool implementations (shell, HTTP, file I/O, patch engine)
176
+ ├── lab.py # Vulnerable SAAS lab (for testing)
177
+ ├── config.json # Model IDs and provider settings
178
+ ├── requirements.txt # Python dependencies
179
+ ├── tutorials/ # Optional playbooks loaded by agents
180
+ │ ├── BLUE_DEFENSE_PLAYBOOK.md
181
+ │ └── VULNERABLE_APP_SOURCE.txt
182
+ ├── blocked_ips.txt # IPs blocked during Blue Team sessions
183
+ ├── attacks.log # Record of detected attacks
184
+ ├── server.log # Flask output (created at runtime)
185
+ ├── session.md # Live session log (viewed by viewer.py)
186
+ └── thoughts.json # Agent reasoning trail
187
+ ~~~
188
+
189
+ ---
190
+
191
+ ## Troubleshooting
192
+
193
+ - **ModuleNotFoundError** → run `pip install -r requirements.txt` again.
194
+ - **API Quota Exhausted** → wait a few minutes or switch to another model in `config.json`.
195
+ - **Blue Team doesn't detect attacks** → ensure the target was started with logging (the Blue Team does this automatically for `lab.py`).
196
+ - **Terminal output looks broken** → run `main.py` in a standard terminal; Rich formatting works best there.
197
+
198
+ ---
199
+
200
+ ## Deployment (Hugging Face Spaces / Streamlit Cloud)
201
+
202
+ The repository includes `app.py` for Streamlit deployment and a `Dockerfile` for Docker Spaces.
203
+ Refer to the comments in those files for details.
204
+
205
+ ---
206
+
207
+ For questions or contributions, open an issue on the project's GitHub page.
@@ -0,0 +1,8 @@
1
+ README.md
2
+ pyproject.toml
3
+ spectrum_security.egg-info/PKG-INFO
4
+ spectrum_security.egg-info/SOURCES.txt
5
+ spectrum_security.egg-info/dependency_links.txt
6
+ spectrum_security.egg-info/entry_points.txt
7
+ spectrum_security.egg-info/requires.txt
8
+ spectrum_security.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ spectrum = spectrum.main:main
@@ -0,0 +1,4 @@
1
+ flask
2
+ gradio
3
+ rich
4
+ requests