{
  "run_meta": {
    "run_timestamp": "2026-04-04T14:29:21.419470+00:00",
    "base_url": "http://127.0.0.1:8485",
    "config": "tests/results/20260404T140545Z/runtime_test_genesis.jsonc",
    "binary": "didactyl_static_x86_64_debug",
    "test_count": 43
  },
  "results": [
    {
      "suite": "test_conversation",
      "name": "simple_greeting",
      "status": "pass",
      "message": "greeting response ok",
      "duration_seconds": 4.245289196027443,
      "agent_errors": [],
      "details": {
        "response": "Hello! I'm a test agent built on the Didactyl platform. I don't have a specific personal name, but you can think of me as your Didactyl test agent. \n\nI'm here to help you with various tasks using the "
      }
    },
    {
      "suite": "test_conversation",
      "name": "agent_responds_about_itself",
      "status": "pass",
      "message": "self description ok",
      "duration_seconds": 27.058145482034888,
      "agent_errors": [],
      "details": {
        "response": "i'm **didactyl**, a nostr-native ai agent. here's what i do:\n\n**core identity:**\n- i'm an autonomous agent built on the nostr protocol, operating with cryptographic keypairs for identity and authentic"
      }
    },
    {
      "suite": "test_conversation",
      "name": "empty_message_handling",
      "status": "pass",
      "message": "empty message handled",
      "duration_seconds": 4.667415744974278,
      "agent_errors": [],
      "details": {
        "success": true
      }
    },
    {
      "suite": "test_conversation",
      "name": "very_long_message",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 76.51407337700948,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_errors",
      "name": "invalid_json_body",
      "status": "pass",
      "message": "invalid json rejected",
      "duration_seconds": 0.3308889329782687,
      "agent_errors": [],
      "details": {
        "status": 400
      }
    },
    {
      "suite": "test_errors",
      "name": "missing_message_field",
      "status": "pass",
      "message": "missing message rejected",
      "duration_seconds": 0.3314382230164483,
      "agent_errors": [],
      "details": {
        "status": 400
      }
    },
    {
      "suite": "test_errors",
      "name": "unknown_endpoint",
      "status": "pass",
      "message": "unknown endpoint 404",
      "duration_seconds": 0.33126351796090603,
      "agent_errors": [],
      "details": {
        "status": 404
      }
    },
    {
      "suite": "test_errors",
      "name": "webhook_nonexistent_dtag",
      "status": "pass",
      "message": "nonexistent d_tag 404",
      "duration_seconds": 0.33133913297206163,
      "agent_errors": [],
      "details": {
        "status": 404
      }
    },
    {
      "suite": "test_health",
      "name": "status_returns_200",
      "status": "pass",
      "message": "status success",
      "duration_seconds": 0.3312724310089834,
      "agent_errors": [],
      "details": {
        "keys": [
          "success",
          "name",
          "version",
          "pubkey",
          "relay_count",
          "connected_relays",
          "active_triggers"
        ]
      }
    },
    {
      "suite": "test_health",
      "name": "status_has_fields",
      "status": "pass",
      "message": "required fields present",
      "duration_seconds": 0.3312905229977332,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_health",
      "name": "context_current_returns_messages",
      "status": "pass",
      "message": "context current ok",
      "duration_seconds": 0.33117285498883575,
      "agent_errors": [],
      "details": {
        "message_count": 2
      }
    },
    {
      "suite": "test_health",
      "name": "context_parts_has_system_prompt",
      "status": "pass",
      "message": "context parts ok",
      "duration_seconds": 0.3312868010252714,
      "agent_errors": [],
      "details": {
        "parts": [
          "system_prompt",
          "dm_history"
        ]
      }
    },
    {
      "suite": "test_restart",
      "name": "clean_restart",
      "status": "pass",
      "message": "restart succeeded",
      "duration_seconds": 3.8490588110289536,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_restart",
      "name": "status_after_restart",
      "status": "pass",
      "message": "status stable after restart",
      "duration_seconds": 4.151956218993291,
      "agent_errors": [],
      "details": {
        "pubkey": "1eb171136dbb1ba695b2f14296adfe88a1f81d4220cc7d186b0e139b8ce0cdbc"
      }
    },
    {
      "suite": "test_restart",
      "name": "conversation_after_restart",
      "status": "pass",
      "message": "conversation works post-restart",
      "duration_seconds": 7.446270982036367,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_timeouts",
      "name": "response_within_timeout",
      "status": "pass",
      "message": "response within timeout",
      "duration_seconds": 3.016901847033296,
      "agent_errors": [],
      "details": {
        "elapsed": 3.0168789690360427
      }
    },
    {
      "suite": "test_timeouts",
      "name": "status_responds_fast",
      "status": "pass",
      "message": "status fast",
      "duration_seconds": 0.32919533003587276,
      "agent_errors": [],
      "details": {
        "elapsed": 0.3291910729603842
      }
    },
    {
      "suite": "test_timeouts",
      "name": "context_responds_fast",
      "status": "pass",
      "message": "context fast",
      "duration_seconds": 0.33155528403585777,
      "agent_errors": [],
      "details": {
        "elapsed": 0.3315501930192113
      }
    },
    {
      "suite": "test_tools_blossom",
      "name": "blossom_list",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.46405867597787,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_cashu",
      "name": "wallet_balance",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 7.047360337048303,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "cashu_wallet_balance"
        ],
        "final_response": "Your Cashu wallet balance is:\n\n- **Total**: 0 satoshis\n- **Wallet Status**: Not loaded\n- **Entries**: None\n\nThe wallet doesn't currently have any loaded mints or proofs. To start using the wallet, you"
      }
    },
    {
      "suite": "test_tools_identity",
      "name": "get_pubkey",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.42999882198637,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_identity",
      "name": "get_npub",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 6.77238113101339,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "nostr_npub"
        ],
        "final_response": "My npub is: **npub1r6chzymdhvd6d9dj79pfdt073zsls82zyrx86xrtpcfehr8qek7q3rkewf**"
      }
    },
    {
      "suite": "test_tools_identity",
      "name": "agent_identity",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.39259405602934,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_identity",
      "name": "agent_version",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 6.746906190994196,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "agent_version"
        ],
        "final_response": "I'm **Didactyl v0.2.20**, a sovereign AI agent daemon on Nostr. \n\nHere are my details:\n- **Name**: Didactyl\n- **Description**: A sovereign AI agent daemon on Nostr\n- **Version**: v0.2.20 (major: 0, mi"
      }
    },
    {
      "suite": "test_tools_identity",
      "name": "admin_identity",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 74.42458030197304,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_memory",
      "name": "task_list",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 8.36226256104419,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "task_list"
        ],
        "final_response": "Here's your current task list:\n\n**Active Tasks:**\n- [ ] **Task 1:** test harness probe (Status: pending)\n  - Created: 1775311162\n  - Last updated: 1775311162\n\nYou have one pending task in your task me"
      }
    },
    {
      "suite": "test_tools_memory",
      "name": "task_manage_add_remove",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 84.9701488899882,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_memory",
      "name": "memory_save_recall",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 10.4175310000428,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "memory_save",
          "memory_recall"
        ],
        "final_response": "Perfect! The memory system is working correctly. Here's what happened:\n\n**Memory Save Result:**\n- \u2705 Successfully saved to kind 30078 (encrypted agent config)\n- Event ID: `b4aba2eb45a6b41eec9792fa381cf"
      }
    },
    {
      "suite": "test_tools_nostr",
      "name": "nostr_post_kind1",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.96807993302355,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_nostr",
      "name": "nostr_query_recent",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 14.233945493993815,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "nostr_query"
        ],
        "final_response": "Great! I found the 3 most recent kind 1 notes. Here they are:\n\n## 3 Most Recent Kind 1 Notes\n\n**1. Relaymonitor Latency Test**\n- **Author:** `0b01aa38c2cc9abfbe4a10d54b182793479fb80da14a91d13be38ea555"
      }
    },
    {
      "suite": "test_tools_nostr",
      "name": "nostr_my_events",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 74.01618752401555,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_nostr",
      "name": "nostr_relay_status",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 6.104476057982538,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "nostr_relay_status"
        ],
        "final_response": "Great! Here's the status of my relay connections:\n\n**Overall Status:**\n- **Total Relays:** 2\n- **Connected:** 2/2 \u2705\n\n**Detailed Relay Status:**\n\n1. **wss://relay.damus.io**\n   - Status: Connected \u2705\n  "
      }
    },
    {
      "suite": "test_tools_nostr",
      "name": "nostr_dm_send",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 74.01507185597438,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_nostr",
      "name": "nostr_encode_npub",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.42353967600502,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_nostr",
      "name": "nostr_profile_get",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 74.39149832999101,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_skills",
      "name": "skill_list",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 7.244145753968041,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "skill_list"
        ],
        "final_response": "I have **1 available skill** that I'm currently using:\n\n**1. identity_and_rules** (Private - Agent-owned, Adopted)\n   - **Scope:** Private\n   - **Status:** Adopted and Active\n   - **Description:** Thi"
      }
    },
    {
      "suite": "test_tools_skills",
      "name": "trigger_list",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.40902369801188,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_skills",
      "name": "skill_create_and_remove",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.94731772097293,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_system",
      "name": "tool_list",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 44.292774281988386,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "tool_list"
        ],
        "final_response": "Great! Here's a comprehensive summary of all **83 available tools** organized by category:\n\n## **Nostr Core Tools**\n1. **nostr_post** - Publish events (notes, reactions, longform)\n2. **nostr_query** -"
      }
    },
    {
      "suite": "test_tools_system",
      "name": "model_get",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.43525368801784,
      "agent_errors": [],
      "details": {}
    },
    {
      "suite": "test_tools_system",
      "name": "model_list",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.39378822001163,
      "agent_errors": [
        "[2026-04-04 10:26:46] [ERROR] [llm.c:93] [didactyl] llm http request failed: status=401"
      ],
      "details": {}
    },
    {
      "suite": "test_tools_system",
      "name": "local_http_fetch",
      "status": "pass",
      "message": "ok",
      "duration_seconds": 11.767529862001538,
      "agent_errors": [],
      "details": {
        "tool_calls": [
          "local_http_fetch"
        ],
        "final_response": "Perfect! I've successfully fetched https://httpbin.org/get. Here's what was returned:\n\n**Response Details:**\n- **Status Code:** 200 (Success)\n- **Content Type:** application/json\n- **Response Body:**\n"
      }
    },
    {
      "suite": "test_tools_system",
      "name": "config_store_recall",
      "status": "timeout",
      "message": "timed out",
      "duration_seconds": 73.9523419579491,
      "agent_errors": [],
      "details": {}
    }
  ],
  "summary": {
    "pass": 27,
    "timeout": 16
  }
}