Class: SharedTools::Tools::WorkflowManagerTool
- Inherits:
-
RubyLLM::Tool
- Object
- RubyLLM::Tool
- SharedTools::Tools::WorkflowManagerTool
- Defined in:
- lib/shared_tools/tools/workflow_manager_tool.rb
Class Method Summary collapse
Instance Method Summary collapse
- #execute(action:, workflow_id: nil, **step_data) ⇒ Object
-
#initialize(logger: nil, storage_dir: nil) ⇒ WorkflowManagerTool
constructor
A new instance of WorkflowManagerTool.
Constructor Details
#initialize(logger: nil, storage_dir: nil) ⇒ WorkflowManagerTool
Returns a new instance of WorkflowManagerTool.
66 67 68 69 70 |
# File 'lib/shared_tools/tools/workflow_manager_tool.rb', line 66 def initialize(logger: nil, storage_dir: nil) @logger = logger || RubyLLM.logger @storage_dir = storage_dir || ".workflows" FileUtils.mkdir_p(@storage_dir) unless Dir.exist?(@storage_dir) end |
Class Method Details
.name ⇒ Object
10 |
# File 'lib/shared_tools/tools/workflow_manager_tool.rb', line 10 def self.name = 'workflow_manager' |
Instance Method Details
#execute(action:, workflow_id: nil, **step_data) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/shared_tools/tools/workflow_manager_tool.rb', line 72 def execute(action:, workflow_id: nil, **step_data) @logger.info("WorkflowManagerTool#execute action=#{action} workflow_id=#{workflow_id}") case action when "start" start_workflow(step_data) when "step" return {success: false, error: "workflow_id required for 'step' action"} unless workflow_id process_workflow_step(workflow_id, step_data) when "status" return {success: false, error: "workflow_id required for 'status' action"} unless workflow_id get_workflow_status(workflow_id) when "complete" return {success: false, error: "workflow_id required for 'complete' action"} unless workflow_id complete_workflow(workflow_id) else {success: false, error: "Unknown action: #{action}"} end rescue => e @logger.error("Workflow operation failed: #{e.}") { success: false, error: "Workflow operation failed: #{e.}", error_type: e.class.name } end |