Current section
Files
Jump to
Current section
Files
src/glean@message.erl
-module(glean@message).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/glean/message.gleam").
-export([system/1, user/1, user_parts/1, assistant/1, tool_results/1]).
-export_type([message/0, user_content/0, assistant_content/0, tool_result/0, file_data/0]).
-type message() :: {system_message, binary()} |
{user_message, list(user_content())} |
{assistant_message, list(assistant_content())} |
{tool_result_message, list(tool_result())}.
-type user_content() :: {user_text, binary()} |
{user_file, file_data(), binary()}.
-type assistant_content() :: {assistant_text, binary()} |
{assistant_reasoning, binary()} |
{assistant_tool_call, binary(), binary(), binary()}.
-type tool_result() :: {tool_result_ok, binary(), binary(), binary()} |
{tool_result_error, binary(), binary(), binary()}.
-type file_data() :: {base64_data, binary()} | {url_data, binary()}.
-file("src/glean/message.gleam", 42).
-spec system(binary()) -> message().
system(Content) ->
{system_message, Content}.
-file("src/glean/message.gleam", 46).
-spec user(binary()) -> message().
user(Text) ->
{user_message, [{user_text, Text}]}.
-file("src/glean/message.gleam", 50).
-spec user_parts(list(user_content())) -> message().
user_parts(Content) ->
{user_message, Content}.
-file("src/glean/message.gleam", 54).
-spec assistant(binary()) -> message().
assistant(Text) ->
{assistant_message, [{assistant_text, Text}]}.
-file("src/glean/message.gleam", 58).
-spec tool_results(list(tool_result())) -> message().
tool_results(Results) ->
case not begin
_pipe = Results,
gleam@list:is_empty(_pipe)
end of
true -> nil;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"glean/message"/utf8>>,
function => <<"tool_results"/utf8>>,
line => 59,
value => _assert_fail,
start => 1319,
'end' => 1376,
pattern_start => 1330,
pattern_end => 1334})
end,
{tool_result_message, Results}.