holmesgpt 0.12.3__tar.gz → 0.16.1__tar.gz

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.
Files changed (294) hide show
  1. holmesgpt-0.16.1/PKG-INFO +272 -0
  2. holmesgpt-0.16.1/README.md +216 -0
  3. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/__init__.py +1 -1
  4. holmesgpt-0.16.1/holmes/clients/robusta_client.py +55 -0
  5. holmesgpt-0.16.1/holmes/common/env_vars.py +111 -0
  6. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/config.py +185 -111
  7. holmesgpt-0.16.1/holmes/core/config.py +5 -0
  8. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/conversations.py +68 -14
  9. holmesgpt-0.16.1/holmes/core/feedback.py +191 -0
  10. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/investigation.py +27 -23
  11. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/investigation_structured_output.py +12 -0
  12. holmesgpt-0.16.1/holmes/core/llm.py +728 -0
  13. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/models.py +112 -2
  14. holmesgpt-0.16.1/holmes/core/openai_formatting.py +124 -0
  15. holmesgpt-0.16.1/holmes/core/prompt.py +78 -0
  16. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/safeguards.py +4 -4
  17. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/supabase_dal.py +218 -66
  18. holmesgpt-0.16.1/holmes/core/todo_tasks_formatter.py +51 -0
  19. holmesgpt-0.16.1/holmes/core/tool_calling_llm.py +1122 -0
  20. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/tools.py +336 -32
  21. holmesgpt-0.16.1/holmes/core/tools_utils/token_counting.py +14 -0
  22. holmesgpt-0.16.1/holmes/core/tools_utils/tool_context_window_limiter.py +57 -0
  23. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/tools_utils/tool_executor.py +21 -10
  24. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/tools_utils/toolset_utils.py +7 -2
  25. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/toolset_manager.py +164 -10
  26. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/tracing.py +88 -15
  27. holmesgpt-0.16.1/holmes/core/transformers/__init__.py +23 -0
  28. holmesgpt-0.16.1/holmes/core/transformers/base.py +62 -0
  29. holmesgpt-0.16.1/holmes/core/transformers/llm_summarize.py +174 -0
  30. holmesgpt-0.16.1/holmes/core/transformers/registry.py +122 -0
  31. holmesgpt-0.16.1/holmes/core/transformers/transformer.py +31 -0
  32. holmesgpt-0.16.1/holmes/core/truncation/compaction.py +59 -0
  33. holmesgpt-0.16.1/holmes/core/truncation/dal_truncation_utils.py +23 -0
  34. holmesgpt-0.16.1/holmes/core/truncation/input_context_window_limiter.py +218 -0
  35. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/interactive.py +342 -46
  36. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/main.py +27 -23
  37. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/destinations/slack/plugin.py +19 -9
  38. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/__init__.py +7 -1
  39. holmesgpt-0.16.1/holmes/plugins/prompts/_ai_safety.jinja2 +43 -0
  40. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/_current_date_time.jinja2 +1 -0
  41. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/_default_log_prompt.jinja2 +4 -2
  42. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/_fetch_logs.jinja2 +34 -3
  43. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/_general_instructions.jinja2 +26 -40
  44. holmesgpt-0.16.1/holmes/plugins/prompts/_permission_errors.jinja2 +6 -0
  45. holmesgpt-0.16.1/holmes/plugins/prompts/_runbook_instructions.jinja2 +32 -0
  46. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/_toolsets_instructions.jinja2 +22 -14
  47. holmesgpt-0.16.1/holmes/plugins/prompts/conversation_history_compaction.jinja2 +88 -0
  48. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/generic_ask.jinja2 +9 -4
  49. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/generic_ask_conversation.jinja2 +3 -1
  50. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/generic_ask_for_issue_conversation.jinja2 +3 -1
  51. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/generic_investigation.jinja2 +3 -1
  52. holmesgpt-0.16.1/holmes/plugins/prompts/investigation_procedure.jinja2 +248 -0
  53. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/kubernetes_workload_ask.jinja2 +6 -3
  54. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/kubernetes_workload_chat.jinja2 +2 -1
  55. holmesgpt-0.16.1/holmes/plugins/runbooks/CLAUDE.md +85 -0
  56. holmesgpt-0.16.1/holmes/plugins/runbooks/README.md +46 -0
  57. holmesgpt-0.16.1/holmes/plugins/runbooks/__init__.py +215 -0
  58. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/runbooks/catalog.json +2 -0
  59. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/__init__.py +42 -16
  60. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/aks-node-health.yaml +46 -8
  61. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/aks.yaml +64 -0
  62. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/argocd.yaml +5 -2
  63. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py +53 -24
  64. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/aws.yaml +9 -5
  65. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/apis/azure_sql_api.py +1 -1
  66. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/apis/connection_failure_api.py +2 -0
  67. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/azure_sql_toolset.py +0 -1
  68. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py +12 -7
  69. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py +11 -5
  70. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py +11 -5
  71. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py +10 -5
  72. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py +11 -5
  73. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py +12 -6
  74. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py +11 -5
  75. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py +11 -5
  76. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py +11 -5
  77. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py +11 -5
  78. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/argocd/__init__.py +65 -0
  79. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/argocd/constants.py +120 -0
  80. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/aws/__init__.py +66 -0
  81. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/aws/constants.py +529 -0
  82. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/azure/__init__.py +56 -0
  83. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/azure/constants.py +339 -0
  84. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/bash_instructions.jinja2 +13 -0
  85. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/bash/bash_toolset.py +63 -21
  86. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/bash/common/bash.py +7 -7
  87. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/common/bash_command.py +131 -0
  88. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/bash/common/stringify.py +14 -1
  89. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/common/validators.py +115 -0
  90. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/docker/__init__.py +59 -0
  91. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/docker/constants.py +255 -0
  92. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/helm/__init__.py +61 -0
  93. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/helm/constants.py +92 -0
  94. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/kubectl/__init__.py +101 -0
  95. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/bash/kubectl/constants.py +0 -14
  96. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/kubectl/kubectl_describe.py +48 -0
  97. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/kubectl/kubectl_events.py +40 -0
  98. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/kubectl/kubectl_get.py +48 -0
  99. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/kubectl/kubectl_logs.py +39 -0
  100. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/bash/kubectl/kubectl_run.py +1 -1
  101. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/kubectl/kubectl_top.py +42 -0
  102. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/parse_command.py +177 -0
  103. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/base64_util.py +12 -0
  104. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/cut.py +12 -0
  105. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/grep/__init__.py +10 -0
  106. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/head.py +12 -0
  107. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/jq.py +79 -0
  108. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/sed.py +164 -0
  109. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/sort.py +15 -0
  110. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/tail.py +12 -0
  111. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/tr.py +57 -0
  112. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/uniq.py +12 -0
  113. holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities/wc.py +12 -0
  114. holmesgpt-0.16.1/holmes/plugins/toolsets/cilium.yaml +284 -0
  115. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/confluence.yaml +2 -2
  116. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/coralogix/api.py +9 -7
  117. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/coralogix/toolset_coralogix_logs.py +16 -8
  118. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/coralogix/utils.py +41 -14
  119. holmesgpt-0.16.1/holmes/plugins/toolsets/datadog/datadog_api.py +682 -0
  120. holmesgpt-0.16.1/holmes/plugins/toolsets/datadog/datadog_general_instructions.jinja2 +208 -0
  121. holmesgpt-0.16.1/holmes/plugins/toolsets/datadog/datadog_logs_instructions.jinja2 +54 -0
  122. holmesgpt-0.16.1/holmes/plugins/toolsets/datadog/datadog_metrics_instructions.jinja2 +86 -0
  123. holmesgpt-0.16.1/holmes/plugins/toolsets/datadog/datadog_rds_instructions.jinja2 +82 -0
  124. holmesgpt-0.16.1/holmes/plugins/toolsets/datadog/toolset_datadog_general.py +855 -0
  125. holmesgpt-0.16.1/holmes/plugins/toolsets/datadog/toolset_datadog_logs.py +456 -0
  126. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py +261 -43
  127. holmesgpt-0.16.1/holmes/plugins/toolsets/datadog/toolset_datadog_rds.py +736 -0
  128. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/datadog/toolset_datadog_traces.py +43 -36
  129. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/docker.yaml +1 -1
  130. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/git.py +54 -42
  131. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/grafana/common.py +15 -3
  132. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/grafana/grafana_api.py +13 -2
  133. holmesgpt-0.16.1/holmes/plugins/toolsets/grafana/grafana_tempo_api.py +454 -0
  134. holmesgpt-0.16.1/holmes/plugins/toolsets/grafana/toolset_grafana.py +247 -0
  135. holmesgpt-0.16.1/holmes/plugins/toolsets/grafana/toolset_grafana_dashboard.jinja2 +27 -0
  136. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/grafana/toolset_grafana_loki.py +18 -12
  137. holmesgpt-0.16.1/holmes/plugins/toolsets/grafana/toolset_grafana_tempo.jinja2 +247 -0
  138. holmesgpt-0.16.1/holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py +927 -0
  139. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/grafana/trace_parser.py +1 -1
  140. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/helm.yaml +1 -1
  141. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/internet/internet.py +8 -6
  142. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/internet/notion.py +8 -6
  143. holmesgpt-0.16.1/holmes/plugins/toolsets/investigator/core_investigation.py +153 -0
  144. holmesgpt-0.16.1/holmes/plugins/toolsets/investigator/investigator_instructions.jinja2 +249 -0
  145. holmesgpt-0.16.1/holmes/plugins/toolsets/investigator/model.py +15 -0
  146. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/kafka.py +40 -32
  147. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/kubernetes.yaml +76 -96
  148. holmesgpt-0.16.1/holmes/plugins/toolsets/kubernetes_logs.py +855 -0
  149. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/kubernetes_logs.yaml +33 -1
  150. holmesgpt-0.16.1/holmes/plugins/toolsets/logging_utils/logging_api.py +372 -0
  151. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/mcp/toolset_mcp.py +7 -6
  152. holmesgpt-0.16.1/holmes/plugins/toolsets/newrelic/new_relic_api.py +125 -0
  153. holmesgpt-0.16.1/holmes/plugins/toolsets/newrelic/newrelic.jinja2 +41 -0
  154. holmesgpt-0.16.1/holmes/plugins/toolsets/newrelic/newrelic.py +211 -0
  155. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/opensearch/opensearch.py +19 -14
  156. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/opensearch/opensearch_logs.py +20 -13
  157. holmesgpt-0.16.1/holmes/plugins/toolsets/opensearch/opensearch_ppl_query_docs.jinja2 +1616 -0
  158. holmesgpt-0.16.1/holmes/plugins/toolsets/opensearch/opensearch_query_assist.py +78 -0
  159. holmesgpt-0.16.1/holmes/plugins/toolsets/opensearch/opensearch_query_assist_instructions.jinja2 +223 -0
  160. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/opensearch/opensearch_traces.py +21 -17
  161. holmesgpt-0.16.1/holmes/plugins/toolsets/prometheus/prometheus.py +1604 -0
  162. holmesgpt-0.16.1/holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2 +79 -0
  163. holmesgpt-0.16.1/holmes/plugins/toolsets/prometheus/utils.py +28 -0
  164. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py +18 -9
  165. holmesgpt-0.16.1/holmes/plugins/toolsets/robusta/__init__.py +0 -0
  166. holmesgpt-0.16.1/holmes/plugins/toolsets/robusta/robusta.py +365 -0
  167. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/robusta/robusta_instructions.jinja2 +6 -3
  168. holmesgpt-0.16.1/holmes/plugins/toolsets/runbook/__init__.py +0 -0
  169. holmesgpt-0.16.1/holmes/plugins/toolsets/runbook/runbook_fetcher.py +251 -0
  170. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/service_discovery.py +2 -2
  171. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/servicenow/servicenow.py +29 -14
  172. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/slab.yaml +2 -2
  173. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/utils.py +96 -1
  174. holmesgpt-0.16.1/holmes/utils/__init__.py +0 -0
  175. holmesgpt-0.16.1/holmes/utils/colors.py +7 -0
  176. holmesgpt-0.16.1/holmes/utils/config_utils.py +91 -0
  177. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/console/consts.py +5 -0
  178. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/console/logging.py +6 -1
  179. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/console/result.py +2 -1
  180. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/env.py +7 -0
  181. holmesgpt-0.16.1/holmes/utils/global_instructions.py +85 -0
  182. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/holmes_status.py +2 -1
  183. holmesgpt-0.16.1/holmes/utils/keygen_utils.py +6 -0
  184. holmesgpt-0.16.1/holmes/utils/llms.py +20 -0
  185. holmesgpt-0.16.1/holmes/utils/sentry_helper.py +41 -0
  186. holmesgpt-0.16.1/holmes/utils/stream.py +144 -0
  187. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/version.py +36 -16
  188. holmesgpt-0.16.1/pyproject.toml +156 -0
  189. holmesgpt-0.12.3/PKG-INFO +0 -400
  190. holmesgpt-0.12.3/README.md +0 -339
  191. holmesgpt-0.12.3/holmes/clients/robusta_client.py +0 -24
  192. holmesgpt-0.12.3/holmes/common/env_vars.py +0 -52
  193. holmesgpt-0.12.3/holmes/core/llm.py +0 -257
  194. holmesgpt-0.12.3/holmes/core/openai_formatting.py +0 -51
  195. holmesgpt-0.12.3/holmes/core/performance_timing.py +0 -72
  196. holmesgpt-0.12.3/holmes/core/prompt.py +0 -42
  197. holmesgpt-0.12.3/holmes/core/tool_calling_llm.py +0 -849
  198. holmesgpt-0.12.3/holmes/plugins/prompts/_runbook_instructions.jinja2 +0 -13
  199. holmesgpt-0.12.3/holmes/plugins/runbooks/README.md +0 -22
  200. holmesgpt-0.12.3/holmes/plugins/runbooks/__init__.py +0 -100
  201. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/bash_instructions.jinja2 +0 -14
  202. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/common/validators.py +0 -24
  203. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/grep/__init__.py +0 -52
  204. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/kubectl/__init__.py +0 -100
  205. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/kubectl/kubectl_describe.py +0 -66
  206. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/kubectl/kubectl_events.py +0 -88
  207. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/kubectl/kubectl_get.py +0 -108
  208. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/kubectl/kubectl_logs.py +0 -20
  209. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/kubectl/kubectl_top.py +0 -81
  210. holmesgpt-0.12.3/holmes/plugins/toolsets/bash/parse_command.py +0 -103
  211. holmesgpt-0.12.3/holmes/plugins/toolsets/datadog/datadog_api.py +0 -161
  212. holmesgpt-0.12.3/holmes/plugins/toolsets/datadog/datadog_metrics_instructions.jinja2 +0 -26
  213. holmesgpt-0.12.3/holmes/plugins/toolsets/datadog/toolset_datadog_logs.py +0 -267
  214. holmesgpt-0.12.3/holmes/plugins/toolsets/grafana/tempo_api.py +0 -124
  215. holmesgpt-0.12.3/holmes/plugins/toolsets/grafana/toolset_grafana.py +0 -102
  216. holmesgpt-0.12.3/holmes/plugins/toolsets/grafana/toolset_grafana_tempo.jinja2 +0 -10
  217. holmesgpt-0.12.3/holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py +0 -299
  218. holmesgpt-0.12.3/holmes/plugins/toolsets/kubernetes_logs.py +0 -426
  219. holmesgpt-0.12.3/holmes/plugins/toolsets/logging_utils/logging_api.py +0 -223
  220. holmesgpt-0.12.3/holmes/plugins/toolsets/newrelic.py +0 -222
  221. holmesgpt-0.12.3/holmes/plugins/toolsets/prometheus/prometheus.py +0 -837
  222. holmesgpt-0.12.3/holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2 +0 -38
  223. holmesgpt-0.12.3/holmes/plugins/toolsets/robusta/robusta.py +0 -235
  224. holmesgpt-0.12.3/holmes/plugins/toolsets/runbook/runbook_fetcher.py +0 -78
  225. holmesgpt-0.12.3/holmes/utils/global_instructions.py +0 -20
  226. holmesgpt-0.12.3/holmes/utils/robusta.py +0 -9
  227. holmesgpt-0.12.3/pyproject.toml +0 -131
  228. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/LICENSE.txt +0 -0
  229. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/.git_archival.json +0 -0
  230. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/common/openshift.py +0 -0
  231. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/__init__.py +0 -0
  232. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/issue.py +0 -0
  233. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/resource_instruction.py +0 -0
  234. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/runbooks.py +0 -0
  235. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/core/tools_utils/__init__.py +0 -0
  236. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/__init__.py +0 -0
  237. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/destinations/__init__.py +0 -0
  238. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/destinations/slack/__init__.py +0 -0
  239. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/interfaces.py +0 -0
  240. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/_global_instructions.jinja2 +0 -0
  241. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/generic_post_processing.jinja2 +0 -0
  242. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/generic_ticket.jinja2 +0 -0
  243. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/prompts/investigation_output_format.jinja2 +0 -0
  244. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/runbooks/jira.yaml +0 -0
  245. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/runbooks/kube-prometheus-stack.yaml +0 -0
  246. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/runbooks/networking/dns_troubleshooting_instructions.md +0 -0
  247. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/runbooks/upgrade/upgrade_troubleshooting_instructions.md +0 -0
  248. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/sources/github/__init__.py +0 -0
  249. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/sources/jira/__init__.py +0 -0
  250. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/sources/opsgenie/__init__.py +0 -0
  251. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/sources/pagerduty/__init__.py +0 -0
  252. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/sources/prometheus/__init__.py +0 -0
  253. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/sources/prometheus/models.py +0 -0
  254. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/sources/prometheus/plugin.py +0 -0
  255. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/atlas_mongodb/instructions.jinja2 +0 -0
  256. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/__init__.py +0 -0
  257. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/apis/alert_monitoring_api.py +0 -0
  258. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/apis/connection_monitoring_api.py +0 -0
  259. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/apis/storage_analysis_api.py +0 -0
  260. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/azure_base_toolset.py +0 -0
  261. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/azure_sql_instructions.jinja2 +0 -0
  262. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/install.md +0 -0
  263. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/tools/__init__.py +0 -0
  264. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/azure_sql/utils.py +0 -0
  265. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/bash/__init__.py +0 -0
  266. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/bash/common/config.py +0 -0
  267. {holmesgpt-0.12.3/holmes/plugins/toolsets/grafana → holmesgpt-0.16.1/holmes/plugins/toolsets/bash/utilities}/__init__.py +0 -0
  268. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/consts.py +0 -0
  269. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/datadog/datadog_traces_formatter.py +0 -0
  270. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/datadog/instructions_datadog_traces.jinja2 +0 -0
  271. {holmesgpt-0.12.3/holmes/plugins/toolsets/logging_utils → holmesgpt-0.16.1/holmes/plugins/toolsets/grafana}/__init__.py +0 -0
  272. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/grafana/base_grafana_toolset.py +0 -0
  273. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/grafana/loki_api.py +0 -0
  274. {holmesgpt-0.12.3/holmes/plugins/toolsets/opensearch → holmesgpt-0.16.1/holmes/plugins/toolsets/investigator}/__init__.py +0 -0
  275. {holmesgpt-0.12.3/holmes/plugins/toolsets/robusta → holmesgpt-0.16.1/holmes/plugins/toolsets/logging_utils}/__init__.py +0 -0
  276. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/logging_utils/types.py +0 -0
  277. {holmesgpt-0.12.3/holmes/plugins/toolsets/runbook → holmesgpt-0.16.1/holmes/plugins/toolsets/newrelic}/__init__.py +0 -0
  278. {holmesgpt-0.12.3/holmes/utils → holmesgpt-0.16.1/holmes/plugins/toolsets/opensearch}/__init__.py +0 -0
  279. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/opensearch/opensearch_traces_instructions.jinja2 +0 -0
  280. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/opensearch/opensearch_utils.py +0 -0
  281. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/rabbitmq/api.py +0 -0
  282. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/rabbitmq/rabbitmq_instructions.jinja2 +0 -0
  283. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/servicenow/install.md +0 -0
  284. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/toolsets/servicenow/instructions.jinja2 +0 -0
  285. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/plugins/utils.py +0 -0
  286. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/cache.py +0 -0
  287. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/cert_utils.py +0 -0
  288. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/default_toolset_installation_guide.jinja2 +0 -0
  289. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/definitions.py +0 -0
  290. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/file_utils.py +0 -0
  291. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/holmes_sync_toolsets.py +0 -0
  292. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/markdown_utils.py +0 -0
  293. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/pydantic_utils.py +0 -0
  294. {holmesgpt-0.12.3 → holmesgpt-0.16.1}/holmes/utils/tags.py +0 -0
@@ -0,0 +1,272 @@
1
+ Metadata-Version: 2.1
2
+ Name: holmesgpt
3
+ Version: 0.16.1
4
+ Summary:
5
+ Author: Natan Yellin
6
+ Author-email: natan@robusta.dev
7
+ Requires-Python: >=3.10,<4.0
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Requires-Dist: ag-ui-protocol (>=0.1.9,<0.2.0)
12
+ Requires-Dist: azure-core (>=1.34.0,<2.0.0)
13
+ Requires-Dist: azure-identity (>=1.23.0,<2.0.0)
14
+ Requires-Dist: azure-mgmt-alertsmanagement (>=1.0.0,<2.0.0)
15
+ Requires-Dist: azure-mgmt-monitor (>=7.0.0b1,<8.0.0)
16
+ Requires-Dist: azure-mgmt-resource (>=23.3.0,<24.0.0)
17
+ Requires-Dist: azure-mgmt-sql (>=4.0.0b21,<5.0.0)
18
+ Requires-Dist: azure-monitor-query (>=1.2.0,<2.0.0)
19
+ Requires-Dist: backoff (>=2.2.1,<3.0.0)
20
+ Requires-Dist: boto3 (>=1.34.145,<2.0.0)
21
+ Requires-Dist: bs4 (>=0.0.2,<0.0.3)
22
+ Requires-Dist: cachetools (>=5.5.0,<6.0.0)
23
+ Requires-Dist: certifi (>=2024.7.4,<2025.0.0)
24
+ Requires-Dist: colorlog (>=6.8.2,<7.0.0)
25
+ Requires-Dist: confluent-kafka (>=2.6.1,<3.0.0)
26
+ Requires-Dist: fastapi (>=0.116,<0.117)
27
+ Requires-Dist: google-cloud-aiplatform (>=1.38)
28
+ Requires-Dist: httpx[socks] (<0.28)
29
+ Requires-Dist: humanize (>=4.9.0,<5.0.0)
30
+ Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
31
+ Requires-Dist: kubernetes (>=32.0.1,<33.0.0)
32
+ Requires-Dist: litellm (==1.77.1)
33
+ Requires-Dist: markdown (>=3.6,<4.0)
34
+ Requires-Dist: markdownify (>=1.1.0,<2.0.0)
35
+ Requires-Dist: mcp (==v1.12.2)
36
+ Requires-Dist: openai (>=1.6.1,<1.100.0)
37
+ Requires-Dist: opensearch-py (>=2.8.0,<3.0.0)
38
+ Requires-Dist: postgrest (==0.16.8)
39
+ Requires-Dist: prometrix (==0.2.5)
40
+ Requires-Dist: prompt-toolkit (>=3.0.51,<4.0.0)
41
+ Requires-Dist: pydantic (>=2.7,<3.0)
42
+ Requires-Dist: pygments (>=2.18.0,<3.0.0)
43
+ Requires-Dist: pyodbc (>=5.0.1,<6.0.0)
44
+ Requires-Dist: python-benedict (>=0.33.1,<0.34.0)
45
+ Requires-Dist: requests (>=2.32.4,<3.0.0)
46
+ Requires-Dist: requests-aws4auth (>=1.3.1,<2.0.0)
47
+ Requires-Dist: rich (>=13.7.1,<14.0.0)
48
+ Requires-Dist: sentry-sdk[fastapi] (>=2.20.0,<3.0.0)
49
+ Requires-Dist: strenum (>=0.4.15,<0.5.0)
50
+ Requires-Dist: supabase (>=2.5,<3.0)
51
+ Requires-Dist: tenacity (>=9.1.2,<10.0.0)
52
+ Requires-Dist: typer (>=0.15.4,<0.16.0)
53
+ Requires-Dist: uvicorn (>=0.30,<0.31)
54
+ Description-Content-Type: text/markdown
55
+
56
+ <div align="center">
57
+ <h1 align="center">AI Agent for Cloud Troubleshooting and Alert Investigation</h1>
58
+
59
+ HolmesGPT is an AI agent for investigating problems in your cloud, finding the root cause, and suggesting remediations. It has dozens of built-in integrations for cloud providers, observability tools, and on-call systems.
60
+
61
+ >🎉 **HolmesGPT is now a CNCF Sandbox Project!** We're thrilled to be part of the Cloud Native Computing Foundation. [Learn more about our journey](https://github.com/cncf/sandbox/issues/392#issuecomment-3380007501).
62
+
63
+ Find more about HolmesGPT's maintainers and adopters [here](./ADOPTERS.md).
64
+
65
+ 📚 **[Read the full documentation at holmesgpt.dev](https://holmesgpt.dev/)** for installation guides, tutorials, API reference, and more.
66
+
67
+ <p align="center">
68
+ <a href="#how-it-works"><strong>How it Works</strong></a> |
69
+ <a href="#installation"><strong>Installation</strong></a> |
70
+ <a href="#supported-llm-providers"><strong>LLM Providers</strong></a> |
71
+ <a href="https://www.youtube.com/watch?v=TfQfx65LsDQ"><strong>YouTube Demo</strong></a> |
72
+ <a href="https://deepwiki.com/robusta-dev/holmesgpt"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
73
+ </p>
74
+ </div>
75
+
76
+ ![HolmesGPT Investigation Demo](https://holmesgpt.dev/assets/HolmesInvestigation.gif)
77
+
78
+ ## How it Works
79
+
80
+ HolmesGPT connects AI models with live observability data and organizational knowledge. It uses an **agentic loop** to analyze data from multiple sources and identify possible root causes.
81
+
82
+ <img width="3114" alt="holmesgpt-architecture-diagram" src="https://github.com/user-attachments/assets/f659707e-1958-4add-9238-8565a5e3713a" />
83
+
84
+ ### 🔗 Data Sources
85
+
86
+ HolmesGPT integrates with popular observability and cloud platforms. The following data sources ("toolsets") are built-in. [Add your own](#customizing-holmesgpt).
87
+
88
+ | Data Source | Status | Notes |
89
+ |-------------|--------|-------|
90
+ | [<img src="images/integration_logos/argocd-icon.png" alt="ArgoCD" width="20" style="vertical-align: middle;"> **ArgoCD**](https://holmesgpt.dev/data-sources/builtin-toolsets/argocd/) | ✅ | Get status, history and manifests and more of apps, projects and clusters |
91
+ | [<img src="images/integration_logos/aws_rds_logo.png" alt="AWS RDS" width="20" style="vertical-align: middle;"> **AWS RDS**](https://holmesgpt.dev/data-sources/builtin-toolsets/aws/) | ✅ | Fetch events, instances, slow query logs and more |
92
+ | [<img src="images/integration_logos/confluence_logo.png" alt="Confluence" width="20" style="vertical-align: middle;"> **Confluence**](https://holmesgpt.dev/data-sources/builtin-toolsets/confluence/) | ✅ | Private runbooks and documentation |
93
+ | [<img src="images/integration_logos/coralogix-icon.png" alt="Coralogix Logs" width="20" style="vertical-align: middle;"> **Coralogix Logs**](https://holmesgpt.dev/data-sources/builtin-toolsets/coralogix-logs/) | ✅ | Retrieve logs for any resource |
94
+ | [<img src="images/integration_logos/date_time_icon.png" alt="Datetime" width="20" style="vertical-align: middle;"> **Datetime**](https://holmesgpt.dev/data-sources/builtin-toolsets/datetime/) | ✅ | Date and time-related operations |
95
+ | [<img src="images/integration_logos/docker_logo.png" alt="Docker" width="20" style="vertical-align: middle;"> **Docker**](https://holmesgpt.dev/data-sources/builtin-toolsets/docker/) | ✅ | Get images, logs, events, history and more |
96
+ | [<img src="images/integration_logos/github_logo.png" alt="GitHub" width="20" style="vertical-align: middle;"> **GitHub**](https://holmesgpt.dev/data-sources/builtin-toolsets/github/) | 🟡 Beta | Remediate alerts by opening pull requests with fixes |
97
+ | [<img src="images/integration_logos/datadog_logo.png" alt="DataDog" width="20" style="vertical-align: middle;"> **DataDog**](https://holmesgpt.dev/data-sources/builtin-toolsets/datadog/) | 🟡 Beta | Fetches log data from datadog |
98
+ | [<img src="images/integration_logos/grafana_loki-icon.png" alt="Loki" width="20" style="vertical-align: middle;"> **Loki**](https://holmesgpt.dev/data-sources/builtin-toolsets/grafanaloki/) | ✅ | Query logs for Kubernetes resources or any query |
99
+ | [<img src="images/integration_logos/tempo_logo.png" alt="Tempo" width="20" style="vertical-align: middle;"> **Tempo**](https://holmesgpt.dev/data-sources/builtin-toolsets/grafanatempo/) | ✅ | Fetch trace info, debug issues like high latency in application. |
100
+ | [<img src="images/integration_logos/helm_logo.png" alt="Helm" width="20" style="vertical-align: middle;"> **Helm**](https://holmesgpt.dev/data-sources/builtin-toolsets/helm/) | ✅ | Release status, chart metadata, and values |
101
+ | [<img src="images/integration_logos/http-icon.png" alt="Internet" width="20" style="vertical-align: middle;"> **Internet**](https://holmesgpt.dev/data-sources/builtin-toolsets/internet/) | ✅ | Public runbooks, community docs etc |
102
+ | [<img src="images/integration_logos/kafka_logo.png" alt="Kafka" width="20" style="vertical-align: middle;"> **Kafka**](https://holmesgpt.dev/data-sources/builtin-toolsets/kafka/) | ✅ | Fetch metadata, list consumers and topics or find lagging consumer groups |
103
+ | [<img src="images/integration_logos/kubernetes-icon.png" alt="Kubernetes" width="20" style="vertical-align: middle;"> **Kubernetes**](https://holmesgpt.dev/data-sources/builtin-toolsets/kubernetes/) | ✅ | Pod logs, K8s events, and resource status (kubectl describe) |
104
+ | [<img src="images/integration_logos/newrelic_logo.png" alt="NewRelic" width="20" style="vertical-align: middle;"> **NewRelic**](https://holmesgpt.dev/data-sources/builtin-toolsets/newrelic/) | 🟡 Beta | Investigate alerts, query tracing data |
105
+ | [<img src="images/integration_logos/opensearchserverless-icon.png" alt="OpenSearch" width="20" style="vertical-align: middle;"> **OpenSearch**](https://holmesgpt.dev/data-sources/builtin-toolsets/opensearch-status/) | ✅ | Query health, shard, and settings related info of one or more clusters|
106
+ | [<img src="images/integration_logos/prometheus-icon.png" alt="Prometheus" width="20" style="vertical-align: middle;"> **Prometheus**](https://holmesgpt.dev/data-sources/builtin-toolsets/prometheus/) | ✅ | Investigate alerts, query metrics and generate PromQL queries |
107
+ | [<img src="images/integration_logos/rabbit_mq_logo.png" alt="RabbitMQ" width="20" style="vertical-align: middle;"> **RabbitMQ**](https://holmesgpt.dev/data-sources/builtin-toolsets/rabbitmq/) | ✅ | Info about partitions, memory/disk alerts to troubleshoot split-brain scenarios and more |
108
+ | [<img src="images/integration_logos/robusta_logo.png" alt="Robusta" width="20" style="vertical-align: middle;"> **Robusta**](https://holmesgpt.dev/data-sources/builtin-toolsets/robusta/) | ✅ | Multi-cluster monitoring, historical change data, user-configured runbooks, PromQL graphs and more |
109
+ | [<img src="images/integration_logos/slab_logo.png" alt="Slab" width="20" style="vertical-align: middle;"> **Slab**](https://holmesgpt.dev/data-sources/builtin-toolsets/slab/) | ✅ | Team knowledge base and runbooks on demand |
110
+
111
+ ### 🚀 End-to-End Automation
112
+
113
+ HolmesGPT can fetch alerts/tickets to investigate from external systems, then write the analysis back to the source or Slack.
114
+
115
+ | Integration | Status | Notes |
116
+ |-------------------------|-----------|-------|
117
+ | Slack | 🟡 Beta | [Demo.](https://www.loom.com/share/afcd81444b1a4adfaa0bbe01c37a4847) Tag HolmesGPT bot in any Slack message |
118
+ | Prometheus/AlertManager | ✅ | Robusta SaaS or HolmesGPT CLI |
119
+ | PagerDuty | ✅ | HolmesGPT CLI only |
120
+ | OpsGenie | ✅ | HolmesGPT CLI only |
121
+ | Jira | ✅ | HolmesGPT CLI only |
122
+ | GitHub | ✅ | HolmesGPT CLI only |
123
+
124
+ ## Installation
125
+
126
+ <a href="https://holmesgpt.dev/installation/cli-installation/">
127
+ <img src="images/integration_logos/all-installation-methods.png" alt="All Installation Methods" style="max-width:100%; height:auto;">
128
+ </a>
129
+
130
+ Read the [installation documentation](https://holmesgpt.dev/installation/cli-installation/) to learn how to install HolmesGPT.
131
+
132
+ ## Supported LLM Providers
133
+
134
+ <a href="https://holmesgpt.dev/ai-providers/">
135
+ <img src="images/integration_logos/all-integration-providers.png" alt="All Integration Providers" style="max-width:100%; height:auto;">
136
+ </a>
137
+
138
+ Read the [LLM Providers documentation](https://holmesgpt.dev/ai-providers/) to learn how to set up your LLM API key.
139
+
140
+ ## Using HolmesGPT
141
+
142
+ - In the Robusta SaaS: Go to [platform.robusta.dev](https://platform.robusta.dev/signup/?utm_source=github&utm_medium=holmesgpt-readme&utm_content=ways_to_use_holmesgpt_section) and use Holmes from your browser
143
+ - With HolmesGPT CLI: [setup an LLM API key](https://holmesgpt.dev/ai-providers/) and ask Holmes a question 👇
144
+
145
+ ```bash
146
+ holmes ask "what pods are unhealthy and why?"
147
+ ```
148
+
149
+ You can also provide files as context:
150
+ ```bash
151
+ holmes ask "summarize the key points in this document" -f ./mydocument.txt
152
+ ```
153
+
154
+ You can also load the prompt from a file using the `--prompt-file` option:
155
+ ```bash
156
+ holmes ask --prompt-file ~/long-prompt.txt
157
+
158
+ Enter interactive mode to ask follow-up questions:
159
+ ```bash
160
+ holmes ask "what pods are unhealthy and why?" --interactive
161
+ # or
162
+ holmes ask "what pods are unhealthy and why?" -i
163
+ ```
164
+
165
+ Also supported:
166
+
167
+ <details>
168
+ <summary>HolmesGPT CLI: investigate Prometheus alerts</summary>
169
+
170
+ Pull alerts from AlertManager and investigate them with HolmesGPT:
171
+
172
+ ```bash
173
+ holmes investigate alertmanager --alertmanager-url http://localhost:9093
174
+ # if on Mac OS and using the Holmes Docker image👇
175
+ # holmes investigate alertmanager --alertmanager-url http://docker.for.mac.localhost:9093
176
+ ```
177
+
178
+ <b>To investigate alerts in your browser, sign up for a free trial of [Robusta SaaS](https://platform.robusta.dev/signup/?utm_source=github&utm_medium=holmesgpt-readme&utm_content=ways_to_use_holmesgpt_section). </b>
179
+
180
+
181
+ <b>Optional:</b> port-forward to AlertManager before running the command mentioned above (if running Prometheus inside Kubernetes)
182
+
183
+ ```bash
184
+ kubectl port-forward alertmanager-robusta-kube-prometheus-st-alertmanager-0 9093:9093 &
185
+ ```
186
+ </details>
187
+
188
+ <details>
189
+ <summary>HolmesGPT CLI: investigate PagerDuty and OpsGenie alerts</summary>
190
+
191
+ ```bash
192
+ holmes investigate opsgenie --opsgenie-api-key <OPSGENIE_API_KEY>
193
+ holmes investigate pagerduty --pagerduty-api-key <PAGERDUTY_API_KEY>
194
+ # to write the analysis back to the incident as a comment
195
+ holmes investigate pagerduty --pagerduty-api-key <PAGERDUTY_API_KEY> --update
196
+ ```
197
+
198
+ For more details, run `holmes investigate <source> --help`
199
+ </details>
200
+
201
+ ## Customizing HolmesGPT
202
+
203
+ HolmesGPT can investigate many issues out of the box, with no customization or training. Optionally, you can extend Holmes to improve results:
204
+
205
+ **Custom Data Sources**: Add data sources (toolsets) to improve investigations
206
+ - If using Robusta SaaS: See [here](https://holmesgpt.dev/data-sources/custom-toolsets/)
207
+ - If using the CLI: Use `-t` flag with [custom toolset files](./examples/custom_toolset.yaml) or add to `~/.holmes/config.yaml`
208
+
209
+ **Custom Runbooks**: Give HolmesGPT instructions for known alerts:
210
+ - If using Robusta SaaS: Use the Robusta UI to add runbooks
211
+ - If using the CLI: Use `-r` flag with [custom runbook files](./examples/custom_runbooks.yaml) or add to `~/.holmes/config.yaml`
212
+
213
+ You can save common settings and API Keys in a config file to avoid passing them from the CLI each time:
214
+
215
+ <details>
216
+ <summary>Reading settings from a config file</summary>
217
+
218
+ You can save common settings and API keys in config file for re-use. Place the config file in <code>~/.holmes/config.yaml`</code> or pass it using the <code> --config</code>
219
+
220
+ You can view an example config file with all available settings [here](config.example.yaml).
221
+
222
+ ### Tool Output Transformers
223
+
224
+ HolmesGPT supports **transformers** to process large tool outputs before sending them to your primary LLM. This feature helps manage context window limits while preserving essential information.
225
+
226
+ The most common transformer is `llm_summarize`, which uses a fast secondary model to summarize lengthy outputs from tools like `kubectl describe`, log queries, or metrics collection.
227
+
228
+ 📖 **Learn more**: [Tool Output Transformers Documentation](docs/transformers.md)
229
+ </details>
230
+
231
+ ## 🔐 Data Privacy
232
+
233
+ By design, HolmesGPT has **read-only access** and respects RBAC permissions. It is safe to run in production environments.
234
+
235
+ We do **not** train HolmesGPT on your data. Data sent to Robusta SaaS is private to your account.
236
+
237
+ For extra privacy, [bring an API key](https://holmesgpt.dev/ai-providers/) for your own AI model.
238
+
239
+
240
+ ## Evals
241
+
242
+ Because HolmesGPT relies on LLMs, it relies on [a suite of pytest based evaluations](https://holmesgpt.dev/development/evals/) to ensure the prompt and HolmesGPT's default set of tools work as expected with LLMs.
243
+
244
+ - [Introduction to HolmesGPT's evals](https://holmesgpt.dev/development/evaluations/).
245
+ - [Write your own evals](https://holmesgpt.dev/development/evaluations/adding-evals/).
246
+ - [Use Braintrust to view analyze results (optional)](https://holmesgpt.dev/development/evaluations/reporting/).
247
+
248
+
249
+ ## License
250
+ Distributed under the MIT License. See [LICENSE.txt](https://github.com/robusta-dev/holmesgpt/blob/master/LICENSE.txt) for more information.
251
+ <!-- Change License -->
252
+
253
+ ## Community
254
+
255
+ Join our community to discuss the HolmesGPT roadmap and share feedback:
256
+
257
+ 📹 **First Community Meetup Recording:** [Watch on YouTube](https://youtu.be/slQRc6nlFQU)
258
+ - **Topics:** Roadmap discussion, community feedback, and Q&A
259
+ - **Resources:** [📝 Meeting Notes](https://docs.google.com/document/d/1sIHCcTivyzrF5XNvos7ZT_UcxEOqgwfawsTbb9wMJe4/edit?tab=t.0) | [📋 Community Page](https://holmesgpt.dev/community/)
260
+
261
+ ## Support
262
+
263
+ If you have any questions, feel free to message us on [robustacommunity.slack.com](https://bit.ly/robusta-slack)
264
+
265
+ ## How to Contribute
266
+
267
+ Please read our [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines and instructions.
268
+
269
+ For help, contact us on [Slack](https://bit.ly/robusta-slack) or ask [DeepWiki AI](https://deepwiki.com/robusta-dev/holmesgpt) your questions.
270
+
271
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/robusta-dev/holmesgpt)
272
+
@@ -0,0 +1,216 @@
1
+ <div align="center">
2
+ <h1 align="center">AI Agent for Cloud Troubleshooting and Alert Investigation</h1>
3
+
4
+ HolmesGPT is an AI agent for investigating problems in your cloud, finding the root cause, and suggesting remediations. It has dozens of built-in integrations for cloud providers, observability tools, and on-call systems.
5
+
6
+ >🎉 **HolmesGPT is now a CNCF Sandbox Project!** We're thrilled to be part of the Cloud Native Computing Foundation. [Learn more about our journey](https://github.com/cncf/sandbox/issues/392#issuecomment-3380007501).
7
+
8
+ Find more about HolmesGPT's maintainers and adopters [here](./ADOPTERS.md).
9
+
10
+ 📚 **[Read the full documentation at holmesgpt.dev](https://holmesgpt.dev/)** for installation guides, tutorials, API reference, and more.
11
+
12
+ <p align="center">
13
+ <a href="#how-it-works"><strong>How it Works</strong></a> |
14
+ <a href="#installation"><strong>Installation</strong></a> |
15
+ <a href="#supported-llm-providers"><strong>LLM Providers</strong></a> |
16
+ <a href="https://www.youtube.com/watch?v=TfQfx65LsDQ"><strong>YouTube Demo</strong></a> |
17
+ <a href="https://deepwiki.com/robusta-dev/holmesgpt"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
18
+ </p>
19
+ </div>
20
+
21
+ ![HolmesGPT Investigation Demo](https://holmesgpt.dev/assets/HolmesInvestigation.gif)
22
+
23
+ ## How it Works
24
+
25
+ HolmesGPT connects AI models with live observability data and organizational knowledge. It uses an **agentic loop** to analyze data from multiple sources and identify possible root causes.
26
+
27
+ <img width="3114" alt="holmesgpt-architecture-diagram" src="https://github.com/user-attachments/assets/f659707e-1958-4add-9238-8565a5e3713a" />
28
+
29
+ ### 🔗 Data Sources
30
+
31
+ HolmesGPT integrates with popular observability and cloud platforms. The following data sources ("toolsets") are built-in. [Add your own](#customizing-holmesgpt).
32
+
33
+ | Data Source | Status | Notes |
34
+ |-------------|--------|-------|
35
+ | [<img src="images/integration_logos/argocd-icon.png" alt="ArgoCD" width="20" style="vertical-align: middle;"> **ArgoCD**](https://holmesgpt.dev/data-sources/builtin-toolsets/argocd/) | ✅ | Get status, history and manifests and more of apps, projects and clusters |
36
+ | [<img src="images/integration_logos/aws_rds_logo.png" alt="AWS RDS" width="20" style="vertical-align: middle;"> **AWS RDS**](https://holmesgpt.dev/data-sources/builtin-toolsets/aws/) | ✅ | Fetch events, instances, slow query logs and more |
37
+ | [<img src="images/integration_logos/confluence_logo.png" alt="Confluence" width="20" style="vertical-align: middle;"> **Confluence**](https://holmesgpt.dev/data-sources/builtin-toolsets/confluence/) | ✅ | Private runbooks and documentation |
38
+ | [<img src="images/integration_logos/coralogix-icon.png" alt="Coralogix Logs" width="20" style="vertical-align: middle;"> **Coralogix Logs**](https://holmesgpt.dev/data-sources/builtin-toolsets/coralogix-logs/) | ✅ | Retrieve logs for any resource |
39
+ | [<img src="images/integration_logos/date_time_icon.png" alt="Datetime" width="20" style="vertical-align: middle;"> **Datetime**](https://holmesgpt.dev/data-sources/builtin-toolsets/datetime/) | ✅ | Date and time-related operations |
40
+ | [<img src="images/integration_logos/docker_logo.png" alt="Docker" width="20" style="vertical-align: middle;"> **Docker**](https://holmesgpt.dev/data-sources/builtin-toolsets/docker/) | ✅ | Get images, logs, events, history and more |
41
+ | [<img src="images/integration_logos/github_logo.png" alt="GitHub" width="20" style="vertical-align: middle;"> **GitHub**](https://holmesgpt.dev/data-sources/builtin-toolsets/github/) | 🟡 Beta | Remediate alerts by opening pull requests with fixes |
42
+ | [<img src="images/integration_logos/datadog_logo.png" alt="DataDog" width="20" style="vertical-align: middle;"> **DataDog**](https://holmesgpt.dev/data-sources/builtin-toolsets/datadog/) | 🟡 Beta | Fetches log data from datadog |
43
+ | [<img src="images/integration_logos/grafana_loki-icon.png" alt="Loki" width="20" style="vertical-align: middle;"> **Loki**](https://holmesgpt.dev/data-sources/builtin-toolsets/grafanaloki/) | ✅ | Query logs for Kubernetes resources or any query |
44
+ | [<img src="images/integration_logos/tempo_logo.png" alt="Tempo" width="20" style="vertical-align: middle;"> **Tempo**](https://holmesgpt.dev/data-sources/builtin-toolsets/grafanatempo/) | ✅ | Fetch trace info, debug issues like high latency in application. |
45
+ | [<img src="images/integration_logos/helm_logo.png" alt="Helm" width="20" style="vertical-align: middle;"> **Helm**](https://holmesgpt.dev/data-sources/builtin-toolsets/helm/) | ✅ | Release status, chart metadata, and values |
46
+ | [<img src="images/integration_logos/http-icon.png" alt="Internet" width="20" style="vertical-align: middle;"> **Internet**](https://holmesgpt.dev/data-sources/builtin-toolsets/internet/) | ✅ | Public runbooks, community docs etc |
47
+ | [<img src="images/integration_logos/kafka_logo.png" alt="Kafka" width="20" style="vertical-align: middle;"> **Kafka**](https://holmesgpt.dev/data-sources/builtin-toolsets/kafka/) | ✅ | Fetch metadata, list consumers and topics or find lagging consumer groups |
48
+ | [<img src="images/integration_logos/kubernetes-icon.png" alt="Kubernetes" width="20" style="vertical-align: middle;"> **Kubernetes**](https://holmesgpt.dev/data-sources/builtin-toolsets/kubernetes/) | ✅ | Pod logs, K8s events, and resource status (kubectl describe) |
49
+ | [<img src="images/integration_logos/newrelic_logo.png" alt="NewRelic" width="20" style="vertical-align: middle;"> **NewRelic**](https://holmesgpt.dev/data-sources/builtin-toolsets/newrelic/) | 🟡 Beta | Investigate alerts, query tracing data |
50
+ | [<img src="images/integration_logos/opensearchserverless-icon.png" alt="OpenSearch" width="20" style="vertical-align: middle;"> **OpenSearch**](https://holmesgpt.dev/data-sources/builtin-toolsets/opensearch-status/) | ✅ | Query health, shard, and settings related info of one or more clusters|
51
+ | [<img src="images/integration_logos/prometheus-icon.png" alt="Prometheus" width="20" style="vertical-align: middle;"> **Prometheus**](https://holmesgpt.dev/data-sources/builtin-toolsets/prometheus/) | ✅ | Investigate alerts, query metrics and generate PromQL queries |
52
+ | [<img src="images/integration_logos/rabbit_mq_logo.png" alt="RabbitMQ" width="20" style="vertical-align: middle;"> **RabbitMQ**](https://holmesgpt.dev/data-sources/builtin-toolsets/rabbitmq/) | ✅ | Info about partitions, memory/disk alerts to troubleshoot split-brain scenarios and more |
53
+ | [<img src="images/integration_logos/robusta_logo.png" alt="Robusta" width="20" style="vertical-align: middle;"> **Robusta**](https://holmesgpt.dev/data-sources/builtin-toolsets/robusta/) | ✅ | Multi-cluster monitoring, historical change data, user-configured runbooks, PromQL graphs and more |
54
+ | [<img src="images/integration_logos/slab_logo.png" alt="Slab" width="20" style="vertical-align: middle;"> **Slab**](https://holmesgpt.dev/data-sources/builtin-toolsets/slab/) | ✅ | Team knowledge base and runbooks on demand |
55
+
56
+ ### 🚀 End-to-End Automation
57
+
58
+ HolmesGPT can fetch alerts/tickets to investigate from external systems, then write the analysis back to the source or Slack.
59
+
60
+ | Integration | Status | Notes |
61
+ |-------------------------|-----------|-------|
62
+ | Slack | 🟡 Beta | [Demo.](https://www.loom.com/share/afcd81444b1a4adfaa0bbe01c37a4847) Tag HolmesGPT bot in any Slack message |
63
+ | Prometheus/AlertManager | ✅ | Robusta SaaS or HolmesGPT CLI |
64
+ | PagerDuty | ✅ | HolmesGPT CLI only |
65
+ | OpsGenie | ✅ | HolmesGPT CLI only |
66
+ | Jira | ✅ | HolmesGPT CLI only |
67
+ | GitHub | ✅ | HolmesGPT CLI only |
68
+
69
+ ## Installation
70
+
71
+ <a href="https://holmesgpt.dev/installation/cli-installation/">
72
+ <img src="images/integration_logos/all-installation-methods.png" alt="All Installation Methods" style="max-width:100%; height:auto;">
73
+ </a>
74
+
75
+ Read the [installation documentation](https://holmesgpt.dev/installation/cli-installation/) to learn how to install HolmesGPT.
76
+
77
+ ## Supported LLM Providers
78
+
79
+ <a href="https://holmesgpt.dev/ai-providers/">
80
+ <img src="images/integration_logos/all-integration-providers.png" alt="All Integration Providers" style="max-width:100%; height:auto;">
81
+ </a>
82
+
83
+ Read the [LLM Providers documentation](https://holmesgpt.dev/ai-providers/) to learn how to set up your LLM API key.
84
+
85
+ ## Using HolmesGPT
86
+
87
+ - In the Robusta SaaS: Go to [platform.robusta.dev](https://platform.robusta.dev/signup/?utm_source=github&utm_medium=holmesgpt-readme&utm_content=ways_to_use_holmesgpt_section) and use Holmes from your browser
88
+ - With HolmesGPT CLI: [setup an LLM API key](https://holmesgpt.dev/ai-providers/) and ask Holmes a question 👇
89
+
90
+ ```bash
91
+ holmes ask "what pods are unhealthy and why?"
92
+ ```
93
+
94
+ You can also provide files as context:
95
+ ```bash
96
+ holmes ask "summarize the key points in this document" -f ./mydocument.txt
97
+ ```
98
+
99
+ You can also load the prompt from a file using the `--prompt-file` option:
100
+ ```bash
101
+ holmes ask --prompt-file ~/long-prompt.txt
102
+
103
+ Enter interactive mode to ask follow-up questions:
104
+ ```bash
105
+ holmes ask "what pods are unhealthy and why?" --interactive
106
+ # or
107
+ holmes ask "what pods are unhealthy and why?" -i
108
+ ```
109
+
110
+ Also supported:
111
+
112
+ <details>
113
+ <summary>HolmesGPT CLI: investigate Prometheus alerts</summary>
114
+
115
+ Pull alerts from AlertManager and investigate them with HolmesGPT:
116
+
117
+ ```bash
118
+ holmes investigate alertmanager --alertmanager-url http://localhost:9093
119
+ # if on Mac OS and using the Holmes Docker image👇
120
+ # holmes investigate alertmanager --alertmanager-url http://docker.for.mac.localhost:9093
121
+ ```
122
+
123
+ <b>To investigate alerts in your browser, sign up for a free trial of [Robusta SaaS](https://platform.robusta.dev/signup/?utm_source=github&utm_medium=holmesgpt-readme&utm_content=ways_to_use_holmesgpt_section). </b>
124
+
125
+
126
+ <b>Optional:</b> port-forward to AlertManager before running the command mentioned above (if running Prometheus inside Kubernetes)
127
+
128
+ ```bash
129
+ kubectl port-forward alertmanager-robusta-kube-prometheus-st-alertmanager-0 9093:9093 &
130
+ ```
131
+ </details>
132
+
133
+ <details>
134
+ <summary>HolmesGPT CLI: investigate PagerDuty and OpsGenie alerts</summary>
135
+
136
+ ```bash
137
+ holmes investigate opsgenie --opsgenie-api-key <OPSGENIE_API_KEY>
138
+ holmes investigate pagerduty --pagerduty-api-key <PAGERDUTY_API_KEY>
139
+ # to write the analysis back to the incident as a comment
140
+ holmes investigate pagerduty --pagerduty-api-key <PAGERDUTY_API_KEY> --update
141
+ ```
142
+
143
+ For more details, run `holmes investigate <source> --help`
144
+ </details>
145
+
146
+ ## Customizing HolmesGPT
147
+
148
+ HolmesGPT can investigate many issues out of the box, with no customization or training. Optionally, you can extend Holmes to improve results:
149
+
150
+ **Custom Data Sources**: Add data sources (toolsets) to improve investigations
151
+ - If using Robusta SaaS: See [here](https://holmesgpt.dev/data-sources/custom-toolsets/)
152
+ - If using the CLI: Use `-t` flag with [custom toolset files](./examples/custom_toolset.yaml) or add to `~/.holmes/config.yaml`
153
+
154
+ **Custom Runbooks**: Give HolmesGPT instructions for known alerts:
155
+ - If using Robusta SaaS: Use the Robusta UI to add runbooks
156
+ - If using the CLI: Use `-r` flag with [custom runbook files](./examples/custom_runbooks.yaml) or add to `~/.holmes/config.yaml`
157
+
158
+ You can save common settings and API Keys in a config file to avoid passing them from the CLI each time:
159
+
160
+ <details>
161
+ <summary>Reading settings from a config file</summary>
162
+
163
+ You can save common settings and API keys in config file for re-use. Place the config file in <code>~/.holmes/config.yaml`</code> or pass it using the <code> --config</code>
164
+
165
+ You can view an example config file with all available settings [here](config.example.yaml).
166
+
167
+ ### Tool Output Transformers
168
+
169
+ HolmesGPT supports **transformers** to process large tool outputs before sending them to your primary LLM. This feature helps manage context window limits while preserving essential information.
170
+
171
+ The most common transformer is `llm_summarize`, which uses a fast secondary model to summarize lengthy outputs from tools like `kubectl describe`, log queries, or metrics collection.
172
+
173
+ 📖 **Learn more**: [Tool Output Transformers Documentation](docs/transformers.md)
174
+ </details>
175
+
176
+ ## 🔐 Data Privacy
177
+
178
+ By design, HolmesGPT has **read-only access** and respects RBAC permissions. It is safe to run in production environments.
179
+
180
+ We do **not** train HolmesGPT on your data. Data sent to Robusta SaaS is private to your account.
181
+
182
+ For extra privacy, [bring an API key](https://holmesgpt.dev/ai-providers/) for your own AI model.
183
+
184
+
185
+ ## Evals
186
+
187
+ Because HolmesGPT relies on LLMs, it relies on [a suite of pytest based evaluations](https://holmesgpt.dev/development/evals/) to ensure the prompt and HolmesGPT's default set of tools work as expected with LLMs.
188
+
189
+ - [Introduction to HolmesGPT's evals](https://holmesgpt.dev/development/evaluations/).
190
+ - [Write your own evals](https://holmesgpt.dev/development/evaluations/adding-evals/).
191
+ - [Use Braintrust to view analyze results (optional)](https://holmesgpt.dev/development/evaluations/reporting/).
192
+
193
+
194
+ ## License
195
+ Distributed under the MIT License. See [LICENSE.txt](https://github.com/robusta-dev/holmesgpt/blob/master/LICENSE.txt) for more information.
196
+ <!-- Change License -->
197
+
198
+ ## Community
199
+
200
+ Join our community to discuss the HolmesGPT roadmap and share feedback:
201
+
202
+ 📹 **First Community Meetup Recording:** [Watch on YouTube](https://youtu.be/slQRc6nlFQU)
203
+ - **Topics:** Roadmap discussion, community feedback, and Q&A
204
+ - **Resources:** [📝 Meeting Notes](https://docs.google.com/document/d/1sIHCcTivyzrF5XNvos7ZT_UcxEOqgwfawsTbb9wMJe4/edit?tab=t.0) | [📋 Community Page](https://holmesgpt.dev/community/)
205
+
206
+ ## Support
207
+
208
+ If you have any questions, feel free to message us on [robustacommunity.slack.com](https://bit.ly/robusta-slack)
209
+
210
+ ## How to Contribute
211
+
212
+ Please read our [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines and instructions.
213
+
214
+ For help, contact us on [Slack](https://bit.ly/robusta-slack) or ask [DeepWiki AI](https://deepwiki.com/robusta-dev/holmesgpt) your questions.
215
+
216
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/robusta-dev/holmesgpt)
@@ -1,5 +1,5 @@
1
1
  # This is patched by github actions during release
2
- __version__ = "0.12.3"
2
+ __version__ = "0.16.1"
3
3
 
4
4
  # Re-export version functions from version module for backward compatibility
5
5
  from .version import (
@@ -0,0 +1,55 @@
1
+ import logging
2
+ from typing import Optional, Dict, Any
3
+ import requests # type: ignore
4
+ from functools import cache
5
+ from pydantic import BaseModel, ConfigDict
6
+ from holmes.common.env_vars import ROBUSTA_API_ENDPOINT
7
+
8
+ HOLMES_GET_INFO_URL = f"{ROBUSTA_API_ENDPOINT}/api/holmes/get_info"
9
+ TIMEOUT = 0.5
10
+
11
+
12
+ class HolmesInfo(BaseModel):
13
+ model_config = ConfigDict(extra="ignore")
14
+ latest_version: Optional[str] = None
15
+
16
+
17
+ class RobustaModel(BaseModel):
18
+ model_config = ConfigDict(extra="ignore")
19
+ model: str
20
+ holmes_args: Optional[dict[str, Any]] = None
21
+ is_default: bool = False
22
+
23
+
24
+ class RobustaModelsResponse(BaseModel):
25
+ models: Dict[str, RobustaModel]
26
+
27
+
28
+ @cache
29
+ def fetch_robusta_models(
30
+ account_id: str, token: str
31
+ ) -> Optional[RobustaModelsResponse]:
32
+ try:
33
+ session_request = {"session_token": token, "account_id": account_id}
34
+ resp = requests.post(
35
+ f"{ROBUSTA_API_ENDPOINT}/api/llm/models/v2",
36
+ json=session_request,
37
+ timeout=10,
38
+ )
39
+ resp.raise_for_status()
40
+ response_json = resp.json()
41
+ return RobustaModelsResponse(**{"models": response_json})
42
+ except Exception:
43
+ logging.exception("Failed to fetch robusta models")
44
+ return None
45
+
46
+
47
+ @cache
48
+ def fetch_holmes_info() -> Optional[HolmesInfo]:
49
+ try:
50
+ response = requests.get(HOLMES_GET_INFO_URL, timeout=TIMEOUT)
51
+ response.raise_for_status()
52
+ result = response.json()
53
+ return HolmesInfo(**result)
54
+ except Exception:
55
+ return None