Module: Legion::Extensions::Agentic::Self::RelationshipArc::Runners::RelationshipArc
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/self/relationship_arc/runners/relationship_arc.rb
Instance Method Summary collapse
- #arc_stats(agent_id:) ⇒ Object
- #record_milestone(agent_id:, type:, description:, significance:) ⇒ Object
- #update_arc(agent_id:, attachment_state: {}) ⇒ Object
Instance Method Details
#arc_stats(agent_id:) ⇒ Object
39 40 41 42 |
# File 'lib/legion/extensions/agentic/self/relationship_arc/runners/relationship_arc.rb', line 39 def arc_stats(agent_id:, **) engine = arc_engine_for(agent_id) engine.to_h end |
#record_milestone(agent_id:, type:, description:, significance:) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/legion/extensions/agentic/self/relationship_arc/runners/relationship_arc.rb', line 13 def record_milestone(agent_id:, type:, description:, significance:, **) unless Helpers::Constants::MILESTONE_TYPES.include?(type.to_sym) return { success: false, error: "unknown type: #{type}" } end engine = arc_engine_for(agent_id) ms = engine.add_milestone(type: type, description: description, significance: significance) stamp_narrative_episode(ms) { success: true, milestone: ms.to_h } rescue StandardError => e { success: false, error: e. } end |
#update_arc(agent_id:, attachment_state: {}) ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/legion/extensions/agentic/self/relationship_arc/runners/relationship_arc.rb', line 29 def update_arc(agent_id:, attachment_state: {}, **) engine = arc_engine_for(agent_id) engine.update_chapter!(bond_stage: [:bond_stage] || :initial) { success: true, current_chapter: engine.current_chapter, milestone_count: engine.milestones.size } rescue StandardError => e { success: false, error: e. } end |