{ "cells": [ { "cell_type": "code", "execution_count": 10, "id": "55c11784-8857-4920-b164-971fb340c58d", "metadata": {}, "outputs": [], "source": [ ":dep autogpt = { version = \"0.1.14\", features = [\"gem\", \"gpt\"] }" ] }, { "cell_type": "markdown", "id": "385a825b-a583-47cd-a1a3-7d17ae0d9639", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "id": "df81b74f-dbec-45e7-bce6-e7b7ef819044", "metadata": {}, "source": [ "## AutoGPT CLI\n", "### Shell Command Execution" ] }, { "cell_type": "code", "execution_count": 8, "id": "e71120c7-2889-4463-bfb5-590522482ab9", "metadata": {}, "outputs": [], "source": [ "use std::process::{Command, Output, Stdio};\n", "\n", "fn execute_command(command: &str) -> Result<(), std::io::Error> {\n", " let status = Command::new(\"bash\")\n", " .arg(\"-c\")\n", " .arg(command)\n", " .stderr(Stdio::inherit())\n", " .status()?;\n", "\n", " if status.success() {\n", " Ok(())\n", " } else {\n", " Err(std::io::Error::from_raw_os_error(status.code().unwrap_or(1)))\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": null, "id": "f3df64ad-550e-4293-a2cb-23b068343185", "metadata": {}, "outputs": [], "source": [ "let command = \"cd ../ && cargo build --release --all-features\";\n", "\n", "if let Err(err) = execute_command(command) {\n", " eprintln!(\"Error executing command: {}\", err);\n", "}" ] }, { "cell_type": "code", "execution_count": 15, "id": "7aeae451-2ff7-47c1-a5bf-58e9876eec59", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "autogpt 0.1.14\n", "\n", " █████ ██ ██ ████████ ██████ ██████ ██████ ████████ \n", "██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ \n", "███████ ██ ██ ██ ██ ██ ██ ███ ██████ ██ \n", "██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ \n", "██ ██ ██████ ██ ██████ ██████ ██ ██ \n", "\n", "The `autogpt` CLI enables interaction with the Orchestrator and/or an AI Provider\n", "through a suite of built-in, specialized autonomous AI agents designed for various\n", "stages of project development.\n", "\n", "Modes of Operation:\n", "-------------------\n", "Autogpt supports 2 modes:\n", "\n", "1. Networking (Agentic) Mode (default):\n", " When no subcommand is provided, `autogpt` runs as a networked agent that connects\n", " to an orchestrator (`orchgpt`) over TLS-encrypted TCP. The orchestrator can run\n", " on the same or a separate machine.\n", "\n", "2. Networkless (Agentic) Mode:\n", " When a subcommand is specified, `autogpt` runs locally in standalone mode, without\n", " requiring a connection to an orchestrator.\n", "\n", "Usage: autogpt [OPTIONS] [COMMAND]\n", "Commands:\n", " new Create a new agent project\n", " build Compile generated agent source code\n", " run Run the compiled agent\n", " test Validate agent.yaml file\n", " man ManagerGPT: Generate complete project requirements, specs, and task plans.\n", " arch ArchitectGPT: Design system architecture and component structure.\n", " front FrontendGPT: Build front-end applications, UIs, and interactive flows.\n", " back BackendGPT: Develop APIs, services, and server-side logic.\n", " design DesignerGPT: Create UI mockups, wireframes, and visual assets.\n", " mail MailerGPT: Automate email content generation and outreach flows.\n", " git GitGPT: Automate Git commit messages, summaries, and version control tasks.\n", " opt OptimizerGPT: Specializes in refactoring monolithic codebases into clean, modular components.\n", " help Print this message or the help of the given subcommand(s)\n", "\n", "Options:\n", " -v, --verbose\n", " \n", "\n", " -p, --prompt \n", " Directly prompt the LLM without using an agentic workflow.\n", " \n", " Use this option to send a single, raw prompt to the LLM for immediate response. This bypasses any structured task handling or multi-step reasoning.\n", "\n", " -h, --help\n", " Print help (see a summary with '-h')\n", "\n", " -V, --version\n", " Print version\n", "\n", "AUTHORS:\n", " Mahmoud Harmouch \n" ] }, { "data": { "text/plain": [ "()" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "let command = \"../target/release/autogpt --help\";\n", "\n", "if let Err(err) = execute_command(command) {\n", " eprintln!(\"Error executing command: {}\", err);\n", "}" ] }, { "cell_type": "code", "execution_count": 31, "id": "21e98aab-88d9-4d95-b512-b48e84482405", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ah, the age-old question! There's no single, universally accepted answer to the meaning of life. It's a deeply personal and philosophical question that has been pondered by thinkers for centuries. Here's a breakdown of different perspectives and approaches to consider:\n", "\n", "\u001b[1m1. Nihilism:\u001b[0m\n", "\n", "\u001b[3m \u001b[0m\u001b[1m\u001b[3mCore Idea:\u001b[0m\u001b[3m Life\u001b[0m is inherently without objective meaning, purpose, or intrinsic value.\u001b[3m \u001b[0m\u001b[1m\u001b[3mImplication:\u001b[0m\u001b[3m There's no preordained reason for existence. You'\u001b[0mre free to create your own meaning, or accept the lack of inherent meaning.\u001b[3m \u001b[0m\u001b[1m\u001b[3mExample:\u001b[0m\u001b[3m Friedrich Nietzsche explored nihilism extensively but ultimately advocated for creating your own values in a meaningless world.\u001b[0m\n", "\n", "\u001b[1m2. Existentialism:\u001b[0m\n", "\n", "\n", "\n", "\u001b[3m \u001b[0m\u001b[1m\u001b[3mCore Idea:\u001b[0m\u001b[3m Existence precedes essence. We are born into the world without a predefined purpose, and we are free to define ourselves through our choices and actions.\u001b[0m\u001b[3m \u001b[0m\u001b[1m\u001b[3mImplication:\u001b[0m\u001b[3m We are responsible for creating our\u001b[0m own meaning and values. This freedom can be both liberating and anxiety-inducing.\u001b[3m \u001b[0m\u001b[1m\u001b[3mExample:\u001b[0m\u001b[3m Jean-Paul Sartre and Albert Camus were prominent existentialist philosophers.\u001b[0m\n", "\n", "\u001b[1m3. Absurdism:\u001b[0m\n", "\n", "\u001b[3m \u001b[0m\u001b[1m\u001b[3mCore Idea:\u001b[0m\u001b[3m The search for meaning in an inherently meaningless universe is inherently absurd.\u001b[0m* \u001b[1mImplication:\u001b[0m We should embrace the absurdity of existence and find joy and meaning in the present moment, even if the search for ultimate meaning is futile.\u001b[3m \u001b[0m\u001b[1m\u001b[3mExample:\u001b[0m\u001b[3m Albert Camus's \u001b[0m Idea:\u001b[1m Pleasure and happiness are the ultimate good and the primary goal of life.\u001b[0m\u001b[3m \u001b[0m\u001b[1m\u001b[3mImplication:\u001b[0m\u001b[3m Maximize pleasure and minimize pain.\u001b[0m\u001b[3m \u001b[0m\u001b[1m\u001b[3mCriticism:\u001b[0m\u001b[3m Can be seen as shallow or self-centered.\u001b[0m\n", "\n", "\u001b[1m5. Eudaimonism (Aristotelian Ethics):\u001b[0m\n", "\n", "* \u001b[1mCore Idea:\u001b[0m The Ethics to scientific research to creating art.\u001b[3m \u001b[0m\u001b[1m\u001b[3mExample:\u001b[0m\u001b[3m Viktor Frankl, a Holocaust survivor, argued in \u001b[0m love, friendship, and community.\u001b[3m \u001b[0m\u001b[1m\u001b[3mImplication:\u001b[0m\u001b[3m Nurture relationships, build strong bonds, and contribute to the well-being of others.\u001b[0m\n", "\n", "\u001b[1m8. Spiritual/Religious Perspectives:\u001b[0m\n", "\n", "\u001b[3m \u001b[0m\u001b[1m\u001b[3mCore Idea:\u001b[0m\u001b[3m Meaning is derived from a higher power, a divine plan, or adherence to religious\u001b[0m principles.\u001b[3m \u001b[0m\u001b[1m\u001b[3mImplication:\u001b[0m\u001b[3m Follow the teachings of your faith, worship God, and strive to live a life that is pleasing to the divine.\u001b[0m\u001b[3m \u001b[0m\u001b[1m\u001b[3mExample:\u001b[0m\u001b[3m Many religions offer answers to the meaning of life based on faith and divine revelation.\u001b[0m\n", "\n", "\u001b[1m9. Meaning Through Experience:\u001b[0m\n", "\n", "\u001b[3m \u001b[0m\u001b[1mCore Idea:\u001b[0m Life is about experiencing the world fully, embracing new challenges, and growing as a person.\u001b[3m \u001b[0m\u001b[1m\u001b[3mImplication:\u001b[0m\u001b[3m Seek out new experiences, learn new things, and push yourself outside of your comfort zone.\u001b[0m\n", "\n", "\u001b[1mIn Summary:\u001b[0m\n", "\n", "The meaning of life is not a fixed answer but rather a journey of exploration and discovery. Here are some questions to ask yourself:\n", "\n", "\u001b[3m \u001b[0m\u001b[1m\u001b[3mWhat do I value?\u001b[0m\u001b[3m \u001b[0m\u001b[1m\u001b[3mWhat am I passionate about?\u001b[0m\u001b[3m \u001b[0m\u001b[1m\u001b[3mWhat kind of impact do I want to have on the world?\u001b[0m\u001b[3m \u001b[0m\u001b[1m\u001b[3mWhat brings me joy and fulfillment\u001b[0m?\u001b[3m \u001b[0m\u001b[1m\u001b[3mWhat gives my life a sense of purpose?\u001b[0m\n", "\n", "Ultimately, the meaning of life is what \u001b[3myou\u001b[0m make it. It's about choosing your own values, pursuing your own goals, and living a life that is authentic and meaningful \u001b[3mto you\u001b[0m. Don't be afraid to experiment, to change your mind, and to keep searching for what resonates with you. Good luck on your quest!\n", "\n", "\n" ] }, { "data": { "text/plain": [ "()" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "let command = \"GEMINI_API_KEY=GEMINI_API_KEY ../target/release/autogpt -p 'what is the meaning of life?'\";\n", "\n", "if let Err(err) = execute_command(command) {\n", " eprintln!(\"Error executing command: {}\", err);\n", "}\n", "// Replace GEMINI_API_KEY above with your actual Gemini API key" ] }, { "cell_type": "markdown", "id": "889449a2-22d1-42f9-97b1-bd8e5ff4fd9a", "metadata": {}, "source": [ "## Run All Tests" ] }, { "cell_type": "code", "execution_count": 23, "id": "483490a1-440b-4e83-8429-a87b16dfb1b5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "running 0 tests\n", "\n", "test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 0 tests\n", "\n", "test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 0 tests\n", "\n", "test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 0 tests\n", "\n", "test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 0 tests\n", "\n", "test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 4 tests\n", "test test_access_properties ... ok\n", "test test_create_agent ... ok\n", "test test_memory ... ok\n", "test test_update_status ... ok\n", "\n", "test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 3 tests\n", "\u001b[2m2025-07-13T16:01:45.643446Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Diagrams installed successfully!\n", "\u001b[2m2025-07-13T16:01:45.703446Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Diagrams installed successfully!\n", "\u001b[2m2025-07-13T16:01:45.708628Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Diagrams installed successfully!\n", "\u001b[2m2025-07-13T16:01:45.790447Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:01:45.911423Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:01:45.916283Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:01:46.129559Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Executing task:\n", "\u001b[2m2025-07-13T16:01:46.129690Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m • Create a weather forecast website for global cities.\n", "test test_get_scope ... ok\n", "test test_get_urls ... ok\n", "\u001b[2m2025-07-13T16:01:54.864132Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Error generating diagram: Python error: File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/architect/./diagram.py\", line 23\n", " with Cluster(\"Web Replicas\"):\n", "IndentationError: unexpected indent\n", "\n", "\u001b[2m2025-07-13T16:01:54.864173Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Maximum retries reached. Exiting...\n", "\u001b[2m2025-07-13T16:01:54.864218Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 1\n", "- In Progress: 2\n", "\n", "Goals Summary:\n", "1. Generate diagram for architecture [⏳ In Progress]\n", "2. Determine communication between components [⏳ In Progress]\n", "3. Identify system components [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:02:04.541815Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Error generating diagram: Python error: Traceback (most recent call last):\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/architect/./diagram.py\", line 5, in \n", " from diagrams.generic.os import Users\n", "ImportError: cannot import name 'Users' from 'diagrams.generic.os' (/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/architect/.venv/lib/python3.12/site-packages/diagrams/generic/os.py)\n", "\n", "\u001b[2m2025-07-13T16:02:04.541859Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Maximum retries reached. Exiting...\n", "\u001b[2m2025-07-13T16:02:04.541888Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 2\n", "- In Progress: 1\n", "\n", "Goals Summary:\n", "1. Generate diagram for architecture [⏳ In Progress]\n", "2. Determine communication between components [✅ Completed]\n", "3. Identify system components [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:02:07.301164Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Gemini: No embedding returned.\n", "\u001b[2m2025-07-13T16:02:07.786942Z\u001b[0m \u001b[33m WARN\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Upsert failed -> check `PINECONE_INDEX_URL` and trial limits.\n", "\u001b[2m2025-07-13T16:02:15.696641Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Error generating diagram: Python error: Traceback (most recent call last):\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/architect/./diagram.py\", line 5, in \n", " from diagrams.generic.os import Users\n", "ImportError: cannot import name 'Users' from 'diagrams.generic.os' (/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/architect/.venv/lib/python3.12/site-packages/diagrams/generic/os.py)\n", "\n", "\u001b[2m2025-07-13T16:02:15.696682Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Maximum retries reached. Exiting...\n", "\u001b[2m2025-07-13T16:02:15.696710Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 3\n", "- In Progress: 0\n", "\n", "Goals Summary:\n", "1. Generate diagram for architecture [✅ Completed]\n", "2. Determine communication between components [✅ Completed]\n", "3. Identify system components [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:02:15.696735Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Objective complete!\n", "test test_architect_agent ... ok\n", "\n", "test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 33.04s\n", "\n", "\n", "running 2 tests\n", "test test_autogpt_zero_agents ... ok\n", "\u001b[2m2025-07-13T16:02:18.121563Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Diagrams installed successfully!\n", "\u001b[2m2025-07-13T16:02:18.205742Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:02:18.281554Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Executing task:\n", "\u001b[2m2025-07-13T16:02:18.281599Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m • Creates innovative website designs and user experiences\n", "\u001b[2m2025-07-13T16:02:20.905223Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Gemini: No embedding returned.\n", "\u001b[2m2025-07-13T16:02:21.398461Z\u001b[0m \u001b[33m WARN\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Upsert failed -> check `PINECONE_INDEX_URL` and trial limits.\n", "\u001b[2m2025-07-13T16:02:30.231745Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Error generating diagram: Python error: File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/architect/./diagram.py\", line 26\n", " with Cluster(\"Frontend Deployment (Website)\"):\\n web_deployment = Deployment(\"Web Deployment\")\n", " ^\n", "SyntaxError: unexpected character after line continuation character\n", "\n", "\u001b[2m2025-07-13T16:02:30.231798Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Maximum retries reached. Exiting...\n", "\u001b[2m2025-07-13T16:02:30.231863Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 1\n", "- In Progress: 2\n", "\n", "Goals Summary:\n", "1. Generate diagram for architecture [⏳ In Progress]\n", "2. Determine communication between components [⏳ In Progress]\n", "3. Identify system components [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:02:33.141482Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Gemini: No embedding returned.\n", "\u001b[2m2025-07-13T16:02:33.642070Z\u001b[0m \u001b[33m WARN\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Upsert failed -> check `PINECONE_INDEX_URL` and trial limits.\n", "\u001b[2m2025-07-13T16:02:42.015643Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Error generating diagram: Python error: Traceback (most recent call last):\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/architect/./diagram.py\", line 5, in \n", " from diagrams.generic.os import Users\n", "ImportError: cannot import name 'Users' from 'diagrams.generic.os' (/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/architect/.venv/lib/python3.12/site-packages/diagrams/generic/os.py)\n", "\n", "\u001b[2m2025-07-13T16:02:42.015684Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Maximum retries reached. Exiting...\n", "\u001b[2m2025-07-13T16:02:42.015714Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 2\n", "- In Progress: 1\n", "\n", "Goals Summary:\n", "1. Generate diagram for architecture [⏳ In Progress]\n", "2. Determine communication between components [✅ Completed]\n", "3. Identify system components [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:02:45.000265Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Gemini: No embedding returned.\n", "\u001b[2m2025-07-13T16:02:45.524818Z\u001b[0m \u001b[33m WARN\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Upsert failed -> check `PINECONE_INDEX_URL` and trial limits.\n", "\u001b[2m2025-07-13T16:02:57.235770Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Error generating diagram: Python error: File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/architect/./diagram.py\", line 29\n", " with Cluster(\"Frontend Deployment (Website)\"):\\n web_deployment = Deployment(\"Web Deployment\")\n", " ^\n", "SyntaxError: unexpected character after line continuation character\n", "\n", "\u001b[2m2025-07-13T16:02:57.235806Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Maximum retries reached. Exiting...\n", "\u001b[2m2025-07-13T16:02:57.235842Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 3\n", "- In Progress: 0\n", "\n", "Goals Summary:\n", "1. Generate diagram for architecture [✅ Completed]\n", "2. Determine communication between components [✅ Completed]\n", "3. Identify system components [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:02:57.235870Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"Lead UX/UI Designer\": Objective complete!\n", "test test_autogpt_with_agents ... ok\n", "\n", "test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 41.53s\n", "\n", "\n", "running 5 tests\n", "\u001b[2m2025-07-13T16:02:57.250793Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"Backend Developer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:02:57.250875Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"Backend Developer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:02:57.250788Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"Backend Developer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:02:57.251039Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"Backend Developer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:02:57.251050Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"Backend Developer\": 🛠️ Getting ready!\n", "test tests_backend_dev_one ... ok\n", "test test_get_routes_json ... ok\n", "test test_fix_code_bugs ... ok\n", "test test_improve_backend_code ... ok\n", "test test_generate_backend_code ... ok\n", "\n", "test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.46s\n", "\n", "\n", "running 2 tests\n", "\u001b[2m2025-07-13T16:03:08.949920Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m [*] \"Web Designer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:08.949980Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m [*] \"Web Designer\": Executing task:\n", "\u001b[2m2025-07-13T16:03:08.950509Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m • A kanban-style task management board. The board is divided into three columns: To Do, In Progress, and Done. Each column contains a list of tasks. The tasks in the To Do column are prioritized from highest to lowest, with the highest priority task at the top. The tasks in the In Progress column are listed in the order in which they were started. The tasks in the Done column are listed in the order in which they were completed.\n", "\u001b[2m2025-07-13T16:03:08.955556Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m [*] \"Web Designer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:18.940465Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m [*] \"Web Designer\": Image saved at workspace/designer/img.jpg\n", "test test_generate_image_from_text ... ok\n", "\u001b[2m2025-07-13T16:03:19.748807Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m [*] \"Web Designer\": Image saved at workspace/designer/img.jpg\n", "test test_execute_agent ... ok\n", "\n", "test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.02s\n", "\n", "\n", "running 4 tests\n", "\u001b[2m2025-07-13T16:03:19.972383Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"Frontend Developer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:19.991521Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"Frontend Developer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:19.993672Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"Frontend Developer\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:19.995163Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"Frontend Developer\": 🛠️ Getting ready!\n", "test tests_frontend_dev_one ... ok\n", "test test_generate_frontend_code ... ok\n", "test test_fix_code_bugs ... ok\n", "test test_improve_frontend_code ... ok\n", "\n", "test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 22.26s\n", "\n", "\n", "running 1 test\n", "\u001b[2m2025-07-13T16:03:42.037479Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mfunctions\u001b[0m\u001b[2m:\u001b[0m [*] \"Position\": Executing tasks: Task { description: \"Task\", scope: Some(Scope { crud: true, auth: false, external: true }), urls: Some([\"https://kevin-rs.dev\"]), frontend_code: None, backend_code: Some(\"fn main() {}\"), api_schema: Some([Route { dynamic: \"no\", method: \"GET\", body: Object {}, response: Object {}, path: \"/path\" }, Route { dynamic: \"yes\", method: \"POST\", body: Object {\"key\": String(\"value\")}, response: Object {\"success\": Bool(true)}, path: \"/path\" }]) }\n", "test test_functions_execution ... ok\n", "\n", "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s\n", "\n", "\n", "running 1 test\n", "\u001b[2m2025-07-13T16:03:43.529589Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m Directory 'workspace/' created successfully!\n", "\u001b[2m2025-07-13T16:03:43.531410Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:03:43.599788Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m [*] \"GitGPT\": GitGPT initialized.\n", "\u001b[2m2025-07-13T16:03:43.696778Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m [*] \"GitGPT\": Executing Git commit task.\n", "\u001b[2m2025-07-13T16:03:43.696830Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m • Initial commit\n", "\u001b[2m2025-07-13T16:03:43.696841Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m • Added hello.txt\n", "\u001b[2m2025-07-13T16:03:43.696848Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m Agent is idle, proceeding to stage and commit files.\n", "\u001b[2m2025-07-13T16:03:43.699799Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m [*] \"GitGPT\": Commit created: 77e949c08cab7310c2f4a4f72e7e503cc1ff0bd1\n", "test test_git_gpt_execute ... ok\n", "\n", "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s\n", "\n", "\n", "running 1 test\n", "test test_mailer_gpt ... ignored\n", "\n", "test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 1 test\n", "\u001b[2m2025-07-13T16:03:43.714643Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::manager\u001b[0m\u001b[2m:\u001b[0m [*] \"Manager\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:45.176343Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::manager\u001b[0m\u001b[2m:\u001b[0m [*] \"Manager\": Executing task: \"Develop a full stack app that fetches today's weather in python using FastAPI.\"\n", "\u001b[2m2025-07-13T16:03:52.039181Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"ArchitectGPT\": Diagrams installed successfully!\n", "\u001b[2m2025-07-13T16:03:52.125752Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"ArchitectGPT\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:52.361079Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m [*] \"DesignerGPT\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:52.361676Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:52.605281Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": 🛠️ Getting ready!\n", "\u001b[2m2025-07-13T16:03:52.730686Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m [*] \"GitGPT\": GitGPT initialized.\n", "\u001b[2m2025-07-13T16:03:56.017494Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"ArchitectGPT\": Executing task:\n", "\u001b[2m2025-07-13T16:03:56.017540Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m • Using FastAPI, build a full-stack Python application to fetch and display today's weather.\n", "\u001b[2m2025-07-13T16:03:56.017552Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m • Step 1: Set up the FastAPI backend to fetch weather data from a weather API.\n", "\u001b[2m2025-07-13T16:03:56.017560Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m • Step 2: Develop a frontend interface to display the weather information fetched from the backend.\n", "\u001b[2m2025-07-13T16:04:05.308334Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"ArchitectGPT\": Diagram generated successfully!\n", "\u001b[2m2025-07-13T16:04:05.308395Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::architect\u001b[0m\u001b[2m:\u001b[0m [*] \"ArchitectGPT\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 1\n", "- In Progress: 2\n", "\n", "Goals Summary:\n", "1. Generate diagram for architecture [⏳ In Progress]\n", "2. Determine communication between components [⏳ In Progress]\n", "3. Identify system components [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:04:07.186325Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m [*] \"DesignerGPT\": Executing task:\n", "\u001b[2m2025-07-13T16:04:07.186372Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m • Developing with FastAPI, create a full-stack Python application to fetch and display today's weather.\n", "\u001b[2m2025-07-13T16:04:07.186383Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m • Step 1: Design the user interface (UI) for displaying weather information.\n", "\u001b[2m2025-07-13T16:04:07.186391Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m • Step 2: Create wireframes and mockups of the application layout and user flow.\n", "\u001b[2m2025-07-13T16:04:14.728020Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::designer\u001b[0m\u001b[2m:\u001b[0m [*] \"DesignerGPT\": Image saved at workspace/designer/img.jpg\n", "\u001b[2m2025-07-13T16:04:16.726944Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Executing task:\n", "\u001b[2m2025-07-13T16:04:16.726987Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m • Implementing FastAPI, develop a backend in Python for fetching and displaying today's weather.\n", "\u001b[2m2025-07-13T16:04:16.727001Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m • Step 1: Set up API endpoints to retrieve weather data from external weather APIs.\n", "\u001b[2m2025-07-13T16:04:16.727024Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m • Step 2: Process and format the fetched weather data for efficient delivery to the frontend.\n", "\u001b[2m2025-07-13T16:04:16.727473Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Executing goal: Generate backend code\n", "\u001b[2m2025-07-13T16:04:24.906723Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 1\n", "- In Progress: 2\n", "\n", "Goals Summary:\n", "1. Run unit tests and backend server [⏳ In Progress]\n", "2. Fix code bugs if any [⏳ In Progress]\n", "3. Generate backend code [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:04:24.907334Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Executing goal: Fix code bugs if any\n", "\u001b[2m2025-07-13T16:04:31.889766Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 2\n", "- In Progress: 1\n", "\n", "Goals Summary:\n", "1. Run unit tests and backend server [⏳ In Progress]\n", "2. Fix code bugs if any [✅ Completed]\n", "3. Generate backend code [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:04:31.890243Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Executing goal: Run unit tests and backend server\n", "\u001b[2m2025-07-13T16:04:31.890275Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Backend Code Unit Testing...\n", "\u001b[2m2025-07-13T16:04:41.150678Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Successfully installed Python package 'fastapi'\n", "\u001b[2m2025-07-13T16:04:42.346654Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Successfully installed Python package 'typing'\n", "test test_manager_gpt has been running for over 60 seconds\n", "\u001b[2m2025-07-13T16:04:44.591704Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Successfully installed Python package 'httpx'\n", "\u001b[2m2025-07-13T16:04:46.069864Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Successfully installed Python package 'asyncio'\n", "\u001b[2m2025-07-13T16:04:47.747188Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Successfully installed Python package 'uvicorn'\n", "\u001b[2m2025-07-13T16:04:57.863065Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Self Reflection: \n", "- Total Goals: 3\n", "- Completed: 3\n", "- In Progress: 0\n", "\n", "Goals Summary:\n", "1. Run unit tests and backend server [✅ Completed]\n", "2. Fix code bugs if any [✅ Completed]\n", "3. Generate backend code [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:04:57.863147Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::backend\u001b[0m\u001b[2m:\u001b[0m [*] \"BackendGPT\": Objective complete!\n", "\u001b[2m2025-07-13T16:04:59.877548Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Executing task:\n", "\u001b[2m2025-07-13T16:04:59.877636Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Executing task:\n", "\u001b[2m2025-07-13T16:04:59.877695Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m • User Request: Project Goal: \"Create a data visualization dashboard to display sales metrics, customer demographics, and website traffic analytics.\", Agent Role: \"frontend\", programming language: \"JavaScript\", framework: \"React.js\"\n", "\u001b[2m2025-07-13T16:04:59.878519Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Executing goal: Generate initial frontend code\n", "\u001b[2m2025-07-13T16:05:23.993494Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Self Reflection: \n", "- Total Goals: 4\n", "- Completed: 1\n", "- In Progress: 3\n", "\n", "Goals Summary:\n", "1. Fix build/test bugs [⏳ In Progress]\n", "2. Run unit tests [⏳ In Progress]\n", "3. Improve code quality [⏳ In Progress]\n", "4. Generate initial frontend code [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:05:23.994032Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Executing goal: Improve code quality\n", "\u001b[2m2025-07-13T16:05:43.768179Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Self Reflection: \n", "- Total Goals: 4\n", "- Completed: 2\n", "- In Progress: 2\n", "\n", "Goals Summary:\n", "1. Fix build/test bugs [⏳ In Progress]\n", "2. Run unit tests [⏳ In Progress]\n", "3. Improve code quality [✅ Completed]\n", "4. Generate initial frontend code [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:05:43.769111Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Executing goal: Run unit tests\n", "\u001b[2m2025-07-13T16:05:43.769174Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Attempting to build frontend...\n", "\u001b[2m2025-07-13T16:05:48.165789Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Installation of package 'React,' exited with an error\n", "\u001b[2m2025-07-13T16:05:48.689112Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Installation of package ''' exited with an error\n", "\u001b[2m2025-07-13T16:05:50.808396Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Installation of package 'SalesMetrics' exited with an error\n", "\u001b[2m2025-07-13T16:05:52.705913Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Installation of package 'CustomerDemographics' exited with an error\n", "\u001b[2m2025-07-13T16:05:53.908999Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Installation of package 'WebsiteTraffic' exited with an error\n", "\u001b[2m2025-07-13T16:05:54.389450Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Installation of package '{' exited with an error\n", "\u001b[2m2025-07-13T16:06:09.371691Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Successfully installed Python package 'React'\n", "\u001b[2m2025-07-13T16:06:11.224125Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Successfully installed Python package 'uvicorn'\n", "\u001b[2m2025-07-13T16:06:13.873784Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Successfully installed Python package 'httpx'\n", "\u001b[2m2025-07-13T16:06:14.023029Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Build failed: Traceback (most recent call last):\n", " File \"\", line 198, in _run_module_as_main\n", " File \"\", line 88, in _run_code\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/__main__.py\", line 4, in \n", " uvicorn.main()\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 1442, in __call__\n", " return self.main(*args, **kwargs)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 1363, in main\n", " rv = self.invoke(ctx)\n", " ^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 1226, in invoke\n", " return ctx.invoke(self.callback, **ctx.params)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 794, in invoke\n", " return callback(*args, **kwargs)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/main.py\", line 413, in main\n", " run(\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/main.py\", line 580, in run\n", " server.run()\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/server.py\", line 67, in run\n", " return asyncio.run(self.serve(sockets=sockets))\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/asyncio/runners.py\", line 194, in run\n", " return runner.run(main)\n", " ^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/asyncio/runners.py\", line 118, in run\n", " return self._loop.run_until_complete(task)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/asyncio/base_events.py\", line 687, in run_until_complete\n", " return future.result()\n", " ^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/server.py\", line 71, in serve\n", " await self._serve(sockets)\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/server.py\", line 78, in _serve\n", " config.load()\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/config.py\", line 436, in load\n", " self.loaded_app = import_from_string(self.app)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/importer.py\", line 19, in import_from_string\n", " module = importlib.import_module(module_str)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/importlib/__init__.py\", line 90, in import_module\n", " return _bootstrap._gcd_import(name[level:], package, level)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"\", line 1387, in _gcd_import\n", " File \"\", line 1360, in _find_and_load\n", " File \"\", line 1331, in _find_and_load_unlocked\n", " File \"\", line 935, in _load_unlocked\n", " File \"\", line 991, in exec_module\n", " File \"\", line 1129, in get_code\n", " File \"\", line 1059, in source_to_code\n", " File \"\", line 488, in _call_with_frames_removed\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/main.py\", line 264\n", " padding: 20px;\n", " ^\n", "SyntaxError: invalid decimal literal\n", "\n", "\u001b[2m2025-07-13T16:06:14.023063Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Retrying build... (1/3)\n", "\u001b[2m2025-07-13T16:06:20.225689Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Gemini: No embedding returned.\n", "\u001b[2m2025-07-13T16:06:20.740980Z\u001b[0m \u001b[33m WARN\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Upsert failed -> check `PINECONE_INDEX_URL` and trial limits.\n", "\u001b[2m2025-07-13T16:06:38.595868Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Attempting to build frontend...\n", "\u001b[2m2025-07-13T16:06:38.745648Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Build failed: Traceback (most recent call last):\n", " File \"\", line 198, in _run_module_as_main\n", " File \"\", line 88, in _run_code\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/__main__.py\", line 4, in \n", " uvicorn.main()\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 1442, in __call__\n", " return self.main(*args, **kwargs)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 1363, in main\n", " rv = self.invoke(ctx)\n", " ^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 1226, in invoke\n", " return ctx.invoke(self.callback, **ctx.params)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 794, in invoke\n", " return callback(*args, **kwargs)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/main.py\", line 413, in main\n", " run(\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/main.py\", line 580, in run\n", " server.run()\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/server.py\", line 67, in run\n", " return asyncio.run(self.serve(sockets=sockets))\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/asyncio/runners.py\", line 194, in run\n", " return runner.run(main)\n", " ^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/asyncio/runners.py\", line 118, in run\n", " return self._loop.run_until_complete(task)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/asyncio/base_events.py\", line 687, in run_until_complete\n", " return future.result()\n", " ^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/server.py\", line 71, in serve\n", " await self._serve(sockets)\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/server.py\", line 78, in _serve\n", " config.load()\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/config.py\", line 436, in load\n", " self.loaded_app = import_from_string(self.app)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/importer.py\", line 19, in import_from_string\n", " module = importlib.import_module(module_str)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/importlib/__init__.py\", line 90, in import_module\n", " return _bootstrap._gcd_import(name[level:], package, level)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"\", line 1387, in _gcd_import\n", " File \"\", line 1360, in _find_and_load\n", " File \"\", line 1331, in _find_and_load_unlocked\n", " File \"\", line 935, in _load_unlocked\n", " File \"\", line 991, in exec_module\n", " File \"\", line 1129, in get_code\n", " File \"\", line 1059, in source_to_code\n", " File \"\", line 488, in _call_with_frames_removed\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/main.py\", line 264\n", " padding: 20px;\n", " ^\n", "SyntaxError: invalid decimal literal\n", "\n", "\u001b[2m2025-07-13T16:06:38.745682Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Retrying build... (2/3)\n", "\u001b[2m2025-07-13T16:06:44.469846Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Gemini: No embedding returned.\n", "\u001b[2m2025-07-13T16:06:44.958633Z\u001b[0m \u001b[33m WARN\u001b[0m \u001b[2mautogpt::common::memory\u001b[0m\u001b[2m:\u001b[0m Upsert failed -> check `PINECONE_INDEX_URL` and trial limits.\n", "\u001b[2m2025-07-13T16:06:59.721230Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Attempting to build frontend...\n", "\u001b[2m2025-07-13T16:06:59.896885Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Build failed: Traceback (most recent call last):\n", " File \"\", line 198, in _run_module_as_main\n", " File \"\", line 88, in _run_code\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/__main__.py\", line 4, in \n", " uvicorn.main()\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 1442, in __call__\n", " return self.main(*args, **kwargs)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 1363, in main\n", " rv = self.invoke(ctx)\n", " ^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 1226, in invoke\n", " return ctx.invoke(self.callback, **ctx.params)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/click/core.py\", line 794, in invoke\n", " return callback(*args, **kwargs)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/main.py\", line 413, in main\n", " run(\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/main.py\", line 580, in run\n", " server.run()\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/server.py\", line 67, in run\n", " return asyncio.run(self.serve(sockets=sockets))\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/asyncio/runners.py\", line 194, in run\n", " return runner.run(main)\n", " ^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/asyncio/runners.py\", line 118, in run\n", " return self._loop.run_until_complete(task)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/asyncio/base_events.py\", line 687, in run_until_complete\n", " return future.result()\n", " ^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/server.py\", line 71, in serve\n", " await self._serve(sockets)\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/server.py\", line 78, in _serve\n", " config.load()\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/config.py\", line 436, in load\n", " self.loaded_app = import_from_string(self.app)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/.venv/lib/python3.12/site-packages/uvicorn/importer.py\", line 19, in import_from_string\n", " module = importlib.import_module(module_str)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"/usr/lib/python3.12/importlib/__init__.py\", line 90, in import_module\n", " return _bootstrap._gcd_import(name[level:], package, level)\n", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", " File \"\", line 1387, in _gcd_import\n", " File \"\", line 1360, in _find_and_load\n", " File \"\", line 1331, in _find_and_load_unlocked\n", " File \"\", line 935, in _load_unlocked\n", " File \"\", line 991, in exec_module\n", " File \"\", line 1129, in get_code\n", " File \"\", line 1059, in source_to_code\n", " File \"\", line 488, in _call_with_frames_removed\n", " File \"/home/mahmoud/Desktop/kevin/autogpt/autogpt/workspace/frontend/main.py\", line 264\n", " padding: 20px;\n", " ^\n", "SyntaxError: invalid decimal literal\n", "\n", "\u001b[2m2025-07-13T16:06:59.896923Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Max build attempts reached. Aborting...\n", "\u001b[2m2025-07-13T16:06:59.897285Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::frontend\u001b[0m\u001b[2m:\u001b[0m [*] \"FrontendGPT\": Self Reflection: \n", "- Total Goals: 4\n", "- Completed: 3\n", "- In Progress: 1\n", "\n", "Goals Summary:\n", "1. Fix build/test bugs [⏳ In Progress]\n", "2. Run unit tests [✅ Completed]\n", "3. Improve code quality [✅ Completed]\n", "4. Generate initial frontend code [✅ Completed]\n", "\n", "\u001b[2m2025-07-13T16:07:02.447673Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m [*] \"GitGPT\": Executing Git commit task.\n", "\u001b[2m2025-07-13T16:07:02.447783Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m • With React.js, develop a frontend in JavaScript for a data visualization dashboard to display sales metrics, customer demographics, and website traffic analytics.\n", "\u001b[2m2025-07-13T16:07:02.447822Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m • Step 1: Integrate charting libraries, to represent data sets for sales, customer and website analytics.\n", "\u001b[2m2025-07-13T16:07:02.447850Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m • Step 2: Design the dashboard layout for data presentation.\n", "\u001b[2m2025-07-13T16:07:08.558277Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::git\u001b[0m\u001b[2m:\u001b[0m [*] \"GitGPT\": Commit created: 12f4a59620f2a76a87c81765145610cf30ca3254\n", "\u001b[2m2025-07-13T16:07:09.855096Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::manager\u001b[0m\u001b[2m:\u001b[0m [*] \"Manager\": Completed Task:\n", "test test_manager_gpt ... ok\n", "\n", "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 206.16s\n", "\n", "\n", "running 3 tests\n", "\u001b[2m2025-07-13T16:07:10.103324Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::optimizer\u001b[0m\u001b[2m:\u001b[0m [*] \"OptimizerGPT\": 🔧 Optimizer ready!\n", "\u001b[2m2025-07-13T16:07:10.111999Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::optimizer\u001b[0m\u001b[2m:\u001b[0m [*] \"OptimizerGPT\": 🔧 Optimizer ready!\n", "test test_optimizer_gpt_save_module ... ok\n", "\u001b[2m2025-07-13T16:07:10.118145Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::optimizer\u001b[0m\u001b[2m:\u001b[0m [*] \"OptimizerGPT\": 🔧 Optimizer ready!\n", "\u001b[2m2025-07-13T16:07:10.118411Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mautogpt::agents::optimizer\u001b[0m\u001b[2m:\u001b[0m [*] \"OptimizerGPT\": Executing modularization task\n", "test test_optimizer_gpt_execute ... ok\n", "test test_generate_and_track ... ok\n", "\n", "test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.68s\n", "\n", "\n", "running 1 test\n", "test test_orchestrator_create_and_terminate_agent ... ignored\n", "\n", "test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 1 test\n", "\u001b[2m2025-07-13T16:07:17.592946Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.593808Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.593853Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:17.594073Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🌐 Connecting to server... \u001b[3maddr\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:4555\n", "\u001b[2m2025-07-13T16:07:17.596509Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::hs\u001b[0m\u001b[2m:\u001b[0m No cached session for DnsName(\"localhost\") \n", "\u001b[2m2025-07-13T16:07:17.600138Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::hs\u001b[0m\u001b[2m:\u001b[0m Not resuming any session \n", "\u001b[2m2025-07-13T16:07:17.607840Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🚀 Server bound and listening \u001b[3maddress\u001b[0m\u001b[2m=\u001b[0m0.0.0.0:4555\n", "\u001b[2m2025-07-13T16:07:17.609821Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔌 Incoming connection \u001b[3mremote\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:60027\n", "\u001b[2m2025-07-13T16:07:17.611434Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2mrustls::server::hs\u001b[0m\u001b[2m:\u001b[0m decided upon suite TLS13_AES_256_GCM_SHA384 \n", "\u001b[2m2025-07-13T16:07:17.614345Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m\u001b[1mdrive\u001b[0m\u001b[1m{\u001b[0m\u001b[3mid\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::hs\u001b[0m\u001b[2m:\u001b[0m Using ciphersuite TLS13_AES_256_GCM_SHA384 \n", "\u001b[2m2025-07-13T16:07:17.614553Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m\u001b[1mdrive\u001b[0m\u001b[1m{\u001b[0m\u001b[3mid\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::tls13\u001b[0m\u001b[2m:\u001b[0m Not resuming \n", "\u001b[2m2025-07-13T16:07:17.615372Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m\u001b[1mdrive\u001b[0m\u001b[1m{\u001b[0m\u001b[3mid\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::tls13\u001b[0m\u001b[2m:\u001b[0m TLS1.3 encrypted extensions: [ServerNameAck, TransportParameters([8, 2, 64, 100, 1, 4, 128, 0, 117, 48, 14, 1, 5, 32, 4, 128, 0, 255, 255, 192, 0, 0, 0, 255, 4, 222, 27, 2, 67, 232, 106, 178, 0, 2, 16, 86, 121, 203, 116, 254, 45, 226, 241, 194, 89, 126, 56, 235, 113, 173, 254, 4, 8, 255, 255, 255, 255, 255, 255, 255, 255, 3, 2, 69, 192, 7, 4, 128, 19, 18, 208, 0, 20, 52, 243, 142, 125, 90, 84, 27, 230, 236, 63, 155, 205, 98, 23, 87, 163, 184, 9, 126, 92, 5, 4, 128, 19, 18, 208, 15, 8, 158, 237, 67, 55, 19, 153, 93, 134, 193, 110, 251, 184, 55, 242, 97, 234, 10, 247, 206, 238, 129, 155, 245, 225, 246, 110, 248, 6, 4, 128, 19, 18, 208, 9, 2, 64, 100])] \n", "\u001b[2m2025-07-13T16:07:17.615423Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m\u001b[1mdrive\u001b[0m\u001b[1m{\u001b[0m\u001b[3mid\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::hs\u001b[0m\u001b[2m:\u001b[0m ALPN protocol is None \n", "\u001b[2m2025-07-13T16:07:17.616312Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Client connected to 127.0.0.1:4555\n", "\u001b[2m2025-07-13T16:07:17.616356Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🌐 Connecting to server... \u001b[3maddr\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:4555\n", "\u001b[2m2025-07-13T16:07:17.616747Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::hs\u001b[0m\u001b[2m:\u001b[0m No cached session for DnsName(\"localhost\") \n", "\u001b[2m2025-07-13T16:07:17.617240Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::hs\u001b[0m\u001b[2m:\u001b[0m Not resuming any session \n", "\u001b[2m2025-07-13T16:07:17.619372Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Connection established \u001b[3mpeer\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:60027\n", "\u001b[2m2025-07-13T16:07:17.619444Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔁 Started handling incoming connection\n", "\u001b[2m2025-07-13T16:07:17.619460Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:17.621214Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔌 Incoming connection \u001b[3mremote\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:59913\n", "\u001b[2m2025-07-13T16:07:17.621670Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2mrustls::server::hs\u001b[0m\u001b[2m:\u001b[0m decided upon suite TLS13_AES_256_GCM_SHA384 \n", "\u001b[2m2025-07-13T16:07:17.624120Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m\u001b[1mdrive\u001b[0m\u001b[1m{\u001b[0m\u001b[3mid\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::hs\u001b[0m\u001b[2m:\u001b[0m Using ciphersuite TLS13_AES_256_GCM_SHA384 \n", "\u001b[2m2025-07-13T16:07:17.624177Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m\u001b[1mdrive\u001b[0m\u001b[1m{\u001b[0m\u001b[3mid\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::tls13\u001b[0m\u001b[2m:\u001b[0m Not resuming \n", "\u001b[2m2025-07-13T16:07:17.624994Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m\u001b[1mdrive\u001b[0m\u001b[1m{\u001b[0m\u001b[3mid\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::tls13\u001b[0m\u001b[2m:\u001b[0m TLS1.3 encrypted extensions: [ServerNameAck, TransportParameters([7, 4, 128, 19, 18, 208, 1, 4, 128, 0, 117, 48, 223, 138, 190, 199, 34, 129, 214, 73, 11, 175, 212, 126, 97, 113, 130, 221, 44, 172, 173, 239, 3, 2, 69, 192, 0, 20, 176, 241, 45, 221, 198, 21, 29, 234, 153, 240, 18, 209, 223, 144, 205, 141, 68, 226, 230, 3, 9, 2, 64, 100, 32, 4, 128, 0, 255, 255, 106, 178, 0, 5, 4, 128, 19, 18, 208, 15, 8, 226, 222, 211, 0, 164, 59, 135, 130, 8, 2, 64, 100, 192, 0, 0, 0, 255, 4, 222, 27, 2, 67, 232, 2, 16, 203, 111, 189, 207, 31, 77, 118, 189, 47, 255, 89, 241, 73, 165, 107, 177, 14, 1, 5, 6, 4, 128, 19, 18, 208, 4, 8, 255, 255, 255, 255, 255, 255, 255, 255])] \n", "\u001b[2m2025-07-13T16:07:17.625045Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m\u001b[1mdrive\u001b[0m\u001b[1m{\u001b[0m\u001b[3mid\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2mrustls::client::hs\u001b[0m\u001b[2m:\u001b[0m ALPN protocol is None \n", "\u001b[2m2025-07-13T16:07:17.625906Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Client connected to 127.0.0.1:4555\n", "\u001b[2m2025-07-13T16:07:17.626764Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.627582Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.627782Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m163\n", "\u001b[2m2025-07-13T16:07:17.630011Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m163\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.630071Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.630151Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m163\n", "\u001b[2m2025-07-13T16:07:17.631766Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m163\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.631810Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.631837Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:17.631869Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m227\n", "\u001b[2m2025-07-13T16:07:17.631896Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m227\n", "\u001b[2m2025-07-13T16:07:17.636624Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m201\n", "\u001b[2m2025-07-13T16:07:17.636722Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:17.636775Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 201 bytes to stream\n", "\u001b[2m2025-07-13T16:07:17.636837Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:17.636864Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mfrontend \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m1ae83c08-a1db-471c-96e8-19b9af9df809 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:17.637119Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m164\n", "\u001b[2m2025-07-13T16:07:17.639043Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m164\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.639105Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.639215Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m164\n", "\u001b[2m2025-07-13T16:07:17.640915Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m164\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.640955Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.640979Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:17.641023Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m228\n", "\u001b[2m2025-07-13T16:07:17.641049Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m228\n", "\u001b[2m2025-07-13T16:07:17.641653Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m200\n", "\u001b[2m2025-07-13T16:07:17.641680Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:17.641710Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 200 bytes to stream\n", "\u001b[2m2025-07-13T16:07:17.641748Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:17.641764Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mff9fc82e-337b-48a8-bf02-58ea3cc27936 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:17.641909Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mDelegateTask\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m167\n", "\u001b[2m2025-07-13T16:07:17.643656Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m167\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.643710Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.643797Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mDelegateTask\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m167\n", "\u001b[2m2025-07-13T16:07:17.645518Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m167\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.645575Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.645602Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:17.645637Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mDelegateTask\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m231\n", "\u001b[2m2025-07-13T16:07:17.645662Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m231\n", "\u001b[2m2025-07-13T16:07:17.646214Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m214\n", "\u001b[2m2025-07-13T16:07:17.646240Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:17.646265Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 214 bytes to stream\n", "\u001b[2m2025-07-13T16:07:17.646293Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:17.646309Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mdesigner \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mAgentGPT \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m0\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "test test_agents_collaboration ... ok\n", "\n", "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s\n", "\n", "\n", "running 2 tests\n", "test test_agent_update ... ok\n", "test test_agent_creation ... ok\n", "\n", "test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 0 tests\n", "\n", "test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 1 test\n", "\u001b[2m2025-07-13T16:07:17.726504Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🚀 Server bound and listening \u001b[3maddress\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:4433\n", "\u001b[2m2025-07-13T16:07:17.728096Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:17.794300Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.794375Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🌐 Connecting to server... \u001b[3maddr\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:4433\n", "\u001b[2m2025-07-13T16:07:17.803105Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔌 Incoming connection \u001b[3mremote\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:41193\n", "\u001b[2m2025-07-13T16:07:17.808087Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Client connected to 127.0.0.1:4433\n", "\u001b[2m2025-07-13T16:07:17.808173Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mUnknown\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m30\n", "\u001b[2m2025-07-13T16:07:17.809830Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m30\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.809884Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.809944Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mUnknown\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m30\n", "\u001b[2m2025-07-13T16:07:17.811519Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m30\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.811569Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.811595Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:17.811625Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mUnknown\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m94\n", "\u001b[2m2025-07-13T16:07:17.811652Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m94\n", "\u001b[2m2025-07-13T16:07:17.816748Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m103\n", "\u001b[2m2025-07-13T16:07:17.816823Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:17.816881Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 103 bytes to stream\n", "\u001b[2m2025-07-13T16:07:17.816963Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:17.817012Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0mserver \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0mtester \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "test test_client_connect_and_send ... ok\n", "\n", "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s\n", "\n", "\n", "running 3 tests\n", "\u001b[2m2025-07-13T16:07:17.834207Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.834211Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.834268Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:17.834283Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:17.834341Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:17.834333Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m69\n", "\u001b[2m2025-07-13T16:07:17.834414Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:17.834414Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\n", "\u001b[2m2025-07-13T16:07:17.834505Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:17.834513Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m69\n", "\u001b[2m2025-07-13T16:07:17.835089Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.835126Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:17.835170Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mUnknown\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m30\n", "\u001b[2m2025-07-13T16:07:17.835245Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mUnknown\n", "\u001b[2m2025-07-13T16:07:17.835323Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mUnknown\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m30\n", "\u001b[2m2025-07-13T16:07:17.836347Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.836389Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.836434Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:17.837030Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m69\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.837086Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.837161Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m69\n", "\u001b[2m2025-07-13T16:07:17.837161Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m30\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.837212Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:17.837252Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:17.837259Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:17.837310Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:17.837321Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mUnknown\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m30\n", "\u001b[2m2025-07-13T16:07:17.837494Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ❌ Signature verification failed\n", "test test_ping_message ... ok\n", "\u001b[2m2025-07-13T16:07:17.838187Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m30 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:17.838236Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:17.838276Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mUnknown\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m30\n", "\u001b[2m2025-07-13T16:07:17.838310Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m69 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:17.838361Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:17.838435Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m69\n", "\u001b[2m2025-07-13T16:07:17.838473Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m1\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m30 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ❌ Signature verification failed\n", "test test_serialize_deserialize_sign_verify ... ok\n", "\u001b[2m2025-07-13T16:07:17.839532Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m100\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m69 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ❌ Signature verification failed\n", "test test_broadcast_message ... ok\n", "\n", "test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s\n", "\n", "\n", "running 2 tests\n", "\u001b[2m2025-07-13T16:07:17.877167Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.877167Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.879656Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.879701Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:17.880503Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:17.880559Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:17.909975Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🚀 Server bound and listening \u001b[3maddress\u001b[0m\u001b[2m=\u001b[0m0.0.0.0:4555\n", "\u001b[2m2025-07-13T16:07:17.909975Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🚀 Server bound and listening \u001b[3maddress\u001b[0m\u001b[2m=\u001b[0m0.0.0.0:4556\n", "\u001b[2m2025-07-13T16:07:18.083464Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🌐 Connecting to server... \u001b[3maddr\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:4555\n", "\u001b[2m2025-07-13T16:07:18.083464Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🌐 Connecting to server... \u001b[3maddr\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:4556\n", "\u001b[2m2025-07-13T16:07:18.091326Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔌 Incoming connection \u001b[3mremote\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:35580\n", "\u001b[2m2025-07-13T16:07:18.091326Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔌 Incoming connection \u001b[3mremote\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:35519\n", "\u001b[2m2025-07-13T16:07:18.096612Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Client connected to 127.0.0.1:4555\n", "\u001b[2m2025-07-13T16:07:18.096612Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Client connected to 127.0.0.1:4556\n", "\u001b[2m2025-07-13T16:07:18.096674Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:18.096679Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:18.096712Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🌐 Connecting to server... \u001b[3maddr\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:4556\n", "\u001b[2m2025-07-13T16:07:18.096714Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🌐 Connecting to server... \u001b[3maddr\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:4555\n", "\u001b[2m2025-07-13T16:07:18.099211Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Connection established \u001b[3mpeer\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:35580\n", "\u001b[2m2025-07-13T16:07:18.099211Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Connection established \u001b[3mpeer\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:35519\n", "\u001b[2m2025-07-13T16:07:18.099272Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔁 Started handling incoming connection\n", "\u001b[2m2025-07-13T16:07:18.099271Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔁 Started handling incoming connection\n", "\u001b[2m2025-07-13T16:07:18.099283Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.099285Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.100865Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔌 Incoming connection \u001b[3mremote\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:35778\n", "\u001b[2m2025-07-13T16:07:18.100891Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔌 Incoming connection \u001b[3mremote\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:42622\n", "\u001b[2m2025-07-13T16:07:18.105971Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Client connected to 127.0.0.1:4555\n", "\u001b[2m2025-07-13T16:07:18.105971Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mconnect\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Client connected to 127.0.0.1:4556\n", "\u001b[2m2025-07-13T16:07:18.106053Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:18.106057Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:18.106285Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mbroadcast\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-1\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📢 Created BROADCAST message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast \u001b[3mpayload_len\u001b[0m\u001b[2m=\u001b[0m22\n", "\u001b[2m2025-07-13T16:07:18.106404Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m66\n", "\u001b[2m2025-07-13T16:07:18.108082Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-1\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-2\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.108170Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:18.108203Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m66\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.108264Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.108314Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:18.108345Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m130\n", "\u001b[2m2025-07-13T16:07:18.108383Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m130\n", "\u001b[2m2025-07-13T16:07:18.109967Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.110016Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.110040Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:18.110072Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:18.110108Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:18.111679Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:18.111709Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:18.111737Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 118 bytes to stream\n", "\u001b[2m2025-07-13T16:07:18.111760Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m139\n", "\u001b[2m2025-07-13T16:07:18.111774Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:18.111788Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:18.111805Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 139 bytes to stream\n", "\u001b[2m2025-07-13T16:07:18.111804Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:18.111827Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:18.111842Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:18.111874Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2mnetwork\u001b[0m\u001b[2m:\u001b[0m Broadcast to agent-2 succeeded\n", "\u001b[2m2025-07-13T16:07:18.111923Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-2\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-1\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.112033Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.113645Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Connection established \u001b[3mpeer\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:35778\n", "\u001b[2m2025-07-13T16:07:18.113690Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔁 Started handling incoming connection\n", "\u001b[2m2025-07-13T16:07:18.113700Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.113858Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.113908Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.113932Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:18.113965Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.114005Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.114543Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.114569Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:18.114587Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 117 bytes to stream\n", "\u001b[2m2025-07-13T16:07:18.114611Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:18.114628Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:18.114710Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Connection established \u001b[3mpeer\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:42622\n", "\u001b[2m2025-07-13T16:07:18.115020Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🔁 Started handling incoming connection\n", "\u001b[2m2025-07-13T16:07:18.115033Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.115147Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:18.115205Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m139\n", "\u001b[2m2025-07-13T16:07:18.116638Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:18.116682Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:18.117068Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:18.117070Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m130\n", "\u001b[2m2025-07-13T16:07:18.117119Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\n", "\u001b[2m2025-07-13T16:07:18.117119Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.117186Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m66\n", "\u001b[2m2025-07-13T16:07:18.117216Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:18.117947Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m66 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:18.117988Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6325734493762049170\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:18.118009Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mBroadcast \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2\n", "\u001b[2m2025-07-13T16:07:18.117998Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:18.118034Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.118036Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m15718378174295762288\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:18.118067Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2\n", "\u001b[2m2025-07-13T16:07:18.118096Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.118131Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:18.118204Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.118243Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.118292Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.118378Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.120072Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:18.120302Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7004516172776873776\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:18.120357Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1\n", "\u001b[2m2025-07-13T16:07:18.120404Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.412858Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-1\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-2\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.413016Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.417539Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.417652Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.417695Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:18.417757Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.417797Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.417918Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.417946Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:18.417978Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 117 bytes to stream\n", "\u001b[2m2025-07-13T16:07:18.418025Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:18.418050Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:18.418494Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-2\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-1\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.418598Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.423513Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.423882Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.425184Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:18.425277Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.425331Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.425456Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.425485Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:18.425519Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 117 bytes to stream\n", "\u001b[2m2025-07-13T16:07:18.425564Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:18.425589Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:18.426058Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:18.426120Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.426159Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.428239Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.428393Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.429733Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:18.429789Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7408064212903545426\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:18.429821Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2\n", "\u001b[2m2025-07-13T16:07:18.429862Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.432987Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:18.433269Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.433468Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.433542Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.433634Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.438976Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:18.440481Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m2946119685069793361\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:18.440540Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1\n", "\u001b[2m2025-07-13T16:07:18.440583Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.719763Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-1\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-2\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.719888Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.721573Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.721628Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.721652Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:18.721683Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.721708Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.721800Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.721821Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:18.721854Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 117 bytes to stream\n", "\u001b[2m2025-07-13T16:07:18.721897Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:18.721922Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:18.722405Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:18.722465Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.722505Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.722553Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.722625Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.723370Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:18.723410Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m3487014878553646948\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:18.723440Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2\n", "\u001b[2m2025-07-13T16:07:18.723482Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:18.726739Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-2\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-1\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.726853Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.728463Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.728508Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:18.728545Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:18.728589Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.728625Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.728730Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.728752Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:18.728784Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 117 bytes to stream\n", "\u001b[2m2025-07-13T16:07:18.728824Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:18.728846Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:18.729276Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:18.729332Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:18.729368Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:18.729413Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:18.729476Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:18.730810Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:18.730850Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m8134946126469221626\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:18.730879Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1\n", "\u001b[2m2025-07-13T16:07:18.730911Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:19.022964Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-1\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-2\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.023089Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:19.024716Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.024769Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.024808Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:19.024853Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.024890Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.025000Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:19.025022Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:19.025055Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 117 bytes to stream\n", "\u001b[2m2025-07-13T16:07:19.025097Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:19.025117Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:19.025574Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:19.025632Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:19.025670Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.025716Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.025785Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:19.026497Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:19.026537Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7589235344489412392\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:19.026568Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2\n", "\u001b[2m2025-07-13T16:07:19.026601Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:19.029842Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-2\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-1\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.029954Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:19.031573Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.031622Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.031660Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:19.031704Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.031740Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.031847Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:19.031870Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:19.031902Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 117 bytes to stream\n", "\u001b[2m2025-07-13T16:07:19.031943Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:19.031963Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:19.032409Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:19.032464Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:19.032509Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.032553Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.032619Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:19.033957Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:19.033996Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m6013690418539234826\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:19.034025Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1\n", "\u001b[2m2025-07-13T16:07:19.034059Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:19.326964Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-1\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-2\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.327092Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:19.328802Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.328859Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.328934Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:19.328985Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.329020Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.329148Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:19.329172Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:19.329214Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 118 bytes to stream\n", "\u001b[2m2025-07-13T16:07:19.329262Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:19.329285Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:19.329738Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:19.329796Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:19.329835Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.329881Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.329949Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:19.330695Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:19.330737Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10388458539443405197\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:19.330768Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2\n", "\u001b[2m2025-07-13T16:07:19.330801Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:19.334027Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-2\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-1\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.334136Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:19.335791Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.335836Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.335885Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:19.335930Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.335967Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.336098Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:19.336122Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:19.336153Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 118 bytes to stream\n", "\u001b[2m2025-07-13T16:07:19.336202Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:19.336228Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:19.336633Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:19.336688Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:19.336723Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.336768Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.336836Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:19.338361Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:19.338428Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m16811502439844594466\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:19.338479Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1\n", "\u001b[2m2025-07-13T16:07:19.338514Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:19.630752Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-1\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-2\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.630878Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:19.632574Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.632625Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.632648Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:19.632689Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.632751Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.632897Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:19.632931Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:19.632965Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 117 bytes to stream\n", "\u001b[2m2025-07-13T16:07:19.633013Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:19.633045Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:19.633550Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:19.633599Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:19.633640Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.633692Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.633779Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:19.634531Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:19.634566Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m881124880597835331\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:19.634585Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2\n", "\u001b[2m2025-07-13T16:07:19.634613Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:19.637826Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-2\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-1\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.637910Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:19.639652Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.639721Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.639749Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:19.639796Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.639842Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.639976Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:19.640010Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:19.640045Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 117 bytes to stream\n", "\u001b[2m2025-07-13T16:07:19.640091Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:19.640123Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:19.640597Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:19.640644Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m117\n", "\u001b[2m2025-07-13T16:07:19.640692Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m108\n", "\u001b[2m2025-07-13T16:07:19.640754Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.640841Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m44\n", "\u001b[2m2025-07-13T16:07:19.642230Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m44 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:19.642267Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m7546164192338573581\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:19.642285Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1\n", "\u001b[2m2025-07-13T16:07:19.642309Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:19.934607Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-1\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-2\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.934738Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:19.936907Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.936968Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.936993Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:19.937040Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.937077Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.937227Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:19.937286Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:19.937324Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 118 bytes to stream\n", "\u001b[2m2025-07-13T16:07:19.937375Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:19.937430Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:19.938014Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:19.938105Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:19.938163Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.938246Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.938354Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:19.939667Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:19.939816Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m10754859029275279415\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:19.939905Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-2\n", "\u001b[2m2025-07-13T16:07:19.939999Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "\u001b[2m2025-07-13T16:07:19.941429Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mping\u001b[0m\u001b[1m{\u001b[0m\u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0m\"agent-2\" \u001b[3mto\u001b[0m\u001b[2m=\u001b[0m\"agent-1\"\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📡 Created PING message \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.941574Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:19.944125Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.944217Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✍️ Message signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:19.944289Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🖋️ Message signed\n", "\u001b[2m2025-07-13T16:07:19.944350Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.944399Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📦 Message serialized \u001b[3moriginal_len\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.944555Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📉 Message compressed \u001b[3mcompressed_len\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:19.944590Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 🔓 Opening unidirectional stream\n", "\u001b[2m2025-07-13T16:07:19.944629Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✍️ Writing 118 bytes to stream\n", "\u001b[2m2025-07-13T16:07:19.944680Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m ✅ Write complete, finalizing stream...\n", "\u001b[2m2025-07-13T16:07:19.944711Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msend\u001b[0m\u001b[1m{\u001b[0m\u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1 \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::client\u001b[0m\u001b[2m:\u001b[0m 📤 Stream finished successfully\n", "\u001b[2m2025-07-13T16:07:19.945319Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📥 Unidirectional stream accepted\n", "\u001b[2m2025-07-13T16:07:19.945386Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📦 Raw data received \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m118\n", "\u001b[2m2025-07-13T16:07:19.945430Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 📉 Data decompressed \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m109\n", "\u001b[2m2025-07-13T16:07:19.945483Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mdeserialize\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 📥 Message deserialized \u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\n", "\u001b[2m2025-07-13T16:07:19.945573Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mserialize\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883 \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m ✅ Message serialized \u001b[3mbytes\u001b[0m\u001b[2m=\u001b[0m45\n", "\u001b[2m2025-07-13T16:07:19.947681Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m\u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m45 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:19.947760Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mmsg_id\u001b[0m\u001b[2m=\u001b[0m11064196243492109883\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::message\u001b[0m\u001b[2m:\u001b[0m 🔐 Message signature verified\n", "\u001b[2m2025-07-13T16:07:19.947801Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ✅ Message verified and processed \u001b[3mmsg_type\u001b[0m\u001b[2m=\u001b[0mPing \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0magent-2 \u001b[3mto\u001b[0m\u001b[2m=\u001b[0magent-1\n", "\u001b[2m2025-07-13T16:07:19.947858Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m ⏳ Waiting for next unidirectional stream...\n", "test test_heartbeat ... ok\n", "test test_broadcast ... ok\n", "\n", "test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.25s\n", "\n", "\n", "running 1 test\n", "\u001b[2m2025-07-13T16:07:20.168766Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[2miac_rs::server\u001b[0m\u001b[2m:\u001b[0m 🚀 Server bound and listening \u001b[3maddress\u001b[0m\u001b[2m=\u001b[0m127.0.0.1:4433\n", "\u001b[2m2025-07-13T16:07:20.169823Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "test test_server_bind_and_run ... ok\n", "\n", "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s\n", "\n", "\n", "running 1 test\n", "\u001b[2m2025-07-13T16:07:20.289778Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔐 Signer created\n", "\u001b[2m2025-07-13T16:07:20.289932Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mnew\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m 🔍 Verifier initialized\n", "\u001b[2m2025-07-13T16:07:20.292282Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1msign\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m9\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✍️ Data signed \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\n", "\u001b[2m2025-07-13T16:07:20.293323Z\u001b[0m \u001b[34mDEBUG\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m9 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ✅ Signature verified successfully\n", "\u001b[2m2025-07-13T16:07:20.294060Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m8 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m64\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ❌ Signature verification failed\n", "\u001b[2m2025-07-13T16:07:20.295228Z\u001b[0m \u001b[31mERROR\u001b[0m \u001b[1mverify\u001b[0m\u001b[1m{\u001b[0m\u001b[3mdata_len\u001b[0m\u001b[2m=\u001b[0m9 \u001b[3msig_len\u001b[0m\u001b[2m=\u001b[0m10\u001b[1m}\u001b[0m\u001b[2m:\u001b[0m \u001b[2miac_rs::crypto\u001b[0m\u001b[2m:\u001b[0m ❌ Invalid signature length: 10\n", "test test_sign_and_verify ... ok\n", "\n", "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s\n", "\n", "\n", "running 1 test\n", "test test_transport_configs ... ok\n", "\n", "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s\n", "\n", "\n", "running 0 tests\n", "\n", "test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 0 tests\n", "\n", "test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n", "\n", "\n", "running 12 tests\n", "test autogpt/src/../INSTALLATION.md - prelude (line 251) ... ok\n", "test autogpt/src/agents/designer.rs - agents::designer (line 10) ... ok\n", "test autogpt/src/common/utils.rs - common::utils (line 22) ... ok\n", "test autogpt/src/traits/agent.rs - traits::agent (line 7) ... ok\n", "test autogpt/src/traits/functions.rs - traits::functions (line 7) ... ok\n", "test autogpt/src/agents/optimizer.rs - agents::optimizer (line 11) ... ok\n", "test autogpt/src/../INSTALLATION.md - prelude (line 222) ... ok\n", "test autogpt/src/../INSTALLATION.md - prelude (line 193) ... ok\n", "test autogpt/src/agents/backend.rs - agents::backend (line 10) ... ok\n", "test autogpt/src/../INSTALLATION.md - prelude (line 160) ... ok\n", "test autogpt/src/agents/architect.rs - agents::architect (line 10) has been running for over 60 seconds\n", "test autogpt/src/agents/frontend.rs - agents::frontend (line 10) has been running for over 60 seconds\n", "test autogpt/src/agents/frontend.rs - agents::frontend (line 10) ... ok\n", "test autogpt/src/agents/architect.rs - agents::architect (line 10) ... ok\n", "\n", "test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 91.47s\n", "\n", "\n", "running 2 tests\n", "test iac-rs/src/../README.md - (line 34) ... ok\n", "test iac-rs/src/../README.md - (line 76) ... ok\n", "\n", "test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s\n", "\n" ] }, { "data": { "text/plain": [ "()" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "let command = r#\"cd ../ && GEMINI_API_KEY=GEMINI_API_KEY \\\n", "PINECONE_API_KEY=PINECONE_API_KEY \\\n", "PINECONE_INDEX_URL=PINECONE_INDEX_URL \\\n", "cargo test --all-features 2>/dev/null\n", "\"#;\n", "\n", "if let Err(err) = execute_command(command) {\n", " eprintln!(\"Error executing command: {}\", err);\n", "}\n", "\n", "// Replace GEMINI_API_KEY, PINECONE_API_KEY and PINECONE_INDEX_URL above with your actual Gemini and Pinecone API keys" ] }, { "cell_type": "markdown", "id": "8f3f6ed2-7ff7-4854-9dce-8ee1facb297a", "metadata": {}, "source": [ "## AutoGPT Gemini Basic Agent Example" ] }, { "cell_type": "code", "execution_count": 25, "id": "e0490c65-8d24-4a14-aa9f-eb932f137997", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "All agents executed successfully.\n" ] }, { "data": { "text/plain": [ "()" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "use autogpt::prelude::*;\n", "\n", "unsafe { std::env::set_var(\"GEMINI_API_KEY\", \"set your gemini api key here\") };\n", "\n", "let objective = r#\"Generate a diagram for a simple web application running on Kubernetes.\n", " It consists of a single Deployment with 2 replicas, a Service to expose the Deployment,\n", " and an Ingress to route external traffic. Also include a basic monitoring setup\n", " with Prometheus and Grafana.\"#;\n", "let position = \"Lead UX/UI Designer\";\n", "\n", "let agent = ArchitectGPT::new(objective, position).await;\n", "\n", "let autogpt = AutoGPT::default()\n", " .with(agents![agent])\n", " .build()\n", " .expect(\"Failed to build AutoGPT\");\n", "\n", "match autogpt.run().await {\n", " Ok(response) => {\n", " println!(\"{}\", response);\n", " }\n", " Err(err) => {\n", " eprintln!(\"Agent error: {:?}\", err);\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 32, "id": "8b637403-a5bf-481a-ac4d-9805bb8e86d1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "from diagrams import Cluster, Diagram\n", "from diagrams.k8s.compute import Deployment, Pod\n", "from diagrams.k8s.network import Service, Ingress\n", "from diagrams.k8s.observe import Prometheus, Grafana\n", "\n", "with Diagram(\"Web Application on Kubernetes\", show=False):\n", " with Cluster(\"Kubernetes Cluster\"):\n", " with Cluster(\"Application Namespace\"):\n", " dep = Deployment(\"web-app-deployment\\n(replicas=2)\")\n", " svc = Service(\"web-app-service\")\n", " ing = Ingress(\"web-app-ingress\")\n", "\n", " pods = [Pod(\"web-app-pod-1\"), Pod(\"web-app-pod-2\")]\n", "\n", " dep >> pods\n", " svc >> pods\n", " ing >> svc\n", "\n", " with Cluster(\"Monitoring Namespace\"):\n", " prometheus = Prometheus(\"Prometheus\")\n", " grafana = Grafana(\"Grafana\")\n", "\n", " prometheus >> pods\n" ] }, { "data": { "text/plain": [ "()" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "let command = \"cat workspace/architect/diagram.py\";\n", "\n", "if let Err(err) = execute_command(command) {\n", " eprintln!(\"Error executing command: {}\", err);\n", "}" ] } ], "metadata": { "kernelspec": { "display_name": "Rust", "language": "rust", "name": "rust" }, "language_info": { "codemirror_mode": "rust", "file_extension": ".rs", "mimetype": "text/rust", "name": "Rust", "pygment_lexer": "rust", "version": "" } }, "nbformat": 4, "nbformat_minor": 5 }