atlasops / agents /tools /__init__.py
Harikishanth R
fix: skip-kubectl + scroll + health — HF Space ready
7e9a520
"""AtlasOps — 20 real SRE tools for the agent runtime."""
from agents.tools.kubectl import (
kubectl_get, kubectl_describe, kubectl_logs, kubectl_top_pods,
kubectl_top_nodes, kubectl_rollout, kubectl_scale, kubectl_exec,
)
from agents.tools.prometheus import promql_query, promql_query_range
from agents.tools.jaeger import jaeger_search, jaeger_get_trace
from agents.tools.argocd import (
argocd_list_apps, argocd_app_history, argocd_rollback, argocd_app_get,
)
from agents.tools.gcloud_logging import gcloud_logs_read
from agents.tools.alertmanager import alertmanager_silence, alertmanager_list_alerts
from agents.tools.comms import slack_post_update, postmortem_draft
# Keep tool imports resilient in local/dev test environments where optional
# cloud SDK extras may be unavailable. This avoids blocking unrelated tools.
try:
from agents.tools.cloud_monitoring import cloud_monitoring_query
except Exception as exc: # pragma: no cover - exercised only when dependency missing
_cloud_monitoring_import_error = str(exc)
def cloud_monitoring_query(*args, **kwargs): # type: ignore[no-redef]
return {
"success": False,
"error": f"cloud_monitoring_unavailable: {_cloud_monitoring_import_error}",
}
TOOL_REGISTRY = {
"kubectl_get": kubectl_get,
"kubectl_describe": kubectl_describe,
"kubectl_logs": kubectl_logs,
"kubectl_top_pods": kubectl_top_pods,
"kubectl_top_nodes": kubectl_top_nodes,
"kubectl_rollout": kubectl_rollout,
"kubectl_scale": kubectl_scale,
"kubectl_exec": kubectl_exec,
"promql_query": promql_query,
"promql_query_range": promql_query_range,
"jaeger_search": jaeger_search,
"jaeger_get_trace": jaeger_get_trace,
"argocd_list_apps": argocd_list_apps,
"argocd_app_history": argocd_app_history,
"argocd_rollback": argocd_rollback,
"argocd_app_get": argocd_app_get,
"gcloud_logs_read": gcloud_logs_read,
"cloud_monitoring_query": cloud_monitoring_query,
"alertmanager_silence": alertmanager_silence,
"alertmanager_list_alerts": alertmanager_list_alerts,
"slack_post_update": slack_post_update,
"postmortem_draft": postmortem_draft,
}