// Provider request replay preserves foreign fields while rejecting cross-protocol input and malformed image metadata. import albedo/openai_api as openai import albedo/openai_api/request import albedo/openai_api/types import gleam/dynamic/decode import gleam/json import gleam/string_tree fn body(protocol: types.Protocol, request: types.Request) -> String { let assert Ok(body) = request.encode(protocol, request) string_tree.to_string(body) } pub fn replay_preserves_unknown_fields_and_refuses_other_protocol_test() -> Result( string_tree.StringTree, types.Error, ) { let assert Ok(item) = json.parse( "{\"type\":\"reasoning\",\"encrypted_content\":\"opaque\",\"future\":{\"x\":1}}", types.replay_decoder(types.Responses), ) let request = openai.request("model", [types.Replay(item)]) let encoded = body(types.Responses, request) assert json.parse( encoded, decode.at(["input"], decode.list(decode.at(["future", "x"], decode.int))), ) == Ok([1]) let assert Error(types.InvalidRequest(_)) = request.encode(types.ChatCompletions, request) } pub fn validates_image_metadata_bounds_test() -> Result( types.Image, types.Error, ) { let assert Error(types.InvalidRequest(_)) = types.image("image/gif", "aGVsbG8=", 2, 3, 5) let assert Error(types.InvalidRequest(_)) = types.image("image/png", "aGVsbG8=", 10_000, 5000, 5) let assert Error(types.InvalidRequest(_)) = types.image("image/png", "aGVsbG8=", 2, 3, types.max_image_bytes + 1) }