Module: Legion::Extensions::Agentic::Executive::CognitiveDebt::Runners::CognitiveDebt

Includes:
Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb

Instance Method Summary collapse

Instance Method Details

#accrue_interest(engine: nil) ⇒ Object



23
24
25
26
27
28
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 23

def accrue_interest(engine: nil, **)
  eng = engine || default_engine
  result = eng.accrue_all_interest
  Legion::Logging.debug "[cognitive_debt] accrued interest on #{result[:accrued]} debts total_debt=#{result[:total_debt]}"
  result
end

#create_debt(label:, debt_type:, principal: Helpers::Constants::DEFAULT_PRINCIPAL, domain: 'general', engine: nil) ⇒ Object



10
11
12
13
14
15
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 10

def create_debt(label:, debt_type:, principal: Helpers::Constants::DEFAULT_PRINCIPAL,
                domain: 'general', engine: nil, **)
  eng = engine || default_engine
  Legion::Logging.debug "[cognitive_debt] create debt label=#{label} type=#{debt_type} principal=#{principal}"
  eng.create_debt(label: label, debt_type: debt_type, principal: principal, domain: domain)
end

#debt_by_domain(domain:, engine: nil) ⇒ Object



42
43
44
45
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 42

def debt_by_domain(domain:, engine: nil, **)
  eng = engine || default_engine
  eng.debt_by_domain(domain: domain)
end

#debt_by_type(debt_type:, engine: nil) ⇒ Object



37
38
39
40
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 37

def debt_by_type(debt_type:, engine: nil, **)
  eng = engine || default_engine
  eng.debt_by_type(debt_type: debt_type)
end

#debt_report(engine: nil) ⇒ Object



57
58
59
60
61
62
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 57

def debt_report(engine: nil, **)
  eng = engine || default_engine
  report = eng.debt_report
  Legion::Logging.debug "[cognitive_debt] report total_debt=#{report[:total_debt]} active=#{report[:active_count]}"
  report
end

#most_costly(limit: 10, engine: nil) ⇒ Object



47
48
49
50
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 47

def most_costly(limit: 10, engine: nil, **)
  eng = engine || default_engine
  eng.most_costly(limit: limit)
end

#oldest_debts(limit: 10, engine: nil) ⇒ Object



52
53
54
55
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 52

def oldest_debts(limit: 10, engine: nil, **)
  eng = engine || default_engine
  eng.oldest_debts(limit: limit)
end

#prune_repaid(engine: nil) ⇒ Object



64
65
66
67
68
69
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 64

def prune_repaid(engine: nil, **)
  eng = engine || default_engine
  result = eng.prune_repaid
  Legion::Logging.debug "[cognitive_debt] pruned #{result[:pruned]} repaid debts remaining=#{result[:remaining]}"
  result
end

#repay_debt(debt_id:, amount: Helpers::Constants::REPAYMENT_RATE, engine: nil) ⇒ Object



17
18
19
20
21
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 17

def repay_debt(debt_id:, amount: Helpers::Constants::REPAYMENT_RATE, engine: nil, **)
  eng = engine || default_engine
  Legion::Logging.debug "[cognitive_debt] repay debt_id=#{debt_id[0..7]} amount=#{amount}"
  eng.repay_debt(debt_id: debt_id, amount: amount)
end

#total_debt(engine: nil) ⇒ Object



30
31
32
33
34
35
# File 'lib/legion/extensions/agentic/executive/cognitive_debt/runners/cognitive_debt.rb', line 30

def total_debt(engine: nil, **)
  eng = engine || default_engine
  cost = eng.total_debt
  Legion::Logging.debug "[cognitive_debt] total_debt=#{cost}"
  { total_debt: cost }
end