Class: Legion::Extensions::Llm::Gemini::Actor::DiscoveryRefresh

Inherits:
Actors::Every
  • Object
show all
Includes:
Helpers::Lex, ConfigResolver, DisplayHealth, EvidenceBuilder, HealthChecker, HttpClient, InstanceComponents, InstanceLifecycle, ModelDiscovery, OfferingComparison, ProbeRunner, ValueEvidenceBuilder, Logging::Helper
Defined in:
lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb

Overview

SSOT v3 periodic discovery actor for Gemini provider instances. Claims configured instances, discovers models via the Gemini models API, probes health via model listing, and publishes complete OfferingDraft snapshots through the Inventory::Publisher. Recovers instances that fail initial readiness and supports coalesced reactive probes after dispatch-triggered instance_unavailable transitions.

Instance Method Summary collapse

Instance Method Details

#check_subtask?Boolean

Returns:

  • (Boolean)


889
# File 'lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb', line 889

def check_subtask?  = false

#generate_task?Boolean

Returns:

  • (Boolean)


890
# File 'lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb', line 890

def generate_task?  = false

#manualObject



903
904
905
906
907
908
909
910
911
912
# File 'lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb', line 903

def manual
  if @initialized
    tick_refresh
  else
    initial_discovery
    @initialized = true
  end
rescue StandardError => e
  handle_exception(e, level: :warn, operation: 'gemini.actor.discovery_refresh')
end

#run_now?Boolean

Returns:

  • (Boolean)


887
# File 'lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb', line 887

def run_now?        = true

#runner_classObject



885
# File 'lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb', line 885

def runner_class    = self.class

#runner_functionObject



886
# File 'lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb', line 886

def runner_function = 'manual'

#shutdownObject



914
915
916
917
918
# File 'lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb', line 914

def shutdown
  remove_all_instances
rescue StandardError => e
  handle_exception(e, level: :warn, operation: 'gemini.actor.discovery_refresh.shutdown')
end

#timeObject

The registered discovery interval lives under instances.default (provider_settings nests it there). Never return nil — a nil execution_interval makes the TimerTask fire exactly once and then stop, killing all refresh, probes, and recovery.



896
897
898
899
900
901
# File 'lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb', line 896

def time
  interval = settings.dig(:instances, :default, :discovery_interval)
  return interval if interval.is_a?(::Integer) && interval.positive?

  Legion::Extensions::Llm::Gemini.default_settings.dig(:instances, :default, :discovery_interval)
end

#use_runner?Boolean

Returns:

  • (Boolean)


888
# File 'lib/legion/extensions/llm/gemini/actors/discovery_refresh.rb', line 888

def use_runner?     = false