lightman_ai 1.0.1__tar.gz → 1.0.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.
Potentially problematic release.
This version of lightman_ai might be problematic. Click here for more details.
- lightman_ai-1.0.1/README.md → lightman_ai-1.0.2/PKG-INFO +62 -4
- lightman_ai-1.0.1/PKG-INFO → lightman_ai-1.0.2/README.md +44 -22
- lightman_ai-1.0.2/VERSION +1 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/pyproject.toml +2 -1
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/cli.py +1 -1
- lightman_ai-1.0.1/VERSION +0 -1
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/.gitignore +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/LICENSE +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/__init__.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/base/__init__.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/base/agent.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/base/exceptions.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/gemini/__init__.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/gemini/agent.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/gemini/exceptions.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/openai/__init__.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/openai/agent.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/openai/exceptions.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/ai/utils.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/article/__init__.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/article/exceptions.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/article/models.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/constants.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/core/__init__.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/core/config.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/core/exceptions.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/core/sentry.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/core/settings.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/exceptions.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/integrations/__init__.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/integrations/service_desk/__init__.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/integrations/service_desk/constants.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/integrations/service_desk/exceptions.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/integrations/service_desk/integration.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/main.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/py.typed +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/sources/base.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/sources/exceptions.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/sources/the_hacker_news.py +0 -0
- {lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/utils.py +0 -0
|
@@ -1,4 +1,29 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: lightman_ai
|
|
3
|
+
Version: 1.0.2
|
|
4
|
+
Summary: LLM-powered cybersecurity news aggregator.
|
|
5
|
+
Author-email: sdn4z <imsdn4z@gmail.com>, scastlara <s.cast.lara@gmail.com>
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Requires-Python: <4,>=3.13
|
|
8
|
+
Requires-Dist: click<9.0.0,>=8.1.7
|
|
9
|
+
Requires-Dist: httpx<1.0.0,>=0.28.0
|
|
10
|
+
Requires-Dist: pydantic-ai-slim[google,openai]<2.0.0,>=1.0.0
|
|
11
|
+
Requires-Dist: pydantic-settings<3.0.0,>=2.9.1
|
|
12
|
+
Requires-Dist: python-dotenv<2.0.0,>=1.1.1
|
|
13
|
+
Requires-Dist: stamina<26.0.0,>=25.1.0
|
|
14
|
+
Requires-Dist: tomlkit<1.0.0,>=0.13.3
|
|
15
|
+
Provides-Extra: sentry
|
|
16
|
+
Requires-Dist: sentry-sdk<3.0.0,>=2.21.0; extra == 'sentry'
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
1
19
|
# 🔍 Lightman AI
|
|
20
|
+

|
|
21
|
+
[](https://pypi.org/project/lightman-ai/)
|
|
22
|
+
[](https://hub.docker.com/r/elementsinteractive/lightman-ai)
|
|
23
|
+
[](https://pypi.org/project/lightman-ai/)
|
|
24
|
+
[](https://github.com/astral-sh/ruff)
|
|
25
|
+
[](LICENSE)
|
|
26
|
+
|
|
2
27
|
|
|
3
28
|
> LLM-Powered Cybersecurity News Intelligence Platform
|
|
4
29
|
|
|
@@ -80,13 +105,30 @@ Lightman AI is an intelligent cybersecurity news aggregation and risk assessment
|
|
|
80
105
|
```
|
|
81
106
|
|
|
82
107
|
3. **Run with Docker**:
|
|
108
|
+
|
|
83
109
|
```bash
|
|
84
110
|
docker run --rm \
|
|
85
111
|
-v $(pwd)/lightman.toml:/app/lightman.toml \
|
|
86
112
|
-e OPENAI_API_KEY="your-api-key" \
|
|
87
113
|
elementsinteractive/lightman-ai:latest \
|
|
88
|
-
|
|
114
|
+
run --config-file /app/lightman.toml --score 8 --agent openai
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
You use a .env file instead of setting the environment variables through the cli
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
cp .env.example .env
|
|
89
121
|
```
|
|
122
|
+
|
|
123
|
+
Fill it with your values and run:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
docker run --rm \
|
|
127
|
+
-v $(pwd)/lightman.toml:/app/lightman.toml \
|
|
128
|
+
--env-file .env \
|
|
129
|
+
elementsinteractive/lightman-ai:latest \
|
|
130
|
+
run --config-file /app/lightman.toml --score 8 --agent openai
|
|
131
|
+
```
|
|
90
132
|
|
|
91
133
|
## 🔧 Usage
|
|
92
134
|
|
|
@@ -133,17 +175,33 @@ prompt = 'development' # Prompt template to use
|
|
|
133
175
|
service_desk_project_key = "SEC"
|
|
134
176
|
service_desk_request_id_type = "incident"
|
|
135
177
|
|
|
178
|
+
# alternative configuration
|
|
179
|
+
[malware]
|
|
180
|
+
agent = 'openai' # AI agent to use (openai, gemini)
|
|
181
|
+
score_threshold = 8 # Minimum relevance score (1-10)
|
|
182
|
+
prompt = 'malware' # Prompt template to use
|
|
183
|
+
|
|
184
|
+
# Optional: Service desk integration
|
|
185
|
+
service_desk_project_key = "SEC"
|
|
186
|
+
service_desk_request_id_type = "incident"
|
|
187
|
+
|
|
136
188
|
[prompts]
|
|
137
189
|
development = """
|
|
138
190
|
Analyze the following cybersecurity news articles and determine their relevance to our organization.
|
|
139
191
|
Rate each article from 1-10 based on potential impact and urgency.
|
|
140
|
-
Focus on
|
|
141
|
-
|
|
192
|
+
Focus on vulnerabilities."""
|
|
193
|
+
|
|
194
|
+
malware = """
|
|
195
|
+
Analyze the following cybersecurity news articles and determine their relevance to our organization.
|
|
196
|
+
Rate each article from 1-10 based on potential impact and urgency.
|
|
197
|
+
Focus on malware."""
|
|
142
198
|
|
|
143
199
|
custom_prompt = """
|
|
144
200
|
Your custom analysis prompt here...
|
|
145
201
|
"""
|
|
146
202
|
```
|
|
203
|
+
Note how it supports different configurations and prompts.
|
|
204
|
+
|
|
147
205
|
|
|
148
206
|
It also supports having separate files for your prompts and your configuration settings. Specify the path with `--prompt`.
|
|
149
207
|
|
|
@@ -200,7 +258,7 @@ lightman run --agent openai --score 8 --prompt security_critical --yesterday
|
|
|
200
258
|
|
|
201
259
|
### Development Installation
|
|
202
260
|
In order to fully use the provided setup for local development and testing, this project requires the following dependencies:
|
|
203
|
-
- Python 3.13
|
|
261
|
+
- [Python 3.13](https://www.python.org/downloads/release/python-3130/)
|
|
204
262
|
- [just](https://github.com/casey/just)
|
|
205
263
|
- [uv](https://docs.astral.sh/uv/getting-started/installation/)
|
|
206
264
|
|
|
@@ -1,22 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: lightman_ai
|
|
3
|
-
Version: 1.0.1
|
|
4
|
-
Summary: LLM-powered cybersecurity news aggregator.
|
|
5
|
-
Author-email: sdn4z <imsdn4z@gmail.com>
|
|
6
|
-
License-File: LICENSE
|
|
7
|
-
Requires-Python: <4,>=3.13
|
|
8
|
-
Requires-Dist: click<9.0.0,>=8.1.7
|
|
9
|
-
Requires-Dist: httpx<1.0.0,>=0.28.0
|
|
10
|
-
Requires-Dist: pydantic-ai-slim[google,openai]>=0.4.4
|
|
11
|
-
Requires-Dist: pydantic-settings<3.0.0,>=2.9.1
|
|
12
|
-
Requires-Dist: python-dotenv<2.0.0,>=1.1.1
|
|
13
|
-
Requires-Dist: stamina<26.0.0,>=25.1.0
|
|
14
|
-
Requires-Dist: tomlkit<1.0.0,>=0.13.3
|
|
15
|
-
Provides-Extra: sentry
|
|
16
|
-
Requires-Dist: sentry-sdk<3.0.0,>=2.21.0; extra == 'sentry'
|
|
17
|
-
Description-Content-Type: text/markdown
|
|
18
|
-
|
|
19
1
|
# 🔍 Lightman AI
|
|
2
|
+

|
|
3
|
+
[](https://pypi.org/project/lightman-ai/)
|
|
4
|
+
[](https://hub.docker.com/r/elementsinteractive/lightman-ai)
|
|
5
|
+
[](https://pypi.org/project/lightman-ai/)
|
|
6
|
+
[](https://github.com/astral-sh/ruff)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
|
|
20
9
|
|
|
21
10
|
> LLM-Powered Cybersecurity News Intelligence Platform
|
|
22
11
|
|
|
@@ -98,13 +87,30 @@ Lightman AI is an intelligent cybersecurity news aggregation and risk assessment
|
|
|
98
87
|
```
|
|
99
88
|
|
|
100
89
|
3. **Run with Docker**:
|
|
90
|
+
|
|
101
91
|
```bash
|
|
102
92
|
docker run --rm \
|
|
103
93
|
-v $(pwd)/lightman.toml:/app/lightman.toml \
|
|
104
94
|
-e OPENAI_API_KEY="your-api-key" \
|
|
105
95
|
elementsinteractive/lightman-ai:latest \
|
|
106
|
-
|
|
96
|
+
run --config-file /app/lightman.toml --score 8 --agent openai
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
You use a .env file instead of setting the environment variables through the cli
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
cp .env.example .env
|
|
107
103
|
```
|
|
104
|
+
|
|
105
|
+
Fill it with your values and run:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
docker run --rm \
|
|
109
|
+
-v $(pwd)/lightman.toml:/app/lightman.toml \
|
|
110
|
+
--env-file .env \
|
|
111
|
+
elementsinteractive/lightman-ai:latest \
|
|
112
|
+
run --config-file /app/lightman.toml --score 8 --agent openai
|
|
113
|
+
```
|
|
108
114
|
|
|
109
115
|
## 🔧 Usage
|
|
110
116
|
|
|
@@ -151,17 +157,33 @@ prompt = 'development' # Prompt template to use
|
|
|
151
157
|
service_desk_project_key = "SEC"
|
|
152
158
|
service_desk_request_id_type = "incident"
|
|
153
159
|
|
|
160
|
+
# alternative configuration
|
|
161
|
+
[malware]
|
|
162
|
+
agent = 'openai' # AI agent to use (openai, gemini)
|
|
163
|
+
score_threshold = 8 # Minimum relevance score (1-10)
|
|
164
|
+
prompt = 'malware' # Prompt template to use
|
|
165
|
+
|
|
166
|
+
# Optional: Service desk integration
|
|
167
|
+
service_desk_project_key = "SEC"
|
|
168
|
+
service_desk_request_id_type = "incident"
|
|
169
|
+
|
|
154
170
|
[prompts]
|
|
155
171
|
development = """
|
|
156
172
|
Analyze the following cybersecurity news articles and determine their relevance to our organization.
|
|
157
173
|
Rate each article from 1-10 based on potential impact and urgency.
|
|
158
|
-
Focus on
|
|
159
|
-
|
|
174
|
+
Focus on vulnerabilities."""
|
|
175
|
+
|
|
176
|
+
malware = """
|
|
177
|
+
Analyze the following cybersecurity news articles and determine their relevance to our organization.
|
|
178
|
+
Rate each article from 1-10 based on potential impact and urgency.
|
|
179
|
+
Focus on malware."""
|
|
160
180
|
|
|
161
181
|
custom_prompt = """
|
|
162
182
|
Your custom analysis prompt here...
|
|
163
183
|
"""
|
|
164
184
|
```
|
|
185
|
+
Note how it supports different configurations and prompts.
|
|
186
|
+
|
|
165
187
|
|
|
166
188
|
It also supports having separate files for your prompts and your configuration settings. Specify the path with `--prompt`.
|
|
167
189
|
|
|
@@ -218,7 +240,7 @@ lightman run --agent openai --score 8 --prompt security_critical --yesterday
|
|
|
218
240
|
|
|
219
241
|
### Development Installation
|
|
220
242
|
In order to fully use the provided setup for local development and testing, this project requires the following dependencies:
|
|
221
|
-
- Python 3.13
|
|
243
|
+
- [Python 3.13](https://www.python.org/downloads/release/python-3130/)
|
|
222
244
|
- [just](https://github.com/casey/just)
|
|
223
245
|
- [uv](https://docs.astral.sh/uv/getting-started/installation/)
|
|
224
246
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
v1.0.2
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
[project]
|
|
3
3
|
authors = [
|
|
4
4
|
{name = "sdn4z", email = "imsdn4z@gmail.com"},
|
|
5
|
+
{name = "scastlara", email = "s.cast.lara@gmail.com"}
|
|
5
6
|
]
|
|
6
7
|
requires-python = "<4,>=3.13"
|
|
7
8
|
dependencies = [
|
|
@@ -11,7 +12,7 @@ dependencies = [
|
|
|
11
12
|
"stamina<26.0.0,>=25.1.0",
|
|
12
13
|
"pydantic-settings<3.0.0,>=2.9.1",
|
|
13
14
|
"tomlkit<1.0.0,>=0.13.3",
|
|
14
|
-
"pydantic-ai-slim[google,openai]>=0.
|
|
15
|
+
"pydantic-ai-slim[google,openai]>=1.0.0,<2.0.0",
|
|
15
16
|
]
|
|
16
17
|
name = "lightman_ai"
|
|
17
18
|
description = "LLM-powered cybersecurity news aggregator."
|
|
@@ -91,7 +91,7 @@ def run(
|
|
|
91
91
|
|
|
92
92
|
Holds no logic. It loads the configuration, calls the main method and returns 0 when succesful .
|
|
93
93
|
"""
|
|
94
|
-
load_dotenv(env_file or DEFAULT_ENV_FILE)
|
|
94
|
+
load_dotenv(env_file or DEFAULT_ENV_FILE)
|
|
95
95
|
configure_sentry()
|
|
96
96
|
|
|
97
97
|
settings = Settings.try_load_from_file(env_file)
|
lightman_ai-1.0.1/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
v1.0.1
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/integrations/service_desk/__init__.py
RENAMED
|
File without changes
|
{lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/integrations/service_desk/constants.py
RENAMED
|
File without changes
|
{lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/integrations/service_desk/exceptions.py
RENAMED
|
File without changes
|
{lightman_ai-1.0.1 → lightman_ai-1.0.2}/src/lightman_ai/integrations/service_desk/integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|