Class: Clacky::Tools::RequestUserFeedback

Inherits:
Base
  • Object
show all
Defined in:
lib/clacky/tools/request_user_feedback.rb

Instance Method Summary collapse

Methods inherited from Base

#category, #description, #name, #parameters, #to_function_definition

Instance Method Details

#execute(question:, context: nil, options: nil, working_dir: nil) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/clacky/tools/request_user_feedback.rb', line 41

def execute(question:, context: nil, options: nil, working_dir: nil)
  # Build the feedback request message
  message_parts = []
  
  if context && !context.strip.empty?
    message_parts << "**Context:** #{context.strip}"
    message_parts << ""
  end
  
  message_parts << "**Question:** #{question.strip}"
  
  if options && !options.empty?
    message_parts << ""
    message_parts << "**Options:**"
    options.each_with_index do |option, index|
      message_parts << "  #{index + 1}. #{option}"
    end
  end
  
  formatted_message = message_parts.join("\n")
  
  {
    success: true,
    message: formatted_message,
    awaiting_feedback: true  # Special flag to indicate we're waiting for user
  }
end

#format_call(args) ⇒ Object



69
70
71
72
73
# File 'lib/clacky/tools/request_user_feedback.rb', line 69

def format_call(args)
  question = args[:question] || args["question"]
  preview = question.length > 60 ? "#{question[0..60]}..." : question
  "request_user_feedback(\"#{preview}\")"
end

#format_result(result) ⇒ Object



75
76
77
78
79
80
81
# File 'lib/clacky/tools/request_user_feedback.rb', line 75

def format_result(result)
  if result.is_a?(Hash) && result[:message]
    result[:message]
  else
    "Waiting for user feedback..."
  end
end