4b6817381b
Benchmark image — build + push to ECR (any adapter) / build + push (push) Waiting to run
CI / quality (ubuntu-latest) (push) Waiting to run
CI / test (tools-runtime) (push) Waiting to run
CI / test (e2e-general) (push) Waiting to run
CI / test (cli-runtime) (push) Waiting to run
CI / test (e2e-provider-and-openclaw) (push) Waiting to run
CI / test (integrations-and-misc) (push) Waiting to run
CI / coverage-report (push) Blocked by required conditions
CI / test-kubernetes (push) Waiting to run
CI / should-run-thorough (push) Waiting to run
CI / test-thorough (cloudwatch-demo) (push) Blocked by required conditions
CI / test-thorough (flink-ecs) (push) Blocked by required conditions
CI / test-thorough (upstream-lambda) (push) Blocked by required conditions
CI / test-thorough (prefect-ecs-fargate) (push) Blocked by required conditions
CodeQL / Analyze (python) (push) Waiting to run
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Blocked by required conditions
Release / publish-release (push) Blocked by required conditions
Release / publish-main-release (push) Blocked by required conditions
Release / prepare (push) Waiting to run
Release / verify (push) Blocked by required conditions
Release / build-python-dist (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Blocked by required conditions
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Waiting to run
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Waiting to run
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Waiting to run
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
209 lines
5.5 KiB
TOML
209 lines
5.5 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "opensre"
|
|
version = "0.1"
|
|
description = "Open-source SRE agent for automated incident investigation and root cause analysis. Automatically analyzes alerts from Slack, Grafana, Datadog, and other tooling."
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
license = { text = "Apache-2.0" }
|
|
authors = [
|
|
{ name = "OpenSRE", email = "support@opensre.com" },
|
|
]
|
|
keywords = ["sre", "devops", "incident", "rca", "llm", "ai", "agent", "observability"]
|
|
dependencies = [
|
|
# Core AI/Agent
|
|
"anthropic>=0.77.1",
|
|
"mcp>=1.27.0",
|
|
"openai>=2.0.0",
|
|
"litellm>=1.90.0",
|
|
# Data validation
|
|
"pydantic>=2.12.5,<3",
|
|
"pydantic-settings>=2.12.0,<3",
|
|
"kubernetes>=28.1.0",
|
|
# HTTP and async
|
|
"httpx[socks]>=0.27.0",
|
|
"aiohttp>=3.9.0",
|
|
"fastapi>=0.135.3",
|
|
"uvicorn[standard]>=0.30.0",
|
|
# Authentication
|
|
"PyJWT>=2.13.0",
|
|
# Cap below 49: cryptography 49.0.0 dropped x86-64 macOS wheels, which breaks
|
|
# the frozen darwin-x64 release binary (PyInstaller bundles a broken _openssl
|
|
# extension and the binary crashes at startup). Keep 48.x until the darwin-x64
|
|
# release target is dropped.
|
|
"cryptography>=48.0.1,<49",
|
|
"keyring>=23.0.1",
|
|
# AWS
|
|
"boto3>=1.42.88",
|
|
# Utilities
|
|
"python-dotenv>=1.2.2",
|
|
"click>=8.1.0",
|
|
"rich>=15.0.0",
|
|
"questionary>=2.1.1",
|
|
"prompt_toolkit>=3.0.0",
|
|
"PyYAML>=6.0",
|
|
"numpy>=1.26.0",
|
|
"tzdata>=2026.1",
|
|
# OpenTelemetry
|
|
"opentelemetry-api>=1.41.0",
|
|
"opentelemetry-sdk>=1.20.0",
|
|
"opentelemetry-exporter-otlp-proto-http>=1.41.0",
|
|
"opentelemetry-instrumentation>=0.40b0",
|
|
"opentelemetry-instrumentation-botocore>=0.40b0",
|
|
"opentelemetry-instrumentation-requests>=0.40b0",
|
|
# Tracer
|
|
"tracer_decorator",
|
|
# Google APIs
|
|
"google-api-python-client>=2.194.0,<3.0.0",
|
|
"google-auth>=2.0.0,<3.0.0",
|
|
# MongoDB
|
|
"pymongo>=4.6.0,<6.0.0",
|
|
# Redis
|
|
"redis>=5.0.0,<9.0.0",
|
|
# Signature verfication for discord
|
|
"PyNaCl>=1.5.0",
|
|
# MariaDB
|
|
"pymysql>=1.1.0,<2.0.0",
|
|
# ClickHouse (used by first-class SigNoz + ClickHouse integrations)
|
|
"clickhouse-connect>=0.15.1,<1.0.0",
|
|
"sentry-sdk>=2.59.0",
|
|
# File locking for atomic store operations
|
|
"filelock>=3.29.0",
|
|
"psutil>=5.9",
|
|
# Scheduler for cron-driven deliveries
|
|
"APScheduler>=3.10.0,<4.0.0",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/Tracer-Cloud/opensre"
|
|
Repository = "https://github.com/Tracer-Cloud/opensre"
|
|
Issues = "https://github.com/Tracer-Cloud/opensre/issues"
|
|
Changelog = "https://github.com/Tracer-Cloud/opensre/releases"
|
|
|
|
[project.scripts]
|
|
opensre = "surfaces.cli.__main__:main"
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pre-commit>=4.0.0",
|
|
"pytest>=8.0.0",
|
|
"pytest-asyncio>=1.3.0",
|
|
"pytest-cov>=7.1.0",
|
|
"pytest-xdist>=3.5.0",
|
|
"ruff>=0.4.0",
|
|
"mypy>=1.10.0",
|
|
"import-linter>=2.0",
|
|
"types-requests",
|
|
"types-psycopg2",
|
|
"types-PyMySQL",
|
|
"types-PyYAML",
|
|
"types-psutil",
|
|
"boto3-stubs[essential]",
|
|
"huggingface_hub>=0.26.0",
|
|
"datasets>=3.0.0",
|
|
]
|
|
release-dist = [
|
|
"build>=1.2.0",
|
|
"twine>=6.0.0",
|
|
]
|
|
release-binary = [
|
|
"pyinstaller>=6.3.0",
|
|
]
|
|
# Backward-compatible aggregate extra.
|
|
release = [
|
|
"build>=1.2.0",
|
|
"twine>=6.0.0",
|
|
"pyinstaller>=6.3.0",
|
|
]
|
|
opensre-hub = [
|
|
"huggingface_hub>=0.26.0",
|
|
"datasets>=3.0.0",
|
|
]
|
|
kafka = [
|
|
"confluent-kafka>=2.14.0",
|
|
]
|
|
# Backward-compatible no-op extra; ClickHouse is now a core dependency.
|
|
clickhouse = [
|
|
"clickhouse-connect>=0.15.1",
|
|
]
|
|
postgresql = [
|
|
"psycopg2-binary>=2.9.0,<3.0.0",
|
|
]
|
|
azure_sql = [
|
|
"pyodbc>=5.1.0,<6.0.0",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = [
|
|
"config*",
|
|
"core*",
|
|
"gateway*",
|
|
"integrations*",
|
|
"platform*",
|
|
"surfaces*",
|
|
"tests*",
|
|
"tools*",
|
|
]
|
|
|
|
[tool.setuptools.package-data]
|
|
"surfaces.cli" = ["investigation/sample_alerts/*.json"]
|
|
"core.agent_harness.prompts" = ["skills/*.md"]
|
|
|
|
# With pytest-xdist (-n auto), each worker writes a fragment; put them under
|
|
# .pytest_cache/ (already gitignored) instead of .coverage.<hostname>.* at repo root.
|
|
[tool.coverage.run]
|
|
data_file = ".pytest_cache/.coverage"
|
|
|
|
[tool.vulture]
|
|
paths = [
|
|
"config",
|
|
"core",
|
|
"gateway",
|
|
"integrations",
|
|
"platform",
|
|
"surfaces",
|
|
"tools",
|
|
]
|
|
exclude = [
|
|
"tools/simple_tools.py", # explicitly skipped by the registry
|
|
]
|
|
ignore_decorators = [
|
|
"@*.command", # Click / Typer subcommands
|
|
"@*.group",
|
|
"@*.callback",
|
|
"@app.*", # FastAPI routes
|
|
"@*router.*", # FastAPI sub-routers (discord_router etc.)
|
|
"@field_validator", # Pydantic validators
|
|
"@model_validator",
|
|
"@validator",
|
|
"@cache",
|
|
"@lru_cache",
|
|
"@tool", # @tools.tool_decorator.tool registrations
|
|
"@mcp.tool",
|
|
"@register*",
|
|
]
|
|
ignore_names = [
|
|
"shell_complete", "format_help", "show", # Click overrides
|
|
"_normalize_*", # Pydantic field validators
|
|
"_require_*", # Pydantic model validators
|
|
"on_thread_*", "on_assistant_*", "on_cron_*",
|
|
"discord_interactions", "health_check",
|
|
"version_check", "deep_health_check",
|
|
"investigate_stream",
|
|
]
|
|
|
|
# uv installs this PEP 735 group by default (`uv sync`; omit with `--no-dev`).
|
|
# `pre-commit` is also under `[project.optional-dependencies] dev` for `pip install .[dev]`.
|
|
[dependency-groups]
|
|
dev = [
|
|
"pre-commit>=4.0.0",
|
|
"pytest>=9.0.3",
|
|
"pytest-cov>=7.1.0",
|
|
"types-psutil>=7.2.2.20260408",
|
|
"types-PyYAML>=6.0.12",
|
|
"import-linter>=2.0",
|
|
]
|