Class: Phronomy::Agent::ToolApprovalRequest
- Inherits:
-
Object
- Object
- Phronomy::Agent::ToolApprovalRequest
- Defined in:
- lib/phronomy/agent/tool_approval_request.rb
Overview
Application-facing notification for one suspended ToolCall batch.
The request contains display-safe values only. Internal policy input is represented by ApprovalEvaluationRequest and is deliberately separate.
Defined Under Namespace
Classes: Item
Instance Attribute Summary collapse
- #agent_invocation_id ⇒ Object readonly
- #created_at ⇒ Object readonly
- #id ⇒ Object readonly
- #items ⇒ Object readonly
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(agent_invocation_id:, items:, id: SecureRandom.uuid, created_at: Time.now.utc) ⇒ ToolApprovalRequest
constructor
A new instance of ToolApprovalRequest.
- #to_h ⇒ Object
Constructor Details
#initialize(agent_invocation_id:, items:, id: SecureRandom.uuid, created_at: Time.now.utc) ⇒ ToolApprovalRequest
Returns a new instance of ToolApprovalRequest.
101 102 103 104 105 106 107 108 109 |
# File 'lib/phronomy/agent/tool_approval_request.rb', line 101 def initialize(agent_invocation_id:, items:, id: SecureRandom.uuid, created_at: Time.now.utc) raise ArgumentError, "ToolApprovalRequest requires at least one item" if items.empty? @id = id.to_s.freeze @agent_invocation_id = agent_invocation_id.to_s.freeze @items = items.dup.freeze @created_at = created_at freeze end |
Instance Attribute Details
#agent_invocation_id ⇒ Object (readonly)
77 78 79 |
# File 'lib/phronomy/agent/tool_approval_request.rb', line 77 def agent_invocation_id @agent_invocation_id end |
#created_at ⇒ Object (readonly)
77 78 79 |
# File 'lib/phronomy/agent/tool_approval_request.rb', line 77 def created_at @created_at end |
#id ⇒ Object (readonly)
77 78 79 |
# File 'lib/phronomy/agent/tool_approval_request.rb', line 77 def id @id end |
#items ⇒ Object (readonly)
77 78 79 |
# File 'lib/phronomy/agent/tool_approval_request.rb', line 77 def items @items end |
Class Method Details
.build(agent_invocation) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/phronomy/agent/tool_approval_request.rb', line 79 def self.build(agent_invocation) pending = agent_invocation.tool_invocations.select(&:awaiting_approval?) new( agent_invocation_id: agent_invocation.id, items: pending.map { |invocation| build_item(invocation) } ) end |
Instance Method Details
#to_h ⇒ Object
111 112 113 114 115 116 117 118 |
# File 'lib/phronomy/agent/tool_approval_request.rb', line 111 def to_h { id: @id, agent_invocation_id: @agent_invocation_id, items: @items.map(&:to_h), created_at: @created_at.iso8601 } end |