Correct metered Sonnet 5 admission and prepare native action packet
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e332-3365-77c0-8491-084e9ea33ac1
This commit is contained in:
tegwick 2026-09-27 17:00:33 +02:00
parent 46a54acc0c
commit 11cc0d5452
13 changed files with 2111 additions and 3 deletions

View file

@ -0,0 +1,94 @@
import copy
import importlib.util
from pathlib import Path
import pytest
ROOT = Path(__file__).resolve().parents[1]
spec = importlib.util.spec_from_file_location('metered_review', ROOT / 'tools/prepare_metered_activation.py')
review = importlib.util.module_from_spec(spec)
spec.loader.exec_module(review)
PROVIDER = dict(model='claude-sonnet-5', context_tokens=1_000_000,
max_output_tokens=128_000, input_microusd_per_token=4,
output_microusd_per_token=10, source='fixture:provider-facts')
OWNER = {'messages_policy': dict(PROVIDER, max_output_tokens=32_000)}
SPEND = dict(max_liability_usd='5.74', eur_per_usd='0.87', per_run_eur='5')
def test_installed_200k_context_is_not_a_hard_input_bound():
owner = copy.deepcopy(OWNER)
owner['messages_policy']['context_tokens'] = 200_000
result = review.review_policy(owner, SPEND, PROVIDER)
assert result['maximum_request_microusd'] == 1_120_000
assert result['failures'] == ['input_reservation_below_provider_context']
assert not result['passed']
def test_full_context_fits_once_and_does_not_grant_authority():
result = review.review_policy(OWNER, SPEND, PROVIDER)
assert result['passed']
assert result['maximum_request_microusd'] == 4_320_000
assert result['maximum_request_eur_at_configured_fx'] == '3.7584'
assert result['full_output_requests_that_fit'] == 1
assert result['authority_granted'] is False
@pytest.mark.parametrize('key,value,reason', [
('model', 'other', 'model_mismatch'),
('input_microusd_per_token', 2, 'understated_input_microusd_per_token'),
('output_microusd_per_token', 9, 'understated_output_microusd_per_token'),
('max_output_tokens', 128001, 'output_exceeds_provider_limit'),
])
def test_invalid_provider_compatibility_refuses(key, value, reason):
owner = copy.deepcopy(OWNER)
owner['messages_policy'][key] = value
assert reason in review.review_policy(owner, SPEND, PROVIDER)['failures']
def test_no_capacity_and_invalid_fx_refuse():
assert 'no_full_output_request_fits' in review.review_policy(
OWNER, dict(SPEND, max_liability_usd='1'), PROVIDER)['failures']
assert 'parent_exceeds_eur_cap' in review.review_policy(
OWNER, dict(SPEND, eur_per_usd='1'), PROVIDER)['failures']
with pytest.raises(ValueError):
review.review_policy(OWNER, dict(SPEND, eur_per_usd='NaN'), PROVIDER)
def test_packet_has_six_distinct_unapproved_actions_and_unchanged_human_controls():
packet = review.build_packet(ROOT / 'catalog', 'glas-claude-agent-dev-anthropic',
OWNER, SPEND, PROVIDER)
actions = packet['actions']
assert len(actions) == 6
assert len({(a['catalog'], a['action']) for a in actions}) == 6
for row in actions:
request = row['request']
assert request['resource']['id'] == 'catalog:' + row['catalog']
assert request['action'] == row['action']
assert bool(request['context'].get('human_control')) == (row['catalog'] == 'glas-claude-agent-dev-anthropic')
assert 'approval_id' not in request['context']
assert packet['approval_ids'] == []
assert not packet['dispatch_enabled']
assert not packet['host_pins_verified']
def test_snapshot_must_match_the_recipient_pin(tmp_path):
snapshot = tmp_path / 'owner.json'
snapshot.write_text('{}')
with pytest.raises(ValueError, match='snapshot_file_pin_mismatch'):
review.load_pinned_snapshot(snapshot, '0' * 64)
def test_actual_cli_output_and_beta_must_fit_policy():
facts = dict(PROVIDER, observed_cli_max_tokens=64000,
required_request_betas=['mid-conversation-system-2026-04-07'])
result = review.review_policy(OWNER, SPEND, facts)
assert result['failures'] == ['output_limit_below_observed_cli_request',
'observed_cli_beta_not_admitted']
owner = copy.deepcopy(OWNER)
owner['messages_policy'].update(max_output_tokens=64000,
allowed_betas=['mid-conversation-system-2026-04-07'])
result = review.review_policy(owner, SPEND, facts)
assert result['passed']
assert result['maximum_request_microusd'] == 4640000
assert result['maximum_request_eur_at_configured_fx'] == '4.0368'