Class: A2A::Models::Task

Inherits:
Base
  • Object
show all
Defined in:
lib/simple_a2a/models/task.rb

Instance Method Summary collapse

Methods inherited from Base

#==, attribute, attributes, from_hash, inherited, #to_h, #to_json, #valid?

Constructor Details

#initialize(**kwargs) ⇒ Task

Returns a new instance of Task.



13
14
15
16
17
# File 'lib/simple_a2a/models/task.rb', line 13

def initialize(**kwargs)
  kwargs[:id]         ||= SecureRandom.uuid
  kwargs[:context_id] ||= SecureRandom.uuid
  super
end

Instance Method Details

#cancel!Object



36
37
38
# File 'lib/simple_a2a/models/task.rb', line 36

def cancel!
  transition!(Types::TaskState::CANCELED)
end

#complete!(artifacts: []) ⇒ Object



27
28
29
30
# File 'lib/simple_a2a/models/task.rb', line 27

def complete!(artifacts: [])
  self.artifacts = artifacts unless artifacts.empty?
  transition!(Types::TaskState::COMPLETED)
end

#fail!(message: nil) ⇒ Object



32
33
34
# File 'lib/simple_a2a/models/task.rb', line 32

def fail!(message: nil)
  transition!(Types::TaskState::FAILED, message: message)
end

#interrupted?Boolean

Returns:

  • (Boolean)


21
# File 'lib/simple_a2a/models/task.rb', line 21

def interrupted? = status&.interrupted? || false

#reject!(message: nil) ⇒ Object



40
41
42
# File 'lib/simple_a2a/models/task.rb', line 40

def reject!(message: nil)
  transition!(Types::TaskState::REJECTED, message: message)
end

#require_auth!(message: nil) ⇒ Object



48
49
50
# File 'lib/simple_a2a/models/task.rb', line 48

def require_auth!(message: nil)
  transition!(Types::TaskState::AUTH_REQUIRED, message: message)
end

#require_input!(message: nil) ⇒ Object



44
45
46
# File 'lib/simple_a2a/models/task.rb', line 44

def require_input!(message: nil)
  transition!(Types::TaskState::INPUT_REQUIRED, message: message)
end

#start!Object



23
24
25
# File 'lib/simple_a2a/models/task.rb', line 23

def start!
  transition!(Types::TaskState::WORKING)
end

#stateObject



19
# File 'lib/simple_a2a/models/task.rb', line 19

def state        = status&.state

#terminal?Boolean

Returns:

  • (Boolean)


20
# File 'lib/simple_a2a/models/task.rb', line 20

def terminal?    = status&.terminal?   || false

#transition!(new_state, message: nil) ⇒ Object



52
53
54
# File 'lib/simple_a2a/models/task.rb', line 52

def transition!(new_state, message: nil)
  self.status = TaskStatus.new(state: new_state, message: message)
end