Current section
Files
Jump to
Current section
Files
src/mcp_toolkit@transport@stdio.erl
-module(mcp_toolkit@transport@stdio).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/mcp_toolkit/transport/stdio.gleam").
-export([read_message/0]).
-file("src/mcp_toolkit/transport/stdio.gleam", 9).
-spec batch_loop(binary()) -> {ok, binary()} | {error, nil}.
batch_loop(Acc) ->
case mcp_ffi:read_line() of
{ok, <<"]"/utf8>>} ->
{ok, <<Acc/binary, "]"/utf8>>};
{ok, Line} ->
batch_loop(<<Acc/binary, Line/binary>>);
{error, _} ->
{error, nil}
end.
-file("src/mcp_toolkit/transport/stdio.gleam", 1).
-spec read_message() -> {ok, binary()} | {error, nil}.
read_message() ->
case mcp_ffi:read_line() of
{error, _} ->
{error, nil};
{ok, <<"["/utf8>>} ->
batch_loop(<<"["/utf8>>);
{ok, Msg} ->
{ok, Msg}
end.