a2a-baseline.json
{
"baseline_pass": true,
"per_node": [
{
"spec_version": "1.4.0",
"agent_type": "ironclaw",
"agent_id": "ai:alice",
"node_index": "1",
"framework_version": "ironclaw 0.26.0",
"ai_memory_version": "v0.6.2",
"peer_urls": "https://10.10.1.3:9077,https://10.10.1.5:9077,https://10.10.1.2:9077",
"config_file_sha256": "1d866bd2aaa8fde08c3f57c719e6744f8fa9a1f84e5b399db1644cf68c2650ef",
"config_attestation": {
"framework_is_authentic": true,
"mcp_server_ai_memory_registered": true,
"llm_backend_is_xai_grok": true,
"llm_is_default_provider": true,
"mcp_command_is_ai_memory": true,
"agent_id_stamped": true,
"federation_live": true,
"ufw_disabled": true,
"iptables_flushed": true,
"dead_man_switch_scheduled": true
},
"negative_invariants": {
"_description": "Alternative A2A channels must be OFF so a passing scenario is only passing via ai-memory shared memory. Any true here = thesis-preserving.",
"a2a_protocol_off": true,
"sub_agent_or_sessions_spawn_off": true,
"alternative_channels_off": true,
"tool_allowlist_is_memory_only": true,
"a2a_gate_profile_locked": true
},
"functional_probes": {
"xai_grok_chat_reachable": true,
"xai_grok_sample_reply": "READY",
"substrate_http_canary_f2a": true,
"substrate_http_canary_uuid": "e61c1b12-d12c-42a1-916d-9574ee1907f2",
"agent_mcp_canary_f2b": false,
"agent_mcp_canary_uuid": "1e04d00d-a1a0-4f51-8394-487f2608dcd3",
"agent_canary_response_head": "error: unrecognized subcommand 'chat' tip: a similar subcommand exists: 'channels' Usage: ironclaw [OPTIONS] [COMMAND] For more information, try '--help'. ",
"_f2b_note": "F2b is LLM-dependent and non-blocking. F2a (deterministic HTTP substrate) gates baseline_pass.",
"mesh_connectivity_f4": true,
"mesh_edges_ok": 3,
"mesh_edges_total": 3,
"mesh_edges_detail": "10.10.1.3:9077:OK,10.10.1.5:9077:OK,10.10.1.2:9077:OK",
"_f4_note": "F4 verifies this local nodes N-1 OUTBOUND mesh edges to every peer via both GET health and POST sync_push dry_run. Aggregator ANDs across N nodes to confirm full N*(N-1) bidirectional reachability. Gates baseline_pass.",
"ai_memory_mcp_stdio_f5": true,
"ai_memory_mcp_stdio_init_ok": true,
"ai_memory_mcp_stdio_tools_ok": true,
"ai_memory_mcp_stdio_tools_found": "memory_agent_list,memory_agent_register,memory_archive_list,memory_archive_purge,memory_archive_restore,memory_archive_stats,memory_auto_tag,memory_capabilities,memory_consolidate,memory_delete,memory_detect_contradiction,memory_expand_query,memory_forget,memory_gc,memory_get,memory_get_links,memory_inbox,memory_link,memory_list,memory_list_subscriptions,memory_namespace_clear_standard,memory_namespace_get_standard,memory_namespace_set_standard,memory_notify,memory_pending_approve,memory_pending_list,memory_pending_reject,memory_promote,memory_recall,memory_search,memory_session_start,memory_stats,memory_store,memory_subscribe,memory_unsubscribe,memory_update",
"_f5_note": "F5 spawns the ai-memory stdio MCP subprocess using the framework-configured invocation and verifies initialize + tools/list return memory_store, memory_recall, memory_list. Deterministic (no LLM). Gates baseline_pass.",
"tls_mode": "tls",
"tls_handshake_f6": true,
"tls_handshake_f6_reason": "",
"mtls_enforcement_f7": true,
"mtls_enforcement_f7_reason": "",
"_f6_f7_note": "F6 verifies the TLS 1.3 handshake against the local serve + CA chain. F7 verifies mTLS enforcement — anonymous client rejected, whitelisted client accepted. Both gate baseline_pass when tls_mode != off / mtls respectively.",
"embedder_loaded_f8": true,
"embedder_loaded_f8_reason": "",
"_f8_note": "F8 verifies /api/v1/capabilities reports features.embedder_loaded=true — i.e. the MiniLM embedder initialised at serve startup. Gates baseline_pass unconditionally. Without this, scenario-18 silently black-holes (semantic recall returns 0 rows).",
"agent_mcp_ai_memory_canary": true,
"canary_uuid": "e61c1b12-d12c-42a1-916d-9574ee1907f2",
"canary_namespace": "_baseline_canary_f2a"
},
"baseline_pass": true
},
{
"spec_version": "1.4.0",
"agent_type": "ironclaw",
"agent_id": "ai:bob",
"node_index": "2",
"framework_version": "ironclaw 0.26.0",
"ai_memory_version": "v0.6.2",
"peer_urls": "https://10.10.1.4:9077,https://10.10.1.5:9077,https://10.10.1.2:9077",
"config_file_sha256": "dd56c28c81f590bb4ac77ba84f11f3d20c4760ca976bfdd0b3f7b1a9629a32b5",
"config_attestation": {
"framework_is_authentic": true,
"mcp_server_ai_memory_registered": true,
"llm_backend_is_xai_grok": true,
"llm_is_default_provider": true,
"mcp_command_is_ai_memory": true,
"agent_id_stamped": true,
"federation_live": true,
"ufw_disabled": true,
"iptables_flushed": true,
"dead_man_switch_scheduled": true
},
"negative_invariants": {
"_description": "Alternative A2A channels must be OFF so a passing scenario is only passing via ai-memory shared memory. Any true here = thesis-preserving.",
"a2a_protocol_off": true,
"sub_agent_or_sessions_spawn_off": true,
"alternative_channels_off": true,
"tool_allowlist_is_memory_only": true,
"a2a_gate_profile_locked": true
},
"functional_probes": {
"xai_grok_chat_reachable": true,
"xai_grok_sample_reply": "READY",
"substrate_http_canary_f2a": true,
"substrate_http_canary_uuid": "d572d2e5-4a8c-4625-b9ec-c23312009cb1",
"agent_mcp_canary_f2b": false,
"agent_mcp_canary_uuid": "1c4691f4-8210-4673-89b7-b0e8cb508ca2",
"agent_canary_response_head": "error: unrecognized subcommand 'chat' tip: a similar subcommand exists: 'channels' Usage: ironclaw [OPTIONS] [COMMAND] For more information, try '--help'. ",
"_f2b_note": "F2b is LLM-dependent and non-blocking. F2a (deterministic HTTP substrate) gates baseline_pass.",
"mesh_connectivity_f4": true,
"mesh_edges_ok": 3,
"mesh_edges_total": 3,
"mesh_edges_detail": "10.10.1.4:9077:OK,10.10.1.5:9077:OK,10.10.1.2:9077:OK",
"_f4_note": "F4 verifies this local nodes N-1 OUTBOUND mesh edges to every peer via both GET health and POST sync_push dry_run. Aggregator ANDs across N nodes to confirm full N*(N-1) bidirectional reachability. Gates baseline_pass.",
"ai_memory_mcp_stdio_f5": true,
"ai_memory_mcp_stdio_init_ok": true,
"ai_memory_mcp_stdio_tools_ok": true,
"ai_memory_mcp_stdio_tools_found": "memory_agent_list,memory_agent_register,memory_archive_list,memory_archive_purge,memory_archive_restore,memory_archive_stats,memory_auto_tag,memory_capabilities,memory_consolidate,memory_delete,memory_detect_contradiction,memory_expand_query,memory_forget,memory_gc,memory_get,memory_get_links,memory_inbox,memory_link,memory_list,memory_list_subscriptions,memory_namespace_clear_standard,memory_namespace_get_standard,memory_namespace_set_standard,memory_notify,memory_pending_approve,memory_pending_list,memory_pending_reject,memory_promote,memory_recall,memory_search,memory_session_start,memory_stats,memory_store,memory_subscribe,memory_unsubscribe,memory_update",
"_f5_note": "F5 spawns the ai-memory stdio MCP subprocess using the framework-configured invocation and verifies initialize + tools/list return memory_store, memory_recall, memory_list. Deterministic (no LLM). Gates baseline_pass.",
"tls_mode": "tls",
"tls_handshake_f6": true,
"tls_handshake_f6_reason": "",
"mtls_enforcement_f7": true,
"mtls_enforcement_f7_reason": "",
"_f6_f7_note": "F6 verifies the TLS 1.3 handshake against the local serve + CA chain. F7 verifies mTLS enforcement — anonymous client rejected, whitelisted client accepted. Both gate baseline_pass when tls_mode != off / mtls respectively.",
"embedder_loaded_f8": true,
"embedder_loaded_f8_reason": "",
"_f8_note": "F8 verifies /api/v1/capabilities reports features.embedder_loaded=true — i.e. the MiniLM embedder initialised at serve startup. Gates baseline_pass unconditionally. Without this, scenario-18 silently black-holes (semantic recall returns 0 rows).",
"agent_mcp_ai_memory_canary": true,
"canary_uuid": "d572d2e5-4a8c-4625-b9ec-c23312009cb1",
"canary_namespace": "_baseline_canary_f2a"
},
"baseline_pass": true
},
{
"spec_version": "1.4.0",
"agent_type": "ironclaw",
"agent_id": "ai:charlie",
"node_index": "3",
"framework_version": "ironclaw 0.26.0",
"ai_memory_version": "v0.6.2",
"peer_urls": "https://10.10.1.4:9077,https://10.10.1.3:9077,https://10.10.1.2:9077",
"config_file_sha256": "50f34947b134b1993d83a7209f66f10cbfdc8c67da06e97490f5b961e9fadc63",
"config_attestation": {
"framework_is_authentic": true,
"mcp_server_ai_memory_registered": true,
"llm_backend_is_xai_grok": true,
"llm_is_default_provider": true,
"mcp_command_is_ai_memory": true,
"agent_id_stamped": true,
"federation_live": true,
"ufw_disabled": true,
"iptables_flushed": true,
"dead_man_switch_scheduled": true
},
"negative_invariants": {
"_description": "Alternative A2A channels must be OFF so a passing scenario is only passing via ai-memory shared memory. Any true here = thesis-preserving.",
"a2a_protocol_off": true,
"sub_agent_or_sessions_spawn_off": true,
"alternative_channels_off": true,
"tool_allowlist_is_memory_only": true,
"a2a_gate_profile_locked": true
},
"functional_probes": {
"xai_grok_chat_reachable": true,
"xai_grok_sample_reply": "READY",
"substrate_http_canary_f2a": true,
"substrate_http_canary_uuid": "9d1259af-6cda-4ca2-a1ca-e6b23da616a1",
"agent_mcp_canary_f2b": false,
"agent_mcp_canary_uuid": "ad0ca1b9-efaf-43e9-b93b-bfc27bcdc76b",
"agent_canary_response_head": "error: unrecognized subcommand 'chat' tip: a similar subcommand exists: 'channels' Usage: ironclaw [OPTIONS] [COMMAND] For more information, try '--help'. ",
"_f2b_note": "F2b is LLM-dependent and non-blocking. F2a (deterministic HTTP substrate) gates baseline_pass.",
"mesh_connectivity_f4": true,
"mesh_edges_ok": 3,
"mesh_edges_total": 3,
"mesh_edges_detail": "10.10.1.4:9077:OK,10.10.1.3:9077:OK,10.10.1.2:9077:OK",
"_f4_note": "F4 verifies this local nodes N-1 OUTBOUND mesh edges to every peer via both GET health and POST sync_push dry_run. Aggregator ANDs across N nodes to confirm full N*(N-1) bidirectional reachability. Gates baseline_pass.",
"ai_memory_mcp_stdio_f5": true,
"ai_memory_mcp_stdio_init_ok": true,
"ai_memory_mcp_stdio_tools_ok": true,
"ai_memory_mcp_stdio_tools_found": "memory_agent_list,memory_agent_register,memory_archive_list,memory_archive_purge,memory_archive_restore,memory_archive_stats,memory_auto_tag,memory_capabilities,memory_consolidate,memory_delete,memory_detect_contradiction,memory_expand_query,memory_forget,memory_gc,memory_get,memory_get_links,memory_inbox,memory_link,memory_list,memory_list_subscriptions,memory_namespace_clear_standard,memory_namespace_get_standard,memory_namespace_set_standard,memory_notify,memory_pending_approve,memory_pending_list,memory_pending_reject,memory_promote,memory_recall,memory_search,memory_session_start,memory_stats,memory_store,memory_subscribe,memory_unsubscribe,memory_update",
"_f5_note": "F5 spawns the ai-memory stdio MCP subprocess using the framework-configured invocation and verifies initialize + tools/list return memory_store, memory_recall, memory_list. Deterministic (no LLM). Gates baseline_pass.",
"tls_mode": "tls",
"tls_handshake_f6": true,
"tls_handshake_f6_reason": "",
"mtls_enforcement_f7": true,
"mtls_enforcement_f7_reason": "",
"_f6_f7_note": "F6 verifies the TLS 1.3 handshake against the local serve + CA chain. F7 verifies mTLS enforcement — anonymous client rejected, whitelisted client accepted. Both gate baseline_pass when tls_mode != off / mtls respectively.",
"embedder_loaded_f8": true,
"embedder_loaded_f8_reason": "",
"_f8_note": "F8 verifies /api/v1/capabilities reports features.embedder_loaded=true — i.e. the MiniLM embedder initialised at serve startup. Gates baseline_pass unconditionally. Without this, scenario-18 silently black-holes (semantic recall returns 0 rows).",
"agent_mcp_ai_memory_canary": true,
"canary_uuid": "9d1259af-6cda-4ca2-a1ca-e6b23da616a1",
"canary_namespace": "_baseline_canary_f2a"
},
"baseline_pass": true
}
]
}
raw file