feat(agent): add create_a2h2a_ticket tool
This commit is contained in:
parent
563b49da7c
commit
53aa95d4db
|
|
@ -200,6 +200,44 @@ def push_file(path: str, content: str, message: str = "", sha: str = "") -> dict
|
||||||
return _call_tool("push_file", {"path": path, "content": content, "message": message, "sha": sha})
|
return _call_tool("push_file", {"path": path, "content": content, "message": message, "sha": sha})
|
||||||
|
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
class TicketSource(BaseModel):
|
||||||
|
reporter: str
|
||||||
|
trigger: str
|
||||||
|
affected_service: str
|
||||||
|
project_id: str
|
||||||
|
|
||||||
|
class ProposedAction(BaseModel):
|
||||||
|
execution_tool: str
|
||||||
|
tool_parameters: dict
|
||||||
|
parameter_hash: Optional[str] = None
|
||||||
|
|
||||||
|
class Context(BaseModel):
|
||||||
|
summary: str
|
||||||
|
user_justification: str
|
||||||
|
conversation_history: list
|
||||||
|
|
||||||
|
class Governance(BaseModel):
|
||||||
|
approval_status: str = "PENDING"
|
||||||
|
authorized_approver: str
|
||||||
|
requires_mfa: bool = True
|
||||||
|
timeout_minutes: int = 15
|
||||||
|
|
||||||
|
class A2H2ATicket(BaseModel):
|
||||||
|
ticket_id: Optional[str] = None
|
||||||
|
source: TicketSource
|
||||||
|
proposed_action: ProposedAction
|
||||||
|
context: Context
|
||||||
|
severity: str
|
||||||
|
governance: Governance
|
||||||
|
|
||||||
|
def create_a2h2a_ticket(ticket: A2H2ATicket) -> dict:
|
||||||
|
"""Create a new A2H2A ticket for a sensitive operation."""
|
||||||
|
return _call_tool("create_a2h2a_ticket", ticket.dict())
|
||||||
|
|
||||||
|
|
||||||
OPAX_TOOLS = [
|
OPAX_TOOLS = [
|
||||||
FunctionTool(func=get_billing_summary),
|
FunctionTool(func=get_billing_summary),
|
||||||
FunctionTool(func=get_billing_credits),
|
FunctionTool(func=get_billing_credits),
|
||||||
|
|
@ -222,6 +260,7 @@ OPAX_TOOLS = [
|
||||||
FunctionTool(func=list_open_issues),
|
FunctionTool(func=list_open_issues),
|
||||||
FunctionTool(func=create_issue),
|
FunctionTool(func=create_issue),
|
||||||
FunctionTool(func=push_file),
|
FunctionTool(func=push_file),
|
||||||
|
FunctionTool(func=create_a2h2a_ticket),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -252,7 +291,7 @@ _INSTRUCTION_TEMPLATE = (
|
||||||
"Du har tilgang til alle OPAX-tools via opax-mcp. "
|
"Du har tilgang til alle OPAX-tools via opax-mcp. "
|
||||||
"Tools: list_commits, get_file, push_file, create_issue, list_open_issues (Gitea), "
|
"Tools: list_commits, get_file, push_file, create_issue, list_open_issues (Gitea), "
|
||||||
"get_billing_summary, get_billing_credits, get_billing_anomalies, "
|
"get_billing_summary, get_billing_credits, get_billing_anomalies, "
|
||||||
"get_build_status, get_state, get_telemetry, run_terminal, "
|
"get_build_status, get_state, get_telemetry, run_terminal, create_a2h2a_ticket, "
|
||||||
"create_invite, list_customers, send_webhook, send_email, get_notify_channels. "
|
"create_invite, list_customers, send_webhook, send_email, get_notify_channels. "
|
||||||
"Når brukaren ber om data — KALL ALLTID rett tool før du svarar. "
|
"Når brukaren ber om data — KALL ALLTID rett tool før du svarar. "
|
||||||
"Svar på norsk (bokmål) med mindre annet er bedt om. "
|
"Svar på norsk (bokmål) med mindre annet er bedt om. "
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user