26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/ace/hitl/cli/commands/wait.rb', line 26
def call(ref:, **options)
scope = validate_scope(options[:scope])
poll_every = options[:"poll-every"] || 600
timeout = options[:timeout] || 14_400
waiter = {
session_id: options[:"session-id"] || ENV["ACE_AGENT_SESSION_ID"] || ENV["ACE_SESSION_ID"],
provider: options[:provider] || ENV["ACE_PROVIDER"]
}
manager = Ace::Hitl::Organisms::HitlManager.new
result = manager.wait_for_answer(
ref,
scope: scope,
poll_every: poll_every,
timeout: timeout,
waiter: waiter
)
case result[:status]
when :answered
event = result[:event]
puts "HITL event answered: #{event.id} #{event.title}"
puts "Answer: #{event.answer}"
resume = event.metadata["resume_instructions"]
puts "Resume: #{resume}" if resume
when :timeout
raise Ace::Support::Cli::Error.new("Timed out waiting for HITL event '#{ref}'")
else
raise Ace::Support::Cli::Error.new("HITL event '#{ref}' not found")
end
end
|