Class: Sxn::MCP::Tools::Sessions::CreateSession

Inherits:
MCP::Tool
  • Object
show all
Defined in:
lib/sxn/mcp/tools/sessions.rb

Overview

Create a new session

Class Method Summary collapse

Class Method Details

.call(name:, server_context:, description: nil, default_branch: nil, template_id: nil, linear_task: nil) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/sxn/mcp/tools/sessions.rb', line 84

def call(name:, server_context:, description: nil, default_branch: nil, template_id: nil, linear_task: nil)
  BaseTool.ensure_initialized!(server_context)

  BaseTool::ErrorMapping.wrap do
    session_manager = server_context[:session_manager]

    session = session_manager.create_session(
      name,
      description: description,
      default_branch: default_branch,
      template_id: template_id,
      linear_task: linear_task
    )

    # If template specified, apply it
    apply_template(server_context, name, template_id, default_branch || name) if template_id && server_context[:template_manager]

    BaseTool.text_response(
      "Session '#{name}' created successfully.\n" \
      "Path: #{session[:path]}\n" \
      "Branch: #{session[:default_branch]}"
    )
  end
end