Module: Legion::Extensions::Agentic::Homeostasis::FossilFuel::Runners::CognitiveFossilFuel

Extended by:
CognitiveFossilFuel
Includes:
Helpers::Lex
Included in:
Client, CognitiveFossilFuel
Defined in:
lib/legion/extensions/agentic/homeostasis/fossil_fuel/runners/cognitive_fossil_fuel.rb

Instance Method Summary collapse

Instance Method Details

#combust(reserve_id:, amount: nil, grade: :crude, engine: nil) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/legion/extensions/agentic/homeostasis/fossil_fuel/runners/cognitive_fossil_fuel.rb', line 33

def combust(reserve_id:, amount: nil, grade: :crude, engine: nil, **)
  eng    = resolve_engine(engine)
  result = eng.combust(reserve_id: reserve_id, amount: amount, grade: grade)
  { success: true, combustion: result[:combustion].to_h,
    reserve: result[:reserve].to_h }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#create_reserve(fuel_type:, domain:, content:, volume: nil, quality: nil, engine: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/legion/extensions/agentic/homeostasis/fossil_fuel/runners/cognitive_fossil_fuel.rb', line 12

def create_reserve(fuel_type:, domain:, content:,
                   volume: nil, quality: nil, engine: nil, **)
  eng = resolve_engine(engine)
  r   = eng.create_reserve(fuel_type: fuel_type, domain: domain,
                           content: content, volume: volume, quality: quality)
  { success: true, reserve: r.to_h }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#extract(reserve_id:, rate: nil, engine: nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/legion/extensions/agentic/homeostasis/fossil_fuel/runners/cognitive_fossil_fuel.rb', line 22

def extract(reserve_id:, rate: nil, engine: nil, **)
  eng  = resolve_engine(engine)
  opts = { reserve_id: reserve_id }
  opts[:rate] = rate if rate
  result = eng.extract(**opts)
  { success: true, reserve: result[:reserve].to_h,
    extracted: result[:extracted] }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#fuel_status(engine: nil) ⇒ Object



49
50
51
52
# File 'lib/legion/extensions/agentic/homeostasis/fossil_fuel/runners/cognitive_fossil_fuel.rb', line 49

def fuel_status(engine: nil, **)
  eng = resolve_engine(engine)
  { success: true, report: eng.fuel_report }
end

#list_reserves(engine: nil, fuel_type: nil) ⇒ Object



42
43
44
45
46
47
# File 'lib/legion/extensions/agentic/homeostasis/fossil_fuel/runners/cognitive_fossil_fuel.rb', line 42

def list_reserves(engine: nil, fuel_type: nil, **)
  eng     = resolve_engine(engine)
  results = eng.all_reserves
  results = results.select { |r| r.fuel_type == fuel_type.to_sym } if fuel_type
  { success: true, reserves: results.map(&:to_h), count: results.size }
end