Module: A2A
- Defined in:
- lib/a2a.rb,
lib/a2a-rails.rb,
lib/a2a/types.rb,
lib/a2a/errors.rb,
lib/a2a/plugin.rb,
lib/a2a/plugin.rb,
lib/a2a/modules.rb,
lib/a2a/version.rb,
lib/a2a/monitoring.rb,
lib/a2a/types/part.rb,
lib/a2a/types/task.rb,
lib/a2a/client/auth.rb,
lib/a2a/client/base.rb,
lib/a2a/rails/engine.rb,
lib/a2a/server/agent.rb,
lib/a2a/types/events.rb,
lib/a2a/client/config.rb,
lib/a2a/configuration.rb,
lib/a2a/protocol/task.rb,
lib/a2a/transport/sse.rb,
lib/a2a/types/message.rb,
lib/a2a/utils/helpers.rb,
lib/a2a/plugin_manager.rb,
lib/a2a/server/handler.rb,
lib/a2a/server/storage.rb,
lib/a2a/transport/grpc.rb,
lib/a2a/transport/http.rb,
lib/a2a/transport/http.rb,
lib/a2a/types/artifact.rb,
lib/a2a/types/security.rb,
lib/a2a/client/auth/jwt.rb,
lib/a2a/protocol/message.rb,
lib/a2a/types/agent_card.rb,
lib/a2a/types/base_model.rb,
lib/a2a/types/base_model.rb,
lib/a2a/utils/validation.rb,
lib/a2a/client/middleware.rb,
lib/a2a/protocol/json_rpc.rb,
lib/a2a/server/middleware.rb,
lib/a2a/utils/performance.rb,
lib/a2a/client/api_methods.rb,
lib/a2a/client/auth/oauth2.rb,
lib/a2a/client/http_client.rb,
lib/a2a/server/a2a_methods.rb,
lib/a2a/utils/time_helpers.rb,
lib/a2a/client/auth/api_key.rb,
lib/a2a/monitoring/alerting.rb,
lib/a2a/protocol/agent_card.rb,
lib/a2a/protocol/capability.rb,
lib/a2a/server/storage/base.rb,
lib/a2a/server/storage/base.rb,
lib/a2a/server/task_manager.rb,
lib/a2a/plugins/example_auth.rb,
lib/a2a/rails/a2a_controller.rb,
lib/a2a/server/apps/rack_app.rb,
lib/a2a/server/example_agent.rb,
lib/a2a/server/storage/redis.rb,
lib/a2a/utils/message_buffer.rb,
lib/a2a/server/storage/memory.rb,
lib/a2a/utils/rails_detection.rb,
lib/a2a/client/connection_pool.rb,
lib/a2a/configuration/defaults.rb,
lib/a2a/server/request_handler.rb,
lib/a2a/client/auth/interceptor.rb,
lib/a2a/client/json_rpc_handler.rb,
lib/a2a/configuration/validator.rb,
lib/a2a/server/apps/sinatra_app.rb,
lib/a2a/server/storage/database.rb,
lib/a2a/server/storage/database.rb,
lib/a2a/types/push_notification.rb,
lib/a2a/utils/structured_logger.rb,
lib/a2a/rails/controller_helpers.rb,
lib/a2a/configuration/file_loader.rb,
lib/a2a/configuration/inheritance.rb,
lib/a2a/plugins/example_transport.rb,
lib/a2a/server/events/event_queue.rb,
lib/a2a/client/performance_tracker.rb,
lib/a2a/plugins/example_middleware.rb,
lib/a2a/protocol/agent_card_server.rb,
lib/a2a/monitoring/health_endpoints.rb,
lib/a2a/monitoring/metrics_collector.rb,
lib/a2a/monitoring/metrics_collector.rb,
lib/a2a/server/events/event_consumer.rb,
lib/a2a/monitoring/distributed_tracing.rb,
lib/a2a/monitoring/distributed_tracing.rb,
lib/a2a/server/default_request_handler.rb,
lib/a2a/configuration/environment_loader.rb,
lib/a2a/rails/generators/agent_generator.rb,
lib/a2a/server/push_notification_manager.rb,
lib/a2a/server/middleware/cors_middleware.rb,
lib/a2a/rails/generators/install_generator.rb,
lib/a2a/client/middleware/retry_interceptor.rb,
lib/a2a/rails/generators/migration_generator.rb,
lib/a2a/server/middleware/logging_middleware.rb,
lib/a2a/client/middleware/logging_interceptor.rb,
lib/a2a/server/agent_execution/agent_executor.rb,
lib/a2a/server/agent_execution/request_context.rb,
lib/a2a/server/middleware/rate_limit_middleware.rb,
lib/a2a/client/middleware/rate_limit_interceptor.rb,
lib/a2a/server/middleware/authentication_middleware.rb,
lib/a2a/server/middleware/authentication_middleware.rb,
lib/a2a/client/middleware/circuit_breaker_interceptor.rb
Overview
Circuit breaker interceptor for fault tolerance
Implements the circuit breaker pattern to prevent cascading failures by temporarily stopping requests to a failing service.
Defined Under Namespace
Modules: Client, Errors, Monitoring, Plugin, Plugins, Protocol, Rails, Server, Transport, Types, Utils Classes: Configuration, PluginManager
Constant Summary collapse
- VERSION =
The version of the A2A Ruby SDK
"1.0.0"
Class Attribute Summary collapse
-
.configuration ⇒ A2A::Configuration
Global configuration for the A2A SDK.
-
.plugin_manager ⇒ A2A::PluginManager
Global plugin manager.
Class Method Summary collapse
-
.child_config(**overrides) ⇒ A2A::Configuration
Create a child configuration with inheritance.
-
.config ⇒ A2A::Configuration
Get the current configuration or create a default one.
-
.configure {|config| ... } ⇒ Object
Configure the A2A SDK.
-
.configure_from_env(environment: nil) ⇒ A2A::Configuration
Configure from environment variables only.
-
.configure_from_file(file_path, environment: nil) ⇒ A2A::Configuration
Configure from YAML file.
-
.configure_plugins(*args) ⇒ Object
Configure plugins from hash.
-
.initialize_monitoring!(config = self.config) ⇒ Object
Initialize monitoring system.
-
.load_plugin(name, **config) ⇒ Object
Load a plugin.
-
.logger ⇒ A2A::Monitoring::StructuredLogger
Get structured logger.
-
.metrics ⇒ A2A::Monitoring::MetricsCollector
Get monitoring metrics.
-
.plugins ⇒ A2A::PluginManager
Get the plugin manager.
-
.record_metric(name, value, **labels) ⇒ Object
Record a metric.
-
.register_plugin(name, plugin_class, **options) ⇒ Object
Register a plugin.
-
.reset_configuration! ⇒ Object
Reset configuration to defaults.
-
.time(name, **labels) { ... } ⇒ Object
Time a block of code.
Class Attribute Details
.configuration ⇒ A2A::Configuration
Global configuration for the A2A SDK
82 83 84 |
# File 'lib/a2a.rb', line 82 def configuration @configuration end |
.plugin_manager ⇒ A2A::PluginManager
Global plugin manager
86 87 88 |
# File 'lib/a2a.rb', line 86 def plugin_manager @plugin_manager end |
Class Method Details
.child_config(**overrides) ⇒ A2A::Configuration
Create a child configuration with inheritance
132 133 134 |
# File 'lib/a2a.rb', line 132 def child_config(**overrides) config.child(**overrides) end |
.config ⇒ A2A::Configuration
Get the current configuration or create a default one
120 121 122 |
# File 'lib/a2a.rb', line 120 def config self.configuration ||= Configuration.new end |
.configure {|config| ... } ⇒ Object
Configure the A2A SDK
91 92 93 94 95 96 |
# File 'lib/a2a.rb', line 91 def configure self.configuration ||= Configuration.new yield(configuration) if block_given? configuration.validate! configuration end |
.configure_from_env(environment: nil) ⇒ A2A::Configuration
Configure from environment variables only
112 113 114 115 116 |
# File 'lib/a2a.rb', line 112 def configure_from_env(environment: nil) self.configuration = Configuration.new(environment: environment) configuration.validate! configuration end |
.configure_from_file(file_path, environment: nil) ⇒ A2A::Configuration
Configure from YAML file
102 103 104 105 106 107 |
# File 'lib/a2a.rb', line 102 def configure_from_file(file_path, environment: nil) self.configuration ||= Configuration.new configuration.load_from_file(file_path, environment: environment) configuration.validate! configuration end |
.configure_plugins(*args) ⇒ Object
Configure plugins from hash
159 160 161 |
# File 'lib/a2a.rb', line 159 def configure_plugins(*args) plugins.configure_plugins(*args) end |
.initialize_monitoring!(config = self.config) ⇒ Object
Initialize monitoring system
165 166 167 |
# File 'lib/a2a.rb', line 165 def initialize_monitoring!(config = self.config) A2A::Monitoring.initialize!(config) end |
.load_plugin(name, **config) ⇒ Object
Load a plugin
153 154 155 |
# File 'lib/a2a.rb', line 153 def load_plugin(name, **config) plugins.load_plugin(name, **config) end |
.logger ⇒ A2A::Monitoring::StructuredLogger
Get structured logger
177 178 179 |
# File 'lib/a2a.rb', line 177 def logger A2A::Monitoring.logger end |
.metrics ⇒ A2A::Monitoring::MetricsCollector
Get monitoring metrics
171 172 173 |
# File 'lib/a2a.rb', line 171 def metrics A2A::Monitoring.metrics end |
.plugins ⇒ A2A::PluginManager
Get the plugin manager
138 139 140 |
# File 'lib/a2a.rb', line 138 def plugins self.plugin_manager ||= PluginManager.new(config) end |
.record_metric(name, value, **labels) ⇒ Object
Record a metric
185 186 187 |
# File 'lib/a2a.rb', line 185 def record_metric(name, value, **labels) A2A::Monitoring.record_metric(name, value, **labels) end |
.register_plugin(name, plugin_class, **options) ⇒ Object
Register a plugin
146 147 148 |
# File 'lib/a2a.rb', line 146 def register_plugin(name, plugin_class, **) A2A::Plugin.register(name, plugin_class, **) end |
.reset_configuration! ⇒ Object
Reset configuration to defaults
125 126 127 |
# File 'lib/a2a.rb', line 125 def reset_configuration! self.configuration = Configuration.new end |
.time(name, **labels) { ... } ⇒ Object
Time a block of code
194 195 196 |
# File 'lib/a2a.rb', line 194 def time(name, **labels, &block) A2A::Monitoring.time(name, **labels, &block) end |