Current section
Files
Jump to
Current section
Files
config/tools/reset_session.exs
defmodule Eai.Tool.ResetSession do
@behaviour Eai.Tool
@impl true
def schema do
%{
type: "function",
function: %{
name: "reset_session",
description: """
Force-kill a stuck or unresponsive PTY session.
Always call list_pty_sessions first to identify the correct pty_session_id.
After reset, the next execute_script will automatically create a fresh session.
""",
parameters: %{
type: "object",
properties: %{
pty_session_id: %{type: "string", description: "PTY session ID to reset."}
},
required: ["pty_session_id"]
}
}
}
end
@impl true
def execute(args, pty_session_id, _chat_session_id) do
target = Map.get(args, "pty_session_id", pty_session_id)
Eai.Naming.pool().force_reset(target)
%{
status: "ok",
message: "Session #{target} killed. Next execute_script creates fresh session."
}
|> Eai.Utils.sanitize_value()
|> Jason.encode!()
end
end