Module: Legion::Extensions::Agentic::Homeostasis::Tempo::Runners::Tempo
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/homeostasis/tempo/runners/tempo.rb
Instance Method Summary collapse
- #adapt_tempo(domain:, target:) ⇒ Object
- #domains_in_sync ⇒ Object
- #domains_mismatched ⇒ Object
- #record_tempo(domain:, current_tempo:, task_requirement:) ⇒ Object
- #set_tempo_baseline(domain:, tempo:) ⇒ Object
- #tempo_report ⇒ Object
- #tempo_status(domain: nil) ⇒ Object
Instance Method Details
#adapt_tempo(domain:, target:) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/legion/extensions/agentic/homeostasis/tempo/runners/tempo.rb', line 33 def adapt_tempo(domain:, target:, **) record = tempo_engine.adapt_tempo(domain: domain, target: target) unless record log.debug("[cognitive_tempo] adapt: no records for domain=#{domain}") return { adapted: false, domain: domain } end log.debug("[cognitive_tempo] adapted: domain=#{domain} current=#{record.current_tempo.round(2)} target=#{target.round(2)}") { adapted: true }.merge(record.to_h) end |
#domains_in_sync ⇒ Object
61 62 63 64 65 |
# File 'lib/legion/extensions/agentic/homeostasis/tempo/runners/tempo.rb', line 61 def domains_in_sync(**) result = tempo_engine.domains_in_sync log.debug("[cognitive_tempo] in_sync: count=#{result.size}") { domains: result, count: result.size } end |
#domains_mismatched ⇒ Object
67 68 69 70 71 |
# File 'lib/legion/extensions/agentic/homeostasis/tempo/runners/tempo.rb', line 67 def domains_mismatched(**) result = tempo_engine.domains_mismatched log.debug("[cognitive_tempo] mismatched: count=#{result.size}") { domains: result, count: result.size } end |
#record_tempo(domain:, current_tempo:, task_requirement:) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/legion/extensions/agentic/homeostasis/tempo/runners/tempo.rb', line 19 def record_tempo(domain:, current_tempo:, task_requirement:, **) record = tempo_engine.record_tempo( domain: domain, current_tempo: current_tempo, task_requirement: task_requirement ) log.debug("[cognitive_tempo] recorded: domain=#{domain} " \ "current=#{current_tempo.round(2)} " \ "requirement=#{task_requirement.round(2)} " \ "mismatch=#{record.mismatch.round(3)} " \ "label=#{record.mismatch_label}") record.to_h end |
#set_tempo_baseline(domain:, tempo:) ⇒ Object
13 14 15 16 17 |
# File 'lib/legion/extensions/agentic/homeostasis/tempo/runners/tempo.rb', line 13 def set_tempo_baseline(domain:, tempo:, **) tempo_engine.set_baseline(domain: domain, tempo: tempo) log.debug("[cognitive_tempo] baseline set: domain=#{domain} tempo=#{tempo.round(2)}") { domain: domain, baseline: tempo } end |
#tempo_report ⇒ Object
73 74 75 76 77 |
# File 'lib/legion/extensions/agentic/homeostasis/tempo/runners/tempo.rb', line 73 def tempo_report(**) report = tempo_engine.tempo_report log.debug("[cognitive_tempo] report: total_records=#{report[:total_records]}") report end |
#tempo_status(domain: nil) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/legion/extensions/agentic/homeostasis/tempo/runners/tempo.rb', line 44 def tempo_status(domain: nil, **) if domain record = tempo_engine.records[domain]&.last if record log.debug("[cognitive_tempo] status: domain=#{domain} tempo=#{record.current_tempo.round(2)} mismatch=#{record.mismatch_label}") { found: true }.merge(record.to_h) else log.debug("[cognitive_tempo] status: domain=#{domain} not found") { found: false, domain: domain } end else report = tempo_engine.tempo_report log.debug("[cognitive_tempo] report: domains=#{report[:domains].size} avg_mismatch=#{report[:average_mismatch].round(3)}") report end end |