Class: RubynCode::Tools::Task

Inherits:
Base
  • Object
show all
Defined in:
lib/rubyn_code/tools/task.rb

Constant Summary collapse

TOOL_NAME =
'task'
DESCRIPTION =
'Manage tasks: create, update, complete, list, or get tasks ' \
'for tracking work items and dependencies.'
PARAMETERS =
{
  action: {
    type: :string, required: true,
    description: 'Action to perform: create, update, complete, list, get'
  },
  title: {
    type: :string, required: false,
    description: 'Task title (required for create)'
  },
  description: {
    type: :string, required: false,
    description: 'Task description'
  },
  task_id: {
    type: :string, required: false,
    description: 'Task ID (required for update, complete, get)'
  },
  status: {
    type: :string, required: false,
    description: 'Filter by status (for list) or set status (for update)'
  },
  session_id: {
    type: :string, required: false,
    description: 'Session ID for scoping tasks'
  },
  priority: {
    type: :integer, required: false,
    description: 'Task priority (higher = more important)'
  },
  blocked_by: {
    type: :array, required: false,
    description: 'Array of task IDs this task depends on (for create)'
  },
  result: {
    type: :string, required: false,
    description: 'Result text (for complete)'
  },
  owner: {
    type: :string, required: false,
    description: 'Owner identifier (for update)'
  }
}.freeze
RISK_LEVEL =
:write
REQUIRES_CONFIRMATION =
false
TASK_OPTIONAL_FIELDS =
%i[owner result session_id description].freeze

Instance Attribute Summary

Attributes inherited from Base

#project_root

Instance Method Summary collapse

Methods inherited from Base

description, #initialize, parameters, requires_confirmation?, risk_level, #safe_path, summarize, to_schema, tool_name, #truncate

Constructor Details

This class inherits a constructor from RubynCode::Tools::Base

Instance Method Details

#execute(action:, **params) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/rubyn_code/tools/task.rb', line 57

def execute(action:, **params)
  manager = Tasks::Manager.new(DB::Connection.instance)

  case action
  when 'create'  then execute_create(manager, **params)
  when 'update'  then execute_update(manager, **params)
  when 'complete' then execute_complete(manager, **params)
  when 'list'    then execute_list(manager, **params)
  when 'get'     then execute_get(manager, **params)
  else
    raise Error,
          "Unknown task action: #{action}. Valid: create, update, complete, list, get"
  end
end