opspilot-ai 0.1.0__py3-none-any.whl
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.
- opspilot/__init__.py +0 -0
- opspilot/agents/fixer.py +46 -0
- opspilot/agents/planner.py +74 -0
- opspilot/agents/remediation.py +200 -0
- opspilot/agents/verifier.py +67 -0
- opspilot/cli.py +360 -0
- opspilot/config.py +22 -0
- opspilot/context/__init__.py +26 -0
- opspilot/context/deployment_history.py +347 -0
- opspilot/context/deps.py +14 -0
- opspilot/context/docker.py +17 -0
- opspilot/context/env.py +17 -0
- opspilot/context/logs.py +16 -0
- opspilot/context/production_logs.py +262 -0
- opspilot/context/project.py +19 -0
- opspilot/diffs/redis.py +23 -0
- opspilot/graph/engine.py +33 -0
- opspilot/graph/nodes.py +41 -0
- opspilot/memory.py +24 -0
- opspilot/memory_redis.py +322 -0
- opspilot/state.py +18 -0
- opspilot/tools/__init__.py +52 -0
- opspilot/tools/dep_tools.py +5 -0
- opspilot/tools/env_tools.py +5 -0
- opspilot/tools/log_tools.py +11 -0
- opspilot/tools/pattern_analysis.py +194 -0
- opspilot/utils/__init__.py +1 -0
- opspilot/utils/llm.py +23 -0
- opspilot/utils/llm_providers.py +499 -0
- opspilot_ai-0.1.0.dist-info/METADATA +408 -0
- opspilot_ai-0.1.0.dist-info/RECORD +35 -0
- opspilot_ai-0.1.0.dist-info/WHEEL +5 -0
- opspilot_ai-0.1.0.dist-info/entry_points.txt +2 -0
- opspilot_ai-0.1.0.dist-info/licenses/LICENSE +21 -0
- opspilot_ai-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: opspilot-ai
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: AI-powered production incident analysis tool using multi-agent systems
|
|
5
|
+
Home-page: https://github.com/choudharikiranv15/opspilot
|
|
6
|
+
Author: Kiran Vijaykumar Choudhari
|
|
7
|
+
Author-email: Kiran Vijaykumar Choudhari <choudharikiranv2003@gmail.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Homepage, https://github.com/choudharikiranv15/opspilot
|
|
10
|
+
Project-URL: Documentation, https://github.com/choudharikiranv15/opspilot#readme
|
|
11
|
+
Project-URL: Repository, https://github.com/choudharikiranv15/opspilot
|
|
12
|
+
Project-URL: Bug Tracker, https://github.com/choudharikiranv15/opspilot/issues
|
|
13
|
+
Project-URL: Changelog, https://github.com/choudharikiranv15/opspilot/releases
|
|
14
|
+
Keywords: ai,mlops,devops,incident-analysis,sre,production-monitoring,agentic-ai,multi-agent,llm,observability,incident-response,automation
|
|
15
|
+
Classifier: Development Status :: 3 - Alpha
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Intended Audience :: System Administrators
|
|
18
|
+
Classifier: Topic :: Software Development :: Debuggers
|
|
19
|
+
Classifier: Topic :: System :: Monitoring
|
|
20
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
21
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
22
|
+
Classifier: Operating System :: OS Independent
|
|
23
|
+
Classifier: Programming Language :: Python :: 3
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
27
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
28
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
29
|
+
Classifier: Environment :: Console
|
|
30
|
+
Classifier: Typing :: Typed
|
|
31
|
+
Requires-Python: >=3.8
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
License-File: LICENSE
|
|
34
|
+
Requires-Dist: typer>=0.9.0
|
|
35
|
+
Requires-Dist: rich>=13.0.0
|
|
36
|
+
Requires-Dist: requests>=2.28.0
|
|
37
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
38
|
+
Provides-Extra: dev
|
|
39
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
40
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
41
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
42
|
+
Requires-Dist: flake8>=6.0.0; extra == "dev"
|
|
43
|
+
Requires-Dist: build>=0.10.0; extra == "dev"
|
|
44
|
+
Requires-Dist: twine>=4.0.0; extra == "dev"
|
|
45
|
+
Provides-Extra: redis
|
|
46
|
+
Requires-Dist: redis>=4.5.0; extra == "redis"
|
|
47
|
+
Provides-Extra: aws
|
|
48
|
+
Requires-Dist: boto3>=1.26.0; extra == "aws"
|
|
49
|
+
Provides-Extra: k8s
|
|
50
|
+
Requires-Dist: kubernetes>=25.0.0; extra == "k8s"
|
|
51
|
+
Provides-Extra: all
|
|
52
|
+
Requires-Dist: redis>=4.5.0; extra == "all"
|
|
53
|
+
Requires-Dist: boto3>=1.26.0; extra == "all"
|
|
54
|
+
Requires-Dist: kubernetes>=25.0.0; extra == "all"
|
|
55
|
+
Dynamic: author
|
|
56
|
+
Dynamic: home-page
|
|
57
|
+
Dynamic: license-file
|
|
58
|
+
Dynamic: requires-python
|
|
59
|
+
|
|
60
|
+
# OpsPilot π€
|
|
61
|
+
|
|
62
|
+
> An intelligent agentic AI CLI tool for automated incident analysis and error resolution
|
|
63
|
+
|
|
64
|
+
OpsPilot is your AI-powered Site Reliability Engineer that analyzes your projects, identifies runtime issues, and suggests safe fixesβall through a simple command-line interface.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## π― What is OpsPilot?
|
|
69
|
+
|
|
70
|
+
OpsPilot uses a **multi-agent AI architecture** to understand your project's context, form hypotheses about runtime issues, and provide evidence-based fix recommendations. Think of it as having an experienced SRE on your team, available 24/7.
|
|
71
|
+
|
|
72
|
+
### Key Capabilities
|
|
73
|
+
|
|
74
|
+
- **π Intelligent Context Gathering** - Automatically analyzes logs, environment variables, Docker configs, dependencies, and project structure
|
|
75
|
+
- **π§ Multi-Agent Architecture** - 4 specialized agents (Planner, Verifier, Fixer, Remediation) working collaboratively
|
|
76
|
+
- **π Multi-Provider LLM Support** - Automatic fallback across Ollama, OpenRouter, Gemini, and HuggingFace
|
|
77
|
+
- **β
Evidence-Based Verification** - Validates hypotheses with collected evidence and confidence scoring
|
|
78
|
+
- **π οΈ Safe Fix Suggestions** - Provides dry-run suggestions with detailed rationale (never auto-applies changes)
|
|
79
|
+
- **πΎ Redis-Based Memory** - Auto-expiring incident history with user isolation and sub-second lookups
|
|
80
|
+
- **π¨ Severity Classification** - Automatic P0/P1/P2/P3 incident prioritization
|
|
81
|
+
- **βοΈ Production Log Fetching** - S3, Kubernetes, CloudWatch, and HTTP endpoint support
|
|
82
|
+
- **π Deployment Correlation** - Links incidents to recent Git deployments for faster root cause analysis
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## π Quick Start
|
|
87
|
+
|
|
88
|
+
### Prerequisites
|
|
89
|
+
|
|
90
|
+
- Python 3.8 or higher
|
|
91
|
+
- At least ONE of the following LLM providers:
|
|
92
|
+
- [Ollama](https://ollama.ai/) (local, free, recommended)
|
|
93
|
+
- Google Gemini API key (free tier)
|
|
94
|
+
- OpenRouter API key (free models available)
|
|
95
|
+
- HuggingFace API token (free tier)
|
|
96
|
+
|
|
97
|
+
### Installation
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Clone repository
|
|
101
|
+
git clone https://github.com/yourusername/opspilot.git
|
|
102
|
+
cd opspilot
|
|
103
|
+
|
|
104
|
+
# Basic installation
|
|
105
|
+
pip install -e .
|
|
106
|
+
|
|
107
|
+
# With Redis support (recommended for production)
|
|
108
|
+
pip install -e ".[redis]"
|
|
109
|
+
|
|
110
|
+
# With all integrations (Redis + AWS + Kubernetes)
|
|
111
|
+
pip install -e ".[all]"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### LLM Setup
|
|
115
|
+
|
|
116
|
+
**Option 1: Ollama (Recommended - Local & Free)**
|
|
117
|
+
```bash
|
|
118
|
+
# Install Ollama
|
|
119
|
+
curl -fsSL https://ollama.ai/install.sh | sh
|
|
120
|
+
|
|
121
|
+
# Pull Llama 3 model
|
|
122
|
+
ollama pull llama3
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Option 2: Cloud Providers (FREE tiers)**
|
|
126
|
+
```bash
|
|
127
|
+
# Copy environment template
|
|
128
|
+
cp .env.example .env
|
|
129
|
+
|
|
130
|
+
# Add your API keys to .env
|
|
131
|
+
# GOOGLE_API_KEY=your-key-here
|
|
132
|
+
# OPENROUTER_API_KEY=your-key-here
|
|
133
|
+
# HUGGINGFACE_API_KEY=your-key-here
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
See [FREE_LLM_SETUP.md](FREE_LLM_SETUP.md) for detailed setup instructions.
|
|
137
|
+
|
|
138
|
+
### Usage
|
|
139
|
+
|
|
140
|
+
Navigate to your project directory and run:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Basic analysis
|
|
144
|
+
opspilot analyze
|
|
145
|
+
|
|
146
|
+
# Analyze with production logs from S3
|
|
147
|
+
opspilot analyze --log-source s3://my-bucket/logs/app.log
|
|
148
|
+
|
|
149
|
+
# Analyze with deployment correlation
|
|
150
|
+
opspilot analyze --deployment-analysis --since-hours 48
|
|
151
|
+
|
|
152
|
+
# JSON output for automation
|
|
153
|
+
opspilot analyze --json --mode quick
|
|
154
|
+
|
|
155
|
+
# Verbose output for debugging
|
|
156
|
+
opspilot analyze --verbose --debug
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Example Output:**
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
Similar issues detected from past runs:
|
|
163
|
+
- Redis connection issue caused by network or Redis server downtime (confidence 0.8)
|
|
164
|
+
|
|
165
|
+
OpsPilot initialized
|
|
166
|
+
Project detected: /your/project
|
|
167
|
+
|
|
168
|
+
Planner Agent reasoning...
|
|
169
|
+
Hypothesis: Redis connection issue
|
|
170
|
+
Confidence: 0.9
|
|
171
|
+
|
|
172
|
+
Evidence collected:
|
|
173
|
+
{'log_errors': {'ERROR': 1, 'Timeout': 1}, 'uses_redis': True}
|
|
174
|
+
|
|
175
|
+
Verifying hypothesis...
|
|
176
|
+
Supported: True
|
|
177
|
+
Confidence: 0.8
|
|
178
|
+
Reason: The presence of Redis connection-related errors (Timeout) and the system's use of Redis support the hypothesis.
|
|
179
|
+
|
|
180
|
+
Generating safe fix suggestions (dry-run)...
|
|
181
|
+
|
|
182
|
+
File: .env
|
|
183
|
+
Increase Redis timeout to reduce transient timeout errors under load.
|
|
184
|
+
--- a/.env
|
|
185
|
+
+++ b/.env
|
|
186
|
+
@@
|
|
187
|
+
-REDIS_TIMEOUT=1
|
|
188
|
+
+REDIS_TIMEOUT=5
|
|
189
|
+
|
|
190
|
+
File: app/config/redis.py
|
|
191
|
+
Enable connection pooling and reasonable timeouts to improve reliability.
|
|
192
|
+
--- a/app/config/redis.py
|
|
193
|
+
+++ b/app/config/redis.py
|
|
194
|
+
@@
|
|
195
|
+
-redis.Redis(host=host, port=port)
|
|
196
|
+
+redis.Redis(host=host, port=port, socket_timeout=5, max_connections=20)
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## ποΈ Architecture
|
|
202
|
+
|
|
203
|
+
OpsPilot implements a **multi-agent agentic architecture** with four specialized agents:
|
|
204
|
+
|
|
205
|
+
1. **Planner Agent** - Analyzes project context and forms hypotheses about root causes
|
|
206
|
+
2. **Verifier Agent** - Collects evidence and validates hypotheses with confidence scoring
|
|
207
|
+
3. **Fixer Agent** - Generates safe, actionable fix suggestions
|
|
208
|
+
4. **Remediation Agent** - Creates 3-tier action plans (immediate, short-term, long-term)
|
|
209
|
+
|
|
210
|
+
**Multi-Provider LLM System:**
|
|
211
|
+
- Automatic fallback routing across 4 providers
|
|
212
|
+
- Connection pooling for high availability
|
|
213
|
+
- Provider health metrics and monitoring
|
|
214
|
+
|
|
215
|
+
**Redis-Based Memory:**
|
|
216
|
+
- User-isolated incident storage with SHA-256 project hashing
|
|
217
|
+
- Automatic TTL expiration (configurable, default 30 days)
|
|
218
|
+
- Sub-second similarity search with sorted sets
|
|
219
|
+
- Severity-based indexing (P0/P1/P2/P3)
|
|
220
|
+
|
|
221
|
+
See [ARCHITECTURE.md](ARCHITECTURE.md) for detailed design documentation.
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## π§© How It Works
|
|
226
|
+
|
|
227
|
+
### 1. Context Collection
|
|
228
|
+
OpsPilot gathers information from multiple sources:
|
|
229
|
+
- **Logs**: Recent error logs and exceptions
|
|
230
|
+
- **Environment**: Environment variables and configurations
|
|
231
|
+
- **Dependencies**: Project dependencies (requirements.txt, package.json)
|
|
232
|
+
- **Docker**: Dockerfile and docker-compose configurations
|
|
233
|
+
- **Structure**: Project file tree and organization
|
|
234
|
+
|
|
235
|
+
### 2. Hypothesis Generation
|
|
236
|
+
The Planner agent uses LLM reasoning to:
|
|
237
|
+
- Analyze collected context
|
|
238
|
+
- Identify patterns and anomalies
|
|
239
|
+
- Form hypotheses about root causes
|
|
240
|
+
- Assign confidence scores (0.0 - 1.0)
|
|
241
|
+
|
|
242
|
+
### 3. Evidence-Based Verification
|
|
243
|
+
The Verifier agent:
|
|
244
|
+
- Collects concrete evidence (log errors, missing configs, etc.)
|
|
245
|
+
- Cross-references with the hypothesis
|
|
246
|
+
- Updates confidence based on evidence strength
|
|
247
|
+
- Provides reasoning for the verdict
|
|
248
|
+
|
|
249
|
+
### 4. Safe Fix Suggestions
|
|
250
|
+
If confidence β₯ 0.6, the Fixer agent:
|
|
251
|
+
- Generates actionable fix suggestions as diffs
|
|
252
|
+
- Explains the rationale for each fix
|
|
253
|
+
- Provides domain-specific solutions (e.g., Redis timeout fixes)
|
|
254
|
+
- **Never auto-applies changes** (dry-run only for safety)
|
|
255
|
+
|
|
256
|
+
### 5. Learning from History
|
|
257
|
+
OpsPilot maintains Redis-based memory of past issues:
|
|
258
|
+
- Stores hypotheses, confidence scores, and evidence with automatic TTL
|
|
259
|
+
- User-isolated storage using project path hashing
|
|
260
|
+
- Detects similar issues in future runs with sub-second lookups
|
|
261
|
+
- Automatic expiration prevents stale incident data
|
|
262
|
+
- Falls back to file-based storage if Redis unavailable
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## π Technology Stack
|
|
267
|
+
|
|
268
|
+
- **LLM Integration**: Multi-provider system (Ollama, OpenRouter, Gemini, HuggingFace) with automatic fallback
|
|
269
|
+
- **Memory Layer**: Redis (with file-based fallback) for incident history and similarity detection
|
|
270
|
+
- **CLI Framework**: Typer + Rich (professional terminal output)
|
|
271
|
+
- **Cloud Integration**: AWS (S3, CloudWatch), Kubernetes, HTTP endpoints
|
|
272
|
+
- **AI Pattern**: Multi-agent agentic architecture with 4 specialized agents
|
|
273
|
+
- **Reasoning**: Evidence-based decision making with P0/P1/P2/P3 severity classification
|
|
274
|
+
- **Prompt Engineering**: Robust JSON extraction with retry logic and safe parsing
|
|
275
|
+
- **Testing**: pytest with 45+ unit tests and integration test coverage
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## π Project Structure
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
opspilot/
|
|
283
|
+
βββ agents/ # Four specialized AI agents
|
|
284
|
+
β βββ planner.py # Hypothesis generation
|
|
285
|
+
β βββ verifier.py # Evidence-based verification
|
|
286
|
+
β βββ fixer.py # Safe fix suggestions
|
|
287
|
+
β βββ remediation.py # 3-tier remediation plans
|
|
288
|
+
βββ context/ # Context gathering modules
|
|
289
|
+
β βββ logs.py # Log analysis
|
|
290
|
+
β βββ env.py # Environment variables
|
|
291
|
+
β βββ deps.py # Dependency detection
|
|
292
|
+
β βββ docker.py # Docker configuration
|
|
293
|
+
β βββ project.py # Project structure
|
|
294
|
+
β βββ production_logs.py # Multi-source log fetching (S3, K8s, CloudWatch)
|
|
295
|
+
β βββ deployment_history.py # Git-based deployment correlation
|
|
296
|
+
β βββ pattern_analysis.py # Error pattern detection & severity classification
|
|
297
|
+
βββ utils/ # Shared utilities
|
|
298
|
+
β βββ llm_providers.py # Multi-provider LLM router with fallback
|
|
299
|
+
β βββ llm.py # Backward-compatible LLM wrapper
|
|
300
|
+
βββ tools/ # Evidence collection utilities
|
|
301
|
+
β βββ log_tools.py # Log error analysis
|
|
302
|
+
β βββ env_tools.py # Environment validation
|
|
303
|
+
β βββ dep_tools.py # Dependency checking
|
|
304
|
+
βββ diffs/ # Domain-specific fix templates
|
|
305
|
+
βββ memory.py # File-based memory (fallback)
|
|
306
|
+
βββ memory_redis.py # Redis-based memory with user isolation
|
|
307
|
+
βββ tests/ # Comprehensive test suite (45+ tests)
|
|
308
|
+
β βββ test_pattern_analysis.py
|
|
309
|
+
β βββ test_production_logs.py
|
|
310
|
+
β βββ test_remediation.py
|
|
311
|
+
β βββ test_llm_providers.py
|
|
312
|
+
βββ cli.py # Command-line interface
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## π Safety & Design Principles
|
|
318
|
+
|
|
319
|
+
- **Dry-Run Only**: Never automatically applies changes to your code
|
|
320
|
+
- **Evidence-Based**: All suggestions backed by concrete evidence
|
|
321
|
+
- **Confidence Scoring**: Transparent about certainty levels (0.0 - 1.0)
|
|
322
|
+
- **Privacy-Focused**: Prefers local LLM (Ollama) with automatic fallback to cloud
|
|
323
|
+
- **User Isolation**: Redis memory uses SHA-256 project hashing for complete data separation
|
|
324
|
+
- **Auto-Expiring Data**: Incidents automatically expire after configurable TTL (default 30 days)
|
|
325
|
+
- **High Availability**: Multi-provider LLM system with automatic failover
|
|
326
|
+
- **Modular Design**: Easy to extend with new agents, providers, or context sources
|
|
327
|
+
- **Production-Ready**: Comprehensive test coverage, error handling, and graceful degradation
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## π οΈ Development
|
|
332
|
+
|
|
333
|
+
### Running from Source
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
# Install in development mode
|
|
337
|
+
pip install -e .
|
|
338
|
+
|
|
339
|
+
# Run the CLI
|
|
340
|
+
opspilot analyze
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### Requirements
|
|
344
|
+
|
|
345
|
+
- Python 3.8+
|
|
346
|
+
- At least one LLM provider (see Quick Start)
|
|
347
|
+
- Optional: Redis for production incident memory
|
|
348
|
+
|
|
349
|
+
### Running Tests
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
# Install test dependencies
|
|
353
|
+
pip install -e ".[dev]"
|
|
354
|
+
|
|
355
|
+
# Run all tests
|
|
356
|
+
pytest
|
|
357
|
+
|
|
358
|
+
# Run with coverage
|
|
359
|
+
pytest --cov=opspilot tests/
|
|
360
|
+
|
|
361
|
+
# Run specific test file
|
|
362
|
+
pytest tests/test_llm_providers.py
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## πΊοΈ Roadmap
|
|
368
|
+
|
|
369
|
+
- [x] Multi-provider LLM support with automatic fallback
|
|
370
|
+
- [x] Comprehensive test coverage (45+ tests)
|
|
371
|
+
- [x] Redis-based memory with user isolation
|
|
372
|
+
- [x] Production log fetching (S3, K8s, CloudWatch)
|
|
373
|
+
- [x] Deployment correlation analysis
|
|
374
|
+
- [x] Severity classification (P0/P1/P2/P3)
|
|
375
|
+
- [ ] Plugin system for custom agents
|
|
376
|
+
- [ ] Web API for remote usage
|
|
377
|
+
- [ ] More domain-specific fix templates (PostgreSQL, MongoDB, etc.)
|
|
378
|
+
- [ ] Real-time metrics dashboard
|
|
379
|
+
- [ ] Slack/PagerDuty integration for incident alerts
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
## π License
|
|
384
|
+
|
|
385
|
+
MIT License - see [LICENSE](LICENSE) for details
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## π€ Contributing
|
|
390
|
+
|
|
391
|
+
Contributions are welcome! This project is under active development. Please:
|
|
392
|
+
|
|
393
|
+
1. Fork the repository
|
|
394
|
+
2. Create a feature branch
|
|
395
|
+
3. Make your changes
|
|
396
|
+
4. Submit a pull request
|
|
397
|
+
|
|
398
|
+
For major changes, please open an issue first to discuss your ideas.
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
## π§ Contact
|
|
403
|
+
|
|
404
|
+
For questions or feedback, please open an issue on GitHub.
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
**Built with β€οΈ using agentic AI principles**
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
opspilot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
opspilot/cli.py,sha256=daojuqoPFYJO1y7GuSMweCoJFRqy_6X7DdQqq-KQijI,15053
|
|
3
|
+
opspilot/config.py,sha256=in9q7xd7RKBbJeMJ5AOQ1S9Op5_d3TaP_MRtlQWWo20,530
|
|
4
|
+
opspilot/memory.py,sha256=PS5_oqt1VNSkJgAoeDOboZKO0hRuhiLEi_OLRHl-z68,628
|
|
5
|
+
opspilot/memory_redis.py,sha256=MtKu1EzjUOVvAOBE2V2e_wLk0K4R5gwPFy-mI1l4CyQ,9578
|
|
6
|
+
opspilot/state.py,sha256=mUJ10xeIB55ujHROsu63MwWLF2qc8azjdWzvtB5AEZI,490
|
|
7
|
+
opspilot/agents/fixer.py,sha256=1VYDDG7YKnuzEHYb2SmGgC5AVSfZf4pxy-FnaOzhmfU,986
|
|
8
|
+
opspilot/agents/planner.py,sha256=Wt_0tAeYKNH8dEb-lQEYk3m4dxYxu5do8x5CZT7nlA0,2049
|
|
9
|
+
opspilot/agents/remediation.py,sha256=daTlhaYZpXFyD_F1iuXvnN4ij0e405uvJ8FbFEqRmo8,7706
|
|
10
|
+
opspilot/agents/verifier.py,sha256=R4H_rm8CG3qGJhK6kPzKUjom869_bfaWDcyy9lP1AQk,1664
|
|
11
|
+
opspilot/context/__init__.py,sha256=h2zikX8F8Z_hkPqyE_WPpr_NI43r2h4bgfvEVpLMMMc,806
|
|
12
|
+
opspilot/context/deployment_history.py,sha256=Ni8XTrq4PzRacmLVVnAnlD47SatcvMDh45Ei_R5VRKc,10642
|
|
13
|
+
opspilot/context/deps.py,sha256=pXKsqbZ5yHFDZWRJh0lJV1YCez0B-vqGoCTtIBIrv6E,339
|
|
14
|
+
opspilot/context/docker.py,sha256=A1AymC5-CckQbgs8s7kRZcrGqydjWYmQI9hfxVWqlyI,443
|
|
15
|
+
opspilot/context/env.py,sha256=DAO7YWwbCu9mIAZtgG7ChJV2lJBQz5PTm9j0PGvYiws,455
|
|
16
|
+
opspilot/context/logs.py,sha256=zk4hdiOcheWGfl8z9ylZvPUECa5vV-eTecNzPDC3Jvw,442
|
|
17
|
+
opspilot/context/production_logs.py,sha256=9E-fCiH66Oc0Vn1bTHFzDK4XTYV7Z0HtCycmIC6G6-M,7294
|
|
18
|
+
opspilot/context/project.py,sha256=t8j5Nqe7h-F5foZvp2KJfR5BEnWM5R6QqcI-GMEen_0,522
|
|
19
|
+
opspilot/diffs/redis.py,sha256=Yeia00eXv6kuBHbIMpt8efZ2jRm6N2luCg5SHVAY9o0,637
|
|
20
|
+
opspilot/graph/engine.py,sha256=R9Dt6Xn6jevSzFfm98q5C-lrTninY0mOqwWLtI0QQWw,762
|
|
21
|
+
opspilot/graph/nodes.py,sha256=Ejb3MzhqySOU8j939A-9ZAbFAvgV9zofj3AkVZlc8so,1248
|
|
22
|
+
opspilot/tools/__init__.py,sha256=9GHbKc-l-DNzWJAEkIgn_erPXSNh880hhDOXC0AfSus,1651
|
|
23
|
+
opspilot/tools/dep_tools.py,sha256=UAVWoQeOPBjB5OiCgiTFk2c_69_NJ7vo33NAbxXVJpA,149
|
|
24
|
+
opspilot/tools/env_tools.py,sha256=GLeJgrTrbZcjPurRWXQ5BWZiO4aUJdlkT1iYaAs1nD4,173
|
|
25
|
+
opspilot/tools/log_tools.py,sha256=n-JtGvZrtBbk6HUisVAHl2LPfHG90xF0ogtglVepmMA,283
|
|
26
|
+
opspilot/tools/pattern_analysis.py,sha256=e6N48iMiYWwhmH_3Bbdqhr49n19jPRPrwBWv-9THXcE,5243
|
|
27
|
+
opspilot/utils/__init__.py,sha256=jDlOFqPTvm9jo4RsaLBrSmanD3QYogfnIr30hTiXY7Y,36
|
|
28
|
+
opspilot/utils/llm.py,sha256=RsiBVw7iemZNxtJktUBCPpVY-E_9peImf6Gm6P81WSE,544
|
|
29
|
+
opspilot/utils/llm_providers.py,sha256=q4MkGK03Mn_TcttJQaNfoMhSgVpBn-dMLm2AmHXt5Sc,15623
|
|
30
|
+
opspilot_ai-0.1.0.dist-info/licenses/LICENSE,sha256=HEWOzX-yJ9Pctxca1nGhcPAg8Htk1PuJPPOPqcfHUe0,1083
|
|
31
|
+
opspilot_ai-0.1.0.dist-info/METADATA,sha256=Ap8Ktb3I8Ft2bjhibpEHdzc1VJGPe6w7mWp23L_x5fU,14442
|
|
32
|
+
opspilot_ai-0.1.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
33
|
+
opspilot_ai-0.1.0.dist-info/entry_points.txt,sha256=2nttMUdFdShzdN0EkLNgtMNbWDWdO2hHyDzdiCWZolo,46
|
|
34
|
+
opspilot_ai-0.1.0.dist-info/top_level.txt,sha256=u_uSy6eFmJW-9xWnxieGZn5LN_xjXOPMhlKu8BEscdA,9
|
|
35
|
+
opspilot_ai-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Kiran Vijaykumar Choudhari
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
opspilot
|