-module(lightspeed@ops@protocol_contract_harness). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/lightspeed/ops/protocol_contract_harness.gleam"). -export([run_scenario/1, run_matrix/0, scenario_label/1, pass_fail_label/1, signature/1, scenario/1, deterministic/1, outcomes/1, failed_scenarios/1, nondeterministic_failures/1, report_signature/1, snapshot_signature/0, snapshot_report_markdown/0]). -export_type([scenario/0, scenario_outcome/0, report/0, envelope_track/0, corpus_case/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC(" Deterministic protocol contract verification and fuzz harness for M43.\n"). -type scenario() :: protocol_conformance_matrix_expansion | envelope_fuzz_corpus_expansion | fuzz_regression_replay_certification | unified_protocol_evidence_surface. -type scenario_outcome() :: {scenario_outcome, scenario(), boolean(), boolean(), binary()}. -type report() :: {report, list(scenario_outcome()), integer(), integer()}. -type envelope_track() :: transport_envelope | event_envelope | diff_envelope | pipeline_envelope. -type corpus_case() :: {corpus_case, binary(), envelope_track(), binary(), binary()}. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 910). -spec count_nondeterministic(list(scenario_outcome())) -> integer(). count_nondeterministic(Outcomes) -> case Outcomes of [] -> 0; [Outcome | Rest] -> case erlang:element(4, Outcome) of true -> count_nondeterministic(Rest); false -> 1 + count_nondeterministic(Rest) end end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 899). -spec count_failed(list(scenario_outcome())) -> integer(). count_failed(Outcomes) -> case Outcomes of [] -> 0; [Outcome | Rest] -> case erlang:element(3, Outcome) of true -> count_failed(Rest); false -> 1 + count_failed(Rest) end end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 921). -spec join_with(binary(), list(binary())) -> binary(). join_with(Separator, Values) -> case Values of [] -> <<""/utf8>>; [Value] -> Value; [Value@1 | Rest] -> <<<>/binary, (join_with(Separator, Rest))/binary>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 929). -spec bool_label(boolean()) -> binary(). bool_label(Value) -> case Value of true -> <<"true"/utf8>>; false -> <<"false"/utf8>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 366). -spec expanded_corpus() -> list(corpus_case()). expanded_corpus() -> [{corpus_case, <<"transport_hello_rejected"/utf8>>, transport_envelope, lightspeed@protocol:encode(lightspeed@protocol:hello()), <<"error:unsupported_client_frame:hello"/utf8>>}, {corpus_case, <<"transport_diff_rejected"/utf8>>, transport_envelope, lightspeed@protocol:encode( {diff, <<"d-1"/utf8>>, <<"

x

"/utf8>>} ), <<"error:unsupported_client_frame:diff"/utf8>>}, {corpus_case, <<"transport_decode_error"/utf8>>, transport_envelope, <<"event|e-1|increment|bad\\"/utf8>>, <<"error:protocol_decode_failed:invalid_escape_sequence"/utf8>>}, {corpus_case, <<"transport_payload_too_large"/utf8>>, transport_envelope, lightspeed@protocol:encode( {event, <<"e-oversize"/utf8>>, <<"increment"/utf8>>, <<"{\"blob\":\"1234567890123456789012345678901234567890\"}"/utf8>>} ), <<"error:unsupported_client_frame:payload_too_large"/utf8>>}, {corpus_case, <<"transport_unknown_event"/utf8>>, transport_envelope, lightspeed@protocol:encode( {event, <<"e-unknown"/utf8>>, <<"unknown"/utf8>>, <<"{}"/utf8>>} ), <<"error:unsupported_client_event:unknown"/utf8>>}, {corpus_case, <<"event_increment_ok"/utf8>>, event_envelope, lightspeed@protocol:encode( {event, <<"evt-1"/utf8>>, <<"increment"/utf8>>, <<"{}"/utf8>>} ), <<"ok:event:increment"/utf8>>}, {corpus_case, <<"event_decrement_ok"/utf8>>, event_envelope, lightspeed@protocol:encode( {event, <<"evt-2"/utf8>>, <<"decrement"/utf8>>, <<"{}"/utf8>>} ), <<"ok:event:decrement"/utf8>>}, {corpus_case, <<"event_unknown_name"/utf8>>, event_envelope, lightspeed@protocol:encode( {event, <<"evt-3"/utf8>>, <<"unknown"/utf8>>, <<"{}"/utf8>>} ), <<"error:unsupported_event:unknown"/utf8>>}, {corpus_case, <<"event_bad_payload_shape"/utf8>>, event_envelope, lightspeed@protocol:encode( {event, <<"evt-4"/utf8>>, <<"increment"/utf8>>, <<"not-json"/utf8>>} ), <<"error:malformed_event_payload"/utf8>>}, {corpus_case, <<"event_missing_ref"/utf8>>, event_envelope, lightspeed@protocol:encode( {event, <<""/utf8>>, <<"increment"/utf8>>, <<"{}"/utf8>>} ), <<"error:missing_event_ref"/utf8>>}, {corpus_case, <<"event_wrong_frame_kind"/utf8>>, event_envelope, lightspeed@protocol:encode({ack, <<"ack-1"/utf8>>}), <<"error:unsupported_event_envelope:ack"/utf8>>}, {corpus_case, <<"event_decode_error"/utf8>>, event_envelope, <<"event|evt-5|increment|bad\\"/utf8>>, <<"error:protocol_decode_failed:invalid_escape_sequence"/utf8>>}, {corpus_case, <<"diff_replace_ok"/utf8>>, diff_envelope, lightspeed@diff:encode_stream( [{replace, <<"#app"/utf8>>, <<"
ok
"/utf8>>}] ), <<"ok_ops:1:replace"/utf8>>}, {corpus_case, <<"diff_reorder_ok"/utf8>>, diff_envelope, lightspeed@diff:encode_stream( [{reorder_keyed, <<"#items"/utf8>>, [<<"k1"/utf8>>, <<"k2"/utf8>>]}] ), <<"ok_ops:1:reorder_keyed"/utf8>>}, {corpus_case, <<"diff_unsupported_version"/utf8>>, diff_envelope, <<"ps|2|0|0"/utf8>>, <<"error:unsupported_version:2"/utf8>>}, {corpus_case, <<"diff_missing_dictionary_entry"/utf8>>, diff_envelope, <<"ps|1|0|1|r,0,1"/utf8>>, <<"error:missing_dictionary_entry:0"/utf8>>}, {corpus_case, <<"diff_malformed_operation"/utf8>>, diff_envelope, <<"ps|1|1|#app|1|z,0"/utf8>>, <<"error:malformed_operation:z,0"/utf8>>}, {corpus_case, <<"diff_bad_dynamic_slots"/utf8>>, diff_envelope, <<"ps|1|3|#app|fp|slot|1|u,0,1,1,2"/utf8>>, <<"error:bad_field_count:dynamic_slots:2:1"/utf8>>}, {corpus_case, <<"pipeline_checkpoint_ok"/utf8>>, pipeline_envelope, <<"checkpoint|run-1|extract_orders|1|10|100|source-a|101"/utf8>>, <<"ok:run=run-1|stage=extract_orders|sequence=1"/utf8>>}, {corpus_case, <<"pipeline_bad_field_count"/utf8>>, pipeline_envelope, <<"checkpoint|run-1|extract_orders|1|10|100|source-a"/utf8>>, <<"error:bad_field_count:pipeline_checkpoint:8:7"/utf8>>}, {corpus_case, <<"pipeline_invalid_integer"/utf8>>, pipeline_envelope, <<"checkpoint|run-1|extract_orders|a|10|100|source-a|101"/utf8>>, <<"error:invalid_integer:sequence:a"/utf8>>}, {corpus_case, <<"pipeline_invalid_checkpoint"/utf8>>, pipeline_envelope, <<"checkpoint|run-1|extract_orders|1|-1|100|source-a|101"/utf8>>, <<"error:invalid_checkpoint"/utf8>>}, {corpus_case, <<"pipeline_empty_stage"/utf8>>, pipeline_envelope, <<"checkpoint|run-1||1|10|100|source-a|101"/utf8>>, <<"error:invalid_checkpoint"/utf8>>}]. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 843). -spec error_cases(list(corpus_case()), list(corpus_case())) -> list(corpus_case()). error_cases(Cases, Acc_rev) -> case Cases of [] -> lists:reverse(Acc_rev); [Entry | Rest] -> case gleam_stdlib:string_starts_with( erlang:element(5, Entry), <<"error:"/utf8>> ) of true -> error_cases(Rest, [Entry | Acc_rev]); false -> error_cases(Rest, Acc_rev) end end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 888). -spec contains(list(binary()), binary()) -> boolean(). contains(Values, Target) -> case Values of [] -> false; [Value | Rest] -> case Value =:= Target of true -> true; false -> contains(Rest, Target) end end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 874). -spec drift_class(binary()) -> binary(). drift_class(Expected) -> case gleam@string:split(Expected, <<":"/utf8>>) of [<<"error"/utf8>>, Class | _] -> Class; _ -> <<"unknown"/utf8>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 857). -spec drift_classes_from_cases(list(corpus_case()), list(binary())) -> list(binary()). drift_classes_from_cases(Cases, Classes_rev) -> case Cases of [] -> lists:reverse(Classes_rev); [Entry | Rest] -> Next = drift_class(erlang:element(5, Entry)), Next_classes = case contains(Classes_rev, Next) of true -> Classes_rev; false -> [Next | Classes_rev] end, drift_classes_from_cases(Rest, Next_classes) end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 747). -spec parse_int_field(binary(), binary()) -> {ok, integer()} | {error, binary()}. parse_int_field(Field, Value) -> case gleam_stdlib:parse_int(Value) of {ok, Parsed} -> {ok, Parsed}; {error, _} -> {error, <<<<<<"error:invalid_integer:"/utf8, Field/binary>>/binary, ":"/utf8>>/binary, Value/binary>>} end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 693). -spec pipeline_envelope_case_label(binary()) -> binary(). pipeline_envelope_case_label(Payload) -> case gleam@string:split(Payload, <<"|"/utf8>>) of [<<"checkpoint"/utf8>>, Run_id, Stage, Sequence_text, Offset_text, Event_time_text, Idempotency_key, At_ms_text] -> case parse_int_field(<<"sequence"/utf8>>, Sequence_text) of {error, Reason} -> Reason; {ok, Sequence} -> case parse_int_field(<<"offset"/utf8>>, Offset_text) of {error, Reason@1} -> Reason@1; {ok, Offset} -> case parse_int_field( <<"event_time_ms"/utf8>>, Event_time_text ) of {error, Reason@2} -> Reason@2; {ok, Event_time_ms} -> case parse_int_field( <<"at_ms"/utf8>>, At_ms_text ) of {error, Reason@3} -> Reason@3; {ok, At_ms} -> Entry = lightspeed@pipeline@checkpoint:checkpoint( Run_id, Stage, Sequence, lightspeed@pipeline@checkpoint:watermark( Offset, Event_time_ms ), Idempotency_key, At_ms ), case lightspeed@pipeline@checkpoint:valid( Entry ) of true -> <<<<<<<<<<"ok:run="/utf8, (erlang:element( 2, Entry ))/binary>>/binary, "|stage="/utf8>>/binary, (erlang:element( 3, Entry ))/binary>>/binary, "|sequence="/utf8>>/binary, (erlang:integer_to_binary( erlang:element( 4, Entry ) ))/binary>>; false -> <<"error:invalid_checkpoint"/utf8>> end end end end end; Tokens -> <<"error:bad_field_count:pipeline_checkpoint:8:"/utf8, (erlang:integer_to_binary(erlang:length(Tokens)))/binary>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 682). -spec diff_envelope_case_label(binary()) -> binary(). diff_envelope_case_label(Payload) -> case lightspeed@diff:decode_stream(Payload) of {ok, Patches} -> <<<<<<"ok_ops:"/utf8, (erlang:integer_to_binary(erlang:length(Patches)))/binary>>/binary, ":"/utf8>>/binary, (join_with( <<","/utf8>>, gleam@list:map(Patches, fun lightspeed@diff:operation/1) ))/binary>>; {error, Error} -> <<"error:"/utf8, (lightspeed@diff:decode_error_to_string(Error))/binary>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 810). -spec frame_tag(lightspeed@protocol:frame()) -> binary(). frame_tag(Frame) -> case Frame of {hello, _, _} -> <<"hello"/utf8>>; {event, _, _, _} -> <<"event"/utf8>>; {diff, _, _} -> <<"diff"/utf8>>; {ack, _} -> <<"ack"/utf8>>; {failure, _, _} -> <<"failure"/utf8>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 824). -spec is_structured_payload(binary()) -> boolean(). is_structured_payload(Payload) -> gleam_stdlib:string_starts_with(Payload, <<"{"/utf8>>) andalso gleam_stdlib:string_ends_with( Payload, <<"}"/utf8>> ). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 820). -spec is_supported_event(binary()) -> boolean(). is_supported_event(Name) -> (Name =:= <<"increment"/utf8>>) orelse (Name =:= <<"decrement"/utf8>>). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 661). -spec event_envelope_case_label(binary()) -> binary(). event_envelope_case_label(Payload) -> case lightspeed@protocol:decode(Payload) of {ok, {event, Ref, Name, Event_payload}} -> case Ref =:= <<""/utf8>> of true -> <<"error:missing_event_ref"/utf8>>; false -> case is_supported_event(Name) of false -> <<"error:unsupported_event:"/utf8, Name/binary>>; true -> case is_structured_payload(Event_payload) of true -> <<"ok:event:"/utf8, Name/binary>>; false -> <<"error:malformed_event_payload"/utf8>> end end end; {ok, Frame} -> <<"error:unsupported_event_envelope:"/utf8, (frame_tag(Frame))/binary>>; {error, Error} -> <<"error:protocol_decode_failed:"/utf8, (lightspeed@protocol:decode_error_to_string(Error))/binary>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 797). -spec frame_labels(list(binary())) -> binary(). frame_labels(Frames) -> join_with( <<","/utf8>>, gleam@list:map( Frames, fun(Frame) -> case lightspeed@protocol:decode(Frame) of {ok, Decoded} -> frame_tag(Decoded); {error, Error} -> <<"decode_error:"/utf8, (lightspeed@protocol:decode_error_to_string(Error))/binary>> end end ) ). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 786). -spec first_failure_reason(list(binary())) -> binary(). first_failure_reason(Frames) -> case Frames of [] -> <<""/utf8>>; [Frame | Rest] -> case lightspeed@protocol:decode(Frame) of {ok, {failure, _, Reason}} -> Reason; _ -> first_failure_reason(Rest) end end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 754). -spec connect_transport(integer()) -> {ok, lightspeed@transport@matrix:adapter_state()} | {error, binary()}. connect_transport(Max_payload_bytes) -> case lightspeed@transport@matrix:connect_with_policies( lightspeed@agent@session:start( <<"m43-transport"/utf8>>, <<"proc-a"/utf8>>, rehydrate, 0, 100 ), {connect_request, <<"/counter"/utf8>>, <<"csrf"/utf8>>, <<"https://example.test"/utf8>>, 0, false}, web_socket_only, lightspeed@transport@contract:allow_all(<<"proc-a"/utf8>>), lightspeed@transport@contract:allow_protection(), {security_policy, true, true, Max_payload_bytes}, {timeout_policy, 30000, 60000} ) of {connected, State, _} -> {ok, State}; {rejected, Error} -> {error, lightspeed@transport@contract:error_to_string(Error)} end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 643). -spec transport_envelope_case_label(binary()) -> binary(). transport_envelope_case_label(Payload) -> Payload_limit = case gleam_stdlib:contains_string( Payload, <<"e-oversize"/utf8>> ) of true -> 16; false -> 64 end, case connect_transport(Payload_limit) of {error, Reason} -> <<"error:connect_failed:"/utf8, Reason/binary>>; {ok, State} -> Result = lightspeed@transport@matrix:'receive'(State, Payload, 1, 1), case first_failure_reason(erlang:element(3, Result)) of <<""/utf8>> -> <<"ok:"/utf8, (frame_labels(erlang:element(3, Result)))/binary>>; Reason@1 -> <<"error:"/utf8, Reason@1/binary>> end end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 634). -spec corpus_case_label(corpus_case()) -> binary(). corpus_case_label(Entry) -> case erlang:element(3, Entry) of transport_envelope -> transport_envelope_case_label(erlang:element(4, Entry)); event_envelope -> event_envelope_case_label(erlang:element(4, Entry)); diff_envelope -> diff_envelope_case_label(erlang:element(4, Entry)); pipeline_envelope -> pipeline_envelope_case_label(erlang:element(4, Entry)) end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 588). -spec replay_regression_cases( list(corpus_case()), integer(), integer(), list(binary()) ) -> {integer(), list(binary())}. replay_regression_cases(Cases, Index, Mismatches, Outcomes_rev) -> case Cases of [] -> {Mismatches, lists:reverse(Outcomes_rev)}; [Entry | Rest] -> First = corpus_case_label(Entry), Replayed = corpus_case_label(Entry), Next_mismatches = case ((First =:= erlang:element(5, Entry)) andalso (Replayed =:= erlang:element(5, Entry))) andalso (First =:= Replayed) of true -> Mismatches; false -> Mismatches + 1 end, replay_regression_cases( Rest, Index + 1, Next_mismatches, [<<<<<<<<<<<<(erlang:integer_to_binary(Index))/binary, ":"/utf8>>/binary, (erlang:element(2, Entry))/binary>>/binary, ":"/utf8>>/binary, First/binary>>/binary, ":replay="/utf8>>/binary, Replayed/binary>> | Outcomes_rev] ) end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 289). -spec evaluate_fuzz_regression_replay_certification() -> {boolean(), binary()}. evaluate_fuzz_regression_replay_certification() -> Regressions = error_cases(expanded_corpus(), []), {Replay_mismatches, Replay_outcomes} = replay_regression_cases( Regressions, 1, 0, [] ), Passed = ((Replay_mismatches =:= 0) andalso (erlang:length(Regressions) >= 10)) andalso (Replay_outcomes /= []), {Passed, <<<<<<<<<<"replay_mismatches="/utf8, (erlang:integer_to_binary(Replay_mismatches))/binary>>/binary, "|regressions="/utf8>>/binary, (erlang:integer_to_binary(erlang:length(Regressions)))/binary>>/binary, "|replay="/utf8>>/binary, (join_with(<<","/utf8>>, Replay_outcomes))/binary>>}. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 881). -spec append_labels(list(binary()), list(binary())) -> list(binary()). append_labels(Left, Right) -> case Left of [] -> Right; [Value | Rest] -> [Value | append_labels(Rest, Right)] end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 565). -spec evaluate_corpus_cases( list(corpus_case()), integer(), integer(), list(binary()) ) -> {integer(), list(binary())}. evaluate_corpus_cases(Cases, Index, Mismatches, Outcomes_rev) -> case Cases of [] -> {Mismatches, lists:reverse(Outcomes_rev)}; [Entry | Rest] -> Actual = corpus_case_label(Entry), Next_mismatches = case Actual =:= erlang:element(5, Entry) of true -> Mismatches; false -> Mismatches + 1 end, evaluate_corpus_cases( Rest, Index + 1, Next_mismatches, [<<<<<<<<(erlang:integer_to_binary(Index))/binary, ":"/utf8>>/binary, (erlang:element(2, Entry))/binary>>/binary, ":"/utf8>>/binary, Actual/binary>> | Outcomes_rev] ) end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 828). -spec cases_for_track( list(corpus_case()), envelope_track(), list(corpus_case()) ) -> list(corpus_case()). cases_for_track(Cases, Target, Acc_rev) -> case Cases of [] -> lists:reverse(Acc_rev); [Entry | Rest] -> case erlang:element(3, Entry) =:= Target of true -> cases_for_track(Rest, Target, [Entry | Acc_rev]); false -> cases_for_track(Rest, Target, Acc_rev) end end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 230). -spec evaluate_envelope_fuzz_corpus_expansion() -> {boolean(), binary()}. evaluate_envelope_fuzz_corpus_expansion() -> Transport_cases = cases_for_track(expanded_corpus(), transport_envelope, []), Event_cases = cases_for_track(expanded_corpus(), event_envelope, []), Diff_cases = cases_for_track(expanded_corpus(), diff_envelope, []), Pipeline_cases = cases_for_track(expanded_corpus(), pipeline_envelope, []), {Transport_mismatches, Transport_outcomes} = evaluate_corpus_cases( Transport_cases, 1, 0, [] ), {Event_mismatches, Event_outcomes} = evaluate_corpus_cases( Event_cases, 1, 0, [] ), {Diff_mismatches, Diff_outcomes} = evaluate_corpus_cases( Diff_cases, 1, 0, [] ), {Pipeline_mismatches, Pipeline_outcomes} = evaluate_corpus_cases( Pipeline_cases, 1, 0, [] ), Total_mismatches = ((Transport_mismatches + Event_mismatches) + Diff_mismatches) + Pipeline_mismatches, All_outcomes = append_labels( append_labels(Transport_outcomes, Event_outcomes), append_labels(Diff_outcomes, Pipeline_outcomes) ), Passed = ((((Total_mismatches =:= 0) andalso (erlang:length(Transport_cases) =:= 5)) andalso (erlang:length(Event_cases) =:= 7)) andalso (erlang:length(Diff_cases) =:= 6)) andalso (erlang:length(Pipeline_cases) =:= 5), {Passed, <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"mismatches="/utf8, (erlang:integer_to_binary( Total_mismatches ))/binary>>/binary, "|transport="/utf8>>/binary, (erlang:integer_to_binary( erlang:length( Transport_cases ) ))/binary>>/binary, "/"/utf8>>/binary, (erlang:integer_to_binary( Transport_mismatches ))/binary>>/binary, "|event="/utf8>>/binary, (erlang:integer_to_binary( erlang:length( Event_cases ) ))/binary>>/binary, "/"/utf8>>/binary, (erlang:integer_to_binary( Event_mismatches ))/binary>>/binary, "|diff="/utf8>>/binary, (erlang:integer_to_binary( erlang:length(Diff_cases) ))/binary>>/binary, "/"/utf8>>/binary, (erlang:integer_to_binary(Diff_mismatches))/binary>>/binary, "|pipeline="/utf8>>/binary, (erlang:integer_to_binary( erlang:length(Pipeline_cases) ))/binary>>/binary, "/"/utf8>>/binary, (erlang:integer_to_binary(Pipeline_mismatches))/binary>>/binary, "|cases="/utf8>>/binary, (join_with(<<","/utf8>>, All_outcomes))/binary>>}. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 345). -spec protocol_matrix_cases() -> list({binary(), binary()}). protocol_matrix_cases() -> Escaped_event_payload = lightspeed@protocol:encode( {event, <<"r|1"/utf8>>, <<"save"/utf8>>, <<"{\"path\":\"a|b\"}"/utf8>>} ), [{<<"hello|lightspeed|1"/utf8>>, <<"ok:hello:lightspeed:1"/utf8>>}, {<<"hello|lightspeed|0"/utf8>>, <<"error:unsupported_version:0"/utf8>>}, {<<"hello|lightspeed|2"/utf8>>, <<"error:unsupported_version:2"/utf8>>}, {<<"hello|lightspeed|abc"/utf8>>, <<"error:invalid_version:abc"/utf8>>}, {<<"hello|other|1"/utf8>>, <<"error:unsupported_protocol:other"/utf8>>}, {Escaped_event_payload, <<"ok:event:r|1:save"/utf8>>}, {<<"ack|r-1"/utf8>>, <<"ok:ack:r-1"/utf8>>}, {<<"failure|f-1|fault"/utf8>>, <<"ok:failure:f-1"/utf8>>}, {<<"noop|x"/utf8>>, <<"error:unknown_frame_tag:noop"/utf8>>}]. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 622). -spec protocol_matrix_case_label(binary()) -> binary(). protocol_matrix_case_label(Payload) -> case lightspeed@protocol:decode(Payload) of {ok, {hello, Protocol_name, Version}} -> <<<<<<"ok:hello:"/utf8, Protocol_name/binary>>/binary, ":"/utf8>>/binary, (erlang:integer_to_binary(Version))/binary>>; {ok, {event, Ref, Name, _}} -> <<<<<<"ok:event:"/utf8, Ref/binary>>/binary, ":"/utf8>>/binary, Name/binary>>; {ok, {diff, Ref@1, _}} -> <<"ok:diff:"/utf8, Ref@1/binary>>; {ok, {ack, Ref@2}} -> <<"ok:ack:"/utf8, Ref@2/binary>>; {ok, {failure, Ref@3, _}} -> <<"ok:failure:"/utf8, Ref@3/binary>>; {error, Error} -> <<"error:"/utf8, (lightspeed@protocol:decode_error_to_string(Error))/binary>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 541). -spec evaluate_protocol_cases( list({binary(), binary()}), integer(), integer(), list(binary()) ) -> {integer(), list(binary())}. evaluate_protocol_cases(Cases, Index, Mismatches, Outcomes_rev) -> case Cases of [] -> {Mismatches, lists:reverse(Outcomes_rev)}; [Entry | Rest] -> {Payload, Expected} = Entry, Actual = protocol_matrix_case_label(Payload), Next_mismatches = case Actual =:= Expected of true -> Mismatches; false -> Mismatches + 1 end, evaluate_protocol_cases( Rest, Index + 1, Next_mismatches, [<<<<(erlang:integer_to_binary(Index))/binary, ":"/utf8>>/binary, Actual/binary>> | Outcomes_rev] ) end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 208). -spec evaluate_protocol_conformance_matrix_expansion() -> {boolean(), binary()}. evaluate_protocol_conformance_matrix_expansion() -> {Mismatches, Outcomes} = evaluate_protocol_cases( protocol_matrix_cases(), 1, 0, [] ), Passed = ((Mismatches =:= 0) andalso (1 =:= 1)) andalso (1 =:= 1), {Passed, <<<<<<<<<<<<<<"mismatches="/utf8, (erlang:integer_to_binary(Mismatches))/binary>>/binary, "|protocol_version="/utf8>>/binary, (erlang:integer_to_binary(1))/binary>>/binary, "|patch_stream_version="/utf8>>/binary, (erlang:integer_to_binary(1))/binary>>/binary, "|cases="/utf8>>/binary, (join_with(<<","/utf8>>, Outcomes))/binary>>}. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 309). -spec evaluate_unified_protocol_evidence_surface() -> {boolean(), binary()}. evaluate_unified_protocol_evidence_surface() -> {Protocol_passed, Protocol_signature} = evaluate_protocol_conformance_matrix_expansion( ), {Envelope_passed, Envelope_signature} = evaluate_envelope_fuzz_corpus_expansion( ), {Replay_passed, Replay_signature} = evaluate_fuzz_regression_replay_certification( ), Drift_classes = drift_classes_from_cases( error_cases(expanded_corpus(), []), [] ), Passed = ((Protocol_passed andalso Envelope_passed) andalso Replay_passed) andalso (erlang:length(Drift_classes) >= 6), {Passed, <<<<<<<<<<<<<<<<<<<<<<<<<<"protocol="/utf8, (bool_label( Protocol_passed ))/binary>>/binary, "|envelopes="/utf8>>/binary, (bool_label(Envelope_passed))/binary>>/binary, "|replay="/utf8>>/binary, (bool_label(Replay_passed))/binary>>/binary, "|drift_classes="/utf8>>/binary, (join_with(<<","/utf8>>, Drift_classes))/binary>>/binary, "|protocol_signature="/utf8>>/binary, Protocol_signature/binary>>/binary, "|envelope_signature="/utf8>>/binary, Envelope_signature/binary>>/binary, "|replay_signature="/utf8>>/binary, Replay_signature/binary>>}. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 196). -spec evaluate(scenario()) -> {boolean(), binary()}. evaluate(Scenario) -> case Scenario of protocol_conformance_matrix_expansion -> evaluate_protocol_conformance_matrix_expansion(); envelope_fuzz_corpus_expansion -> evaluate_envelope_fuzz_corpus_expansion(); fuzz_regression_replay_certification -> evaluate_fuzz_regression_replay_certification(); unified_protocol_evidence_surface -> evaluate_unified_protocol_evidence_surface() end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 77). ?DOC(" Run one M43 scenario twice and require deterministic parity.\n"). -spec run_scenario(scenario()) -> scenario_outcome(). run_scenario(Scenario) -> {First_passed, First_signature} = evaluate(Scenario), {Second_passed, Second_signature} = evaluate(Scenario), Deterministic = (First_passed =:= Second_passed) andalso (First_signature =:= Second_signature), Passed = (First_passed andalso Second_passed) andalso Deterministic, {scenario_outcome, Scenario, Passed, Deterministic, First_signature}. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 59). ?DOC(" Run all M43 scenarios.\n"). -spec run_matrix() -> report(). run_matrix() -> Outcomes = begin _pipe = [protocol_conformance_matrix_expansion, envelope_fuzz_corpus_expansion, fuzz_regression_replay_certification, unified_protocol_evidence_surface], gleam@list:map(_pipe, fun run_scenario/1) end, {report, Outcomes, count_failed(Outcomes), count_nondeterministic(Outcomes)}. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 93). ?DOC(" Scenario label.\n"). -spec scenario_label(scenario()) -> binary(). scenario_label(Scenario) -> case Scenario of protocol_conformance_matrix_expansion -> <<"protocol_conformance_matrix_expansion"/utf8>>; envelope_fuzz_corpus_expansion -> <<"envelope_fuzz_corpus_expansion"/utf8>>; fuzz_regression_replay_certification -> <<"fuzz_regression_replay_certification"/utf8>>; unified_protocol_evidence_surface -> <<"unified_protocol_evidence_surface"/utf8>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 104). ?DOC(" Stable pass/fail label.\n"). -spec pass_fail_label(scenario_outcome()) -> binary(). pass_fail_label(Outcome) -> case erlang:element(3, Outcome) of true -> <<"pass"/utf8>>; false -> <<"fail"/utf8>> end. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 112). ?DOC(" Scenario signature accessor.\n"). -spec signature(scenario_outcome()) -> binary(). signature(Outcome) -> erlang:element(5, Outcome). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 117). ?DOC(" Scenario accessor.\n"). -spec scenario(scenario_outcome()) -> scenario(). scenario(Outcome) -> erlang:element(2, Outcome). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 122). ?DOC(" Determinism accessor.\n"). -spec deterministic(scenario_outcome()) -> boolean(). deterministic(Outcome) -> erlang:element(4, Outcome). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 127). ?DOC(" Report outcomes accessor.\n"). -spec outcomes(report()) -> list(scenario_outcome()). outcomes(Report) -> erlang:element(2, Report). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 132). ?DOC(" Failed scenario count.\n"). -spec failed_scenarios(report()) -> integer(). failed_scenarios(Report) -> erlang:element(3, Report). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 137). ?DOC(" Nondeterministic scenario count.\n"). -spec nondeterministic_failures(report()) -> integer(). nondeterministic_failures(Report) -> erlang:element(4, Report). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 142). ?DOC(" Stable report signature.\n"). -spec report_signature(report()) -> binary(). report_signature(Report) -> Entries = gleam@list:map( erlang:element(2, Report), fun(Outcome) -> <<<<<<<<<<<<(scenario_label(erlang:element(2, Outcome)))/binary, "="/utf8>>/binary, (pass_fail_label(Outcome))/binary>>/binary, ":deterministic="/utf8>>/binary, (bool_label(erlang:element(4, Outcome)))/binary>>/binary, ":"/utf8>>/binary, (erlang:element(5, Outcome))/binary>> end ), join_with(<<";"/utf8>>, Entries). -file("src/lightspeed/ops/protocol_contract_harness.gleam", 158). ?DOC(" Deterministic snapshot signature for M43 fixture drift gates.\n"). -spec snapshot_signature() -> binary(). snapshot_signature() -> <<<<<<"m43.snapshot.v"/utf8, (erlang:integer_to_binary(1))/binary>>/binary, "|"/utf8>>/binary, (report_signature(run_matrix()))/binary>>. -file("src/lightspeed/ops/protocol_contract_harness.gleam", 166). ?DOC(" Deterministic markdown report for M43 fixture scripts.\n"). -spec snapshot_report_markdown() -> binary(). snapshot_report_markdown() -> Report = run_matrix(), Failed = failed_scenarios(Report), Nondeterministic = nondeterministic_failures(Report), Status = case (Failed =:= 0) andalso (Nondeterministic =:= 0) of true -> <<"OK"/utf8>>; false -> <<"FAIL"/utf8>> end, <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"# Protocol Contract Fixture Report\n\n"/utf8, "snapshot_version: "/utf8>>/binary, (erlang:integer_to_binary( 1 ))/binary>>/binary, "\n"/utf8>>/binary, "status: "/utf8>>/binary, Status/binary>>/binary, "\n"/utf8>>/binary, "failed_scenarios: "/utf8>>/binary, (erlang:integer_to_binary( Failed ))/binary>>/binary, "\n"/utf8>>/binary, "nondeterministic_failures: "/utf8>>/binary, (erlang:integer_to_binary(Nondeterministic))/binary>>/binary, "\n\n"/utf8>>/binary, "snapshot_signature: "/utf8>>/binary, (snapshot_signature())/binary>>/binary, "\n\n"/utf8>>/binary, "report_signature: "/utf8>>/binary, (report_signature(Report))/binary>>/binary, "\n"/utf8>>.