holmesgpt 0.14.2__py3-none-any.whl → 0.14.3a0__py3-none-any.whl
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.
Potentially problematic release.
This version of holmesgpt might be problematic. Click here for more details.
- holmes/__init__.py +1 -1
- holmes/common/env_vars.py +6 -0
- holmes/config.py +3 -6
- holmes/core/conversations.py +12 -2
- holmes/core/feedback.py +191 -0
- holmes/core/llm.py +16 -12
- holmes/core/models.py +101 -1
- holmes/core/supabase_dal.py +23 -9
- holmes/core/tool_calling_llm.py +197 -15
- holmes/core/tools.py +20 -7
- holmes/core/tools_utils/token_counting.py +13 -0
- holmes/core/tools_utils/tool_context_window_limiter.py +45 -23
- holmes/core/tools_utils/tool_executor.py +11 -6
- holmes/core/toolset_manager.py +5 -1
- holmes/core/truncation/dal_truncation_utils.py +23 -0
- holmes/interactive.py +146 -14
- holmes/plugins/prompts/_fetch_logs.jinja2 +3 -0
- holmes/plugins/runbooks/__init__.py +6 -1
- holmes/plugins/toolsets/__init__.py +11 -4
- holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py +9 -20
- holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py +2 -3
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py +2 -3
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py +6 -4
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py +6 -4
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py +2 -3
- holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py +6 -4
- holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py +2 -3
- holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py +2 -3
- holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py +2 -3
- holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py +2 -3
- holmes/plugins/toolsets/bash/bash_toolset.py +4 -7
- holmes/plugins/toolsets/cilium.yaml +284 -0
- holmes/plugins/toolsets/datadog/toolset_datadog_general.py +5 -10
- holmes/plugins/toolsets/datadog/toolset_datadog_logs.py +1 -1
- holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py +6 -13
- holmes/plugins/toolsets/datadog/toolset_datadog_rds.py +3 -6
- holmes/plugins/toolsets/datadog/toolset_datadog_traces.py +4 -9
- holmes/plugins/toolsets/git.py +14 -12
- holmes/plugins/toolsets/grafana/grafana_tempo_api.py +23 -42
- holmes/plugins/toolsets/grafana/toolset_grafana.py +2 -3
- holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py +18 -36
- holmes/plugins/toolsets/internet/internet.py +2 -3
- holmes/plugins/toolsets/internet/notion.py +2 -3
- holmes/plugins/toolsets/investigator/core_investigation.py +7 -9
- holmes/plugins/toolsets/kafka.py +7 -18
- holmes/plugins/toolsets/logging_utils/logging_api.py +79 -3
- holmes/plugins/toolsets/mcp/toolset_mcp.py +2 -3
- holmes/plugins/toolsets/newrelic/__init__.py +0 -0
- holmes/plugins/toolsets/newrelic/new_relic_api.py +125 -0
- holmes/plugins/toolsets/newrelic/newrelic.jinja2 +41 -0
- holmes/plugins/toolsets/newrelic/newrelic.py +211 -0
- holmes/plugins/toolsets/opensearch/opensearch.py +5 -12
- holmes/plugins/toolsets/opensearch/opensearch_traces.py +3 -6
- holmes/plugins/toolsets/prometheus/prometheus.py +131 -97
- holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py +3 -6
- holmes/plugins/toolsets/robusta/robusta.py +4 -9
- holmes/plugins/toolsets/runbook/runbook_fetcher.py +93 -13
- holmes/plugins/toolsets/servicenow/servicenow.py +5 -10
- holmes/utils/sentry_helper.py +1 -1
- holmes/utils/stream.py +22 -7
- holmes/version.py +34 -14
- {holmesgpt-0.14.2.dist-info → holmesgpt-0.14.3a0.dist-info}/METADATA +6 -8
- {holmesgpt-0.14.2.dist-info → holmesgpt-0.14.3a0.dist-info}/RECORD +66 -60
- holmes/core/tools_utils/data_types.py +0 -81
- holmes/plugins/toolsets/newrelic.py +0 -231
- {holmesgpt-0.14.2.dist-info → holmesgpt-0.14.3a0.dist-info}/LICENSE.txt +0 -0
- {holmesgpt-0.14.2.dist-info → holmesgpt-0.14.3a0.dist-info}/WHEEL +0 -0
- {holmesgpt-0.14.2.dist-info → holmesgpt-0.14.3a0.dist-info}/entry_points.txt +0 -0
|
@@ -5,6 +5,7 @@ from typing import Any, Dict, Tuple, List
|
|
|
5
5
|
from holmes.core.tools import (
|
|
6
6
|
CallablePrerequisite,
|
|
7
7
|
Tool,
|
|
8
|
+
ToolInvokeContext,
|
|
8
9
|
ToolParameter,
|
|
9
10
|
Toolset,
|
|
10
11
|
ToolsetTag,
|
|
@@ -56,7 +57,7 @@ class ServiceNowToolset(Toolset):
|
|
|
56
57
|
self.config: Dict = ServiceNowConfig(**config).model_dump()
|
|
57
58
|
self._session.headers.update(
|
|
58
59
|
{
|
|
59
|
-
"x-sn-apikey": self.config.get("api_key"),
|
|
60
|
+
"x-sn-apikey": self.config.get("api_key"), # type: ignore
|
|
60
61
|
}
|
|
61
62
|
)
|
|
62
63
|
|
|
@@ -115,9 +116,7 @@ class ReturnChangesInTimerange(ServiceNowBaseTool):
|
|
|
115
116
|
start = params.get("start", "last hour")
|
|
116
117
|
return f"{toolset_name_for_one_liner(self.toolset.name)}: Get Change Requests ({start})"
|
|
117
118
|
|
|
118
|
-
def _invoke(
|
|
119
|
-
self, params: dict, user_approved: bool = False
|
|
120
|
-
) -> StructuredToolResult:
|
|
119
|
+
def _invoke(self, params: dict, context: ToolInvokeContext) -> StructuredToolResult:
|
|
121
120
|
parsed_params = {}
|
|
122
121
|
try:
|
|
123
122
|
(start, _) = process_timestamps_to_rfc3339(
|
|
@@ -160,9 +159,7 @@ class ReturnChange(ServiceNowBaseTool):
|
|
|
160
159
|
sys_id = params.get("sys_id", "")
|
|
161
160
|
return f"{toolset_name_for_one_liner(self.toolset.name)}: Get Change Details ({sys_id})"
|
|
162
161
|
|
|
163
|
-
def _invoke(
|
|
164
|
-
self, params: dict, user_approved: bool = False
|
|
165
|
-
) -> StructuredToolResult:
|
|
162
|
+
def _invoke(self, params: dict, context: ToolInvokeContext) -> StructuredToolResult:
|
|
166
163
|
try:
|
|
167
164
|
url = "https://{instance}.service-now.com/api/now/v2/table/change_request/{sys_id}".format(
|
|
168
165
|
instance=self.toolset.config.get("instance"),
|
|
@@ -194,9 +191,7 @@ class ReturnChangesWithKeyword(ServiceNowBaseTool):
|
|
|
194
191
|
keyword = params.get("keyword", "")
|
|
195
192
|
return f"{toolset_name_for_one_liner(self.toolset.name)}: Search Changes ({keyword})"
|
|
196
193
|
|
|
197
|
-
def _invoke(
|
|
198
|
-
self, params: dict, user_approved: bool = False
|
|
199
|
-
) -> StructuredToolResult:
|
|
194
|
+
def _invoke(self, params: dict, context: ToolInvokeContext) -> StructuredToolResult:
|
|
200
195
|
parsed_params = {}
|
|
201
196
|
try:
|
|
202
197
|
url = f"https://{self.toolset.config.get('instance')}.service-now.com/api/now/v2/table/change_request"
|
holmes/utils/sentry_helper.py
CHANGED
holmes/utils/stream.py
CHANGED
|
@@ -14,6 +14,7 @@ class StreamEvents(str, Enum):
|
|
|
14
14
|
TOOL_RESULT = "tool_calling_result"
|
|
15
15
|
ERROR = "error"
|
|
16
16
|
AI_MESSAGE = "ai_message"
|
|
17
|
+
APPROVAL_REQUIRED = "approval_required"
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
class StreamMessage(BaseModel):
|
|
@@ -78,14 +79,28 @@ def stream_chat_formatter(
|
|
|
78
79
|
try:
|
|
79
80
|
for message in call_stream:
|
|
80
81
|
if message.event == StreamEvents.ANSWER_END:
|
|
82
|
+
response_data = {
|
|
83
|
+
"analysis": message.data.get("content"),
|
|
84
|
+
"conversation_history": message.data.get("messages"),
|
|
85
|
+
"follow_up_actions": followups,
|
|
86
|
+
"metadata": message.data.get("metadata") or {},
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
yield create_sse_message(StreamEvents.ANSWER_END.value, response_data)
|
|
90
|
+
elif message.event == StreamEvents.APPROVAL_REQUIRED:
|
|
91
|
+
response_data = {
|
|
92
|
+
"analysis": message.data.get("content"),
|
|
93
|
+
"conversation_history": message.data.get("messages"),
|
|
94
|
+
"follow_up_actions": followups,
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
response_data["requires_approval"] = True
|
|
98
|
+
response_data["pending_approvals"] = message.data.get(
|
|
99
|
+
"pending_approvals", []
|
|
100
|
+
)
|
|
101
|
+
|
|
81
102
|
yield create_sse_message(
|
|
82
|
-
StreamEvents.
|
|
83
|
-
{
|
|
84
|
-
"analysis": message.data.get("content"),
|
|
85
|
-
"conversation_history": message.data.get("messages"),
|
|
86
|
-
"follow_up_actions": followups,
|
|
87
|
-
"metadata": message.data.get("metadata") or {},
|
|
88
|
-
},
|
|
103
|
+
StreamEvents.APPROVAL_REQUIRED.value, response_data
|
|
89
104
|
)
|
|
90
105
|
else:
|
|
91
106
|
yield create_sse_message(message.event.value, message.data)
|
holmes/version.py
CHANGED
|
@@ -57,11 +57,41 @@ def get_version() -> str:
|
|
|
57
57
|
return __version__
|
|
58
58
|
|
|
59
59
|
# we are running from an unreleased dev version
|
|
60
|
+
archival_file_path = os.path.join(this_path, ".git_archival.json")
|
|
61
|
+
if os.path.exists(archival_file_path):
|
|
62
|
+
try:
|
|
63
|
+
with open(archival_file_path, "r") as f:
|
|
64
|
+
archival_data = json.load(f)
|
|
65
|
+
refs = archival_data.get("refs", "")
|
|
66
|
+
hash_short = archival_data.get("hash-short", "")
|
|
67
|
+
|
|
68
|
+
# Check if Git substitution didn't happen (placeholders are still present)
|
|
69
|
+
if "$Format:" in refs or "$Format:" in hash_short:
|
|
70
|
+
# Placeholders not substituted, skip to next method
|
|
71
|
+
pass
|
|
72
|
+
else:
|
|
73
|
+
# Valid archival data found
|
|
74
|
+
return f"dev-{refs}-{hash_short}"
|
|
75
|
+
except Exception:
|
|
76
|
+
pass
|
|
77
|
+
|
|
78
|
+
# Now try git commands for development environments
|
|
60
79
|
try:
|
|
80
|
+
env = os.environ.copy()
|
|
81
|
+
# Set ceiling to prevent walking up beyond the project root
|
|
82
|
+
# We want to allow access to holmes/.git but not beyond holmes
|
|
83
|
+
project_root = os.path.dirname(this_path) # holmes
|
|
84
|
+
env["GIT_CEILING_DIRECTORIES"] = os.path.dirname(
|
|
85
|
+
project_root
|
|
86
|
+
) # holmes's parent
|
|
87
|
+
|
|
61
88
|
# Get the latest git tag
|
|
62
89
|
tag = (
|
|
63
90
|
subprocess.check_output(
|
|
64
|
-
["git", "describe", "--tags"],
|
|
91
|
+
["git", "describe", "--tags"],
|
|
92
|
+
stderr=subprocess.STDOUT,
|
|
93
|
+
cwd=this_path,
|
|
94
|
+
env=env,
|
|
65
95
|
)
|
|
66
96
|
.decode()
|
|
67
97
|
.strip()
|
|
@@ -73,6 +103,7 @@ def get_version() -> str:
|
|
|
73
103
|
["git", "rev-parse", "--abbrev-ref", "HEAD"],
|
|
74
104
|
stderr=subprocess.STDOUT,
|
|
75
105
|
cwd=this_path,
|
|
106
|
+
env=env,
|
|
76
107
|
)
|
|
77
108
|
.decode()
|
|
78
109
|
.strip()
|
|
@@ -84,6 +115,7 @@ def get_version() -> str:
|
|
|
84
115
|
["git", "status", "--porcelain"],
|
|
85
116
|
stderr=subprocess.STDOUT,
|
|
86
117
|
cwd=this_path,
|
|
118
|
+
env=env,
|
|
87
119
|
)
|
|
88
120
|
.decode()
|
|
89
121
|
.strip()
|
|
@@ -95,19 +127,7 @@ def get_version() -> str:
|
|
|
95
127
|
except Exception:
|
|
96
128
|
pass
|
|
97
129
|
|
|
98
|
-
|
|
99
|
-
archival_file_path = os.path.join(this_path, ".git_archival.json")
|
|
100
|
-
if os.path.exists(archival_file_path):
|
|
101
|
-
try:
|
|
102
|
-
with open(archival_file_path, "r") as f:
|
|
103
|
-
archival_data = json.load(f)
|
|
104
|
-
return f"dev-{archival_data['refs']}-{archival_data['hash-short']}"
|
|
105
|
-
except Exception:
|
|
106
|
-
pass
|
|
107
|
-
|
|
108
|
-
return "dev-version"
|
|
109
|
-
|
|
110
|
-
return "unknown-version"
|
|
130
|
+
return "dev-unknown"
|
|
111
131
|
|
|
112
132
|
|
|
113
133
|
@cache
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: holmesgpt
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.3a0
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Natan Yellin
|
|
6
6
|
Author-email: natan@robusta.dev
|
|
@@ -23,6 +23,7 @@ Requires-Dist: certifi (>=2024.7.4,<2025.0.0)
|
|
|
23
23
|
Requires-Dist: colorlog (>=6.8.2,<7.0.0)
|
|
24
24
|
Requires-Dist: confluent-kafka (>=2.6.1,<3.0.0)
|
|
25
25
|
Requires-Dist: fastapi (>=0.116,<0.117)
|
|
26
|
+
Requires-Dist: httpx[socks] (<0.28)
|
|
26
27
|
Requires-Dist: humanize (>=4.9.0,<5.0.0)
|
|
27
28
|
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
|
|
28
29
|
Requires-Dist: kubernetes (>=32.0.1,<33.0.0)
|
|
@@ -245,14 +246,11 @@ Distributed under the MIT License. See [LICENSE.txt](https://github.com/robusta-
|
|
|
245
246
|
|
|
246
247
|
## Community
|
|
247
248
|
|
|
248
|
-
Join our community
|
|
249
|
+
Join our community to discuss the HolmesGPT roadmap and share feedback:
|
|
249
250
|
|
|
250
|
-
|
|
251
|
-
- **
|
|
252
|
-
- **
|
|
253
|
-
- **Agenda:** [Roadmap discussion](https://github.com/orgs/robusta-dev/projects/2), community feedback, and Q&A
|
|
254
|
-
|
|
255
|
-
[📝 Meeting Notes](https://docs.google.com/document/d/1sIHCcTivyzrF5XNvos7ZT_UcxEOqgwfawsTbb9wMJe4/edit?tab=t.0) | [📋 Full Details](https://holmesgpt.dev/community/)
|
|
251
|
+
📹 **First Community Meetup Recording:** [Watch on YouTube](https://youtu.be/slQRc6nlFQU)
|
|
252
|
+
- **Topics:** Roadmap discussion, community feedback, and Q&A
|
|
253
|
+
- **Resources:** [📝 Meeting Notes](https://docs.google.com/document/d/1sIHCcTivyzrF5XNvos7ZT_UcxEOqgwfawsTbb9wMJe4/edit?tab=t.0) | [📋 Community Page](https://holmesgpt.dev/community/)
|
|
256
254
|
|
|
257
255
|
## Support
|
|
258
256
|
|
|
@@ -1,40 +1,42 @@
|
|
|
1
1
|
holmes/.git_archival.json,sha256=PbwdO7rNhEJ4ALiO12DPPb81xNAIsVxCA0m8OrVoqsk,182
|
|
2
|
-
holmes/__init__.py,sha256=
|
|
2
|
+
holmes/__init__.py,sha256=Xkcdfkht6ggBl_hP1QR015rQn_M9AemtEWj2KaFd9X4,263
|
|
3
3
|
holmes/clients/robusta_client.py,sha256=rWst1PANJaIsprp3jZ7RV5UpttM_YLBGQ8B5noZqvgg,1532
|
|
4
|
-
holmes/common/env_vars.py,sha256=
|
|
4
|
+
holmes/common/env_vars.py,sha256=p9xO7bDjyPNJr7S4OO-GkMR1RYaj4aWxTtcy5JTzJKU,3521
|
|
5
5
|
holmes/common/openshift.py,sha256=akbQ0GpnmuzXOqTcotpTDQSDKIROypS9mgPOprUgkCw,407
|
|
6
|
-
holmes/config.py,sha256=
|
|
6
|
+
holmes/config.py,sha256=uwSbVxWvXp5B4XRk9GkMMcQG8tgFfrYj7PRex-qn54w,21743
|
|
7
7
|
holmes/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
holmes/core/config.py,sha256=9QGIXeYff9FPWa91as2OkRO2SupHzfNQZWzfNC4Vl-8,113
|
|
9
|
-
holmes/core/conversations.py,sha256=
|
|
9
|
+
holmes/core/conversations.py,sha256=iSfYBD88fO-irkCKqy3wm7CV1wn8g89e5GxJlpdn1MA,21723
|
|
10
|
+
holmes/core/feedback.py,sha256=Gu69ghRYGSCPDgFA77xOB5RPbVdQX-9Qpv4yVVegL4g,6793
|
|
10
11
|
holmes/core/investigation.py,sha256=HrRi1-myPF7ndOwwZ4Sv8iUbvPkrd5M02RPhZzln7NM,5900
|
|
11
12
|
holmes/core/investigation_structured_output.py,sha256=sNxyqmsElQ-B22OlzTOrJtfrlipjyidcTU07idOBO7w,10570
|
|
12
13
|
holmes/core/issue.py,sha256=dbctGv8KHAXC1SeOMkEP-BudJ50u7kA8jLN5FN_d808,2426
|
|
13
|
-
holmes/core/llm.py,sha256=
|
|
14
|
-
holmes/core/models.py,sha256=
|
|
14
|
+
holmes/core/llm.py,sha256=UQ2Ml4hJS1YDidCaU1Rz6km3qcgycjz-cuuo2coSPxw,22773
|
|
15
|
+
holmes/core/models.py,sha256=xFHFutZWoIaQWSeuq1PiYPw9SGkDrQsQ9qYXuk60EEU,9096
|
|
15
16
|
holmes/core/openai_formatting.py,sha256=wL0Fq6lDePIKR5viitQz9ZWCQZZkHZHmEUqPIsOoFns,4077
|
|
16
17
|
holmes/core/performance_timing.py,sha256=MTbTiiX2jjPmW7PuNA2eYON40eWsHPryR1ap_KlwZ_E,2217
|
|
17
18
|
holmes/core/prompt.py,sha256=YkztY4gsobXys0fHxcwgngZBR2xDtBSYryY7HRnTxCQ,3025
|
|
18
19
|
holmes/core/resource_instruction.py,sha256=rduue_t8iQi1jbWc3-k3jX867W1Fvc6Tah5uOJk35Mc,483
|
|
19
20
|
holmes/core/runbooks.py,sha256=Oj5ICmiGgaq57t4erPzQDvHQ0rMGj1nhiiYhl8peH3Q,939
|
|
20
21
|
holmes/core/safeguards.py,sha256=XrKgmMoJxSROfoSOW6t6QEG2MFppzC20Nyn1HA5G4Go,4935
|
|
21
|
-
holmes/core/supabase_dal.py,sha256=
|
|
22
|
+
holmes/core/supabase_dal.py,sha256=KSNwGz1v5dZAk_sDme1JCrPTJKc2fwApKQQu_U_r3cM,22433
|
|
22
23
|
holmes/core/todo_tasks_formatter.py,sha256=USyJZcoX6zoxID1UV-abAKdaWFYLO6QJd-UKryJAurI,1487
|
|
23
|
-
holmes/core/tool_calling_llm.py,sha256=
|
|
24
|
-
holmes/core/tools.py,sha256=
|
|
24
|
+
holmes/core/tool_calling_llm.py,sha256=YUUFmoTDw11ERC78gg2jTRZ6t9Dy_ba8wQiyJeJWL0k,50206
|
|
25
|
+
holmes/core/tools.py,sha256=IOBmRdwTKeHvbvxlcT8xYJmBLcNI9CGP_iwrI-WhVio,31786
|
|
25
26
|
holmes/core/tools_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
-
holmes/core/tools_utils/
|
|
27
|
-
holmes/core/tools_utils/tool_context_window_limiter.py,sha256=
|
|
28
|
-
holmes/core/tools_utils/tool_executor.py,sha256=
|
|
27
|
+
holmes/core/tools_utils/token_counting.py,sha256=3WTAgi19uK1IbtwivtSibiZWwqdtZeOOgZCVFRxUJG8,406
|
|
28
|
+
holmes/core/tools_utils/tool_context_window_limiter.py,sha256=LoehZXp2C2ptoxbfZzzCe_t02iQOdhz-eM0k159ZIb8,2605
|
|
29
|
+
holmes/core/tools_utils/tool_executor.py,sha256=pUkddbm_kgYdfhR1w5IbnSmwG56kvA4VadzBV8OqG8g,2632
|
|
29
30
|
holmes/core/tools_utils/toolset_utils.py,sha256=SvWzen8Fg_TB_6Idw1hK0nCPrJL40ueWVMfsv8Kh2RY,2363
|
|
30
|
-
holmes/core/toolset_manager.py,sha256=
|
|
31
|
+
holmes/core/toolset_manager.py,sha256=UqAUfjY09SAGirOHzyQwpOu2wxQUzU0F1STw8w-1abw,25878
|
|
31
32
|
holmes/core/tracing.py,sha256=o1vTLCbnFvBOVnQKqRaj4HDNYGYAd4ub2IgkV1E3qY4,9130
|
|
32
33
|
holmes/core/transformers/__init__.py,sha256=kCwmx-IQ6BpGpMpnm563ecl5Ik1nx4lhKb2y3KAKF7I,600
|
|
33
34
|
holmes/core/transformers/base.py,sha256=FHUocHIS_oUBLWMiibdAuKY0Lpz5xY2ICji6DbmP2Do,1500
|
|
34
35
|
holmes/core/transformers/llm_summarize.py,sha256=ZEJn3DElzMZLCCHNIzlCozllM2CmQ-JyXiqaGO7dAw4,6407
|
|
35
36
|
holmes/core/transformers/registry.py,sha256=x8kKRXJvc_tJO2RvNGyoVXt6rFgG4S_ZcTG8p_OXYH0,3771
|
|
36
37
|
holmes/core/transformers/transformer.py,sha256=rfT84Oq6qJyryevZGFKEbo1VSxinK4FBWUw_HpJ72xE,1028
|
|
37
|
-
holmes/
|
|
38
|
+
holmes/core/truncation/dal_truncation_utils.py,sha256=I69I7Jac1kTtpxDRMe8O3IPN8Au0bZJqI8gXwW-GMaI,776
|
|
39
|
+
holmes/interactive.py,sha256=bXP9qRsClwW0AlxNDWHJfJTeEwGByAoNUfL4cypJjtg,46767
|
|
38
40
|
holmes/main.py,sha256=cz3i9YZkvXWTK8pk5O-LfAM5AsYcOcTEKYnbvpVY5ns,35001
|
|
39
41
|
holmes/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
42
|
holmes/plugins/destinations/__init__.py,sha256=vMYwTfA5nQ05us5Rzbaoe0R5C8Navo6ENVZhojtACTk,98
|
|
@@ -45,7 +47,7 @@ holmes/plugins/prompts/__init__.py,sha256=sOUHbHFQ6tYX7XWLi-Ak87cOQB1E889X5X8kWJ
|
|
|
45
47
|
holmes/plugins/prompts/_ai_safety.jinja2,sha256=IoVdOXHnkGwLaiuUzMczEdoahyrKhkdYvyDmz9Oewxw,2262
|
|
46
48
|
holmes/plugins/prompts/_current_date_time.jinja2,sha256=KynAvkQFqf_SXjqVY77nB8z4RgN7gti4SBSq1H7moHs,354
|
|
47
49
|
holmes/plugins/prompts/_default_log_prompt.jinja2,sha256=Tqw8CD2ZMStXIfMdYaoZT_d-FvQ_PMg6-knqag-YEgc,1478
|
|
48
|
-
holmes/plugins/prompts/_fetch_logs.jinja2,sha256=
|
|
50
|
+
holmes/plugins/prompts/_fetch_logs.jinja2,sha256=penrJcRCfr8geKWNSQc-jdJ52dV-bEb1kxO6QB90dzw,5088
|
|
49
51
|
holmes/plugins/prompts/_general_instructions.jinja2,sha256=0RB5TFGqhbQ-xNt2_oHXJjvMIBLThuRDusBbbEruy2w,5777
|
|
50
52
|
holmes/plugins/prompts/_global_instructions.jinja2,sha256=d_c-BtDhU_Rmx637TPAyzlIIim8ZAxy7JK3V4GV8IWI,1359
|
|
51
53
|
holmes/plugins/prompts/_permission_errors.jinja2,sha256=gIMQx-zaTnuEv7SkQVC_GvxsR5R85fLuDZnJIKWcm5A,480
|
|
@@ -63,7 +65,7 @@ holmes/plugins/prompts/kubernetes_workload_ask.jinja2,sha256=C6iclMZ9n64nUvvc28W
|
|
|
63
65
|
holmes/plugins/prompts/kubernetes_workload_chat.jinja2,sha256=rjB6mAHk2SDg2cwZp5vp66ihCer17BE6o8Ezr2zGQE4,1770
|
|
64
66
|
holmes/plugins/runbooks/CLAUDE.md,sha256=WYjf-ZvKmfrShmhTHplLscIpIB1j2TrrG6C_LR63XR0,5511
|
|
65
67
|
holmes/plugins/runbooks/README.md,sha256=dPrAO4bZGGW1C3FFaUm_adPMrb72DSSmbUkRSwqNK4U,2585
|
|
66
|
-
holmes/plugins/runbooks/__init__.py,sha256=
|
|
68
|
+
holmes/plugins/runbooks/__init__.py,sha256=UdOCVYnsjAywI-tVGCjTC8lFbgdyL1KfkFxUq94HsoY,3521
|
|
67
69
|
holmes/plugins/runbooks/catalog.json,sha256=GvrpVpk0AIm9HZ3dlh6FI_CVzHoCGJPvZggOMaL_WKs,436
|
|
68
70
|
holmes/plugins/runbooks/jira.yaml,sha256=o24IL7Cb-Mv5X-cAj8Ik4KmEmY7bf98zBkMP5r39ong,777
|
|
69
71
|
holmes/plugins/runbooks/kube-prometheus-stack.yaml,sha256=adzr0vxvQZHJ_HYzYl5NdmjrTpVByx9h-3abpaFUo-Y,743
|
|
@@ -76,12 +78,12 @@ holmes/plugins/sources/pagerduty/__init__.py,sha256=LYoN1dkUg7NCx7g-gdSomTTJhHyB
|
|
|
76
78
|
holmes/plugins/sources/prometheus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
79
|
holmes/plugins/sources/prometheus/models.py,sha256=9TcDIRLWZQhwjYGfRZFP_2fGweCn4G5xvYrLoXiQZTc,2904
|
|
78
80
|
holmes/plugins/sources/prometheus/plugin.py,sha256=oBmuOwNM67suy6HmasUnyVOlBq9-mAxLZLlUzRHIggg,5941
|
|
79
|
-
holmes/plugins/toolsets/__init__.py,sha256=
|
|
81
|
+
holmes/plugins/toolsets/__init__.py,sha256=ydF9jawE6cn8lDpyYhqSCxlvj6eAywLyUoo1bI9wDrE,7589
|
|
80
82
|
holmes/plugins/toolsets/aks-node-health.yaml,sha256=37Dvk4D0ez1GQlt91MQkI0pZ5RLtUEFAOxDXDCVzb-g,5995
|
|
81
83
|
holmes/plugins/toolsets/aks.yaml,sha256=_XwrMSsghFnCqlbsZvVfwF3qgQFnxi47AC5Oavi2YC0,9532
|
|
82
84
|
holmes/plugins/toolsets/argocd.yaml,sha256=lbRIooJIkpumNdRgoDRHTjNb9PvFTfjQcT0iWU2x8mg,3932
|
|
83
85
|
holmes/plugins/toolsets/atlas_mongodb/instructions.jinja2,sha256=iyft4EwvYcImI_YrMte8_BTJZXGV6i0k84g3oKXR23k,988
|
|
84
|
-
holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py,sha256=
|
|
86
|
+
holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py,sha256=1FlArSlvS6XobEr5A-4J_VNwCIbmB4ZwFA9O0l4XRK8,15678
|
|
85
87
|
holmes/plugins/toolsets/aws.yaml,sha256=AM5MizvfHeGFoCRr6kf3Wcd6y_EAhSDqtZajTFrLVfE,4475
|
|
86
88
|
holmes/plugins/toolsets/azure_sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
89
|
holmes/plugins/toolsets/azure_sql/apis/alert_monitoring_api.py,sha256=DSrKzzE6lofynViYr0SGaQrWjePpzbfdt3DcplbFGek,26397
|
|
@@ -94,16 +96,16 @@ holmes/plugins/toolsets/azure_sql/azure_sql_instructions.jinja2,sha256=GvuxActao
|
|
|
94
96
|
holmes/plugins/toolsets/azure_sql/azure_sql_toolset.py,sha256=l87m6mieP8-uTpj_NDRXbom43YP4b6TzOhnGyvn4r8c,8069
|
|
95
97
|
holmes/plugins/toolsets/azure_sql/install.md,sha256=eBhdG-OG9HhbrEGvI31aAHRPWwBQne6H95mvBROqZ_s,1585
|
|
96
98
|
holmes/plugins/toolsets/azure_sql/tools/__init__.py,sha256=lEYFZ5X0mHdqwmi6XXTlM1qA7sBYsuQwVCXmluo-L34,25
|
|
97
|
-
holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py,sha256=
|
|
98
|
-
holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py,sha256=
|
|
99
|
-
holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py,sha256=
|
|
100
|
-
holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py,sha256=
|
|
101
|
-
holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py,sha256=
|
|
102
|
-
holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py,sha256=
|
|
103
|
-
holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py,sha256
|
|
104
|
-
holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py,sha256=
|
|
105
|
-
holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py,sha256=
|
|
106
|
-
holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py,sha256=
|
|
99
|
+
holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py,sha256=f_3TPbAjMDNAjqUr6BkoNzbMn4wvG_gQS-6HH3bC4AY,13385
|
|
100
|
+
holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py,sha256=84STGBRVQbs_6wrufRsTk0m-aGGKt50O4vO6ShwhBTc,10481
|
|
101
|
+
holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py,sha256=1UIdpo4kouoIsIhhGcZ1z_nMrz8GTm9BdZwQQw-FTGI,8334
|
|
102
|
+
holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py,sha256=2E-wloRjNr-PpiVGb-b7DWmqp1wbdz2hQzcsDGXi8QM,10705
|
|
103
|
+
holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py,sha256=kGUwWFngJRjI5wlF2lonNZaJir6yZNAptmkwgHh65Tw,16022
|
|
104
|
+
holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py,sha256=ycmjlBzY0ZvnbWxTLxvYGGhoUb8EKDI4QFGpAHAxk6M,9427
|
|
105
|
+
holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py,sha256=-J4PKLtjTSfiOEAu28_2TeL233Qbe-1xwD9XBwzumu8,7300
|
|
106
|
+
holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py,sha256=28x4xCrvyVj0o4Gr9QKo1qPJzUbkBdozcO_DJhiAFEo,7251
|
|
107
|
+
holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py,sha256=EXWDVat_lZbcGQTcybQrgcLHUXMJYRNwZ1UIJxZZcTg,8277
|
|
108
|
+
holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py,sha256=LIn1Xjr5PusJeEg24oH80X9kf0V36FIZz7JY7D3RPEs,7652
|
|
107
109
|
holmes/plugins/toolsets/azure_sql/utils.py,sha256=nN8ZcVpkOa05nocY4W1gf7aaaNhzn2oD-P0STYQK2Ck,2331
|
|
108
110
|
holmes/plugins/toolsets/bash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
111
|
holmes/plugins/toolsets/bash/argocd/__init__.py,sha256=1ck-b82embOjsiiZkvuDChXiFaNYFwl5xW-ysBRB4vA,2186
|
|
@@ -113,7 +115,7 @@ holmes/plugins/toolsets/bash/aws/constants.py,sha256=g8IH1CLkAZuV8SQEQrUVjLul7S2
|
|
|
113
115
|
holmes/plugins/toolsets/bash/azure/__init__.py,sha256=FsLA_v_otjuo_COEw8Hmiuh5_aQ3RWRIstECeBAS5hg,1863
|
|
114
116
|
holmes/plugins/toolsets/bash/azure/constants.py,sha256=jz2R8-EiSjGjAPBTtIAbLwfyHOJPVmI117wp-u_e8Kc,10361
|
|
115
117
|
holmes/plugins/toolsets/bash/bash_instructions.jinja2,sha256=AKVW1DpD6lii8cF582LZzEe9sOh3YJCerXBapwlEKhU,481
|
|
116
|
-
holmes/plugins/toolsets/bash/bash_toolset.py,sha256=
|
|
118
|
+
holmes/plugins/toolsets/bash/bash_toolset.py,sha256=CN05nUsyUtEQbHzs-OnqYXz16-Z0EjYwIIGCpLVANoc,9559
|
|
117
119
|
holmes/plugins/toolsets/bash/common/bash.py,sha256=EbudJi4ialC5q0Lrdg2d7VkP9faW3pOsuHUszCXp5Fo,1853
|
|
118
120
|
holmes/plugins/toolsets/bash/common/bash_command.py,sha256=aGlzQnUQHpEK3BNwztESassqzKQ5PFObwvHcFn5GQIY,4570
|
|
119
121
|
holmes/plugins/toolsets/bash/common/config.py,sha256=dRd_gl16e2jG_gk6_mRVT6o3idiVXJ-8CtBONAx1DOU,285
|
|
@@ -144,6 +146,7 @@ holmes/plugins/toolsets/bash/utilities/tail.py,sha256=GGHQoMAos0j5kN0EGSq_oQ63j9
|
|
|
144
146
|
holmes/plugins/toolsets/bash/utilities/tr.py,sha256=4X3_816-ur6dDMyuJdS2ZwqdKz9aqqOHzqx-yi2m1cs,2157
|
|
145
147
|
holmes/plugins/toolsets/bash/utilities/uniq.py,sha256=bod-81lXO7-EQiy73A9aaDnc-RkrclwdBJ4rS_rUyn8,320
|
|
146
148
|
holmes/plugins/toolsets/bash/utilities/wc.py,sha256=EhhRcKjb9QNI51uUjftyzzHQucCawkTU3AB2cviTV90,287
|
|
149
|
+
holmes/plugins/toolsets/cilium.yaml,sha256=iwd1cTEPJ0672cJsnfndirttnWAC1RaH4c8E9sWntqI,12754
|
|
147
150
|
holmes/plugins/toolsets/confluence.yaml,sha256=WPflxrGKFA5VTcy5p4t2FY86oFECzoyTHkudUxhAL-k,768
|
|
148
151
|
holmes/plugins/toolsets/consts.py,sha256=vxzGJBF1XNAE9CDteUFIYNRmOagmJ-ktFEfVEU8tHl0,205
|
|
149
152
|
holmes/plugins/toolsets/coralogix/api.py,sha256=25ZnTfAvh5ZHzDsjap8As87opjGbMSBMQSSqelw7Tm0,5178
|
|
@@ -156,61 +159,64 @@ holmes/plugins/toolsets/datadog/datadog_metrics_instructions.jinja2,sha256=_59Dz
|
|
|
156
159
|
holmes/plugins/toolsets/datadog/datadog_rds_instructions.jinja2,sha256=lbI6lkcMjG1CVKeL0XDkq5zl-fRDVxZ_t_CjS-Uh_OM,3119
|
|
157
160
|
holmes/plugins/toolsets/datadog/datadog_traces_formatter.py,sha256=uTtWTrsbvO9cZcUDskJE9p5sEscieXwhEpxvRKkaiEw,10275
|
|
158
161
|
holmes/plugins/toolsets/datadog/instructions_datadog_traces.jinja2,sha256=9j3-46UNE35DE2xBDTCRt1EedgNdgRXuC1u-X3yB-9I,1487
|
|
159
|
-
holmes/plugins/toolsets/datadog/toolset_datadog_general.py,sha256=
|
|
160
|
-
holmes/plugins/toolsets/datadog/toolset_datadog_logs.py,sha256=
|
|
161
|
-
holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py,sha256=
|
|
162
|
-
holmes/plugins/toolsets/datadog/toolset_datadog_rds.py,sha256
|
|
163
|
-
holmes/plugins/toolsets/datadog/toolset_datadog_traces.py,sha256=
|
|
162
|
+
holmes/plugins/toolsets/datadog/toolset_datadog_general.py,sha256=BYIv4EyhXVvE4pc4RnTlBJfhR-cAQrmG7d_0FY2egLg,34619
|
|
163
|
+
holmes/plugins/toolsets/datadog/toolset_datadog_logs.py,sha256=iF__DdTEQ6bcC3sQtyxp3eXzx955H2d4c0geL7gavxI,17417
|
|
164
|
+
holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py,sha256=rkHeA_gHSTbL1UOy62q9j7lBm9KXP2exEScq4oRBzsY,28089
|
|
165
|
+
holmes/plugins/toolsets/datadog/toolset_datadog_rds.py,sha256=d6IRJXLLutvGvXmRncpaFWEAYlXdyFdZI0ItCc_t5GM,29132
|
|
166
|
+
holmes/plugins/toolsets/datadog/toolset_datadog_traces.py,sha256=VU8s1HFvw3h-NMkjKKasg939RUeowOhvEqEl7bn6MoA,26267
|
|
164
167
|
holmes/plugins/toolsets/docker.yaml,sha256=O0Q0z0kZS8_QBEhwrUfbXdGUn1nP1K9k0FlQd6EZVJ4,1559
|
|
165
|
-
holmes/plugins/toolsets/git.py,sha256
|
|
168
|
+
holmes/plugins/toolsets/git.py,sha256=eUpQRolp6CEqUS9nMqCJcL-th0m1c8F4oYdhMv_qcGo,32262
|
|
166
169
|
holmes/plugins/toolsets/grafana/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
170
|
holmes/plugins/toolsets/grafana/base_grafana_toolset.py,sha256=AjvbS4txSo97YqeeFlXUnu95oPFt8rB-CD1Ccf92a04,1760
|
|
168
171
|
holmes/plugins/toolsets/grafana/common.py,sha256=yYy6knRNUYQmZvgII-Cte9RQJNY8Sj7QlbHB0aCNFYU,2459
|
|
169
172
|
holmes/plugins/toolsets/grafana/grafana_api.py,sha256=nq7KWoUAfFxp1-3VqKadPNKbTifLTgKUAZOFUH5QWUY,1665
|
|
170
|
-
holmes/plugins/toolsets/grafana/grafana_tempo_api.py,sha256=
|
|
173
|
+
holmes/plugins/toolsets/grafana/grafana_tempo_api.py,sha256=C8XEZzIKzeh9pG-DBQoMW4Qi2Kh3ZoI4TXVGUx2CxUc,14688
|
|
171
174
|
holmes/plugins/toolsets/grafana/loki_api.py,sha256=f7oTzfhJ1LojsPoAfsKt32ADWffLEywBJQWG9eyfb7I,2529
|
|
172
|
-
holmes/plugins/toolsets/grafana/toolset_grafana.py,sha256=
|
|
175
|
+
holmes/plugins/toolsets/grafana/toolset_grafana.py,sha256=M10S7CeOsLaSCZqQysjT4vviG7nUPc95QzWCTtPBXXE,4930
|
|
173
176
|
holmes/plugins/toolsets/grafana/toolset_grafana_loki.py,sha256=MK0mK5h8MZuULwAoQlng3UZS1xtxHzePwhEoJiroJSw,3912
|
|
174
177
|
holmes/plugins/toolsets/grafana/toolset_grafana_tempo.jinja2,sha256=0HBYUXkGYWZbHwIvfQEF5oL9LFMYzjgcmL1U6RjgPSE,10417
|
|
175
|
-
holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py,sha256=
|
|
178
|
+
holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py,sha256=nnDKUQkJpnmFVWV8Xwdk0OaZF_Nn6hqSrWT4ltx1xDk,37963
|
|
176
179
|
holmes/plugins/toolsets/grafana/trace_parser.py,sha256=8PjqPGDGo9uB2Z8WWWknMKdhcqlqZEVncQCCkl2F06A,7024
|
|
177
180
|
holmes/plugins/toolsets/helm.yaml,sha256=-IPDChKMHcxGbzA0z9GKczRshL-mD24cHpBizfNM1jM,1604
|
|
178
|
-
holmes/plugins/toolsets/internet/internet.py,sha256=
|
|
179
|
-
holmes/plugins/toolsets/internet/notion.py,sha256=
|
|
181
|
+
holmes/plugins/toolsets/internet/internet.py,sha256=qeV6M9302QWacFcr7bOfsZUc84v9MnlTEF_76oUOSNA,7787
|
|
182
|
+
holmes/plugins/toolsets/internet/notion.py,sha256=ELDtsP8kxdU8rExEL8hq1yV5DEeWDNOljHZEwjnumJc,4795
|
|
180
183
|
holmes/plugins/toolsets/investigator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
181
|
-
holmes/plugins/toolsets/investigator/core_investigation.py,sha256=
|
|
184
|
+
holmes/plugins/toolsets/investigator/core_investigation.py,sha256=NqNlPjWGyb3A_bw5JV-ePhWOdJUmAIO4IYwa_WsygJM,5213
|
|
182
185
|
holmes/plugins/toolsets/investigator/investigator_instructions.jinja2,sha256=C6y6OaJI2dQSLSw7Zq9-D-sWmL5K_40zRItvkzVAdH4,13967
|
|
183
186
|
holmes/plugins/toolsets/investigator/model.py,sha256=6AE9Iy05GaX3gC9ChTtZQOFGjSUsas_pB9_YyDaJXP0,342
|
|
184
|
-
holmes/plugins/toolsets/kafka.py,sha256=
|
|
187
|
+
holmes/plugins/toolsets/kafka.py,sha256=kO_CKzdXG__6QmiwaGumZgPkdZbft0f1DpqhNV8ogs8,24774
|
|
185
188
|
holmes/plugins/toolsets/kubernetes.yaml,sha256=hIyBrdhhMrvadu2EOja_uT1Hn7lzuXLdH3bgsTmpGbc,18535
|
|
186
189
|
holmes/plugins/toolsets/kubernetes_logs.py,sha256=b84d-yCrGq9ua4B_zeitUy9AqDcUdipRAY71IFe5C7s,32814
|
|
187
190
|
holmes/plugins/toolsets/kubernetes_logs.yaml,sha256=3AhUKihYMSL57Tm_y5HgEbtyoer6Kpm7oAcRz1GxgDw,4532
|
|
188
191
|
holmes/plugins/toolsets/logging_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
189
|
-
holmes/plugins/toolsets/logging_utils/logging_api.py,sha256=
|
|
192
|
+
holmes/plugins/toolsets/logging_utils/logging_api.py,sha256=AG-EJnkzRLq8s4naG3yyuYjl3y_Q2oOwCYvmto8Ydc0,15475
|
|
190
193
|
holmes/plugins/toolsets/logging_utils/types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
191
|
-
holmes/plugins/toolsets/mcp/toolset_mcp.py,sha256
|
|
192
|
-
holmes/plugins/toolsets/newrelic.py,sha256=
|
|
194
|
+
holmes/plugins/toolsets/mcp/toolset_mcp.py,sha256=-O0_gOdQRIfJ-5ud_E_mUs6-v4qw-vNF6LN_y8q4uuU,4922
|
|
195
|
+
holmes/plugins/toolsets/newrelic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
196
|
+
holmes/plugins/toolsets/newrelic/new_relic_api.py,sha256=i_rxTjwt-qK9MASQSp5lI_C4HoegRJITV5Z5qsBdJ90,4077
|
|
197
|
+
holmes/plugins/toolsets/newrelic/newrelic.jinja2,sha256=O782MgMO17j-C8BnKbZmr0_bGoHn-1JJJX40IiLrKLk,3547
|
|
198
|
+
holmes/plugins/toolsets/newrelic/newrelic.py,sha256=PCV-rN2w8gxYvo3Nq5Fauoq967dsK3incsY0z494bMY,8400
|
|
193
199
|
holmes/plugins/toolsets/opensearch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
194
|
-
holmes/plugins/toolsets/opensearch/opensearch.py,sha256=
|
|
200
|
+
holmes/plugins/toolsets/opensearch/opensearch.py,sha256=VVyEJnECRfhwNUQqilugi9t0tPymyp7hRFwYQSFDg2E,8629
|
|
195
201
|
holmes/plugins/toolsets/opensearch/opensearch_logs.py,sha256=_j-JAhLWtxhBPafCveympxtxQ2EalsqKW6jLfaXHG94,5929
|
|
196
|
-
holmes/plugins/toolsets/opensearch/opensearch_traces.py,sha256=
|
|
202
|
+
holmes/plugins/toolsets/opensearch/opensearch_traces.py,sha256=Xd_toAzZikdUrInZG8_oBQ0gI-QCvYrf0w2ZciFC1kU,8869
|
|
197
203
|
holmes/plugins/toolsets/opensearch/opensearch_traces_instructions.jinja2,sha256=Xn8AW4XCMYV1VkBbF8nNB9fUpKQ1Vbm88iFczj-LQXo,1035
|
|
198
204
|
holmes/plugins/toolsets/opensearch/opensearch_utils.py,sha256=mh9Wp22tOdJYmA9IaFS7tD3aEENljyeuPOsF-lEe5C0,5097
|
|
199
|
-
holmes/plugins/toolsets/prometheus/prometheus.py,sha256=
|
|
205
|
+
holmes/plugins/toolsets/prometheus/prometheus.py,sha256=As2WYpJNtFSxshv5OhLTsaoprJI_PBaUYfigPkrYlps,67609
|
|
200
206
|
holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2,sha256=taf5C-N9rdp1A7S__hETefcm2OaYHJLjs1ZbuqIsGtE,6383
|
|
201
207
|
holmes/plugins/toolsets/prometheus/utils.py,sha256=ZenD354dP0sRmm0R-QBuAq1jyn40GjYf4wx15bXIYRc,775
|
|
202
208
|
holmes/plugins/toolsets/rabbitmq/api.py,sha256=-BtqF7hQWtl_OamnQ521vYHhR8E2n2wcPNYxfI9r4kQ,14307
|
|
203
209
|
holmes/plugins/toolsets/rabbitmq/rabbitmq_instructions.jinja2,sha256=qetmtJUMkx9LIihr2fSJ2EV9h2J-b-ZdUAvMtopXZYY,3105
|
|
204
|
-
holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py,sha256=
|
|
210
|
+
holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py,sha256=k1Sq0Iw8f4ygLVdMDSWMXEGqLX5Jq98hTDcAlsjrv6A,9286
|
|
205
211
|
holmes/plugins/toolsets/robusta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
206
|
-
holmes/plugins/toolsets/robusta/robusta.py,sha256=
|
|
212
|
+
holmes/plugins/toolsets/robusta/robusta.py,sha256=jRNxoIUoJkvCTZZnKpFFhLA3ip0l1c3JKc9J-lOIlgw,8941
|
|
207
213
|
holmes/plugins/toolsets/robusta/robusta_instructions.jinja2,sha256=E3UxlbyoNx96Fsk6d1laBTrnca1nLreWGMWnGPD2KbI,2060
|
|
208
214
|
holmes/plugins/toolsets/runbook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
209
|
-
holmes/plugins/toolsets/runbook/runbook_fetcher.py,sha256=
|
|
215
|
+
holmes/plugins/toolsets/runbook/runbook_fetcher.py,sha256=0WN_-T55M5CASGGf9uyUclhALazF8m7xYLk5-kKcHf0,10271
|
|
210
216
|
holmes/plugins/toolsets/service_discovery.py,sha256=QVrCCVcTE7APqyr0C44MGmJyCW9Ft-Ac-Wr4XfFBfjA,3268
|
|
211
217
|
holmes/plugins/toolsets/servicenow/install.md,sha256=UeL069Qd2e4wC3kmc54wk62AoSpyeizKWV6NB1jUYVM,1217
|
|
212
218
|
holmes/plugins/toolsets/servicenow/instructions.jinja2,sha256=koA2vJ1tOkGi2T5aGjmk9oTZPrt7WdoMSuVyxfO5-k4,491
|
|
213
|
-
holmes/plugins/toolsets/servicenow/servicenow.py,sha256=
|
|
219
|
+
holmes/plugins/toolsets/servicenow/servicenow.py,sha256=Cb3gcrnaj-GEjoTPQJd4Tb18KwJ8hyLvHekjgs8POs8,8560
|
|
214
220
|
holmes/plugins/toolsets/slab.yaml,sha256=1Pz0Rzs0B6-TnJiiN2w8qJ9E_bh2haQn0mfhTszaZE0,677
|
|
215
221
|
holmes/plugins/toolsets/utils.py,sha256=EZqPEBJcnMZliWMiN82XOQstr_NwanEqnzsd6incEFk,6891
|
|
216
222
|
holmes/plugins/utils.py,sha256=Wn_UxZMB4V2_UiJDNy0pifGnIGS_zUwRhUlmttCywnY,372
|
|
@@ -233,12 +239,12 @@ holmes/utils/keygen_utils.py,sha256=qZ0aIAqItsoX1egAJ2TFiHjaARLYAIid94-VgMq_bB0,
|
|
|
233
239
|
holmes/utils/llms.py,sha256=YLqq54I84wW7Kp7Z7CPVTxAFPb-Sq6xkdmVGzVf60jI,629
|
|
234
240
|
holmes/utils/markdown_utils.py,sha256=_yDc_IRB5zkj9THUlZ6nzir44VfirTjPccC_DrFrBkc,1507
|
|
235
241
|
holmes/utils/pydantic_utils.py,sha256=g0e0jLTa8Je8JKrhEP4N5sMxj0_hhPOqFZr0Vpd67sg,1649
|
|
236
|
-
holmes/utils/sentry_helper.py,sha256=
|
|
237
|
-
holmes/utils/stream.py,sha256=
|
|
242
|
+
holmes/utils/sentry_helper.py,sha256=BPkyMs7Yo_0b7QLMmAQ3mKZyXTmxkgVRjr3kikr5ZX8,1328
|
|
243
|
+
holmes/utils/stream.py,sha256=B0PigMm2_KBwFKeVu0IxxR07gR65Eq3mJ5FntdVTNTo,3894
|
|
238
244
|
holmes/utils/tags.py,sha256=SU4EZMBtLlIb7OlHsSpguFaypczRzOcuHYxDSanV3sQ,3364
|
|
239
|
-
holmes/version.py,sha256=
|
|
240
|
-
holmesgpt-0.14.
|
|
241
|
-
holmesgpt-0.14.
|
|
242
|
-
holmesgpt-0.14.
|
|
243
|
-
holmesgpt-0.14.
|
|
244
|
-
holmesgpt-0.14.
|
|
245
|
+
holmes/version.py,sha256=5-3__IY_2hcIC4WQyTqcdyX1QF-e2VfkYKrI4BIrq0Q,5992
|
|
246
|
+
holmesgpt-0.14.3a0.dist-info/LICENSE.txt,sha256=RdZMj8VXRQdVslr6PMYMbAEu5pOjOdjDqt3yAmWb9Ds,1072
|
|
247
|
+
holmesgpt-0.14.3a0.dist-info/METADATA,sha256=-Rtt-ctWPC6O2Iv-ijv_zTkobo4dZj_Iu-Giktm5D8o,16078
|
|
248
|
+
holmesgpt-0.14.3a0.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
|
|
249
|
+
holmesgpt-0.14.3a0.dist-info/entry_points.txt,sha256=JdzEyZhpaYr7Boo4uy4UZgzY1VsAEbzMgGmHZtx9KFY,42
|
|
250
|
+
holmesgpt-0.14.3a0.dist-info/RECORD,,
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from typing import Optional
|
|
3
|
-
from pydantic import BaseModel
|
|
4
|
-
|
|
5
|
-
from holmes.core.tools import StructuredToolResult, StructuredToolResultStatus
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class TruncationMetadata(BaseModel):
|
|
9
|
-
tool_call_id: str
|
|
10
|
-
start_index: int
|
|
11
|
-
end_index: int
|
|
12
|
-
tool_name: str
|
|
13
|
-
original_token_count: int
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class TruncationResult(BaseModel):
|
|
17
|
-
truncated_messages: list[dict]
|
|
18
|
-
truncations: list[TruncationMetadata]
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def format_tool_result_data(tool_result: StructuredToolResult) -> str:
|
|
22
|
-
tool_response = tool_result.data
|
|
23
|
-
if isinstance(tool_result.data, str):
|
|
24
|
-
tool_response = tool_result.data
|
|
25
|
-
else:
|
|
26
|
-
try:
|
|
27
|
-
if isinstance(tool_result.data, BaseModel):
|
|
28
|
-
tool_response = tool_result.data.model_dump_json(indent=2)
|
|
29
|
-
else:
|
|
30
|
-
tool_response = json.dumps(tool_result.data, indent=2)
|
|
31
|
-
except Exception:
|
|
32
|
-
tool_response = str(tool_result.data)
|
|
33
|
-
if tool_result.status == StructuredToolResultStatus.ERROR:
|
|
34
|
-
tool_response = f"{tool_result.error or 'Tool execution failed'}:\n\n{tool_result.data or ''}".strip()
|
|
35
|
-
return tool_response
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
class ToolCallResult(BaseModel):
|
|
39
|
-
tool_call_id: str
|
|
40
|
-
tool_name: str
|
|
41
|
-
description: str
|
|
42
|
-
result: StructuredToolResult
|
|
43
|
-
size: Optional[int] = None
|
|
44
|
-
|
|
45
|
-
def as_tool_call_message(self):
|
|
46
|
-
content = format_tool_result_data(self.result)
|
|
47
|
-
if self.result.params:
|
|
48
|
-
content = (
|
|
49
|
-
f"Params used for the tool call: {json.dumps(self.result.params)}. The tool call output follows on the next line.\n"
|
|
50
|
-
+ content
|
|
51
|
-
)
|
|
52
|
-
return {
|
|
53
|
-
"tool_call_id": self.tool_call_id,
|
|
54
|
-
"role": "tool",
|
|
55
|
-
"name": self.tool_name,
|
|
56
|
-
"content": content,
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
def as_tool_result_response(self):
|
|
60
|
-
result_dump = self.result.model_dump()
|
|
61
|
-
result_dump["data"] = self.result.get_stringified_data()
|
|
62
|
-
|
|
63
|
-
return {
|
|
64
|
-
"tool_call_id": self.tool_call_id,
|
|
65
|
-
"tool_name": self.tool_name,
|
|
66
|
-
"description": self.description,
|
|
67
|
-
"role": "tool",
|
|
68
|
-
"result": result_dump,
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
def as_streaming_tool_result_response(self):
|
|
72
|
-
result_dump = self.result.model_dump()
|
|
73
|
-
result_dump["data"] = self.result.get_stringified_data()
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
"tool_call_id": self.tool_call_id,
|
|
77
|
-
"role": "tool",
|
|
78
|
-
"description": self.description,
|
|
79
|
-
"name": self.tool_name,
|
|
80
|
-
"result": result_dump,
|
|
81
|
-
}
|