Files
wehub-resource-sync 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
chore: import upstream snapshot with attribution
2026-07-13 13:10:45 +08:00

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",
]