Class: Legion::Extensions::Agentic::Social::Conflict::Helpers::ConflictLog
- Inherits:
-
Object
- Object
- Legion::Extensions::Agentic::Social::Conflict::Helpers::ConflictLog
- Defined in:
- lib/legion/extensions/agentic/social/conflict/helpers/conflict_log.rb
Instance Attribute Summary collapse
-
#conflicts ⇒ Object
readonly
Returns the value of attribute conflicts.
Instance Method Summary collapse
- #active_conflicts ⇒ Object
- #add_exchange(conflict_id, speaker:, message:) ⇒ Object
- #count ⇒ Object
- #get(conflict_id) ⇒ Object
-
#initialize ⇒ ConflictLog
constructor
A new instance of ConflictLog.
- #record(parties:, severity:, description:, posture: nil) ⇒ Object
- #resolve(conflict_id, outcome:, resolution_notes: nil) ⇒ Object
Constructor Details
#initialize ⇒ ConflictLog
Returns a new instance of ConflictLog.
14 15 16 |
# File 'lib/legion/extensions/agentic/social/conflict/helpers/conflict_log.rb', line 14 def initialize @conflicts = {} end |
Instance Attribute Details
#conflicts ⇒ Object (readonly)
Returns the value of attribute conflicts.
12 13 14 |
# File 'lib/legion/extensions/agentic/social/conflict/helpers/conflict_log.rb', line 12 def conflicts @conflicts end |
Instance Method Details
#active_conflicts ⇒ Object
53 54 55 |
# File 'lib/legion/extensions/agentic/social/conflict/helpers/conflict_log.rb', line 53 def active_conflicts @conflicts.values.select { |c| c[:status] == :active } end |
#add_exchange(conflict_id, speaker:, message:) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/legion/extensions/agentic/social/conflict/helpers/conflict_log.rb', line 35 def add_exchange(conflict_id, speaker:, message:) conflict = @conflicts[conflict_id] return nil unless conflict conflict[:exchanges] << { speaker: speaker, message: , at: Time.now.utc } end |
#count ⇒ Object
61 62 63 |
# File 'lib/legion/extensions/agentic/social/conflict/helpers/conflict_log.rb', line 61 def count @conflicts.size end |
#get(conflict_id) ⇒ Object
57 58 59 |
# File 'lib/legion/extensions/agentic/social/conflict/helpers/conflict_log.rb', line 57 def get(conflict_id) @conflicts[conflict_id] end |
#record(parties:, severity:, description:, posture: nil) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/legion/extensions/agentic/social/conflict/helpers/conflict_log.rb', line 18 def record(parties:, severity:, description:, posture: nil) id = SecureRandom.uuid @conflicts[id] = { conflict_id: id, parties: parties, severity: severity, posture: posture || Severity.recommended_posture(severity), description: description, status: :active, outcome: nil, created_at: Time.now.utc, resolved_at: nil, exchanges: [] } id end |
#resolve(conflict_id, outcome:, resolution_notes: nil) ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/legion/extensions/agentic/social/conflict/helpers/conflict_log.rb', line 42 def resolve(conflict_id, outcome:, resolution_notes: nil) conflict = @conflicts[conflict_id] return nil unless conflict conflict[:status] = :resolved conflict[:outcome] = outcome conflict[:resolution_notes] = resolution_notes conflict[:resolved_at] = Time.now.utc conflict end |