from __future__ import annotations from pathlib import Path _REPO_ROOT = Path(__file__).resolve().parents[3] _CONTROL_PLANE = _REPO_ROOT / "agent99-control-plane.ps1" _BOOTSTRAP = _REPO_ROOT / "agent99-bootstrap.ps1" def test_agent99_queue_uses_verified_outcome_not_exit_code() -> None: source = _CONTROL_PLANE.read_text(encoding="utf-8") assert "function Get-AgentOutcomeContract" in source assert 'schemaVersion = "agent99_outcome_contract_v1"' in source assert "ok = [bool]$outcome.resolved" in source assert "outcomeState = $outcome.state" in source assert "verifierPassed = [bool]$outcome.verifierPassed" in source assert "sourceEventResolutionRequired" in source assert '"verifying"' in source assert '"candidate_ready"' in source assert "ok = [bool]($exitCode -eq 0)" not in source def test_agent99_problem_counts_separate_verified_resolution() -> None: source = _CONTROL_PLANE.read_text(encoding="utf-8") assert 'schemaVersion = "agent99_problem_counts_v2"' in source assert "totalVerifiedResolved" in source assert "legacyResolvedCountMayIncludeTransportOnly" in source assert "verifiedResolved" in source assert "totalDegraded" in source assert "totalBlocked" in source assert "totalVerifying" in source assert "totalCandidateReady" in source def test_agent99_runtime_manifest_is_generated_and_self_checked() -> None: control_source = _CONTROL_PLANE.read_text(encoding="utf-8") bootstrap_source = _BOOTSTRAP.read_text(encoding="utf-8") assert "function Test-AgentRuntimeManifest" in control_source assert 'reason = "runtime_manifest_missing"' in control_source assert "runtimeManifest = Test-AgentRuntimeManifest" in control_source assert 'schemaVersion = "agent99_runtime_manifest_v1"' in bootstrap_source assert 'Join-Path $StateDir "runtime-manifest.json"' in bootstrap_source assert "Get-FileHash -Algorithm SHA256" in bootstrap_source assert "if (-not $runtimeMatched)" in bootstrap_source def test_agent99_outcome_contract_has_runtime_self_test() -> None: source = _CONTROL_PLANE.read_text(encoding="utf-8") assert "[switch]$SelfTestOutcomeContract" in source assert "function Invoke-AgentOutcomeContractSelfTest" in source assert '$operatorResolved.state -eq "resolved"' in source assert '$alertVerifying.state -eq "verifying"' in source assert '$failedPostCondition.state -eq "degraded"' in source assert '$transportFailed.state -eq "failed"' in source assert '$securityCandidate.state -eq "candidate_ready"' in source