Current section
Files
Jump to
Current section
Files
src/starflow@decoder.erl
-module(starflow@decoder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([response/1]).
-file("/home/ethanthoma/projects/flow/src/starflow/decoder.gleam", 6).
-spec content_type(gleam@dynamic:dynamic_()) -> {ok,
list(starflow@state:content())} |
{error, list(gleam@dynamic:decode_error())}.
content_type(Content) ->
_pipe = Content,
(gleam@dynamic:list(
gleam@dynamic:any(
[gleam@dynamic:decode2(
fun(_, Text) -> {text_content, Text} end,
gleam@dynamic:field(
<<"type"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:field(
<<"text"/utf8>>,
fun gleam@dynamic:string/1
)
),
gleam@dynamic:decode4(
fun(_, Id, Name, Input) ->
{tool_content, Id, Name, Input}
end,
gleam@dynamic:field(
<<"type"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:field(
<<"id"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:field(
<<"name"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:field(
<<"input"/utf8>>,
fun gleam@dynamic:dynamic/1
)
)]
)
))(_pipe).
-file("/home/ethanthoma/projects/flow/src/starflow/decoder.gleam", 28).
-spec stop_reason(gleam@dynamic:dynamic_()) -> {ok,
starflow@state:stop_reason()} |
{error, list(gleam@dynamic:decode_error())}.
stop_reason(Stop_reason) ->
_pipe = Stop_reason,
_pipe@1 = gleam@dynamic:string(_pipe),
gleam@result:then(_pipe@1, fun(Reason) -> case Reason of
<<"end_turn"/utf8>> ->
{ok, end_turn};
<<"max_tokens"/utf8>> ->
{ok, max_tokens};
<<"stop_sequence"/utf8>> ->
{ok, stop_sequence};
<<"tool_use"/utf8>> ->
{ok, tool_use};
_ ->
{error,
[{decode_error,
<<"StopReason"/utf8>>,
<<"String"/utf8>>,
[]}]}
end end).
-file("/home/ethanthoma/projects/flow/src/starflow/decoder.gleam", 44).
-spec usage(gleam@dynamic:dynamic_()) -> {ok, starflow@state:usage()} |
{error, list(gleam@dynamic:decode_error())}.
usage(Usage) ->
_pipe = Usage,
(gleam@dynamic:decode4(
fun(Field@0, Field@1, Field@2, Field@3) -> {usage, Field@0, Field@1, Field@2, Field@3} end,
gleam@dynamic:field(<<"input_tokens"/utf8>>, fun gleam@dynamic:int/1),
gleam@dynamic:optional_field(
<<"cache_creation_input_tokens"/utf8>>,
fun gleam@dynamic:int/1
),
gleam@dynamic:optional_field(
<<"cache_read_input_tokens"/utf8>>,
fun gleam@dynamic:int/1
),
gleam@dynamic:field(<<"output_tokens"/utf8>>, fun gleam@dynamic:int/1)
))(_pipe).
-file("/home/ethanthoma/projects/flow/src/starflow/decoder.gleam", 60).
-spec response(gleam@dynamic:dynamic_()) -> {ok, starflow@state:response()} |
{error, list(gleam@dynamic:decode_error())}.
response(Body) ->
_pipe = Body,
(gleam@dynamic:decode5(
fun(Field@0, Field@1, Field@2, Field@3, Field@4) -> {response, Field@0, Field@1, Field@2, Field@3, Field@4} end,
gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(<<"content"/utf8>>, fun content_type/1),
gleam@dynamic:field(<<"model"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:optional_field(<<"stop_reason"/utf8>>, fun stop_reason/1),
gleam@dynamic:field(<<"usage"/utf8>>, fun usage/1)
))(_pipe).