Catalog PyPI
PACKAGE EXPLORERView in registry

aegis-qa

PyPI

Aegis — The AI Quality Control Plane

Versions collected1
Direct dependencies17From release 0.2.0
Last observed20 Oct, 20:18 UTC

README

Version 0.2.0 documentation

Aegis

CI PyPI Docker API Docs

The AI Quality Control Plane

Aegis is a lightweight orchestration layer that unifies AI-powered QA tools into a single control plane. It coordinates route discovery, test generation, bug triage, and fix proposals across your development workflow.

Architecture

graph TB
    subgraph Aegis["Aegis — Control Plane"]
        API[FastAPI API<br/>Typed OpenAPI Spec]
        WF[Workflow Engine]
        REG[Service Registry]
        EV[Event System<br/>Emitter · Log · Webhooks]
        HIST[History<br/>SQLite / In-Memory]
        HP[Health Endpoint<br/>Version · Uptime · Config]
        LP[Landing Page]
    end

    SDK[Python SDK<br/>AegisClient · AsyncAegisClient] --> API

    subgraph Tools["QA Tool Suite"]
        QA[QA Agent<br/>Route Discovery · Risk Analysis<br/>Test Generation · Orchestration]
        BUG[Bugalizer<br/>Bug Triage · Code Localization<br/>Duplicate Detection]
    end

    subgraph LLM["LLM Backend"]
        OLL[Ollama<br/>qwen2.5-coder:7b]
    end

    API --> WF
    WF --> REG
    WF --> HIST
    WF --> EV
    REG --> QA
    REG --> BUG
    QA --> OLL
    BUG --> OLL
    LP --> API
    EV -->|webhooks| EXT[External Systems]

Quick Start

# Install from PyPI
pip install aegis-qa

# Or install from source (for development)
pip install -e ".[dev]"

# Configure
cp .aegis.yaml.example .aegis.yaml
# Edit .aegis.yaml with your service URLs

# Check service status
aegis status

# Run the full QA pipeline
aegis run full_pipeline

# Start the API server + landing page
aegis serve

Python SDK

The SDK is included when you pip install aegis-qa — no extra dependency needed.

from aegis_qa.client import AegisClient

# Sync client
with AegisClient(base_url="http://localhost:8000") as client:
    health = client.health()
    print(f"Status: {health.status}, uptime: {health.uptime_seconds}s")

    services = client.list_services()
    for svc in services:
        print(f"  {svc.name}: {svc.status}")

    result = client.run_workflow("full_pipeline")
    print(f"Pipeline {'passed' if result.success else 'failed'}")
from aegis_qa.client import AsyncAegisClient

# Async client
async with AsyncAegisClient(api_key="your-key") as client:
    workflows = await client.list_workflows()
    history = await client.recent_history(limit=5)

Deployment

Docker

# Pull the latest image
docker pull ghcr.io/jblacketter/aegis:latest

# Or build locally
docker build -t aegis .

# Run the server
docker run -p 8000:8000 aegis

# Verify it's running
curl http://localhost:8000/health

Docker Compose

# Start with SQLite persistence and config mounting
docker compose up

# Run in background
docker compose up -d

The compose file mounts .aegis.yaml (read-only) and persists the SQLite database on a named volume.

Environment Variables

VariableDescriptionDefault
AEGIS_DB_PATHOverride SQLite database pathValue from .aegis.yaml

Tools

ToolDescriptionFeatures
QA AgentRoute discovery, risk analysis, test generation & orchestrationRoute Discovery, Risk Assessment, Test Generation, Test Orchestration, Branch Board
BugalizerAI-powered bug triage, code localization & fix proposalsBug Triage, Code Localization, Duplicate Detection

CLI Commands

CommandDescription
aegis statusShow all services and their health status
aegis serveStart API server and serve landing page
aegis run <workflow>Execute a named workflow pipeline
aegis openapiExport OpenAPI spec as JSON
aegis config showPrint resolved configuration

API Endpoints

EndpointMethodDescription
/healthGETHealth check with version, uptime, and config summary
/api/servicesGETList services with health status
/api/services/{name}/healthGETLive health check for one service
/api/workflowsGETList all configured workflows
/api/workflows/{name}GETGet a specific workflow definition
/api/workflows/{name}/runPOSTTrigger a named workflow
/api/workflows/{name}/historyGETExecution history for a workflow
/api/historyGETRecent execution history across all workflows
/api/eventsGETRecent events (filterable by type)
/api/portfolioGETTool metadata for landing page

Configuration

Aegis uses .aegis.yaml for configuration. See .aegis.yaml.example for the full schema.

Environment variables can be interpolated using ${VAR_NAME} syntax:

services:
  qaagent:
    url: ${QAAGENT_URL:-http://localhost:8080}

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.2.04 Apr 202617

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
jblacketter/aegis

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:18 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:fc9c9b2bc22b21fdc96179fd78efe7f8eb5f2498848803c4954d650810bc1002