Skip to content

Commit 53bd62c

Browse files
authored
ROB-1933: add support for holmes tool approval fields (#1910)
* feat: add support for holmes tool approval fields * chore: remove debug print * feat: add support for holmes tool approval fields * chore: address PR comments
1 parent 2b2760b commit 53bd62c

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

src/robusta/core/model/base_params.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,14 @@ class ConversationType(str, Enum):
182182
ISSUE = "issue"
183183

184184

185+
class ToolApprovalDecision(BaseModel):
186+
"""Represents a user's decision on a tool approval."""
187+
188+
tool_call_id: str
189+
approved: bool
190+
modified_params: Optional[Dict[str, Any]] = None
191+
192+
185193
class HolmesChatParams(HolmesParams):
186194
"""
187195
:var ask: User's prompt for holmes
@@ -191,6 +199,8 @@ class HolmesChatParams(HolmesParams):
191199
conversation_history: Optional[list[dict]] = None
192200
render_graph_images: bool = False
193201
stream: bool = Field(default=False)
202+
enable_tool_approval: bool = Field(default=False)
203+
tool_decisions: Optional[List[ToolApprovalDecision]] = None
194204
additional_system_prompt: Optional[str] = None
195205

196206

src/robusta/core/playbooks/internal/ai_integration.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -340,11 +340,13 @@ def holmes_chat(event: ExecutionBaseEvent, params: HolmesChatParams):
340340

341341
try:
342342
holmes_req = HolmesChatRequest(
343-
ask=params.ask,
344-
conversation_history=params.conversation_history,
345-
model=params.model,
346-
stream=params.stream,
347-
additional_system_prompt=params.additional_system_prompt
343+
ask=params.ask,
344+
conversation_history=params.conversation_history,
345+
model=params.model,
346+
stream=params.stream,
347+
additional_system_prompt=params.additional_system_prompt,
348+
enable_tool_approval=params.enable_tool_approval,
349+
tool_decisions=params.tool_decisions,
348350
)
349351
url = f"{holmes_url}/api/chat"
350352
if params.stream:

src/robusta/core/reporting/holmes.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
HolmesInvestigationResult,
88
HolmesOldConversationIssueContext,
99
ResourceInfo,
10+
ToolApprovalDecision,
1011
)
1112
from robusta.core.reporting import BaseBlock
1213
from robusta.core.reporting.blocks import FileBlock
@@ -39,6 +40,8 @@ class HolmesChatRequest(BaseModel):
3940
conversation_history: Optional[List[dict]] = None
4041
model: Optional[str] = None
4142
stream: bool = Field(default=False)
43+
enable_tool_approval: bool = Field(default=False)
44+
tool_decisions: Optional[List[ToolApprovalDecision]] = None
4245
additional_system_prompt: Optional[str] = None
4346

4447

0 commit comments

Comments
 (0)