Module: Legion::Extensions::Llm::Bedrock

Extended by:
AutoRegistration, CredentialDiscovery, Logging::Helper
Defined in:
lib/legion/extensions/llm/bedrock.rb,
lib/legion/extensions/llm/bedrock/version.rb,
lib/legion/extensions/llm/bedrock/provider.rb,
lib/legion/extensions/llm/bedrock/translator.rb,
lib/legion/extensions/llm/bedrock/thinking_modes.rb,
lib/legion/extensions/llm/bedrock/render_defaults.rb,
lib/legion/extensions/llm/bedrock/actors/discovery.rb,
lib/legion/extensions/llm/bedrock/helpers/callable.rb,
lib/legion/extensions/llm/bedrock/instance_identity.rb,
lib/legion/extensions/llm/bedrock/runners/discovery.rb,
lib/legion/extensions/llm/bedrock/provider/constants.rb,
lib/legion/extensions/llm/bedrock/actors/fleet_worker.rb,
lib/legion/extensions/llm/bedrock/credential_discovery.rb,
lib/legion/extensions/llm/bedrock/runners/fleet_worker.rb,
lib/legion/extensions/llm/bedrock/provider/class_methods.rb,
lib/legion/extensions/llm/bedrock/provider/client_helpers.rb,
lib/legion/extensions/llm/bedrock/translator/read_helpers.rb,
lib/legion/extensions/llm/bedrock/translator/chunk_parsing.rb,
lib/legion/extensions/llm/bedrock/provider/converse_helpers.rb,
lib/legion/extensions/llm/bedrock/provider/dispatch_helpers.rb,
lib/legion/extensions/llm/bedrock/translator/response_parsing.rb,
lib/legion/extensions/llm/bedrock/translator/message_rendering.rb,
lib/legion/extensions/llm/bedrock/translator/request_rendering.rb,
lib/legion/extensions/llm/bedrock/provider/invoke_model_helpers.rb,
lib/legion/extensions/llm/bedrock/provider/model_catalog_helpers.rb

Overview

Amazon Bedrock provider extension namespace.

Defined Under Namespace

Modules: Actor, CredentialDiscovery, Helpers, InstanceIdentity, RenderDefaults, Runners, ThinkingModes Classes: Provider, StaticCredentialsBlockedError, StreamError, Translator

Constant Summary collapse

PROVIDER_FAMILY =
:bedrock
DEFAULT_REGION =
'us-east-2'
DEFAULT_CAPABILITIES =
%i[completion streaming embedding].freeze
VERSION =
'0.5.8'

Class Method Summary collapse

Methods included from CredentialDiscovery

broker_aws_credentials, claude_env_pattern_match, dedup_config, discover_broker, discover_claude_bearer, discover_env_bearer, discover_env_sigv4, discover_settings, flatten_credential_subhash!, normalize_instance_config, sanitize_instance_config, settings_instances, unresolved_credential?

Class Method Details

.default_settingsObject



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
58
# File 'lib/legion/extensions/llm/bedrock.rb', line 27

def self.default_settings
  base = ::Legion::Extensions::Llm.provider_settings(
    family: PROVIDER_FAMILY,
    instance: {
      region: 'us-east-1',
      geo_prefix: 'us',
      tier: :cloud,
      transport: :aws_sdk,
      credentials: {
        bearer_token: nil,
        access_key_id: nil,
        secret_access_key: nil,
        session_token: nil,
        profile: nil
      },
      provider: {
        region: DEFAULT_REGION,
        geo_prefix: 'us',
        endpoint: nil,
        stub_responses: false
      },
      usage: { inference: true, embedding: true, image: false },
      limits: { concurrency: 4 },
      fleet: {
        enabled: false,
        respond_to_requests: false,
        capabilities: %i[chat stream_chat embed tools]
      }
    }
  )
  base.merge(security: { block_static_aws_credentials: false })
end

.discover_instancesObject



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/legion/extensions/llm/bedrock.rb', line 64

def self.discover_instances
  candidates = {}
  # B15: dedup is first-source-wins, so operator-configured
  # instances (settings) are collected FIRST — they win their own
  # credentials over source-named candidates (env/claude/broker),
  # which are fallbacks. The old order let an env credential with
  # the same value shadow an operator-named instance, renaming it
  # to the source name (env_bearer, claude, ...).
  discover_settings(candidates)
  discover_env_bearer(candidates)
  discover_claude_bearer(candidates)
  discover_env_sigv4(candidates)
  discover_broker(candidates)
  # enabled: false is a skip, not a credential: a disabled instance is
  # never claimed (the discovery pipeline reads this method as the
  # single claimable source).
  CredentialSources.dedup_credentials(candidates)
                   .reject { |_, config| config[:enabled] == false || unresolved_credential?(config) }
                   .transform_values do |config|
    sanitized = sanitize_instance_config(config)
    sanitized[:capabilities] ||= DEFAULT_CAPABILITIES.dup
    sanitized
  end
end

.provider_classObject



60
61
62
# File 'lib/legion/extensions/llm/bedrock.rb', line 60

def self.provider_class
  Provider
end