lightman_ai 1.0.1__tar.gz → 1.0.3__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.

Files changed (40) hide show
  1. lightman_ai-1.0.1/README.md → lightman_ai-1.0.3/PKG-INFO +62 -4
  2. lightman_ai-1.0.1/PKG-INFO → lightman_ai-1.0.3/README.md +44 -22
  3. lightman_ai-1.0.3/VERSION +1 -0
  4. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/pyproject.toml +2 -1
  5. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/cli.py +1 -1
  6. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/core/sentry.py +2 -2
  7. lightman_ai-1.0.1/VERSION +0 -1
  8. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/.gitignore +0 -0
  9. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/LICENSE +0 -0
  10. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/__init__.py +0 -0
  11. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/base/__init__.py +0 -0
  12. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/base/agent.py +0 -0
  13. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/base/exceptions.py +0 -0
  14. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/gemini/__init__.py +0 -0
  15. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/gemini/agent.py +0 -0
  16. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/gemini/exceptions.py +0 -0
  17. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/openai/__init__.py +0 -0
  18. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/openai/agent.py +0 -0
  19. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/openai/exceptions.py +0 -0
  20. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/ai/utils.py +0 -0
  21. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/article/__init__.py +0 -0
  22. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/article/exceptions.py +0 -0
  23. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/article/models.py +0 -0
  24. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/constants.py +0 -0
  25. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/core/__init__.py +0 -0
  26. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/core/config.py +0 -0
  27. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/core/exceptions.py +0 -0
  28. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/core/settings.py +0 -0
  29. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/exceptions.py +0 -0
  30. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/integrations/__init__.py +0 -0
  31. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/integrations/service_desk/__init__.py +0 -0
  32. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/integrations/service_desk/constants.py +0 -0
  33. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/integrations/service_desk/exceptions.py +0 -0
  34. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/integrations/service_desk/integration.py +0 -0
  35. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/main.py +0 -0
  36. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/py.typed +0 -0
  37. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/sources/base.py +0 -0
  38. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/sources/exceptions.py +0 -0
  39. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/sources/the_hacker_news.py +0 -0
  40. {lightman_ai-1.0.1 → lightman_ai-1.0.3}/src/lightman_ai/utils.py +0 -0
@@ -1,4 +1,29 @@
1
+ Metadata-Version: 2.4
2
+ Name: lightman_ai
3
+ Version: 1.0.3
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
+ ![Build Status](https://github.com/elementsinteractive/lightman-ai/actions/workflows/test.yml/badge.svg)
21
+ [![PyPI version](https://img.shields.io/pypi/v/lightman-ai)](https://pypi.org/project/lightman-ai/)
22
+ [![Docker version](https://img.shields.io/docker/v/elementsinteractive/lightman-ai?label=DockerHub&logo=docker&logoColor=f5f5f5)](https://hub.docker.com/r/elementsinteractive/lightman-ai)
23
+ [![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue?logo=python&logoColor=yellow)](https://pypi.org/project/lightman-ai/)
24
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
25
+ [![License](https://img.shields.io/github/license/elementsinteractive/lightman-ai)](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
- lightman run --config-file /app/lightman.toml --score 7
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: data breaches, malware, vulnerabilities, and threat intelligence.
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
+ ![Build Status](https://github.com/elementsinteractive/lightman-ai/actions/workflows/test.yml/badge.svg)
3
+ [![PyPI version](https://img.shields.io/pypi/v/lightman-ai)](https://pypi.org/project/lightman-ai/)
4
+ [![Docker version](https://img.shields.io/docker/v/elementsinteractive/lightman-ai?label=DockerHub&logo=docker&logoColor=f5f5f5)](https://hub.docker.com/r/elementsinteractive/lightman-ai)
5
+ [![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue?logo=python&logoColor=yellow)](https://pypi.org/project/lightman-ai/)
6
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
7
+ [![License](https://img.shields.io/github/license/elementsinteractive/lightman-ai)](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
- lightman run --config-file /app/lightman.toml --score 7
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: data breaches, malware, vulnerabilities, and threat intelligence.
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.3
@@ -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.4.4",
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) # TODO refs: #112
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)
@@ -8,8 +8,8 @@ logger = logging.getLogger("lightman")
8
8
  def configure_sentry() -> None:
9
9
  """Configure Sentry for error tracking."""
10
10
  try:
11
- import sentry_sdk
12
- from sentry_sdk.integrations.logging import LoggingIntegration
11
+ import sentry_sdk # noqa: PLC0415
12
+ from sentry_sdk.integrations.logging import LoggingIntegration # noqa: PLC0415
13
13
  except ImportError:
14
14
  logger.warning(
15
15
  "Could not initialize sentry, it is not installed! Add it by installing the project with `lightman-ai[sentry]`."
lightman_ai-1.0.1/VERSION DELETED
@@ -1 +0,0 @@
1
- v1.0.1
File without changes
File without changes