Class: SwarmSDK::Observer::Builder
- Inherits:
-
Object
- Object
- SwarmSDK::Observer::Builder
- Defined in:
- lib/swarm_sdk/observer/builder.rb
Overview
DSL for configuring observer agents
Used by Swarm::Builder#observer to provide a clean DSL for defining event handlers and observer configuration options.
Instance Method Summary collapse
-
#initialize(agent_name, config) ⇒ Builder
constructor
Initialize builder with agent name and config.
-
#max_concurrent(n) ⇒ void
Set maximum concurrent executions for this observer.
-
#on(event_type) {|Hash| ... } ⇒ void
Register an event handler.
-
#timeout(seconds) ⇒ void
Set timeout for observer execution.
-
#wait_for_completion! ⇒ void
Wait for observer to complete before swarm execution ends.
Constructor Details
#initialize(agent_name, config) ⇒ Builder
Initialize builder with agent name and config
24 25 26 27 |
# File 'lib/swarm_sdk/observer/builder.rb', line 24 def initialize(agent_name, config) @agent_name = agent_name @config = config end |
Instance Method Details
#max_concurrent(n) ⇒ void
This method returns an undefined value.
Set maximum concurrent executions for this observer
Limits how many instances of this observer agent can run simultaneously. Useful for resource-intensive observers.
56 57 58 |
# File 'lib/swarm_sdk/observer/builder.rb', line 56 def max_concurrent(n) @config.[:max_concurrent] = n end |
#on(event_type) {|Hash| ... } ⇒ void
This method returns an undefined value.
Register an event handler
The block receives the event hash and should return:
- A prompt string to trigger the observer agent
- nil to skip execution for this event
45 46 47 |
# File 'lib/swarm_sdk/observer/builder.rb', line 45 def on(event_type, &block) @config.add_handler(event_type, &block) end |
#timeout(seconds) ⇒ void
This method returns an undefined value.
Set timeout for observer execution
Observer tasks will be cancelled after this duration.
66 67 68 |
# File 'lib/swarm_sdk/observer/builder.rb', line 66 def timeout(seconds) @config.[:timeout] = seconds end |
#wait_for_completion! ⇒ void
This method returns an undefined value.
Wait for observer to complete before swarm execution ends
By default, observers are fire-and-forget. This option causes the main execution to wait for this observer to complete.
76 77 78 |
# File 'lib/swarm_sdk/observer/builder.rb', line 76 def wait_for_completion! @config.[:fire_and_forget] = false end |