Module: Legion::Extensions::Agentic::Self::Fingerprint::Runners::CognitiveFingerprint
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb
Instance Method Summary collapse
- #anomaly_check(category:, value:, partner_identity: nil) ⇒ Object
- #erase_partner!(identity:) ⇒ Object
- #fingerprint_hash(partner_identity: nil) ⇒ Object
- #fingerprint_report(partner_identity: nil) ⇒ Object
- #fingerprint_status(partner_identity: nil) ⇒ Object
- #identity_confidence(partner_identity: nil) ⇒ Object
- #record_observation(category:, value:, partner_identity: nil) ⇒ Object
- #strongest_traits(top_n: 3, partner_identity: nil) ⇒ Object
- #tracked_partners ⇒ Object
- #trait_profile(partner_identity: nil) ⇒ Object
- #verify_identity(observations:, partner_identity: nil) ⇒ Object
- #weakest_traits(top_n: 3, partner_identity: nil) ⇒ Object
Instance Method Details
#anomaly_check(category:, value:, partner_identity: nil) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 31 def anomaly_check(category:, value:, partner_identity: nil, **) result = engine_for(partner_identity).anomaly_check(category: category.to_sym, value: value.to_f) if result[:anomaly] log.warn "[cognitive_fingerprint] anomaly category=#{category} " \ "deviation=#{result[:deviation]&.round(4)}" end result end |
#erase_partner!(identity:) ⇒ Object
77 78 79 80 81 82 83 84 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 77 def erase_partner!(identity:, **) registry = fingerprint_registry return { erased: false, identity: identity } unless registry.key?(identity) registry.delete(identity) log.info "[cognitive_fingerprint] erased partner identity=#{identity}" { erased: true, identity: identity } end |
#fingerprint_hash(partner_identity: nil) ⇒ Object
60 61 62 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 60 def fingerprint_hash(partner_identity: nil, **) { fingerprint_hash: engine_for(partner_identity).fingerprint_hash } end |
#fingerprint_report(partner_identity: nil) ⇒ Object
64 65 66 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 64 def fingerprint_report(partner_identity: nil, **) engine_for(partner_identity).fingerprint_report end |
#fingerprint_status(partner_identity: nil) ⇒ Object
68 69 70 71 72 73 74 75 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 68 def fingerprint_status(partner_identity: nil, **) engine = engine_for(partner_identity) { trait_count: engine.trait_count, sample_count: engine.sample_count, label: engine.identity_label } end |
#identity_confidence(partner_identity: nil) ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 52 def identity_confidence(partner_identity: nil, **) engine = engine_for(partner_identity) confidence = engine.identity_confidence label = engine.identity_label log.debug "[cognitive_fingerprint] confidence=#{confidence.round(4)} label=#{label}" { confidence: confidence, label: label } end |
#record_observation(category:, value:, partner_identity: nil) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 13 def record_observation(category:, value:, partner_identity: nil, **) category = category.to_sym result = engine_for(partner_identity).record_observation(category: category, value: value.to_f) log.debug "[cognitive_fingerprint] record category=#{category} " \ "baseline=#{result[:baseline]&.round(4)} samples=#{result[:samples]}" result end |
#strongest_traits(top_n: 3, partner_identity: nil) ⇒ Object
44 45 46 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 44 def strongest_traits(top_n: 3, partner_identity: nil, **) { traits: engine_for(partner_identity).strongest_traits(top_n.to_i) } end |
#tracked_partners ⇒ Object
86 87 88 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 86 def tracked_partners fingerprint_registry.keys.compact end |
#trait_profile(partner_identity: nil) ⇒ Object
40 41 42 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 40 def trait_profile(partner_identity: nil, **) { profile: engine_for(partner_identity).trait_profile } end |
#verify_identity(observations:, partner_identity: nil) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 21 def verify_identity(observations:, partner_identity: nil, **) parsed = Array(observations).map do |obs| { category: obs[:category].to_sym, value: obs[:value].to_f } end result = engine_for(partner_identity).verify_identity(observations: parsed) log.info "[cognitive_fingerprint] verify score=#{result[:match_score]&.round(4)} " \ "verdict=#{result[:verdict]}" result end |
#weakest_traits(top_n: 3, partner_identity: nil) ⇒ Object
48 49 50 |
# File 'lib/legion/extensions/agentic/self/fingerprint/runners/cognitive_fingerprint.rb', line 48 def weakest_traits(top_n: 3, partner_identity: nil, **) { traits: engine_for(partner_identity).weakest_traits(top_n.to_i) } end |