SnakeBridge.CallbackRegistry (SnakeBridge v0.15.0)

Copy Markdown View Source

Registry for Elixir callbacks passed to Python.

Manages callback lifecycle and provides invocation support.

Summary

Functions

Returns a specification to start this module under a supervisor.

Ensures the callback tool is registered for the session.

Handles callback tool invocations from Python.

Invokes a registered callback with arguments.

Registers an Elixir function as a callback.

Unregisters a callback.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

ensure_tool_registered(session_id)

@spec ensure_tool_registered(String.t() | nil) :: :ok

Ensures the callback tool is registered for the session.

handle_tool(params)

@spec handle_tool(map()) :: map()

Handles callback tool invocations from Python.

invoke(callback_id, args)

@spec invoke(String.t(), list()) :: {:ok, term()} | {:error, term()}

Invokes a registered callback with arguments.

register(fun, owner_pid \\ self())

@spec register(function(), pid()) :: {:ok, String.t()}

Registers an Elixir function as a callback.

start_link(opts \\ [])

unregister(callback_id)

@spec unregister(String.t()) :: :ok

Unregisters a callback.