Certify alpha7 compatibility candidates

This commit is contained in:
2026-07-18 15:10:59 -07:00
parent 49604f18bd
commit 4bd552f389
20 changed files with 599 additions and 121 deletions

View File

@@ -0,0 +1,33 @@
# frozen_string_literal: true
module OpenCodeCompat
module ExactLiveContract
class ContractError < StandardError; end
module_function
def assert_final_text!(actual, expected)
return if actual == expected
raise ContractError, "Expected final text to equal #{expected.inspect}, got #{actual.inspect}"
end
def assert_model_request_count!(value)
count = Integer(value, 10)
return if count == 1
raise ContractError, "Expected exactly one deterministic model request, got #{count}"
rescue ArgumentError, TypeError
raise ContractError, "Deterministic model request count is not an integer: #{value.inspect}"
end
end
end
if $PROGRAM_NAME == __FILE__
begin
OpenCodeCompat::ExactLiveContract.assert_model_request_count!(ARGV.fetch(0))
rescue IndexError, OpenCodeCompat::ExactLiveContract::ContractError => error
warn error.message
exit 1
end
end

View File

@@ -2,6 +2,7 @@
require "json"
require "time"
require_relative "exact_live_contract"
gem_path = File.expand_path(ENV.fetch("OPENCODE_RUBY_PATH"))
$LOAD_PATH.unshift(File.join(gem_path, "lib"))
@@ -32,9 +33,7 @@ begin
observed_parts << JSON.parse(JSON.generate(part))
end
unless result.full_text.include?(expected_text)
raise "Expected final text to include #{expected_text.inspect}, got #{result.full_text.inspect}"
end
OpenCodeCompat::ExactLiveContract.assert_final_text!(result.full_text, expected_text)
messages = client.get_messages(session_id)
assistant_messages = Array(messages).select { |message| message.dig(:info, :role) == "assistant" }