Class: A2A::Server::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_a2a/server/context.rb

Direct Known Subclasses

ResumeContext

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(task:, message:, storage:, event_router:, config: nil) ⇒ Context

Returns a new instance of Context.



8
9
10
11
12
13
14
# File 'lib/simple_a2a/server/context.rb', line 8

def initialize(task:, message:, storage:, event_router:, config: nil)
  @task         = task
  @message      = message
  @storage      = storage
  @event_router = event_router
  @config       = config || {}
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



6
7
8
# File 'lib/simple_a2a/server/context.rb', line 6

def config
  @config
end

#event_routerObject (readonly)

Returns the value of attribute event_router.



6
7
8
# File 'lib/simple_a2a/server/context.rb', line 6

def event_router
  @event_router
end

#messageObject (readonly)

Returns the value of attribute message.



6
7
8
# File 'lib/simple_a2a/server/context.rb', line 6

def message
  @message
end

#storageObject (readonly)

Returns the value of attribute storage.



6
7
8
# File 'lib/simple_a2a/server/context.rb', line 6

def storage
  @storage
end

#taskObject (readonly)

Returns the value of attribute task.



6
7
8
# File 'lib/simple_a2a/server/context.rb', line 6

def task
  @task
end

Instance Method Details

#emit_artifact(artifact, append: false, last_chunk: false) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/simple_a2a/server/context.rb', line 31

def emit_artifact(artifact, append: false, last_chunk: false)
  event = Models::TaskArtifactUpdateEvent.new(
    task_id:    task.id,
    context_id: task.context_id,
    artifact:   artifact,
    append:     append,
    last_chunk: last_chunk
  )
  event_router.publish(task.id, event)
end

#emit_status(final: false) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/simple_a2a/server/context.rb', line 20

def emit_status(final: false)
  event = Models::TaskStatusUpdateEvent.new(
    task_id:    task.id,
    context_id: task.context_id,
    status:     task.status,
    final:      final
  )
  storage.save(task)
  event_router.publish(task.id, event)
end

#save_taskObject



16
17
18
# File 'lib/simple_a2a/server/context.rb', line 16

def save_task
  storage.save(task)
end