Module: Textus::Lanes::Knowledge::Handlers
- Defined in:
- lib/textus/lanes/knowledge/handlers.rb
Constant Summary collapse
- LOOP_NODE_KEYS =
{ "intent" => "knowledge.loop.intent", "constraint.repo" => "knowledge.loop.constraint.repo", "constraint.protocol" => "knowledge.loop.constraint.protocol", "judgment.engineering" => "knowledge.loop.judgment.engineering", "judgment.agent-behavior" => "knowledge.loop.judgment.agent-behavior", "evidence" => "knowledge.loop.evidence", "execution" => "knowledge.loop.execution.runbook", "adoption" => "knowledge.loop.adoption", }.freeze
Class Method Summary collapse
Class Method Details
.loop(ctx:, call:) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/textus/lanes/knowledge/handlers.rb', line 18 def loop(ctx:, call:) nodes = LOOP_NODE_KEYS.map { |name, key| { "name" => name, "key" => key } } role = call&.role || "agent" runner = Runner.new(ctx.manifest, cursor_store: ctx.cursor_store) feedback = recent_feedback(ctx) { "loop" => nodes, "count" => nodes.size, "flow" => runner.flow, "current_node" => runner.current_position(role), "feedback" => feedback, } end |
.recent_feedback(ctx) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/textus/lanes/knowledge/handlers.rb', line 32 def recent_feedback(ctx) rows = ctx.entry_index&.search(schema: "loop-feedback", lane: "knowledge", query: nil, prefix: nil) return [] unless rows&.any? rows.map do |row| env = ctx.read(key: row["key"]) = env&. || {} { "key" => row["key"], "node" => ["node"], "confidence" => ["confidence"], "signal" => ["signal"], "summary" => env&.body || ["summary"], } end rescue Textus::Error [] end |