harn-vm 0.10.122

Async bytecode virtual machine for the Harn programming language
Documentation
use serde_json::{json, Value};

use super::anthropic_test_support::base_payload;
use super::{
    AnthropicProvider, BedrockProvider, GeminiInteractions, GeminiProvider, OllamaProvider,
    OpenAiCompatibleProvider, OpenAiResponsesProvider,
};

fn assert_no_storage_metadata(value: &Value, path: &str) {
    match value {
        Value::Object(object) => {
            assert!(
                !object.contains_key("_harn"),
                "storage-only _harn metadata leaked at {path}: {value}"
            );
            assert!(
                !object.contains_key("provider_continuation"),
                "provider continuation leaked at {path}: {value}"
            );
            for (key, child) in object {
                assert_no_storage_metadata(child, &format!("{path}.{key}"));
            }
        }
        Value::Array(items) => {
            for (index, child) in items.iter().enumerate() {
                assert_no_storage_metadata(child, &format!("{path}[{index}]"));
            }
        }
        _ => {}
    }
}

#[test]
fn storage_only_message_facts_never_cross_provider_egress() {
    let mut request = base_payload();
    request.messages = vec![
        json!({
            "role": "assistant",
            "content": "checking",
            "provider_continuation": {
                "anthropic": {
                    "content_blocks": [{
                        "type": "thinking",
                        "thinking": "private",
                        "signature": "signed"
                    }]
                }
            },
            "_harn": {
                "kind": "assistant",
                "tool_calls": [{"id": "call_1", "name": "verify", "arguments": {}}]
            }
        }),
        json!({
            "role": "tool_result",
            "tool_use_id": "call_1",
            "tool_call_id": "call_1",
            "name": "verify",
            "content": "passed",
            "is_error": false,
            "_harn": {
                "kind": "tool_result",
                "tool_call_id": "call_1",
                "tool_name": "verify",
                "outcome": "ok",
                "data": {"passed": 11, "failed": 0}
            }
        }),
    ];

    let bodies = [
        ("anthropic", AnthropicProvider::build_request_body(&request)),
        (
            "openai_compatible",
            OpenAiCompatibleProvider::build_request_body(&request),
        ),
        (
            "openai_responses",
            OpenAiResponsesProvider::build_request_body(&request),
        ),
        ("ollama", OllamaProvider::build_request_body(&request)),
        ("bedrock", BedrockProvider::build_request_body(&request)),
        ("gemini", GeminiProvider::build_request_body(&request)),
        (
            "gemini_interactions",
            GeminiInteractions::build_request_body(&request),
        ),
    ];

    for (provider, body) in bodies {
        assert_no_storage_metadata(&body, provider);
    }
}